Bindless texture and image API

US9349154B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9349154-B2
Application numberUS-201113077787-A
CountryUS
Kind codeB2
Filing dateMar 31, 2011
Priority dateApr 5, 2010
Publication dateMay 24, 2016
Grant dateMay 24, 2016

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

One embodiment of the present invention sets for a method for accessing data objects stored in a memory that is accessible by a graphics processing unit (GPU). The method comprises the steps of creating a data object in the memory based on a command received from an application program, wherein the data object is organized non-linearly in the memory, transmitting a first handle associated with the data object to the application program such that data associated with different draw commands can be accessed by the GPU, wherein the first handle includes an address related to the location of the data object in the memory, receiving a first draw command as well as the first handle from the application program, and transmitting the first draw command and the first handle to the GPU for processing.

First claim

Opening claim text (preview).

We claim: 1. A computer-implemented method for accessing data objects stored in a memory that is accessible by a graphics processing unit (GPU), the method comprising: creating a data object in the memory based on a command received from an application program, wherein the data object is organized non-linearly in the memory; transmitting a first handle associated with the data object to the application program such that data associated with different draw commands can be accessed by the GPU, wherein the first handle includes an address related to the location of the data object in the memory; receiving a request from the application program to make the data object resident to allow the GPU to access the data object; storing the data object in a first list of data objects associated with a context of the application program and in a second list of data objects that have been locked since a last command buffer submission; receiving a first draw command as well as the first handle from the application program; and transmitting the first draw command, the first handle, and at least one of the first list of data objects and the second list of data objects to the GPU for processing; wherein the GPU is configured to retrieve a second data object from the memory based on a second handle that is referenced by the first handle. 2. The method of claim 1 , wherein the GPU is configured to retrieve the data object from the memory based on the first handle and process the first draw command using data included in the data object. 3. The method of claim 1 , wherein the data object comprises a texture or an image. 4. The method of claim 1 , wherein the GPU is configured to use only the first handle to access the data object in the memory. 5. The method of claim 1 , wherein the first handle is configured to retrieve a bound data object. 6. The method of claim 1 , wherein a graphics shader engine that resides within the GPU is configured to retrieve the data object from the memory via an assembly code instruction that references the first handle or via a high-level shader language instruction that references the first handle. 7. The method of claim 1 , wherein an additional command transmitted by the application program guarantees the GPU access to the data object in memory. 8. The method of claim 1 , wherein an additional command transmitted by the application program indicates that no guarantee of GPU access to the data object is needed for a second draw command. 9. The method of claim 1 , wherein the application program is configured to transmit one or more additional handles associated with one or more additional data objects with the first draw command such that the one or more data objects within the memory can be accessed via a single command. 10. A computer system, comprising: a central processing unit (CPU), a graphics processing unit (GPU), and a memory storing a graphics driver configured to: create a data object in the memory based on a command received from an application program, wherein the data object is organized non-linearly in the memory; transmit a first handle associated with the data object to the application program such that data associated with different draw commands can be accessed by the GPU, wherein the first handle includes an address related to the location of the data object in the memory; receive a request from the application program to make the data object resident to allow the GPU to access the data object; store the data object in a first list of data objects associated with a context of the application program and in a second list of data objects that have been locked since a last command buffer submission; receive a first draw command as well as the first handle from the application program; and transmit the first draw command, the first handle, and at least one of the first list of data objects and the second list of data objects to the GPU for processing; wherein the GPU is configured to retrieve a second data object from the memory based on a second handle that is referenced by the first handle. 11. A non-transitory computer-readable storage medium storing instructions that, when executed by a processor, enable the processor to access data objects stored in a memory that is accessible by a graphics processing unit (GPU), by performing the steps of: creating a data object in the memory based on a command received from an application program, wherein the data object is organized non-linearly in the memory; transmitting a first handle associated with the data object to the application program such that data associated with different draw commands can be accessed by the GPU, wherein the first handle includes an address related to the location of the data object in the memory; receiving a request from the application program to make the data object resident to allow the GPU to access the data object; storing the data object in a first list of data objects associated with a context of the application program and in a second list of data objects that have been locked since a last command buffer submission; receiving a first draw command as well as the first handle from the application program; and transmitting the first draw command, the first handle, and at least one of the first list of data objects and the second list of data objects to the GPU for processing; wherein the GPU is configured to retrieve a second data object from the memory based on a second handle that is referenced by the first handle. 12. The computer-readable storage medium of claim 11 , wherein the GPU is configured to retrieve the data object from the memory based on the first handle and process the first draw command using data included in the data object. 13. The computer-readable storage medium of claim 11 , wherein the data object comprises a texture or an image. 14. The computer-readable storage medium of claim 11 , wherein the GPU is configured to use only the first handle to access the data object in the memory. 15. The computer-readable storage medium of claim 11 , wherein the first handle is configured to retrieve a bound data object. 16. The computer-readable storage medium of claim 11 , wherein a graphics shader engine that resides within the GPU is configured to retrieve the data object from the memory via an assembly code instruction that references the first handle or via a high-level shader language instruction that references the first handle. 17. The computer-readable storage medium of claim 11 , wherein an additional command transmitted by the application program guarantees the GPU access to the data object in memory. 18. The computer-readable storage medium of claim 11 , wherein an additional command transmitted by the application program indicates that no guarantee of GPU access to the data object is needed for a second draw command. 19. The computer-readable storage medium of claim 11 , wherein the application program is configured to transmit one or more additional handles associated with one or more additional data objects with the first draw command such that the one or more data objects within the memory can be accessed via a single command. 20. The method of claim 1 , wherein the first handle comprises a CPU address within a CPU address space. 21. The computer-readable storage medium of claim 11 , further comprising, in response to receiving the request, locking the data object in the memory. 22. The computer-readable storage medium of cl

Assignees

Inventors

Classifications

  • G06T1/20Primary

    Processor architectures; Processor configuration, e.g. pipelining · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9349154B2 cover?
One embodiment of the present invention sets for a method for accessing data objects stored in a memory that is accessible by a graphics processing unit (GPU). The method comprises the steps of creating a data object in the memory based on a command received from an application program, wherein the data object is organized non-linearly in the memory, transmitting a first handle associated with …
Who is the assignee on this patent?
Bolz Jeffrey A, Brown Patrick R, Nvidia Corp
What technology area does this patent fall under?
Primary CPC classification G06T1/20. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 24 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).