IP Library › Granted Patent US 11,120,522
Granted Patent B2
US 11,120,522 · App. 16/780,864 · Granted Sep 14, 2021

System and method for efficient multi-GPU rendering of geometry by subdividing geometry

Inventor: Mark E. Cerny (Los Angeles, CA)
Assignee: Sony Interactive Entertainment Inc.
G06T1/20G06F9/3836G06F9/3877G06F9/4806G06F9/544G06T15/005G06T15/10G06T17/10
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,120,522
App. No.
16/780,864
Granted
Sep 14, 2021
Kind
B2
Abstract

A method for graphics processing. The method including rendering graphics for an application using 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 the rendering of the image frame, subdividing one or more of the plurality of pieces of geometry into smaller pieces, and dividing the responsibility for rendering these smaller portions of geometry among the plurality of GPUs, wherein each of the smaller portions of geometry is processed by a corresponding GPU. The method including for those pieces of geometry that are not subdivided, dividing the responsibility for rendering the pieces of geometry among the plurality of GPUs, wherein each of these pieces of geometry is processed by a corresponding GPU.

Claims (74)

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;

during the rendering of the image frame, subdividing one or more of the plurality of pieces of geometry into a plurality of smaller portions of geometry, and dividing responsibility for rendering the plurality of smaller portions of geometry among the plurality of GPUs, wherein each of the plurality of smaller portions of geometry is processed by a first corresponding GPU;

for those pieces of geometry that are not subdivided, dividing responsibility for rendering the pieces of geometry that are not subdivided among the plurality of GPUs, wherein each of the pieces of geometry that are not subdivided is processed by a second corresponding GPU; and

reassigning a piece of geometry or a smaller portion of geometry initially assigned to a first GPU for rendering during a phase of rendering of the image frame to a second GPU based on rendering timing information for the plurality of GPUs determined for the phase of rendering.

2. The method of claim 1 ,

wherein the phase of rendering for the image frame includes a geometry analysis phase of rendering, or a Z pre-pass phase of rendering, or a geometry pass phase of rendering.

3. The method of claim 2 , further comprising:

during the geometry analysis phase of rendering, or the Z pre-pass phase of rendering, or the geometry pass phase of rendering, determining the first GPU is behind the second GPU; and

dynamically assigning responsibility for rendering the plurality of pieces of geometry so that the first GPU is assigned less pieces of geometry than the second GPU.

4. The method of claim 1 , further comprising:

using the plurality of GPUs in collaboration to generate a Z-buffer for the image frame including the plurality of pieces of geometry during a Z pre-pass phase of rendering;

generating information during the Z pre-pass phase of rendering regarding the plurality of pieces of geometry of the image frame and their relations to a plurality of screen regions;

assigning the plurality of screen regions to the plurality of GPUs based on the information for purposes of rendering the image frame during a geometry pass phase of rendering;

rendering during the geometry pass phase of rendering the plurality of pieces of geometry at each of the plurality of GPUs based on GPU to screen region assignments determined from the assigning the plurality of screen regions to the plurality of GPUs; and

reassigning the piece of geometry initially assigned to the first GPU for rendering during the geometry pass phase to the second GPU.

5. The method of claim 1 ,

wherein a rendering command buffer is shared between the plurality of GPUs as a common rendering command buffer,

wherein a format of the common rendering command buffer allows a command to be executed only by a subset of the plurality of GPUs.

6. The method of claim 1 ,

wherein one or more of the plurality of GPUs are portions of a larger GPU that is configured as a plurality of virtual GPUs.

7. A computer system comprising:

a processor; and

memory coupled to the processor and having stored therein instructions that, if executed by the computer system, cause the computer system to execute 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;

during the rendering of the image frame, subdividing one or more of the plurality of pieces of geometry into a plurality of smaller portions of geometry, and dividing responsibility for rendering the plurality of smaller portions of geometry among the plurality of GPUs, wherein each of the plurality of smaller portions of geometry is processed by a first corresponding GPU;

for those pieces of geometry that are not subdivided, dividing the responsibility for rendering the pieces of geometry among the plurality of GPUs, wherein each of these pieces of geometry is processed by a second corresponding GPU; and

reassigning a piece of geometry or a smaller portion of geometry initially assigned to a first GPU for rendering during a phase of rendering of the image frame to a second GPU based on rendering timing information for the plurality of GPUs determined for the phase of rendering.

8. The computer system of claim 7 ,

wherein in the method the phase of rendering for the image frame includes a geometry analysis phase of rendering, or a Z pre-pass phase of rendering, or a geometry pass phase of rendering.

9. The computer system of claim 8 , the method further comprising:

during the geometry analysis phase of rendering, or the Z pre-pass phase of rendering, or the geometry pass phase of rendering, determining the first GPU is behind the second GPU; and

dynamically assigning responsibility for rendering the plurality of pieces of geometry so that the first GPU is assigned less pieces of geometry than the second GPU.

