IP Library Granted Patent US 12,518,463
Granted Patent B2
US 12,518,463 · App. 17/008,292 · Granted Jan 6, 2026

Graphics processing unit render mode selection system

Inventors: Anirudh R. Acharya (San Diego, CA); Ruijin Wu (San Diego, CA); Young In Yeo (San Diego, CA); Mika Tuomi (Noomarkku, FI); Kiia Kallio (Noormarkku, FI)
Assignee: Advanced Micro Devices, Inc.
G06T15/005G06F7/24G06T1/20G06T1/60
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 12,518,463
App. No.
17/008,292
Granted
Jan 6, 2026
Kind
B2
Abstract

A processor dynamically selects a render mode for each render pass of a frame based on the characteristics of the render pass. A software driver of the processor receives graphics operations from an application executing at the processor and converts the graphics operations into a command stream that is provided to the graphics pipeline. As the driver converts the graphics operations into the command stream, the driver analyzes each render pass of the frame to determine characteristics of the render passes, and selects a render mode for each render pass based on the characteristics of the render pass.

Claims (39)

1 . A method comprising:

generating a plurality of command streams, wherein each command stream corresponds to a different render pass of a plurality of render passes for a frame;

storing each command stream of the plurality of command streams in a respective command buffer of a plurality of corresponding command buffers;

selecting, for each render pass of the plurality of render passes for the frame, a render mode of a plurality of render modes based on characteristics of the render pass;

storing multi-bit tokens at respective command buffers, wherein each multi-bit token identifies the respective selected render mode for the corresponding render pass; and

indicating from each corresponding command buffer to a graphics processing unit (GPU) of a processor each selected render mode for each render pass.

2 . The method of claim 1 , wherein indicating comprises inserting a command indicating the selected render mode for a render pass into the corresponding command stream to the GPU.

3 . The method of claim 1 , wherein for at least one of the respective command buffers, storing the multi-bit token comprises inserting a start binning command indicating the selected render mode for the corresponding render pass into the command buffer corresponding to the render pass and an end binning command following the command stream for the render pass.

4 . The method of claim 1 , wherein the characteristics of the render pass comprise at least one of: lighting, color, post-processing, occlusion query, whether a number of draw calls or primitives exceeds a threshold, use of unordered access views, and whether a number of render targets bound equals or exceeds a threshold.

5 . The method of claim 1 , wherein the selected render mode comprises one of: coarse bin rendering, primitive batch-based bin rendering, coarse binning with batch-based bin rendering, and immediate-mode rendering.

6 . The method of claim 1 , further comprising:

receiving an indication of an updated characteristic of the render pass; and

updating the selection of a render mode for a render pass for the frame in response to receiving an indication that the selected render mode is incompatible with the updated characteristic of the render pass.

7 . The method of claim 1 , further comprising:

performing a render pass for a frame at the GPU using the selected render mode for the render pass.

8 . A method, comprising:

sorting a plurality of render passes for a frame into corresponding command buffers for a graphics processing unit (GPU) of a processor;

selecting a render mode of a plurality of render modes for each render pass based on characteristics of each render pass; and

for each render pass, storing a multi-bit token at the command buffer corresponding to the render pass to indicate the selected render mode for the render pass.

9 . The method of claim 8 , wherein storing the multi-bit token comprises inserting a command indicating the selected render mode for a render pass into a command stream to the GPU.

10 . The method of claim 8 , wherein the characteristics of the render pass comprise at least one of: lighting, color, post-processing, occlusion query, whether a number of draw calls or primitives exceeds a threshold, use of unordered access views, and whether a number of render targets bound equals or exceeds a threshold.

11 . The method of claim 8 , wherein the selected render mode comprises one of: coarse bin rendering, primitive batch-based bin rendering, coarse binning with batch-based bin rendering, and immediate-mode rendering.

12 . The method of claim 8 , wherein storing the multi-bit token comprises inserting a start binning command indicating the selected render mode for a render pass into the command buffer corresponding to the render pass and an end binning command following a command stream for the render pass.

13 . The method of claim 8 , further comprising:

receiving an indication of an updated characteristic of the render pass; and

updating the selection of a render mode for a render pass for the frame in response to receiving an indication that the selected render mode is incompatible with the updated characteristic of the render pass.

