10981059

Asset Aware Computing Architecture for Graphics Processing

PublishedApril 20, 2021
Assigneenot available in USPTO data we have
InventorsMark E. Cerny
Technical Abstract

Patent Claims
28 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method for executing a game by a computing system that uses a central processing unit (CPU) and graphics processing unit (GPU) for generating video frames, comprising: generating a draw call for a video frame of the video frames by the CPU; writing one or more commands for the draw call to a command buffer at a bind time; writing asset aware data (AAD) for the draw call to the command buffer at the bind time, and begin at the bind time loading one or more level of detail (LOD) data from an asset store to a system memory used by the computing system by sending from the CPU at the bind time a request to an asset store controller to load the one or more LOD data from the asset store to the system memory; and executing by the GPU the draw call for the video frame using LOD data written to the system memory, the GPU using at least a minimum of LOD data based on the AAD.

2

2. The method of claim 1 , further comprising: sending the AAD for the draw call to the asset store controller for storing, wherein receipt of the AAD as the request triggers the loading of the one or more LOD data from the asset store to the system memory.

3

3. The method of claim 1 , further comprising: determining a highest LOD data that has been loaded to the system memory for an asset used by the draw call at initiation of processing of the draw call by the GPU; determining that the highest LOD data that has been loaded is lower in detail than a minimum LOD data for the asset; and requesting an emergency load of the minimum LOD data for the asset.

4

4. The method of claim 1 , further comprising: determining a highest LOD data that has been loaded to the system memory for an asset used by the draw call prior to initiation of processing of the draw call by the GPU; determining that the highest LOD data that has been loaded is lower in detail than a minimum LOD data for the asset; and requesting an emergency load of the minimum LOD data for the asset.

5

5. The method of claim 1 , further comprising: determining a highest LOD data that has been loaded to the system memory for an asset used by the draw call; determining that the highest LOD data that has been loaded is lower in detail than a minimum LOD data for the asset; and skipping the draw call.

6

6. The method of claim 1 , further comprising: determining a highest LOD data that has been loaded to the system memory for an asset used by the draw call; determining that the highest LOD data that has been loaded is lower in detail than a minimum LOD data for the asset; and requesting a load of a proxy asset.

7

7. The method of claim 1 , further comprising: determining at a draw time for the draw call a highest LOD data that has been loaded to the system memory for an asset used by the draw call; determining that the highest LOD data that has been loaded is higher in detail than a minimum LOD data for the asset; setting an LOD clamp to a representative value of the highest LOD data; storing the LOD clamp to a GPU cache; and clamping the LOD data used during execution of the draw call to the highest LOD data based on the LOD clamp.

8

8. The method of claim 7 , further comprising: executing by the GPU a first command in the command buffer, the first command being configured to query a load status of the asset into the system memory.

9

9. The method of claim 7 , further comprising: tracking by the asset store controller the loading of a plurality of LOD data for an asset into system memory; and using a GPU appication programming interface (API) by the asset store controller to notify the GPU of the load status for the asset.

10

10. The method of claim 1 , wherein each of one or more level of detail (LOD) data for a corresponding asset is a texture, wherein each of the one or more LOD data for the corresponding asset is a corresponding mipmap.

11

11. The method of claim 1 , wherein each of one or more LOD data for a corresponding asset is a model.

12

12. The method of claim 1 , further comprising: notifying the CPU by the GPU that the draw call has been executed; and freeing by the CPU memory space in system memory used for storing the one or more LOD data.

13

13. The method of claim 1 , wherein the computing system is a distributed network of servers or a gaming console.

14

14. The method of claim 1 , further comprising: querying by the CPU the asset store controller as to assets stored in the system memory; or querying by the CPU the asset store controller as to assets that are used for a corresponding video frame; or querying by the CPU the asset store controller as to assets stored in the asset store.

15

15. The method of claim 1 , further comprising: tracking usage of one or more assets by the GPU to render the video frame.

16

16. The method of claim 15 , further comprising: tracking usage of one or more LOD data for a corresponding asset by the GPU.

17

17. The method of claim 15 , further comprising: tracking minimum or maximum LOD data used by the GPU for a texture asset; or tracking number of accesses by the GPU to the texture asset; or tracking number of accesses by the GPU to the texture asset by LOD data.

18

18. The method of claim 15 , further comprising: tracking minimum or maximum LOD data used by the GPU for a model asset; or tracking vertex count used by the model asset.

19

19. The method of claim 15 , further comprising: using tracking information of usage of assets in determining one or more identified assets or one or more identified LOD data of the one or more identified assets to free from the system memory; or using the tracking information of usage of assets to prioritize between freeing of two or more assets.

20

20. The method of claim 15 , further comprising: using tracking information of usage of assets to determine one or more identified assets or one or more identified LOD data of the one or more identified assets to load into system memory; or using the tracking information of usage of assets to prioritize between loading of two or more assets.

21

21. The method of claim 1 , further comprising: updating the asset store in an asset aware fashion.

22

22. The method of claim 21 , further comprising: updating the asset store in the asset aware fashion when one or more assets are generated locally; or updating the asset store in the asset aware fashion from within a data center; or updating the asset store in the asset aware fashion over a network.

