Shader binding management in ray tracing

US12112428B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12112428-B2
Application numberUS-202318353809-A
CountryUS
Kind codeB2
Filing dateJul 17, 2023
Priority dateApr 5, 2018
Publication dateOct 8, 2024
Grant dateOct 8, 2024

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.

In various examples, shader bindings may be recorded in a shader binding table that includes shader records. Geometry of a 3D scene may be instantiated using object instances, and each may be associated with a respective set of the shader records using a location identifier of the set of shader records in memory. The set of shader records may represent shader bindings for an object instance under various predefined conditions. One or more of these predefined conditions may be implicit in the way the shader records are arranged in memory (e.g., indexed by ray type, by sub-geometry, etc.). For example, a section selector value (e.g., a section index) may be computed to locate and select a shader record based at least in part on a result of a ray tracing query (e.g., what sub-geometry was hit, what ray type was traced, etc.).

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: determining, using a first processing unit, one or more values corresponding to a section of a shader binding table, the shader binding table to include a plurality of records associating a geometry of a scene with individual shaders corresponding to individual records of the plurality of records; computing, using the first processing unit and based at least on the one or more values, a location in memory of a second processing unit, the location corresponding to the section of the shader binding table; and initiating, using the first processing unit and based at least on the location, one or more direct memory accesses (DMAs) to store one or more records of the plurality of records to the section at the location in memory, wherein the second processing unit uses at least one individual shader of the individual shaders to perform one or more operations to render an image based at least on the one or more records. 2. The method of claim 1 , wherein the memory includes graphics processing unit (GPU) memory and the one or more DMAs transfer the one or more records from system memory to the GPU memory. 3. The method of claim 1 , further comprising: buffering, using the first processing unit, one or more portions of the shader binding table using a first memory, and transferring, using the one or more DMAs, the one or more portions of the shader binding table from the first memory to the memory of the second processing unit. 4. The method of claim 1 , further including switching, using the first processing unit, an active shader binding table for rendering the scene from a first shader binding table stored in the memory of the second processing unit to the shader binding table stored in the memory of the second processing unit. 5. The method of claim 1 , further comprising providing, using the first processing unit, one or more pointers to the second processing unit, the one or more pointers corresponding to one or more portions of the shader binding table in the memory of the second processing unit, wherein the second processing unit uses the one or more pointers to perform the one or more operations to render the image. 6. The method of claim 1 , further comprising providing, using the first processing unit providing, an inter-section stride value to the second processing unit, the inter-section stride value defining a distance between the section and a second section of the shader binding table, wherein the second processing unit uses the inter-section stride value to locate the one or more records for performing the one or more operations to render the image. 7. The method of claim 1 , wherein the initiating comprises scheduling, by an application running on the first processing unit, the one or more DMAs. 8. The method of claim 1 , further comprising allocating, using the first processing unit, the memory for the shader binding table, wherein the storing is based at least on the allocating. 9. The method of claim 1 , wherein the one or more records include an identifier of the at least one individual shader and a resource table defining a set of resources associated with the at least individual one shader. 10. A system comprising: a first processing unit to perform operations including: determining one or more values corresponding to a section of a shader binding table, the shader binding table including a plurality of records, individual records of the plurality of records associating a geometry of a scene with individual shaders; computing, based at least on the one or more values, a location in memory of a second processing unit, the location corresponding to the section of the shader binding table; and initiating, based at least on the location, a transfer of one or more records to the section of the shader binding table in the memory, wherein the second processing unit uses at least one shader of the individual shaders to perform one or more operations to render an image based at least on the one or more records. 11. The system of claim 10 , wherein the memory includes graphics processing unit (GPU) memory and the transfer is from system memory to the GPU memory. 12. The system of claim 10 , wherein the operations include buffering one or more portions of the shader binding table using a first memory, and the transfer is from the first memory to the memory of the second processing unit. 13. The system of claim 10 , wherein the operations further include switching an active shader binding table for rendering the scene from a first shader binding table stored in the memory of the second processing unit to the shader binding table stored in the memory of the second processing unit. 14. The system of claim 10 , wherein the operations further include providing, to the second processing unit, one or more pointers to one or more portions of the shader binding table in the memory of the second processing unit, wherein the second processing unit uses the one or more pointers to perform the one or more operations to render the image. 15. The system of claim 10 , wherein the system is comprised in at least one of: a system for performing light transport simulation; or a system for presenting at least one of virtual reality content, mixed reality content, or augmented reality content. 16. At least one processor comprising: one or more circuits to: initiate, based at least on a location in memory of a processing unit, a transfer of one or more records of a plurality of records to a section of a shader binding table in the memory, the location computed based at least on one or more values corresponding to the section of a shader binding table, the shader binding table to include the plurality of records associating a geometry of a scene with individual shaders corresponding to individual records of the plurality of records, wherein the processing unit uses at least one shader of the individual shaders to perform one or more operations to render an image based at least on the one or more records. 17. The at least one processor of claim 16 , wherein the memory includes graphics processing unit (GPU) memory and the transfer is from system memory to the GPU memory. 18. The at least one processor of claim 16 , wherein the one or more circuits are to buffer one or more portions of the shader binding table using a first memory, and the transfer is from the first memory to the memory of the processing unit. 19. The at least one processor of claim 16 , wherein the one or more circuits are further to switch an active shader binding table for rendering the scene from a first shader binding table stored in the memory of the processing unit to the shader binding table stored in the memory of the processing unit. 20. The at least one processor of claim 16 , wherein the processor is comprised in at least one of: a system for performing light transport simulation; or a system for presenting at least one of virtual reality content, mixed reality content, or augmented reality content.

Assignees

Inventors

Classifications

  • G06T15/06Primary

    Ray-tracing · CPC title

  • General purpose rendering architectures · CPC title

  • Interprogram communication · CPC title

  • G06T15/83Primary

    Phong shading · 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 US12112428B2 cover?
In various examples, shader bindings may be recorded in a shader binding table that includes shader records. Geometry of a 3D scene may be instantiated using object instances, and each may be associated with a respective set of the shader records using a location identifier of the set of shader records in memory. The set of shader records may represent shader bindings for an object instance und…
Who is the assignee on this patent?
Nvidia Corp
What technology area does this patent fall under?
Primary CPC classification G06T15/06. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 08 2024 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 6 related publications on this page (citations in our corpus or others sharing the same primary CPC).