System and method for efficient multi-GPU rendering of geometry by performing geometry analysis while rendering

US12118641B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12118641-B2
Application numberUS-202117482198-A
CountryUS
Kind codeB2
Filing dateSep 22, 2021
Priority dateFeb 3, 2020
Publication dateOct 15, 2024
Grant dateOct 15, 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 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.

First claim

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

Assignees

Inventors

Classifications

  • 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

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 US12118641B2 cover?
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 plura…
Who is the assignee on this patent?
Sony Interactive Entertainment Inc
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 Oct 15 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 7 related publications on this page (citations in our corpus or others sharing the same primary CPC).