IP Library Granted Patent US 12,437,462
Granted Patent B2
US 12,437,462 · App. 17/740,169 · Granted Oct 7, 2025

Heuristics enabled tiled rendering

Inventors: Ziyad Hakura (San Jose, CA); Sriram Venkateshan (Bangalore, IN); Sharad Raj (Bengaluru, IN)
Assignee: NVIDIA Corporation
G06T15/005G06T1/20
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,437,462
App. No.
17/740,169
Granted
Oct 7, 2025
Kind
B2
Abstract

In embodiments a graphics pipeline includes a logic that can assess whether to enable or disable tiled rendering for sets of graphics primitives. The logic applies one or more rules or heuristics to a set of graphics primitives associated with a frame, and determines whether to enable tiled rendering for that set of graphics primitives if the one or more rules or heuristics are satisfied. Otherwise, the logic determines to disable tiled rendering for that set of graphics primitives. As further graphics primitives are received for the frame, the logic may make additional decisions as to whether or not to render the further graphics primitives using tiled rendering.

Claims (83)

1. A method of rendering image data, comprising:

receiving a plurality of graphics primitives associated with a frame;

determining a size value based on one or more graphics primitives of the plurality of graphics primitives;

determining whether the size value exceeds a size threshold, wherein the size threshold is based on multiplying a tile size by at least one of a configurable threshold value or a number of graphics primitives in the plurality of graphics primitives, and wherein the tile size is used to subdivide the frame into a grid of tiles; and

determining whether to enable or disable tiled rendering for rendering of the plurality of graphics primitives based on whether the size value exceeds the size threshold.

2. The method of claim 1 , wherein

determining the size value comprises determining an approximate average area or approximate sum of areas for the plurality of graphics primitives.

3. The method of claim 2 , wherein determining whether the size value exceeds the size threshold comprises:

determining a tile size;

determining the size threshold; and

comparing the size value to the determined size threshold.

4. The method of claim 2 , wherein the size threshold is a configurable threshold value, and wherein determining whether the size value exceeds the size threshold comprises:

comparing the size value with the size threshold.

5. The method of claim 2 , wherein determining the approximate average area or the approximate sum of areas for the plurality of graphics primitives comprises:

determining a plurality of approximate areas associated with the plurality of graphics primitives, wherein for each graphics primitive of the one or more graphics primitives an approximate area for the graphics primitive is determined based on a number of tiles within a bounding box that encompasses the graphics primitive.

6. The method of claim 2 , wherein determining the approximate average area or the approximate sum of areas for the plurality of graphics primitives comprises:

determining a plurality of approximate areas associated with the plurality of graphics primitives, wherein for each graphics primitive of the one or more graphics primitives an approximate area for the graphics primitive is determined based on a number of tiles that overlap the graphics primitive.

7. The method of claim 1 , further comprising:

determining that the size value exceeds the size threshold; and

performing the tiled rendering of the plurality of graphics primitives, wherein performing the tiled rendering comprises:

rendering the plurality of graphics primitives to the frame one tile at a time.

8. The method of claim 1 , further comprising:

determining that the size value is below the size threshold; and

performing rendering of the plurality of graphics primitives with tiled rendering disabled, wherein performing rendering of the plurality of graphics primitives comprises:

rendering the plurality of graphics primitives to the frame one graphic primitive at a time in an order the plurality of graphics primitives are presented by an application associated with the frame.

9. The method of claim 1 , wherein the plurality of graphics primitives comprise a plurality of triangles, and wherein the frame is associated with a three-dimensional (3D) scene.

10. The method of claim 1 , further comprising:

receiving a second plurality of graphics primitives associated with the frame or a second frame;

determining a second size value based on the second plurality of graphics primitives;

determining whether the second size value exceeds the size threshold; and

determining whether to enable or disable tiled rendering for rendering of the second plurality of graphics primitives based on whether the second size value exceeds the size threshold.

11. A system comprising:

a memory device; and

a processing device coupled to the memory device, wherein the processing device is to perform operations comprising:

receiving a plurality of graphics primitives associated with a frame;

determining a size value based on one or more graphics primitives of the plurality of graphics primitives;

determining whether the size value exceeds a size threshold, wherein the size threshold is based on multiplying a tile size by at least one of a configurable threshold value or a number of graphics primitives in the plurality of graphics primitives, and wherein the tile size is used to subdivide the frame into a grid of tiles; and

determining whether to enable or disable tiled rendering for rendering of the plurality of graphics primitives based on whether the size value exceeds the size threshold.

12. The system of claim 11 , wherein

determining the size value comprises determining an approximate average area or approximate sum of areas for the plurality of graphics primitives.

13. The system of claim 12 , wherein determining whether the size value exceeds the size threshold comprises:

determining a tile size;