14 . The method of claim 8 , further comprising:

performing a render pass for a frame at the GPU using the selected render mode for the render pass.

15 . A device, comprising:

a render mode selection circuit to select a render mode of a plurality of render modes for each render pass of a plurality of render passes based on characteristics of each render pass;

a plurality of command buffers to store respective render passes of the plurality of render passes for a frame and to store a respective multi-bit token that indicates the selected render mode for the respective render pass; and

a graphics processing unit (GPU) to process the render passes retrieved from the plurality of command buffers using the respective selected render modes.

16 . The device of claim 15 , wherein the render mode selection circuit is further configured to insert a start binning command indicating the selected render mode for a render pass into the respective command buffer and an end binning command following a command stream for the render pass.

17 . The device of claim 15 , wherein the render mode selection circuit is further configured to insert a command indicating the selected render mode for a render pass into a command stream to the GPU.

18 . The device of claim 15 , wherein the render mode selection circuit is to select the render mode based on at least one of: lighting, color, post-processing, occlusion query, whether a number of draw calls or primitives exceeds a threshold, use of unordered access views, and whether a number of render targets bound equals or exceeds a threshold.

19 . The device of claim 15 , wherein the plurality of render modes comprise coarse bin rendering, primitive batch-based bin rendering, coarse binning with batch-based bin rendering, immediate-mode rendering, or any combination thereof.

20 . The device of claim 15 , wherein the render mode selection circuit is further configured to:

receive an indication of an updated characteristic of the render pass; and

update the selection of a render mode for a render pass for the frame in response to receiving an indication that the selected render mode is incompatible with the updated characteristic of the render pass.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2021
From: ACHARYA, ANIRUDH R; WU, RUIJIN; YEO, YOUNG IN; TUOMI, MIKA; KALLIO, KIIA
To: ADVANCED MICRO DEVICES, INC.
Reel/Frame 056693/0253 →
Continuity (2)
Provisional Application 62987469 · Mar 10, 2020
Related Publication 20210287418A1 · Sep 16, 2021
References Cited (22)
US 8830246B2 · Seetharamaiah et al. · 2014 [cited by applicant]
US 8982136B2 · Ribble et al. · 2015 [cited by applicant]
US 9256975B2 · Heggelund · 2016 [cited by examiner]
US 9799088B2 · Frascati et al. · 2017 [cited by applicant]
US 20110148919A1 · Heggelund · 2011 [cited by examiner]
US 20120293519A1 · Ribble · 2012 [cited by examiner]
US 20130135329A1 · Seetharamaiah et al. · 2013 [cited by applicant]
US 20130135341A1 · Seetharamaiah · 2013 [cited by examiner]
US 20160055608A1 · Frascati et al. · 2016 [cited by applicant]
US 20160163014A1 · Yang et al. · 2016 [cited by applicant]
US 20170140573A1 · Woo · 2017 [cited by applicant]
US 20180150296A1 · Min-Young et al. · 2018 [cited by applicant]
US 20180165788A1 · Balci et al. · 2018 [cited by applicant]
US 20190235917A1 · Koneru · 2019 [cited by examiner]
U.S. Appl. No. 62/963,414, filed Jan. 20, 2020 in the name of Mika Tuomi. [cited by applicant]
International Search Report malled Jun. 24, 2021 issued in Application No. PCT/US2021/021550, 10 pages. [cited by applicant]
International Preliminary Report on Patentability mailed Sep. 6, 2022 issued in Application No. PCT/US2021/021550, 6 pages. [cited by applicant]
International Search Report mailed Jun. 24, 2021 issued in Application No. PCT/US2021/021550, 10 pages. [cited by applicant]
Japanese Office Action mailed Nov. 26, 2024 for Japanese Patent Application No. 2022-551270, 9 pages. [cited by applicant]
Indian Office Action mailed May 6, 2024 for Indian Patent Application No. 202217049448, 6 pages. [cited by applicant]
Korean Office Action mailed Jun. 23, 2025 for Korean Patent Application No. 10-2022-7031430, 13 pages. [cited by applicant]
Extended European Search Report issued in Application No. 21768692.2, mailed Feb. 20, 2024, 8 pages. [cited by applicant]