Device Driver Mediates Incompatible Graphics API Surface Data

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The Microsoft Desktop Composition engine cannot process surfaces produced using the OpenGL API, as it is incompatible with the DirectX API, preventing the display of such surfaces.

Innovation Solution

A device driver requests driver-level information, including a unique identifier and format description, to access and store surface data from an incompatible graphics application, allowing the data to be processed and displayed by a compatible graphics application, such as using a new function call to obtain a resource handle and convert data between incompatible APIs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If the Desktop Composition Engine uses DirectX API for compositing operations, then it can process surfaces produced by DirectX applications, but it cannot process surfaces produced by incompatible graphics applications like OpenGL

Engineering Contradiction:
Improvecompatibility with different graphics APIsVSAvoidprocessing capability for surface data
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The device driver acts as an intermediary between incompatible graphics applications (OpenGL) and the Desktop Composition Engine (DirectX-based). The driver translates and converts surface data from OpenGL format to DirectX format, enabling the Desktop Composition Engine to process surfaces from incompatible applications without modifying the core DirectX processing pipeline.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system changes the format parameters of surface data by converting it from OpenGL-specific data structures and memory layouts to DirectX-compatible formats. This involves transforming pixel formats, memory addressing schemes, and data organization to match the expectations of the DirectX compositing engine.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If the system enables processing of surfaces from incompatible graphics applications, then versatility is improved, but device complexity increases due to the need for format conversion and driver-level access mechanisms

Engineering Contradiction:
Improveability to process surfaces from different graphics APIsVSAvoiddriver-level access and data conversion mechanisms
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The device driver serves as a controlled intermediary layer that manages the complexity of format conversion. By centralizing the translation logic in the driver, the patent avoids scattering complex conversion code throughout the system, thereby containing device complexity while achieving broad compatibility.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The device driver is designed to handle multiple graphics API formats (OpenGL, DirectX, and potentially others) through a unified conversion mechanism. This multi-functional approach allows a single driver implementation to support various graphics applications without requiring separate processing paths for each API.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Ease of operation

If surface data is stored in memory portions specified by driver-level information, then access to incompatible application surfaces is enabled, but memory management complexity increases

Engineering Contradiction:
Improveaccess to surface data from incompatible applicationsVSAvoidmemory allocation and management
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The device driver manages memory as an intermediary resource, allocating and mapping memory portions that can be accessed by both OpenGL and DirectX systems. The driver handles the complexity of memory allocation, ensuring that surface data is stored in locations that are accessible to the Desktop Composition Engine while maintaining the original OpenGL application's ability to access its own surface data.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7487516B1Desktop composition for incompatible graphics applications
Publication Date: 2009.02.03 NVIDIA CORP
  • US7487516B1 patent drawing
  • US7487516B1 patent drawing
  • US7487516B1 patent drawing

AI summary

A first graphics application produces surface data using a first graphics applications programming interface. A second graphics application uses a second graphics applications programming interface that is incompatible with the first graphics applications programming interface to process the surface data for display. A device driver requests driver level information from the second graphics application and stores the surface data in a portion of memory specified by the driver level information. Although the first graphics application is incompatible with the second graphics application, surface data produced by the first graphics application may be processed for display by the second graphics application.