# US 12,008,675 B2 · Method and apparatus for isolating 3D draw calls for selective upscaling

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

- Number: US 12,008,675 B2
- Document ID: US12008675B2
- Status: Granted
- Kind: B2
- Application number: 17/486,902
- Filed: 2021-09-27
- Published: 2022-09-22
- Granted: 2024-06-11
- Earliest claimed: 2021-03-18
- Assignees: Samsung Electronics Co., Ltd.
- Applicants: Samsung Electronics Co., Ltd.
- Inventors: Gabriel T. Dagani; Gregory Bergschneider
- Web page: https://patentgrep.com/patent/US12008675B2

## CPC

- G06T 1/20: Processor architectures; Processor configuration, e.g. pipelining
- G09G 5/397: Arrangements specially adapted for transferring the contents of two or more bit-mapped memories to the screen simultaneously, e.g. for mixing or overlay (G09G5/02 takes precedence)
- G06T 1/60: Memory management
- G06T 11/23: using straight lines or curves
- G06T 15/005: {General purpose rendering architectures}
- G09G 5/391: Resolution modifying circuits, e.g. variable screen formats
- G09G 2320/0613: The adjustment depending on the type of the information to be displayed
- G09G 2340/0407: Resolution change, inclusive of the use of different resolutions for different screen areas
- G09G 2340/12: Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels
- G09G 2360/02: Graphics controller able to handle multiple formats, e.g. input or output formats
- G09G 2360/08: Power processing, i.e. workload management for processors involved in display operations, such as CPUs or GPUs
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G09G: ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION (arrangements for transferring data between digital computers and displays G06F3/14; static indicating arrangements comprising an association of a number of separate sources or light control cells G09F9/00; static indicating arrangements comprising integral associations of a number of light sources H01J, H01K, H10H, H05B33/12; scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission, details thereof H04N1/00)

## Abstract

A system and a method are disclosed for separating 3D content from 2D UI content for selectively upscaling 3D draw calls. A controller, coupled to a graphics pipeline, determines whether an application supports upscaling and, if so, creates a full-resolution framebuffer for rendering 2D drawcalls bound to the graphics pipeline and a reduced-resolution framebuffer for rendering 3D drawcalls bound to the graphics pipeline. A drawcall is then determined to be a 2D or a 3D drawcall. The controller stores the drawcall in the full-resolution framebuffer if the draw call is a 2D drawcall and stores the drawcall in the reduced-resolution framebuffer if the draw call is a 3D drawcall. The draw stored in the reduced-resolution framebuffer is upscaled to be a full-resolution drawcall, and the 2D draw in the full-resolution framebuffer and the upscaled 3D draw are combined to form a final output.

## Claims

### Claim 1

A method to render two-dimensional (2D) content and three-dimensional (3D) content of an application by a graphics processing unit (GPU), the method comprising:
creating, by the GPU, a full-resolution frame buffer for rendering 2D draw calls and a reduced-resolution frame buffer for rendering 3D draw calls based on upscaling being supported;
receiving, by the GPU, a draw call;
determining, by the GPU, that the draw call comprises both a 2D draw call and a 3D draw call based on determining rendering quadrants of the draw call, and, in response, separating the 2D draw call from the 3D draw call by:
storing the 2D draw call in the full-resolution frame buffer, and
storing the 3D draw call in the reduced-resolution frame buffer;
upscaling, by the GPU, the draw call stored in the reduced-resolution frame buffer from a reduced-resolution to a full-resolution draw call; and
combining, by the GPU, the 2D draw call in the full-resolution frame buffer and the 3D draw call upscaled to the full-resolution draw call to form a final output.

### Claim 2 (depends on 1)

The method of claim 1, further comprising determining by the GPU that the draw call comprises a 2D draw call and a 3D draw call based on a profile of the application.

### Claim 3 (depends on 2)

The method of claim 2, wherein the profile of the application includes at least one hint relating to isolating 2D User Interface (UI) content from 3D rendering content.

### Claim 4 (depends on 1)

The method of claim 1, further comprising determining by the GPU that the draw call comprises a 2D draw call and a 3D draw call based on two triangles being detected as a box.

### Claim 5 (depends on 1)

The method of claim 1, further comprising determining by the GPU that the draw call comprises a 2D draw call and a 3D draw call based on detecting a shader that is bound to a pipeline of the GPU that will be used for a User Interface (UI).

### Claim 6 (depends on 5)

The method of claim 5, wherein determining by the GPU that the draw call comprises a 2D draw call and a 3D draw call is further based on detecting that the draw call does not use skinning or high-dynamic range coloring to render the draw.

### Claim 7 (depends on 1)

The method of claim 1, further comprising determining by the GPU that the draw call comprises a 2D draw call and a 3D draw call based on determining that the draw call is rendered during a last pass of a frame.

### Claim 8 (depends on 1)

The method of claim 1, further comprising accumulating by the GPU 2D UI draws with a specialized alpha component in the full-resolution frame buffer for combining with 3D renders in the reduced-resolution frame buffer.

### Claim 9

A graphics processing unit (GPU), comprising:
a graphics pipeline configured to receive two-dimensional (2D) and three-dimensional (3D) content for rendering; and
a controller coupled to the graphics pipeline, the controller being configured to:
determine whether an application supports upscaling,
create a full-resolution frame buffer for rendering 2D draw calls bound to the graphics pipeline and a reduced-resolution frame buffer for rendering 3D draw calls bound to the graphics pipeline based on upscaling being supported,
determine that a draw call comprises a 2D draw call and a 3D draw call based on determining that a single texture is indexed into small equal box sizes to indicate font retrieval,
separate the 2D draw call from the 3D draw call by:
storing the 2D draw call in the full-resolution frame buffer,
storing the 3D draw call in the reduced-resolution frame buffer,
upscale the draw call stored in the reduced-resolution frame buffer to be a full-resolution draw call, and
combine the 2D draw call in the full-resolution frame buffer and the 3D draw upscaled to the full-resolution draw call to form a final output.

### Claim 10 (depends on 9)

The GPU of claim 9, wherein the controller is further configured to determine that the draw call comprises a 2D draw call and a 3D draw call based on a profile of the application.

### Claim 11 (depends on 10)

The GPU of claim 10, wherein the profile of the application includes at least one hint relating to isolating 2D User Interface (UI) content from 3D rendering content.

### Claim 12 (depends on 9)

The GPU of claim 9, wherein the controller is further configured to determine that the draw call comprises a 2D draw call and a 3D draw call based on two triangles being detected as a box.

### Claim 13 (depends on 9)

The GPU of claim 9, wherein the controller is further configured to determine that the draw call comprises a 2D draw call and a 3D draw call based on detecting a shader that is bound to a pipeline of the GPU that will be used for a User Interface (UI).

### Claim 14 (depends on 13)

The GPU of claim 13, wherein the controller is further configured to determine that the draw call comprises a 2D draw call and a 3D draw call based on detecting that the draw call does not use skinning or high-dynamic range coloring to render the draw call.

### Claim 15 (depends on 9)

The GPU of claim 9, wherein the controller is further configured to determine that the draw call comprises a 2D draw call and a 3D draw call based on the draw call being rendered during a last pass of a frame.

### Claim 16 (depends on 9)

The GPU of claim 9, wherein the controller is further configured to further accumulate 2D UI draws with a specialized alpha component in the full-resolution frame buffer for combining with 3D renders in the reduced-resolution frame buffer.
