IP Library Granted Patent US 7,659,901
Granted Patent B2
US 7,659,901 · App. 11/565,326 · Granted Feb 9, 2010

Application program interface for programmable graphics pipeline

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,659,901
App. No.
11/565,326
Granted
Feb 9, 2010
Kind
B2
Abstract

Systems and methods that optimize GPU processing by front loading activities from a set time/binding time to creation time via enhancements to an API that configures the GPU. Such enhancements to the API include: implementing layering arrangements, employing state objects and view components for data objects; incorporating a pipeline stage linkage/signature, employing a detection mechanism to mitigate error conditions. Such an arrangement enables front loading of the work and reduction of associated API calls.

Claims (34)

1. A computer implemented system comprising the following computer executable components:

an Application Programming Interface (API) that frontloads activities of a Graphical Processing Unit (GPU) represented by a graphics pipeline;

a view component as part of the API to inform a runtime driver regarding resource management of the GPU; and

the graphics pipeline configurable by the API.

2. The computer implemented system of claim 1 , the resource management includes structural sub-setting of data objects for activities frontloaded from set time to a creation time.

3. A computer implemented system comprising the following computer executable components:

an Application Programming Interface (API) that frontloads activities of a Graphical Processing Unit (GPU) represented by a graphics pipeline, wherein the API further comprises a state object component that creates immutable objects upfront and from set time to creation time, during processing in the GPU, and

the graphics pipeline configurable by the API.

4. A computer implemented system comprising the following computer executable components:

an Application Programming Interface (API) that frontloads activities of a Graphical Processing Unit (GPU) represented by a graphics pipeline, wherein the API further comprises a linking component that supplies a bind by position schema for GPU processing; and

the graphics pipeline configurable by the API.

5. The computer implemented of claim 4 further comprising a signature arrangement that designates a structure definition for register arrays of the GPU.

6. A computer implemented system comprising the following computer executable components:

an Application Programming Interface (API) that frontloads activities of a Graphical Processing Unit (GPU) represented by a graphics pipeline, wherein the API further comprises a hazard detection component that reduces potentially invalid states that occur within a graphics pipeline; and

the graphics pipeline configurable by the API.

7. The computer implemented system of claim 6 , the hazard detection component further comprises a numbering arrangement that increases every time a resource of the GPU is bound as an output.

8. A computer implemented system comprising the following computer executable components:

an Application Programming Interface (API) that frontloads activities of a Graphical Processing Unit (GPU) represented by a graphics pipeline, wherein the API further comprises a layering arrangement that provides device-wide functionality; and

the graphics pipeline configurable by the API.

9. The computer implemented system of claim 8 , the layering arrangement includes a core layer that transforms the API to a Display Driver Interface (DDI) that interacts with the driver.

10. The computer implemented system of claim 9 further comprising a debug layer that is positioned between the core layer and the API, to move validation from run-time to development time and identify application errors.

11. The computer implemented system of claim 9 further comprising handles and pointers for identification of data that the API manages for a driver.

12. A computer implemented method comprising the following computer executable acts:

front loading activities via an API from a bind time to a creation time of a GPU processing; and

designating system resources associated with the GPU processing at the creation time.

13. The computer implemented method of claim 12 further comprising employing a view component to describe memory layout.

14. The computer implemented method of claim 13 further comprising representing an abstraction that informs runtime and driver regarding resource management.

15. The computer implemented method of claim 14 further comprising representing the view as abstraction for binding.

16. The computer implemented method of claim 15 further comprising informing run time of associated driver regarding resource management.

17. The computer implemented method of claim 16 further comprising unbinding an object from graphics pipeline when a reference count reaches zero.

18. The computer implemented method of claim 17 further comprising destroying the object.

19. A computer implemented system comprising the following computer executable components:

means for frontloading activities of a GPU processing from a set time to a bind time; and

means for informing runtime of driver regarding resource management of the GPU processing.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2007
From: TOELLE, MICHAEL A.; PEEPER, CRAIG C.; KLAMIK, BRIAN T.; GLASSENBERG, SAM
To: MICROSOFT CORPORATION
Reel/Frame 018848/0820 →