IP Library › Granted Patent US 9,601,092
Granted Patent B2
US 9,601,092 · App. 14/662,603 · Granted Mar 21, 2017

Dynamically managing memory footprint for tile based rendering

Inventors: Michael Apodaca (Folsom, CA); Thomas A. Piazza (Granite Bay, CA); Bimal Poddar (El Dorado Hills, CA)
Assignee: Intel Corporation
G09G5/39G06T1/60G06T15/005
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 9,601,092
App. No.
14/662,603
Granted
Mar 21, 2017
Kind
B2
Abstract

The introduction of an “out-of-memory” marker in the sorted tile geometry sequence for a tile may aid in handling out-of-memory frames. This marker allows hardware to continue rendering using the original data stream instead of the sorted data stream. This enables use of the original data stream allows the system to continue rendering without requiring any driver intervention. During the visibility generation/sorting phase, the number of memory pages required for storing the data for a rendering pass is continuously tracked. This tracking includes tracking the pages that are required even if the hardware had not run out-of-memory. This information can be monitored by a graphics driver and the driver can provide more memory pages for the system to work at full efficiency.

Claims (39)

1. A method comprising:

determining in a hardware processor, whether sufficient storage is available in a memory that stores visibility information to store additional visibility information;

if an out-of-memory condition exists because sufficient storage is not available, continuing to render without storing visibility information during the out-of-memory condition before requiring an agent to resolve the out-of-memory condition; and

proceeding to render without culling primitives for a rendering pass with an out-of-memory condition.

2. The method of claim 1 including resolving an out-of-memory condition, arising in one rendering pass, in a subsequent rendering pass.

3. The method of claim 1 including recording, memory that would have been needed absent the out-of-memory condition.

4. The method of claim 3 including:

while rendering, detecting an out-of-memory condition in a first rendering pass and marking said condition with a marker; and

detecting the marker in another rendering pass.

5. The method of claim 4 including reducing the rendering speed in response to detecting the marker.

6. The method of claim 1 further including monitoring, during visibility generation, an amount of memory needed to store visibility data for a rendering pass and allocating more memory in response to detecting a need for more memory.

7. The method of claim 1 including determining an amount of available memory for storing visibility information.

8. The method of claim 1 including in response to detection of an out-of-memory condition, rendering as if all primitives are visible.

9. The method of claim 1 including rendering without storing visibility information only during a rendering pass in which an out-of-memory condition was detected, while continuing to render while storing visibility information in another rendering pass.

10. One or more non-transitory computer readable media storing instructions executed by a processor to perform a sequence comprising:

determining whether sufficient storage is available in a memory that stores visibility information to store additional visibility information;

if an out-of-memory condition exists because sufficient storage is not available, continuing to render without storing visibility information during the out-of-memory condition before requiring an agent to resolve the out-of-memory condition; and

in response to detection of an out-of-memory condition, rendering as if all primitives are visible.

11. The media of claim 10 , said sequence including resolving an out-of-memory condition, arising in one rendering pass, in a subsequent rendering pass.

12. The media of claim 10 , said sequence including recording, memory that would have been needed absent the out-of-memory condition.

13. The media of claim 12 , said sequence including:

while rendering, detecting an out-of-memory condition in a first rendering pass and marking said condition with a marker; and

detecting the marker in another rendering pass.

14. The media of claim 13 , said sequence including reducing the rendering speed in response to detecting the marker.

15. The media of claim 10 , said sequence further including monitoring, during visibility generation, an amount of memory needed to store visibility data for a rendering pass and allocating more memory in response to detecting a need for more memory.

16. The media of claim 10 , said sequence including determining an amount of available memory for storing visibility information.

17. The media of claim 10 , said sequence including proceeding to render without culling primitives for a rendering pass with an out-of-memory condition.

18. The media of claim 10 , said sequence including proceeding with rendering without storing visibility information only during a rendering pass in which an out-of-memory condition was detected, while continuing to render while storing visibility information in another rendering pass.

19. An apparatus comprising:

a hardware processor to determine, during tile rendering, whether sufficient storage is available in a memory that stores visibility information to store additional visibility information, and if an out-of-memory condition exists because sufficient storage is not available, continue to render without storing visibility information during the out-of-memory condition before requiring an agent to resolve the out-of-memory condition, and proceed to render without culling primitives for a rendering pass with an out-of-memory condition; and

a storage coupled to said processor.

20. The apparatus of claim 19 , said processor to resolve an out-of-memory condition, arising in one rendering pass, in a subsequent rendering pass.

21. The apparatus of claim 19 , said processor to record, memory that would have been needed absent the out-of-memory condition.

22. The apparatus of claim 21 , said processor while rendering detect an out-of-memory condition in a first rendering pass and mark said condition with a marker and detect the marker in another rendering pass.

23. The apparatus of claim 22 , said processor to reduce the rendering speed in response to detecting the marker.

24. The apparatus of claim 19 , said processor to monitor, during visibility generation, an amount of memory needed to store visibility data for a rendering pass and allocate more memory in response to detecting a need for more memory.

25. The apparatus of claim 19 , said processor to determine an amount of available memory for storing visibility information.

26. The apparatus of claim 19 , said processor in response to detection of an out-of-memory condition, render as if all primitives in a tile are visible.

27. The apparatus of claim 19 , said processor to proceed with rendering without storing visibility information only during a rendering pass in which an out-of-memory condition was detected, while continuing to render while storing visibility information in another rendering pass.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 19, 2015
From: APODACA, MICHAEL; PIAZZA, THOMAS A.; PODDAR, BIMAL
To: INTEL CORPORATION
Reel/Frame 035205/0258 →
Continuity (1)
Related Publication 20160275920A1 · Sep 22, 2016