Dynamic rendering for foveated rendering
US-2020098165-A1 · Mar 26, 2020 · US
US12118641B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-12118641-B2 |
| Application number | US-202117482198-A |
| Country | US |
| Kind code | B2 |
| Filing date | Sep 22, 2021 |
| Priority date | Feb 3, 2020 |
| Publication date | Oct 15, 2024 |
| Grant date | Oct 15, 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 for graphics processing. The method including rendering graphics for an application using a plurality of graphics processing units (GPUs). The method including using the plurality of GPUs in collaboration to render an image frame including a plurality of pieces of geometry. The method including during a pre-pass phase of rendering, generating information at the GPUs regarding the plurality of pieces of geometry and their relation to a plurality of screen regions. The method including assigning the plurality of screen regions to the plurality of GPUs based on the information for purposes of rendering the plurality of pieces of geometry in a subsequent phase of rendering.
Opening claim text (preview).
What is claimed is: 1. A method for graphics processing, comprising: rendering graphics for an application using a plurality of graphics processing units (GPUs); using the plurality of GPUs in collaboration to render an image frame including a plurality of pieces of geometry; using a previous assignment of the plurality of GPUs for rendering a previous image frame for initially assigning responsibility for the rendering of the plurality of pieces of geometry between the plurality of GPUs based on a plurality of screen regions, each GPU having a corresponding division of the responsibility such that a corresponding GPU is assigned to a first corresponding set of screen regions including one or more screen regions; during a pre-pass phase of rendering that occurs before a geometry pass phase of rendering, generating information at the plurality of GPUs regarding relations of the plurality of pieces of geometry to the plurality of screen regions based on the initially assigning responsibility for the rendering of the plurality of pieces of geometry, wherein the pre-pass phase of rendering and the geometry pass phase of rendering are performed for the rendering of the plurality of pieces of geometry in a frame period to generate the image frame; determining a plurality of computing costs for performing the rendering of the plurality of pieces of geometry of the image frame during the geometry pass phase; reassigning in the frame period the plurality of screen regions to the plurality of GPUs before the geometry pass phase of rendering based on the information and the plurality of computing costs such that the corresponding GPU is assigned to a second corresponding set of screen regions including one or more screen regions for purposes of performing the geometry pass phase of rendering for the plurality of pieces of geometry; and performing at each of the plurality of GPUs the geometry pass phase of rendering on the plurality of pieces of geometry based on the information, wherein the reassigning the plurality of screen regions to the plurality of GPUs is performed for load balancing across the plurality of GPUs when rendering of the plurality of pieces of geometry, and wherein the rendering includes traversing a rendering command buffer a plurality of times, such that one or more screen regions having a higher cost are rendered during a first traversal, and remaining screen regions are rendered during a subsequent traversal. 2. The method of claim 1 , further comprising: wherein the pre-pass phase of rendering is a Z pre-pass phase of rendering, wherein the subsequent phase of rendering is a geometry pass phase of rendering, determining a plurality of costs for rendering the plurality of pieces of geometry during the geometry pass; and considering the plurality of costs when assigning the plurality of screen regions to the plurality of GPUs. 3. The method of claim 1 , wherein the information includes an approximate area that a corresponding piece of geometry overlaps a corresponding screen region. 4. The method of claim 1 , wherein the information includes an accurate or approximate area that primitives of a piece of geometry occupies in a corresponding region, or wherein the information includes the number of pixels shaded per screen region, or wherein the information includes a vertex count per screen region. 5. The method of claim 1 , wherein corresponding information may be generated or not generated depending on one or more properties of a corresponding piece of geometry. 6. The method of claim 1 , wherein the information is generated by one or more shaders, wherein the one or more shaders use at least one dedicated instruction to accelerate generation of the information. 7. The method of claim 1 , wherein the information is generated by one or more shaders, wherein the one or more shaders do not perform allocations of a position or parameter cache. 8. The method of claim 1 , wherein at least one of the plurality of GPUs is assigned to a screen region prior to commencement of or during the subsequent phase of rendering. 9. The method of claim 1 , wherein a screen region initially assigned to a first GPU is reassigned to a second GPU during the subsequent phase of rendering. 10. The method of claim 1 , wherein a screen region is assigned to more than one of the plurality of GPUs. 11. The method of claim 1 , wherein a rendering order of the plurality of pieces of geometry does not match an order of corresponding draw calls in a rendering command buffer. 12. The method of claim 1 , wherein a rendering command buffer is shared between the plurality of GPUs as a common rendering command buffer, wherein the format of the common rendering command buffer allows a command to be executed only by a subset of the plurality of GPUs. 13. The method of claim 1 , wherein the information allows relaxation of rendering phase dependencies, resulting in a first GPU proceeding to the subsequent phase of rendering while a second GPU is still processing the pre-pass phase of rendering. 14. The method of claim 1 , wherein a scan converter generates the information. 15. The method of claim 1 , wherein the information generated while rendering the image frame is used to assign the plurality of screen regions to the plurality of GPUs in a subsequent image frame. 16. The method of claim 1 , wherein the plurality of pieces of geometry is reassigned for the subsequent phase of rendering such that successive pieces of geometry are processed by different GPUs. 17. A non-transitory computer-readable medium storing a computer program for implementing a graphics pipeline, the computer-readable medium comprising: program instructions for rendering graphics for an application using a plurality of graphics processing units (GPUs); program instructions for using the plurality of GPUs in collaboration to render an image frame including a plurality of pieces of geometry; program instructions for using a previous assignment of the plurality of GPUs for rendering a previous image frame for initially assigning responsibility for the rendering of the plurality of pieces of geometry between the plurality of GPUs based on a plurality of screen regions, each GPU having a corresponding division of the responsibility such that a corresponding GPU is assigned to a first corresponding set of screen regions including one or more screen regions; program instructions for during a pre-pass phase of rendering that occurs before a geometry pass phase of rendering, generating information at the plurality of GPUs regarding relations of the plurality of pieces of geometry to the plurality of screen regions based on the initially assigning responsibility for the rendering of the plurality of pieces of geometry, wherein the pre-pass phase of rendering and the geometry pass phase of rendering are performed for the rendering of the plurality of pieces of geometry in a frame period to generate the image frame; program instructions for determining a plurality of computing costs for performing the rendering of the plurality of pieces of geometry of the image frame during the geometry pass phase; program instructions for reassigning in the frame period the plurality of screen regions to the plurality of GPUs before the geometry pass phase of rendering based on the information and the plurality of computing costs such that the corresponding GPU is assigned to a second corresponding set of screen regions including one or more screen regions for purposes of performing the geometry pass phase
Geometric effects · CPC title
using a secondary processor, e.g. coprocessor (peripheral processor G06F13/12) · CPC title
Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes · CPC title
the resource being a machine, e.g. CPUs, Servers, Terminals · CPC title
General purpose rendering architectures · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.