Apparatus and method for asynchronous ray tracing
Abstract
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.
Claims
exact text as granted — not AI-modified1 - 36 . (canceled)
37 . An apparatus comprising:
a bounding volume hierarchy (BVH) generator to construct a BVH comprising a plurality of hierarchically arranged nodes including a plurality of internal nodes and a plurality of non-internal nodes, wherein each internal node comprises a root node or a child node to either the root node or another internal node; a first storage bank to store a first plurality of the internal nodes and a first plurality of the non-internal nodes; a second storage bank to store a second plurality of the internal nodes and a second plurality of the non-internal nodes; non-internal node priority selection circuitry to request, in parallel, a first non-internal node from the first storage bank and a second non-internal node from the second storage bank, and to prioritize one of the first and the second non-internal node; internal node priority selection circuitry to request, in parallel, a first internal node from the first storage bank and a second internal node from the second storage bank, and to prioritize one of the first and the second internal nodes; ray tracing cache to store the prioritized non-internal node and the prioritized internal node; and traversal circuitry to perform ray traversal and/or intersection operations using the prioritized internal and non-internal nodes in the ray tracing cache.
38 . The apparatus of claim 37 , wherein non-internal nodes comprise nodes that are not internal nodes.
39 . The apparatus of claim 38 , wherein the prioritized non-internal node and the prioritized internal node are from different storage banks.
40 . The apparatus of claim 39 , wherein when the first non-internal node is prioritized over the second non-internal node, then the second internal node is prioritized over the first internal node.
41 . The apparatus of claim 39 , wherein when the second non-internal node is prioritized over the first non-internal node, then the first internal node is prioritized over the second internal node.
42 . The apparatus of claim 37 , wherein each of the hierarchically arranged nodes of the BVH comprises a primitive.
43 . The apparatus of claim 37 , a data present (DP) bit of each entry in the first and second storage banks associated with the requested first and second internal and non-internal nodes are reset responsive to the requests.
44 . A method comprising:
generating a bounding volume hierarchy (BVH) comprising a plurality of hierarchically arranged nodes including a plurality of internal nodes and a plurality of non-internal nodes, wherein each internal node comprises a root node or a child node to either the root node or another internal node; storing a first plurality of the internal nodes and a first plurality of the non-internal nodes in a first storage bank; storing a second plurality of the internal nodes and a second plurality of the non-internal nodes in a second storage bank; requesting, in parallel, a first non-internal node from the first storage bank and a second non-internal node from the second storage bank, and prioritizing one of the first and the second non-internal node; requesting, in parallel, a first internal node from the first storage bank and a second internal node from the second storage bank, and prioritizing one of the first and the second internal nodes; storing the prioritized non-internal node and the prioritized internal node; and performing ray traversal and/or intersection operations using the prioritized internal and non-internal nodes in the ray tracing cache.
45 . The method of claim 44 , wherein non-internal nodes comprise nodes that are not internal nodes.
46 . The method of claim 45 , wherein the prioritized non-internal node and the prioritized internal node are from different storage banks.
47 . The method of claim 46 , wherein when the first non-internal node is prioritized over the second non-internal node, then the second internal node is prioritized over the first internal node.
48 . The method of claim 46 , wherein when the second non-internal node is prioritized over the first non-internal node, then the first internal node is prioritized over the second internal node.
49 . The method of claim 44 , wherein each of the hierarchically arranged nodes of the BVH comprises a primitive.
50 . The method of claim 44 , further comprises resetting a data present (DP) bit of each entry in the first and second storage banks associated with the requested first and second internal and non-internal nodes.
51 . A non-transitory machine-readable medium having program code stored thereon which, when executed by a machine, causes the machine to perform operations of:
generating a bounding volume hierarchy (BVH) comprising a plurality of hierarchically arranged nodes including a plurality of internal nodes and a plurality of non-internal nodes, wherein each internal node comprises a root node or a child node to either the root node or another internal node; storing a first plurality of the internal nodes and a first plurality of the non-internal nodes in a first storage bank; storing a second plurality of the internal nodes and a second plurality of the non-internal nodes in a second storage bank; requesting, in parallel, a first non-internal node from the first storage bank and a second non-internal node from the second storage bank, and prioritizing one of the first and the second non-internal node; requesting, in parallel, a first internal node from the first storage bank and a second internal node from the second storage bank, and prioritizing one of the first and the second internal nodes; storing the prioritized non-internal node and the prioritized internal node; and performing ray traversal and/or intersection operations using the prioritized internal and non-internal nodes in the ray tracing cache.
52 . The machine-readable medium of claim 51 , wherein non-internal nodes comprise nodes that are not internal nodes.
53 . The machine-readable medium of claim 52 , wherein the prioritized non-internal node and the prioritized internal node are from different storage banks.
54 . The machine-readable medium of claim 53 , wherein when the first non-internal node is prioritized over the second non-internal node, then the second internal node is prioritized over the first internal node.
55 . The machine-readable medium of claim 53 , wherein when the second non-internal node is prioritized over the first non-internal node, then the first internal node is prioritized over the second internal node.
56 . The machine-readable medium of claim 51 , wherein each of the hierarchically arranged nodes of the BVH comprises a primitive.
57 . The machine-readable medium of claim 51 , wherein the operations further comprise resetting a data present (DP) bit of each entry in the first and second storage banks associated with the requested first and second internal and non-internal nodes.Join the waitlist — get patent alerts
Track US2022130097A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.