In a ray tracer, to prevent any long-running query from hanging the graphics processing unit, a traversal coprocessor provides a preemption mechanism that will allow rays to stop processing or time out early. The example non-limiting implementations described herein provide such a preemption mechanism, including a forward progress guarantee, and additional programmable timeout options that can be time or cycle based. Those programmable options provide a means for quality of service timing guarantees for applications such as virtual reality (VR) that have strict timing requirements.
Legal claims defining the scope of protection, as filed with the USPTO.
2. The ray tracing device of claim 1, wherein the plurality of queries are received from a processor and the traversal hardware is configured to return intersection results including bounding volumes or the geometric primitives determined to be intersected by one or more of the rays.
3. The ray tracing device of claim 1, further comprising a plurality of counters associated with the plurality of rays, each of the counters is configured to count a number of traversal steps performed for the respective ray.
4. The ray tracing device of claim 3, wherein a ray is determined to exceed the threshold programmed for the ray based on the number of traversal steps counted by the counter exceeding the threshold programmed for the ray.
5. The ray tracing device of claim 1, wherein the programmable timeout circuit is work-based.
6. The ray tracing device of claim 1, wherein the programmable timeout circuit is cycle-based.
7. The ray tracing device of claim 1, wherein the programmable timeout circuit is time-based.
8. The ray tracing device of claim 1, wherein the programmable timeout circuit is epoch-based.
9. The ray tracing device of claim 1, wherein monitoring how much the traversal hardware is used comprises counting a number of leaf nodes traversals.
10. The ray tracing device of claim 1, wherein the traversal hardware is configured to traverse the acceleration data structure to determine bounding volumes or geometric primitives that the plurality of rays intersect in parallel.
11. The ray tracing device of claim 1, wherein a threshold programmed for at least one of the rays is different from a threshold programmed for one or more other rays.
12. The ray tracing device of claim 1, wherein the threshold programmed for the respective ray is set to a value that is lower than a second threshold programmed for a completed query based on a number of traversal steps performed in the completed query being less than the second threshold.
13. The ray tracing device of claim 1, wherein the threshold programmed for the respective ray is set based on a number of traversal steps performed in a completed query.
14. The ray tracing device of claim 1, wherein monitoring how much the traversal hardware is used comprises separately counting different kinds of traversals of the acceleration data structure by the ray.
16. The method of claim 15, wherein the plurality of queries are received from a processor and intersection results including bounding volumes or the geometric primitives determined to be intersected by one or more of the rays are returned to the processor.
17. The method of claim 15, further comprising counting, using a plurality of counters, a number of traversal steps performed by each of the plurality of rays.
18. The method of claim 17, wherein a ray is determined to exceed the threshold programmed for the ray based on the number of traversal steps counted by the counter exceeding the threshold programmed for the ray.
19. The method of claim 15, wherein the amount the traversal co-processor is used is work-based.
20. The method of claim 15, wherein the amount the traversal co-processor is used is cycle-based.
21. The method of claim 15, wherein the amount the traversal co-processor is used is time-based.
22. The method of claim 15, wherein the amount the traversal co-processor is used is epoch-based.
23. The method of claim 15, wherein monitoring how much the traversal co-processor is used comprises counting a number of leaf nodes traversals.
24. The method of claim 15, wherein a threshold programmed for at least one of the rays is different from a threshold programmed for one or more other rays.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
August 17, 2022
March 12, 2024
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.