Method for forward progress and programmable timeouts of tree traversal mechanisms in hardware
US-2020051318-A1 · Feb 13, 2020 · US
US12579727B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12579727-B2 |
| Application number | US-202418414841-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jan 17, 2024 |
| Priority date | Mar 15, 2020 |
| Publication date | Mar 17, 2026 |
| Grant date | Mar 17, 2026 |
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.
Apparatus and method for asynchronous ray tracing. For example, one embodiment of a processor comprises: a bounding volume hierarchy (BVH) generator to construct a BVH comprising a plurality of hierarchically arranged nodes including a root node, a plurality of internal nodes, and a plurality of leaf nodes comprising primitives, wherein each internal node comprises a child node to either the root node or another internal node and each leaf node comprises a child node to an internal node; a first storage bank to be arranged as a first plurality of entries; a second storage bank to be arranged as a second plurality of entries, wherein each entry of the first plurality of entries and the second plurality of entries is to store a ray to be traversed through the BVH; an allocator circuit to distribute an incoming ray to either the first storage bank or the second storage bank based on a relative numbers of rays currently stored in the first and second storage banks; and traversal circuitry to alternate between selecting a next ray from the first storage bank and the second storage bank, the traversal circuitry to traverse the next ray through the BVH by reading a next BVH node from a top of a BVH node stack and determining whether the next ray intersects the next BVH node.
Opening claim text (preview).
What is claimed is: 1 . An apparatus comprising: a storage bank to store entries of a stack, the entries corresponding to one or more nodes of a bounding volume hierarchy (BVH); traversal circuitry to perform ray traversal and/or intersection operations on one or more rays using the entries of the stack; and wherein performing the ray traversal and/or intersection operations comprises processing the entries of the stack, and wherein processing a first stack entry of the stack comprises: reading the first stack entry for a node from the stack and updating one or more control bits for the first stack entry; and upon determining that a ray intersects the node, removing the first stack entry from the stack and inserting a set of stack entries into the stack, the set of stack entries corresponding to one or more child nodes of the node in an immediate next level of the node in the BVH and being sorted based on intersection distances of the one or more child nodes to the ray. 2 . The apparatus of claim 1 , wherein updating the one or more control bits for the first stack entry causes the first stack entry to be evicted from the stack. 3 . The apparatus of claim 1 , wherein inserting the set of stack entries causes removing, from the stack to a memory, stack entries for nodes at a higher level of the BVH. 4 . The apparatus of claim 3 , wherein the set of stack entries are loaded to the stack when the nodes at the higher level of the BVH are to be processed by the traversal circuitry. 5 . The apparatus of claim 1 , wherein removing a last stack entry of the set of stack entries causes retrieval of a root node of a second BVH. 6 . The apparatus of claim 1 , wherein the first stack entry indicates whether the node is an internal node or leaf node of the BVH. 7 . The apparatus of claim 1 , wherein the stack is a first-in and first out stack. 8 . The apparatus of claim 1 , wherein a tracking data structure is to track nodes that are currently traversed at each level of the BVH. 9 . A method comprising: storing entries of a stack in a storage bank, the entries corresponding to one or more nodes of a bounding volume hierarchy (BVH); performing, by traversal circuitry, ray traversal and/or intersection operations on one or more rays using the entries of the stack; and processing the entries of the stack, wherein processing a first stack entry of the stack comprises: reading the first stack entry for a node from the stack and updating one or more control bits for the first stack entry; and upon determining that a ray intersects the node, removing the first stack entry from the stack and inserting a set of stack entries into the stack, the set of stack entries corresponding to one or more child nodes of the node in an immediate next level of the node in the BVH and being sorted based on intersection distances of the one or more child nodes to the ray. 10 . The method of claim 9 , wherein updating the one or more control bits for the first stack entry causes the first stack entry to be evicted from the stack. 11 . The method of claim 9 , wherein inserting the set of stack entries causes removing, from the stack to a memory, stack entries for nodes at a higher level of the BVH. 12 . The method of claim 11 , wherein the set of stack entries are loaded to the stack when the nodes at the higher level of the BVH are to be processed by the traversal circuitry. 13 . The method of claim 9 , wherein removing a last stack entry of the set of stack entries causes retrieval of a root node of a second BVH. 14 . The method of claim 9 , wherein the first stack entry indicates whether the node is an internal node or leaf node of the BVH. 15 . The method of claim 9 , wherein the stack is a first-in and first out stack. 16 . A non-transitory machine-readable medium having program code stored thereon which, when executed by a machine, causes the machine to perform: storing entries of a stack in a storage bank, the entries corresponding to one or more nodes of a bounding volume hierarchy (BVH); performing, by traversal circuitry, ray traversal and/or intersection operations on one or more rays using the entries of the stack; and processing the entries of the stack, wherein processing a first stack entry of the stack comprises: reading the first stack entry for a node from the stack and updating one or more control bits for the first stack entry; and upon determining that a ray intersects the node, removing the first stack entry from the stack and inserting a set of stack entries into the stack, the set of stack entries corresponding to one or more child nodes of the node in an immediate next level of the node in the BVH and being sorted based on intersection distances of the one or more child nodes to the ray. 17 . The non-transitory machine-readable medium of claim 16 , wherein updating the one or more control bits for the first stack entry causes the first stack entry to be evicted from the stack. 18 . The non-transitory machine-readable medium of claim 16 , wherein the first stack entry indicates whether the node is an internal node or leaf node of the BVH.
Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title
Single storage device · CPC title
Ray-tracing · CPC title
Improving or facilitating administration, e.g. storage management · CPC title
involving image processing hardware · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.