23

23. A method for executing a game by a computing system that uses a central processing unit (CPU) and graphics processing unit (GPU) for generating video frames, comprising: generating a draw call for a video frame of the video frames by the CPU; writing one or more commands for the draw call to a command buffer at a bind time; writing asset aware data (AAD) for the draw call to the command buffer at the bind time, and begin at the bind time loading one or more level of detail (LOD) data from an asset store to a system memory used by the computing system; executing by the GPU the draw call for the video frame using LOD data written to the system memory, the GPU using at least a minimum of LOD data based on the AAD; determining prior to a draw time for the draw call a highest LOD data that has been loaded to the system memory for an asset used by the draw call; determining that the highest LOD data that has been loaded is higher in detail than a minimum LOD data for the asset; setting an LOD clamp to a representative value of the highest LOD data; storing the LOD clamp to a GPU cache; and clamping the LOD data used during execution of the draw call to the highest LOD data based on the LOD clamp.

24

24. A method for executing a game by a computing system that uses a central processing unit (CPU) and graphics processing unit (GPU) for generating video frames, comprising: generating a draw call for a video frame of the video frames by the CPU; writing one or more commands for the draw call to a command buffer at a bind time; writing asset aware data (AAD) for the draw call to the command buffer at the bind time, and begin at the bind time loading one or more level of detail (LOD) data from an asset store to a system memory used by the computing system, wherein the begin at the bind time loading one or more LOD data includes: loading a minimum LOD data from a plurality of LOD data for an asset; and after loading the minimum LOD data for the asset, loading remaining LOD data from the plurality of LOD data from lowest to highest detail; and executing by the GPU the draw call for the video frame using LOD data written to the system memory, the GPU using at least a minimum of LOD data based on the AAD.

25

25. A method for executing a game by a computing system that uses a central processing unit (CPU) and graphics processing unit (GPU) for generating video frames, comprising: generating a draw call for a video frame of the video frames by the CPU; writing one or more commands for the draw call to a command buffer at a bind time; writing asset aware data (AAD) for the draw call to the command buffer at the bind time, and begin at the bind time loading one or more level of detail (LOD) data from an asset store to a system memory used by the computing system; and executing by the GPU the draw call for the video frame using LOD data written to the system memory, the GPU using at least a minimum of LOD data based on the AAD, wherein the AAD includes for a corresponding asset used for the draw call a corresponding asset ID, a corresponding minimum LOD data, and a corresponding load priority of the corresponding asset over other assets being drawn for the video frame.

26

26. A method for executing a game by a computing system that uses a central processing unit (CPU) and graphics processing unit (GPU) for generating video frames, comprising: generating a draw call for a video frame of the video frames by the CPU; writing one or more commands for the draw call to a command buffer at a bind time; writing asset aware data (AAD) for the draw call to the command buffer at the bind time, and begin at the bind time loading one or more level of detail (LOD) data from an asset store to a system memory used by the computing system; executing by the GPU the draw call for the video frame using LOD data written to the system memory, the GPU using at least a minimum of LOD data based on the AAD; and hinting by the CPU to the asset store controller to load LOD data for an asset according to priority information for the LOD data, wherein the asset is for a predicted draw call or object.

27

27. A computing system for executing a game to generate video frames, comprising: a central processing unit (CPU) configured for executing the game, the CPU generating a draw call for a video frame of the video frames, the draw call including commands; a command buffer configured for storing asset aware data (AAD) and the commands for the draw call, the AAD and the commands being written into the command buffer by the CPU at a bind time; an asset store configured for storing a plurality of assets of the game including one or more level of detail (LOD) data used by the draw call; a system memory configured for storing the one or more level of detail (LOD) data used by the draw call, loading of the one or more LOD data from the asset store being triggered by the CPU at the bind time by sending from the CPU at the bind time a request to an asset store controller to load the one or more LOD data from the asset store to the system memory, wherein the one or more LOD data begins loading to system memory while writing the AAD to the command buffer; and a graphics processing unit (GPU) configured for executing the commands of the draw call for the video frame using LOD data written to the system memory, the GPU using at least a minimum of LOD data based on the AAD.

28

28. A non-transitory computer-readable medium storing a computer program for executing a game by a computing system that uses a central processing unit (CPU) and graphics processing unit (GPU) for generating video frames, the computer-readable medium comprising: program instructions for generating a draw call for a video frame of the video frames by the CPU; program instructions for writing one or more commands for the draw call to a command buffer at a bind time; program instructions for writing asset aware data (AAD) for the draw call to the command buffer at the bind time, and begin loading at the bind time one or more level of detail (LOD) data from an asset store to a system memory used by the computing system by sending from the CPU at the bind time a request to an asset store controller to load the one or more LOD data from the asset store to the system memory; and program instructions for executing by the GPU the draw call for the video frame using LOD data written to the system memory, the GPU using at least a minimum of LOD data based on the AAD.

Patent Metadata

Filing Date

Unknown

Publication Date

April 20, 2021

Inventors

Mark E. Cerny

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “ASSET AWARE COMPUTING ARCHITECTURE FOR GRAPHICS PROCESSING” (10981059). https://patentable.app/patents/10981059

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.