10. The computer system of claim 7 , the method further comprising:

using the plurality of GPUs in collaboration to generate a Z-buffer for the image frame including the plurality of pieces of geometry during a Z pre-pass phase of rendering;

generating information during the Z pre-pass phase of rendering regarding the plurality of pieces of geometry of the image frame and their relations to a plurality of screen regions; and

assigning the plurality of screen regions to the plurality of GPUs based on the information for purposes of rendering the image frame during a geometry pass phase of rendering;

rendering during the geometry pass phase of rendering the plurality of pieces of geometry at each of the plurality of GPUs based on GPU to screen region assignments determined from the assigning the plurality of screen regions to the plurality of GPUs; and

reassigning the piece of geometry initially assigned to the first GPU for rendering during the geometry pass phase to the second GPU.

11. The computer system of claim 7 ,

wherein in the method a rendering command buffer is shared between the plurality of GPUs as a common rendering command buffer,

wherein in the method a format of the common rendering command buffer allows a command to be executed only by a subset of the plurality of GPUs.

12. The computer system of claim 7 , wherein in the method one or more of the plurality of GPUs are portions of a larger GPU that is configured as a plurality of virtual GPUs.

13. A non-transitory computer-readable medium storing a computer program for graphics processing, 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 during the rendering of the image frame, subdividing one or more of the plurality of pieces of geometry into a plurality of smaller portions of geometry, and dividing responsibility for rendering the plurality of smaller portions of geometry among the plurality of GPUs, wherein each of the plurality of smaller portions of geometry is processed by a first corresponding GPU;

for those pieces of geometry that are not subdivided, program instructions for dividing responsibility for rendering the pieces of geometry that are not subdivided among the plurality of GPUs, wherein each of the pieces of geometry that are not subdivided is processed by a second corresponding GPU; and

reassigning a piece of geometry or a smaller portion of geometry initially assigned to a first GPU for rendering during a phase of rendering of the image frame to a second GPU based on rendering timing information for the plurality of GPUs determined for the phase of rendering.

14. The non-transitory computer-readable medium of claim 13 ,

wherein in the method the phase of rendering for the image frame includes a geometry analysis phase of rendering, or a Z pre-pass phase of rendering, or a geometry pass phase of rendering.

15. The non-transitory computer-readable medium of claim 14 , further comprising:

during the geometry analysis phase of rendering, or the Z pre-pass phase of rendering, or the geometry pass phase of rendering, determining the first GPU is behind the second GPU; and

dynamically assigning responsibility for rendering the plurality of pieces of geometry so that the first GPU is assigned less pieces of geometry than the second GPU.

16. The non-transitory computer-readable medium of claim 13 , further comprising:

program instructions for using the plurality of GPUs in collaboration to generate a Z-buffer for the image frame including the plurality of pieces of geometry during a Z pre-pass phase of rendering;

program instructions for generating information during the Z pre-pass phase of rendering regarding the plurality of pieces of geometry of the image frame and their relations to a plurality of screen regions;

program instructions for assigning the plurality of screen regions to the plurality of GPUs based on the information for purposes of rendering the image frame during a geometry pass phase of rendering;

program instructions for rendering during the geometry pass phase of rendering the plurality of pieces of geometry at each of the plurality of GPUs based on GPU to screen region assignments determined from the assigning the plurality of screen regions to the plurality of GPUs; and

program instructions for reassigning the piece of geometry initially assigned to the first GPU for rendering during the geometry pass phase to the second GPU.

17. The non-transitory computer-readable medium of claim 13 ,

wherein in the method a rendering command buffer is shared between the plurality of GPUs as a common rendering command buffer,

wherein in the method a format of the common rendering command buffer allows a command to be executed only by a subset of the plurality of GPUs.

18. 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;

during rendering of the image frame, dividing responsibility for rendering the plurality of pieces of geometry among the plurality of GPUs, wherein each of the plurality of pieces of geometry is processed by a corresponding GPU;

generating information during a Z pre-pass phase of rendering related to each of the plurality of pieces of geometry and its relation to a plurality of screen regions;

assigning the plurality of screen regions to the plurality of GPUs for rendering during a geometry pass phase of rendering based on the information; and

reassigning a piece of geometry initially assigned to a first GPU for rendering during the geometry phase of rendering to a second GPU.

19. The method of claim 18 , wherein the reassigning is based on rendering timing information for the plurality of GPUs determined for the geometry pass phase of rendering.

20. The method of claim 18 , wherein the piece of geometry is assigned to the first GPU based on screen region to GPU assignments determined from the assigning the plurality of screen regions to the plurality of GPUs.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 20, 2020
From: CERNY, MARK E.
To: SONY INTERACTIVE ENTERTAINMENT INC.
Reel/Frame 052447/0155 →
Continuity (1)
Related Publication 20210241416A1 · Aug 5, 2021