# US 2021/0241411 A1 · System and method for efficient multi-gpu rendering of geometry by generating information in one rendering phase for use in another rendering phase

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2021/0241411 A1
- Document ID: US20210241411A1
- Status: Published application
- Kind: A1
- Application number: 16/780,605
- Filed: 2020-02-03
- Published: 2021-08-05
- Earliest claimed: 2020-02-03
- Assignees: Sony Interactive Entertainment Inc.
- Applicants: Sony Interactive Entertainment Inc.
- Inventors: Mark E. Cerny; Florian Strauss; Tobias Berghoff
- Web page: https://patentgrep.com/patent/US20210241411A1

## CPC

- G06T 1/20: Processor architectures; Processor configuration, e.g. pipelining
- G06F 9/3877: {using a secondary processor, e.g. coprocessor (peripheral processor G06F13/12)}
- G06F 9/5061: {Partitioning or combining of resources}
- G06T 15/005: {General purpose rendering architectures}
- G06T 15/10: Geometric effects
- G06T 15/405: {using Z-buffer}
- G06T 17/10: Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method for graphics processing including rendering graphics for an application using a plurality of graphics processing units (GPUs). The method including dividing responsibility for rendering geometry of the graphics between the GPUs based on screen regions, each GPU having a corresponding division of the responsibility which is known to the GPUs. The method including determining a Z-value for a piece of geometry during a pre-pass phase of rendering at a first GPU for an image, wherein the piece of geometry overlaps a first screen region for which the first GPU has a division of responsibility. The method including comparing the Z-value against a Z-buffer value for the piece of geometry. The method including generating information including a result of the comparing the Z-value against the Z-buffer value for use by the GPU when rendering the piece of geometry during a full render phase of rendering.

## Claims

### Claim 1

A method for graphics processing, comprising:
rendering graphics for an application using a plurality of graphics processing units (GPUs);
dividing responsibility for rendering geometry of the graphics between the plurality of GPUs based on a plurality of screen regions, each GPU having a corresponding division of the responsibility which is known to the plurality of GPUs;
determining a Z-value for a piece of geometry during a pre-pass phase of rendering for the piece of geometry at a GPU for an image, wherein the piece of geometry overlaps a first screen region for which the GPU has a division of responsibility;
comparing the Z-value against a Z-buffer value for the piece of geometry; and
generating information including a result of the comparing the Z-value against the Z-buffer value for use by the GPU when rendering the piece of geometry during a full render phase of rendering.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
rendering a plurality of pixels for the piece of geometry by the GPU during the full render phase of rendering when the piece of geometry is not occluded based on the information.

### Claim 3 (depends on 1)

The method of claim 1, wherein the comparing the Z-value against the Z-buffer value includes:
determining that the Z-value is less than or equal to the Z-buffer value, indicating that the piece of geometry is not occluded,
wherein the information indicates that the piece of geometry is not occluded.

### Claim 4 (depends on 1)

The method of claim 1, further comprising:
rasterizing into a plurality of pixels one or more primitives of the piece of geometry during the pre-pass phase;
performing a depth test by comparing a plurality of Z-values for the plurality of pixels against the Z-buffer value, wherein results of the depth test is included in the information; and
rendering pixels in the plurality of pixels that survive the depth test based on the information.

### Claim 5 (depends on 4)

The method of claim 4, further comprising:
skipping rendering of the piece of geometry when none of the plurality of pixels survive the depth test.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
rasterizing into a plurality of pixels one or more primitives of the piece of geometry;
checking an alpha value of a texture for the plurality of pixels; and
killing pixels in the plurality of pixels having alpha values that are below a threshold, wherein results of the checking the alpha value is included in the information.

### Claim 7 (depends on 6)

The method of claim 6, further comprising:
skipping rendering of the piece of geometry when none of the plurality of pixels have a corresponding alpha value that is at or above the threshold.

### Claim 8 (depends on 1)

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.

### Claim 9

A non-transitory computer-readable medium for performing a method, the computer-readable medium comprising:
program instructions for rendering graphics for an application using a plurality of graphics processing units (GPUs);
program instructions for dividing responsibility for rendering geometry of the graphics between the plurality of GPUs based on a plurality of screen regions, each GPU having a corresponding division of the responsibility which is known to the plurality of GPUs;
program instructions for determining a Z-value for a piece of geometry during a pre-pass phase of rendering for the piece of geometry at a GPU for an image, wherein the piece of geometry overlaps a first screen region for which the GPU has a division of responsibility;
program instructions for comparing the Z-value against a Z-buffer value for the piece of geometry; and
program instructions for generating information including a result of the comparing the Z-value against the Z-buffer value for use by the GPU when rendering the piece of geometry during a full render phase of rendering.

### Claim 10 (depends on 9)

The non-transitory computer-readable medium of claim 9, further comprising:
program instructions for rendering a plurality of pixels for the piece of geometry by the GPU during the full render phase of rendering when the piece of geometry is not occluded based on the information.

