Method for forward progress and programmable timeouts of tree traversal mechanisms in hardware
US-2020051318-A1 · Feb 13, 2020 · US
US12014456B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12014456-B2 |
| Application number | US-202217814387-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jul 22, 2022 |
| Priority date | Jul 29, 2021 |
| Publication date | Jun 18, 2024 |
| Grant date | Jun 18, 2024 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A method of operating a graphics processor when rendering a frame representing a view of a scene using a ray tracing process in which part of the processing for a ray tracing operation is offloaded to a texture mapper unit of the graphics processor. Thus, when the graphics processor's execution unit is executing a program to perform a ray tracing operation the execution unit is able to message the texture mapper unit to perform one or more processing operations for the ray tracing operation. This operation can be triggered by including an appropriate instruction to message the texture mapper unit within the ray tracing program.
Opening claim text (preview).
The invention claimed is: 1. A method of operating a graphics processor when rendering a frame representing a view of a scene using a ray tracing process, the graphics processor comprising: a programmable execution unit operable to execute programs to perform graphics processing operations; and a texture mapper unit operable to perform graphics texturing operations in response to requests for graphics texturing operations from the programmable execution unit; the method comprising: when the programmable execution unit is executing a program to perform a ray tracing operation, that uses a ray tracing acceleration data structure indicative of the distribution of geometry for a scene to be rendered to determine geometry for a scene to be rendered that may be intersected by a ray being used for the ray tracing operation, wherein the ray tracing acceleration data structure comprises a plurality of nodes, each node associated with a respective one or more volumes within the scene, the ray tracing acceleration data structure comprising a set of end nodes representing respective subsets of primitives defined for the scene that occupies the volume that the end node corresponds to, and wherein the ray tracing operation for a ray comprises a traversal operation that comprises performing intersection testing to test the ray for intersection with respective volume(s) associated with the nodes of the ray tracing acceleration data structure, in response to the traversal operation requiring a ray to be tested for intersection with a given node of the ray tracing acceleration data structure: the programmable execution unit messaging the texture mapper unit as part of the ray tracing operation that uses the ray tracing acceleration data structure to cause the texture mapper unit to load data for the intersection testing for the given node of the ray tracing acceleration data structure; loaded data for the intersection testing being provided to the programmable execution unit; and the programmable execution unit executing one or more program instructions to perform the intersection testing using the loaded data for the intersection testing. 2. The method of claim 1 , wherein the data for the intersection testing for the given node of the ray tracing acceleration data structure is loaded to the texture mapper unit via a cache system of the texture mapper unit. 3. The method of any claim 1 , wherein the programmable execution unit is configured to send a message to the texture mapper unit to perform one or more processing operations, the message indicating one or more of: a descriptor for the ray tracing acceleration data structure that is to be used; the origin for the ray that is to be tested; the direction of the ray; the range that the ray is to traverse; and a node in respect of which the processing operations are to be performed. 4. The method of claim 1 , wherein the ray tracing process further comprises, after using the ray tracing acceleration data structure to determine which nodes of the ray tracing acceleration data structure represent geometry that may be intersected by a ray, for any nodes that are determined to contain geometry that may be intersected by a ray, the programmable execution unit executing a program to determine which if any geometry represented by the node is intersected by the ray and for any geometry that is intersected by the ray performing further processing operations to determine the appearance of the sampling position for which the ray was cast. 5. The method of claim 4 , wherein the further processing operations to determine the appearance of the sampling position for which the ray was cast comprise one or more texturing operations that are performed using the texture mapper unit. 6. A method of compiling a shader program to be executed by a programmable execution unit of a graphics processor that is operable to execute graphics processing programs to perform graphics processing operations; the method comprising: including in a shader program, to be executed by a programmable execution unit of a graphics processor when rendering a frame that represents a view of a scene using a ray tracing process, a set of one or more instructions that, when executed by the programmable execution unit, will cause the programmable execution unit to perform a ray tracing operation that uses a ray tracing acceleration data structure indicative of the distribution of geometry for a scene to be rendered, to determine geometry for a scene to be rendered that may be intersected by a ray being used for the ray tracing operation that uses the ray tracing acceleration data structure, wherein the ray tracing acceleration data structure comprises a plurality of nodes, each node associated with a respective one or more volumes within the scene, the ray tracing acceleration data structure comprising a set of end nodes representing respective subsets of primitives defined for the scene that occupies the volume that the end node corresponds to, and wherein the ray tracing operation for a ray comprises a traversal operation that comprises performing intersection testing to test the ray for intersection with respective volume(s) associated with the nodes of the ray tracing acceleration data structure; wherein the set of one or more instructions includes an instruction that, when executed by the programmable execution unit, will cause the programmable execution unit to message a texture mapper unit of the graphics processor to cause the texture mapper unit to load data for the intersection testing for a node of the ray tracing acceleration data structure that the traversal operation requires a ray to be tested for intersection with; and wherein the set of one or more instructions includes an instruction that, when executed by the programmable execution unit, will cause the programmable execution unit to, when loaded data for the intersection testing is provided to the programmable execution unit, perform the intersection testing using the loaded data for the intersection testing. 7. A graphics processor operable to render a frame representing a view of a scene using a ray tracing process, the graphics processor comprising: a programmable execution unit operable to execute graphics processing programs to perform graphics processing operations; and a texture mapper unit operable to perform graphics texturing operations in response to requests for graphics texturing operations from the programmable execution unit; wherein: the programmable execution unit is operable and configured to, when executing a program to perform a ray tracing operation that uses a ray tracing acceleration data structure indicative of the distribution of geometry for a scene to be rendered to determine geometry for a scene to be rendered that may be intersected by a ray being used for the ray tracing operation, wherein the ray tracing acceleration data structure comprises a plurality of nodes, each node associated with a respective one or more volumes within the scene, the ray tracing acceleration data structure comprising a set of end nodes representing respective subsets of primitives defined for the scene that occupies the volume that the end node corresponds to, and wherein the ray tracing operation for a ray comprises a traversal operation that comprises performing intersection testing to test the ray for intersection with respective volume(s) associated with the nodes of the ray tracing acceleration data structure, in response to the traversal operation requiring a ray to be tested for intersection with a given node of the ray tracing acceleration data structure; message the texture mapper unit as part of the ray tracing operation that uses the ray tracing acceleration data structure to cause the texture mapper unit to lo
Collision detection, intersection · CPC title
Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes · CPC title
Texture mapping · CPC title
General purpose rendering architectures · CPC title
Processor architectures; Processor configuration, e.g. pipelining · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.