determining the size threshold; and

comparing the size value to the determined size threshold.

14. The system of claim 12 , wherein the size threshold is a configurable threshold value, and wherein determining whether the size value exceeds the size threshold comprises:

comparing the size value with the size threshold.

15. The system of claim 12 , wherein determining the approximate average area or the approximate sum of areas for the plurality of graphics primitives comprises:

determining a plurality of approximate areas associated with the plurality of graphics primitives, wherein for each graphics primitive of the one or more graphics primitives an approximate area for the graphics primitive is determined based on a number of tiles within a bounding box that encompasses the graphics primitive.

16. The system of claim 12 , wherein determining the approximate average area or the approximate sum of areas for the plurality of graphics primitives comprises:

determining a plurality of approximate areas associated with the plurality of graphics primitives, wherein for each graphics primitive of the one or more graphics primitives an approximate area for the graphics primitive is determined based on a number of tiles that overlap the graphics primitive.

17. The system of claim 11 , wherein the processing device is to perform further operations comprising:

determining that the size value exceeds the size threshold; and

performing the tiled rendering of the plurality of graphics primitives, wherein performing the tiled rendering comprises:

rendering the plurality of graphics primitives to the frame one tile at a time.

18. The system of claim 11 , wherein the processing device is to perform further operations comprising:

determining that the size value is below the size threshold; and

performing rendering of the plurality of graphics primitives with tiled rendering disabled, wherein performing rendering of the plurality of graphics primitives comprises:

rendering the plurality of graphics primitives to the frame one graphic primitive at a time in an order the plurality of graphics primitives are presented by an application associated with the frame.

19. The system of claim 11 , wherein the plurality of graphics primitives comprise a plurality of triangles, and wherein the frame is associated with a three-dimensional (3D) scene.

20. The system of claim 11 , wherein the processing device is to perform further operations comprising:

receiving a second plurality of graphics primitives associated with the frame or a second frame;

determining a second size value based on the second plurality of graphics primitives;

determining whether the second size value exceeds the size threshold; and

determining whether to enable or disable tiled rendering for rendering of the second plurality of graphics primitives based on whether the second size value exceeds the size threshold.

21. A non-transitory computer-readable medium comprising instructions that, responsive to execution by a processing device, cause the processing device to perform operations comprising:

receiving a plurality of graphics primitives associated with a frame;

determining a size value based on one or more graphics primitives of the plurality of graphics primitives;

determining whether the size value exceeds a size threshold, wherein the size threshold is based on multiplying a tile size by at least one of a configurable threshold value or a number of graphics primitives in the plurality of graphics primitives, and wherein the tile size is used to subdivide the frame into used to render each tile of a grid of tiles; and

determining whether to enable or disable tiled rendering for rendering of the plurality of graphics primitives based on whether the size value exceeds the size threshold.

22. The non-transitory computer-readable medium of claim 21 , further causing the processing device to perform operations comprising:

determining that the size value exceeds the size threshold; and

performing the tiled rendering of the plurality of graphics primitives, wherein performing the tiled rendering comprises:

dividing the frame into a plurality of tiles; and

rendering the plurality of graphics primitives to the frame one tile at a time.

23. The non-transitory computer-readable medium of claim 21 , further causing the processing device to perform operations comprising:

determining that the size value is below the size threshold; and

performing rendering of the plurality of graphics primitives with tiled rendering disabled, wherein performing rendering of the plurality of graphics primitives comprises:

rendering the plurality of graphics primitives to the frame one graphic primitive at a time.

24. The non-transitory computer-readable medium of claim 21 , further causing the processing device to perform operations comprising:

receiving a second plurality of graphics primitives associated with the frame or a second frame;

determining a second size value based on the second plurality of graphics primitives;

determining whether the second size value exceeds the size threshold; and

determining whether to enable or disable tiled rendering for rendering of the second plurality of graphics primitives based on whether the second size value exceeds the size threshold.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 2, 2022
From: HAKURA, ZIYAD; VENKATESHAN, SRIRAM; RAJ, SHARAD
To: NVIDIA CORPORATION
Reel/Frame 060085/0092 →
Continuity (1)
Related Publication 20230360305A1 · Nov 9, 2023
References Cited (8)
US 10262459B1 · Baldwin · 2019 [cited by examiner]
US 20040196283A1 · Lewis · 2004 [cited by examiner]
US 20070165035A1 · Duluk · 2007 [cited by examiner]
US 20070296725A1 · Steiner · 2007 [cited by examiner]
US 20140118376A1 · Hakura · 2014 [cited by examiner]
US 20140139534A1 · Tapply · 2014 [cited by examiner]
US 20200402298A1 · Lauritzen · 2020 [cited by examiner]
US 20220058852A1 · Surti · 2022 [cited by examiner]