### Claim 11 (depends on 9)

The non-transitory computer-readable medium of claim 9, wherein the program instructions for comparing the Z-value against the Z-buffer value includes:
program instructions for determining that the Z-value is less than or equal to the Z-buffer value, indicating that the piece of geometry is not occluded,
wherein the information indicates that the piece of geometry is not occluded.

### Claim 12 (depends on 9)

The non-transitory computer-readable medium of claim 9, further comprising:
program instructions for rasterizing into a plurality of pixels one or more primitives of the piece of geometry during the pre-pass phase;
program instructions for performing a depth test by comparing a plurality of Z-values for the plurality of pixels against the Z-buffer value, wherein results of the depth test is included in the information; and
program instructions for rendering pixels in the plurality of pixels that survive the depth test based on the information.

### Claim 13 (depends on 12)

The non-transitory computer-readable medium of claim 12, further comprising:
program instructions for skipping rendering of the piece of geometry when none of the plurality of pixels survive the depth test.

### Claim 14 (depends on 9)

The non-transitory computer-readable medium of claim 9, further comprising:
program instructions for rasterizing into a plurality of pixels one or more primitives of the piece of geometry;
program instructions for checking an alpha value of a texture for the plurality of pixels; and
program instructions for killing pixels in the plurality of pixels having alpha values that are below a threshold, wherein results of the checking the alpha value is included in the information.

### Claim 15 (depends on 14)

The non-transitory computer-readable medium of claim 14, further comprising:
program instructions for skipping rendering of the piece of geometry when none of the plurality of pixels have a corresponding alpha value that is at or above the threshold.

### Claim 16 (depends on 9)

The non-transitory computer-readable medium of claim 9, 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.

### Claim 17

A computer system comprising:
a processor;
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 implementing a graphics pipeline, comprising:
rendering graphics for an application using a plurality of graphics processing units (GPUs);
dividing responsibility for rendering geometry of the graphics between the plurality of GPUs based on a plurality of screen regions, each GPU having a corresponding division of the responsibility which is known to the plurality of GPUs;
determining a Z-value for a piece of geometry during a pre-pass phase of rendering for the piece of geometry at a GPU for an image, wherein the piece of geometry overlaps a first screen region for which the GPU has a division of responsibility;
comparing the Z-value against a Z-buffer value for the piece of geometry; and
generating information including a result of the comparing the Z-value against the Z-buffer value for use by the GPU when rendering the piece of geometry during a full render phase of rendering.

### Claim 18 (depends on 17)

The computer system of claim 17, the method further comprising:
rendering a plurality of pixels for the piece of geometry by the GPU during the full render phase of rendering when the piece of geometry is not occluded based on the information.

### Claim 19 (depends on 17)

The computer system of claim 17, wherein in the method the comparing the Z-value against the Z-buffer value includes:
determining that the Z-value is less than or equal to the Z-buffer value, indicating that the piece of geometry is not occluded,
wherein the information indicates that the piece of geometry is not occluded.

### Claim 20 (depends on 17)

The computer system of claim 17, the method further comprising:
rasterizing into a plurality of pixels one or more primitives of the piece of geometry during the pre-pass phase;
performing a depth test by comparing a plurality of Z-values for the plurality of pixels against the Z-buffer value, wherein results of the depth test is included in the information; and
rendering pixels in the plurality of pixels that survive the depth test based on the information.

### Claim 21 (depends on 20)

The computer system of claim 20, the method further comprising:
skipping rendering of the piece of geometry when none of the plurality of pixels survive the depth test.

### Claim 22 (depends on 17)

The computer system of claim 17, the method further comprising:
rasterizing into a plurality of pixels one or more primitives of the piece of geometry;
checking an alpha value of a texture for the plurality of pixels; and
killing pixels in the plurality of pixels having alpha values that are below a threshold, wherein results of the checking the alpha value is included in the information.

### Claim 23 (depends on 22)

The computer system of claim 22, the method further comprising:
skipping rendering of the piece of geometry when none of the plurality of pixels have a corresponding alpha value that is at or above the threshold.

### Claim 24 (depends on 1)

The method of claim 1, further comprising:
accessing a Z-buffer to obtain the Z-buffer value for the piece of geometry, wherein the Z-buffer includes one or more Z-buffer values that are up-to-date.

### Claim 25 (depends on 9)

The non-transitory computer-readable medium of claim 9, further comprising:
program instructions for accessing a Z-buffer to obtain the Z-buffer value for the piece of geometry, wherein the Z-buffer includes one or more Z-buffer values that are up-to-date.

### Claim 26 (depends on 17)

The computer system of claim 17, the method further comprising:
accessing a Z-buffer to obtain the Z-buffer value for the piece of geometry, wherein the Z-buffer includes one or more Z-buffer values that are up-to-date.
