Bindless memory access in direct 3D

US9251551B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9251551-B2
Application numberUS-201113078848-A
CountryUS
Kind codeB2
Filing dateApr 1, 2011
Priority dateApr 5, 2010
Publication dateFeb 2, 2016
Grant dateFeb 2, 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, transmitting a first handle associated with the data object to the application program such that data associated with different graphics commands can be accessed by the GPU, wherein the first handle includes a memory address that provides access to only a particular portion of the data object, receiving a first graphics command as well as the first handle from the application program, wherein the first graphics command includes a draw command or a compute grid launch, and transmitting the first graphics 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; transmitting a first handle associated with the data object to the application program such that data associated with different graphics commands can be accessed by the GPU, wherein the first handle includes a memory address that provides access to only a particular portion of the data object; receiving a first graphics command as well as the first handle from the application program, wherein the first graphics command includes a draw command or a compute grid launch; transmitting the first graphics command and the first handle to the GPU for processing; and configuring a shader program associated with the GPU to perform a bindless memory access directed to the data object via the first handle based on the first graphics command; wherein the shader program is configured to intermix bound memory accesses directed to the data object with the bindless memory access. 2. The method of claim 1 , wherein the GPU is configured to, prior to processing the first draw command, store the first handle in a fixed portion of the memory to facilitate context switching between the first handle and one or more different handles also stored in the fixed portion of the memory. 3. The method of claim 1 , wherein the GPU is configured to retrieve the particular portion of the data object from the memory based on the first handle and process the first graphics command using data included in the particular portion of the data object. 4. The method of claim 1 , wherein the data object is a texture, and the particular portion of the data object comprises a level of detail included in the texture. 5. The method of claim 1 , wherein the data object is a texture, and the particular portion of the data object comprises a subset of an image included in the texture. 6. The method of claim 1 , wherein the GPU is configured to issue an error report that references the first handle as well as an error code that specifies a reason that the first graphics command has failed. 7. The method of claim 1 , further comprising receiving an additional command transmitted by the application program to guarantee the GPU access to the particular portion of the data object in memory. 8. The method of claim 1 , wherein the GPU is configured to retrieve a particular portion of a second data object from the memory based on a second handle that is referenced by the first handle. 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 portions of data objects with the first graphics command such that the one or more additional portions of data objects within the memory can be accessed via a single command. 10. The method of claim 1 , wherein the GPU is configured to use only the first handle to access the particular portion of the data object in the memory. 11. The method of claim 1 , wherein the first handle comprises a CPU address within a CPU address space. 12. The method of claim 1 , where transmitting the first handle to the GPU for processing comprises: transmitting the first handle to a data buffer configured to store handles; and configuring the shader program to read the first handle from the data buffer. 13. The method of claim 1 , further comprising, receiving a command from the shader program to pin the data object to a context. 14. The method of claim 13 , further comprising, receiving a command from the shader program to unpin the data object from the context. 15. 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; transmitting a first handle associated with the data object to the application program such that data associated with different graphics commands can be accessed by the GPU, wherein the first handle includes a memory address that provides access to only a particular portion of the data object; receiving a first graphics command as well as the first handle from the application program, wherein the first graphics command includes a draw command or a compute grid launch; transmitting the first graphics command and the first handle to the GPU for processing; and configuring a shader program associated with the GPU to perform a bindless memory access directed to the data object via the first handle based on the first graphics command; wherein the shader program is configured to intermix bound memory accesses directed to the data object with the bindless memory access. 16. The computer-readable storage medium of claim 15 , wherein the GPU is configured to, prior to processing the first graphics command, store the first handle in a fixed portion of the memory to facilitate context switching between the first handle and one or more different handles also stored in the fixed portion of the memory. 17. The computer-readable storage medium of claim 15 , wherein the GPU is configured to retrieve the particular portion of the data object from the memory based on the first handle and process the first graphics command using data included in the particular portion of the data object. 18. The computer-readable storage medium of claim 15 , wherein the data object is a texture, and the particular portion of the data object comprises a level of detail included in the texture. 19. The computer-readable storage medium of claim 15 , wherein the data object is a texture, and the particular portion of the data object comprises a subset of an image included in the texture. 20. The computer-readable storage medium of claim 15 , wherein the GPU is configured to issue an error report that references the first handle as well as an error code that specifies a reason that the first graphics command has failed. 21. The computer-readable storage medium of claim 15 , further comprising receiving an additional command transmitted by the application program to guarantee the GPU access to the particular portion of the data object in memory. 22. The computer-readable storage medium of claim 15 , wherein the GPU is configured to retrieve a particular portion of a second data object from the memory based on a second handle that is referenced by the first handle. 23. The computer-readable storage medium of claim 15 , wherein the application program is configured to transmit one or more additional handles associated with one or more additional portions of data objects with the first graphics command such that an the one or more additional portions of data objects within the memory can be accessed via a single command. 24. 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; transmit a first handle associated with the data object to the application program such that data associated with different graphics commands can be accessed by the GPU, wherein the first han

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 US9251551B2 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, transmitting a first handle associated with the data object to the application program such that data associa…
Who is the assignee on this patent?
Hall Jesse David, Bolz Jeffrey A, 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 Feb 02 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).