Ray tracing graphics processing systems

US12014456B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12014456-B2
Application numberUS-202217814387-A
CountryUS
Kind codeB2
Filing dateJul 22, 2022
Priority dateJul 29, 2021
Publication dateJun 18, 2024
Grant dateJun 18, 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.

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.

First claim

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

Assignees

Inventors

Classifications

  • 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

  • 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 US12014456B2 cover?
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 …
Who is the assignee on this patent?
Advanced Risc Mach Ltd
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 Jun 18 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 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).