Automatic run-time identification of textures

US9582919B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9582919-B2
Application numberUS-57668909-A
CountryUS
Kind codeB2
Filing dateOct 9, 2009
Priority dateOct 9, 2009
Publication dateFeb 28, 2017
Grant dateFeb 28, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

In one embodiment, a texture identification method and system are disclosed that uniquely identifies textures as they are used by the application and associates collected, inferred, or user-specified data with objects not owned by the library. In various embodiments, textures may be identified in various scenarios such as when textures are loaded, deleted, relocated, reloaded, and the like. In a further embodiment, APIs are provided that the application can call to provide useful information to the system that can improve the quality of the data in some situations.

First claim

Opening claim text (preview).

What is claimed: 1. A method for tracking usage of graphics assets in a system for rendering graphics using the graphics assets, wherein the graphics assets are associated with a software program and loaded into a computer memory and processed by a rendering subsystem, the method comprising: during execution of the software program, receiving indication that a requesting process has requested that one of the graphics assets be processed by the rendering subsystem; in response to the indication, instrumenting an instruction set for said processing by the rendering subsystem, said instrumenting comprising modifying a shader during execution of the software program and adding the modified shader to a shader cache; receiving information comprising an identifier, memory location, and requested use for said one of the graphics assets; and during processing of the one of the graphics assets by the rendering subsystem and using the instrumented instruction set, determining that a matching graphics asset was previously identified at the memory location, updating a record associated with the matching graphics asset, and storing a timestamp corresponding to a system time, and otherwise determining a unique identifier for said one of the graphics assets and storing a new entry comprising the memory location, the timestamp, and requested use, wherein the record and timestamp are stored during execution of the software program, and the record and timestamp are usable for analysis of usage of the graphics assets by the software program after completion of said execution of the software program. 2. The method of claim 1 , wherein said updating a record further comprises storing a description of the matching graphics asset. 3. The method of claim 1 , wherein said updating a record further comprises maintaining a history of the memory location that tracks a predetermined number of shared graphics assets that have been loaded at the memory location. 4. The method of claim 1 , wherein said identifier comprises a thumbnail of the graphics asset. 5. The method of claim 1 , wherein said identifier comprises a hash of the graphics asset. 6. The method of claim 1 , further comprising receiving from the requesting process information to assist said determining the unique identifier. 7. The method of claim 6 , wherein the information comprises a file name of the graphics asset. 8. The method of claim 6 , wherein the information comprises information describing a memory relocation of the graphics asset. 9. The method of claim 6 , wherein the information comprises an indication that the graphics asset is replaced with another shared asset with a matching description and a different unique identifier. 10. The method of claim 6 , wherein the information comprises an indication that the graphics asset has been deleted. 11. The method of claim 1 , wherein the rendering system comprises a graphics processing unit, the graphics assets are textures, and the system is a gaming console. 12. A computing system configured to tracking usage of graphics assets in a system for rendering graphics using the graphics assets, wherein the graphics assets are associated with a software program and loaded into a computer memory and processed by a rendering subsystem, the computing system comprising at least one processor, a user interface device, and at least one memory communicatively coupled to said at least one processor, the at least one memory having stored therein computer-executable instructions that, when executed by said at least one processor, cause the system to: receive information comprising an identifier, memory location, and requested use for one of the graphics assets being processed by the rendering subsystem; instrument shaders associated with said processing by the rendering subsystem by modifying the shaders during execution of the software program and pointing to the modified shaders instead of the shaders; and during processing of the one of the graphics assets by the rendering subsystem and using the instrumented shaders, determine that a matching graphics asset was previously identified at the memory location, update a record associated with the matching graphics asset, and store a timestamp corresponding to a system time, and otherwise determine a unique identifier for said one of the graphics assets and store a new entry comprising the memory location, the timestamp, and requested use, wherein the record and timestamp are stored for analysis of usage of the graphics assets by the software program after completion of said execution of the software program. 13. The system of claim 12 , wherein the rendering subsystem comprises a graphics processing unit and the graphics assets comprise textures. 14. The system of claim 13 , wherein said update a record further comprises storing data indicating which mipmap levels have been read. 15. The system of claim 13 , wherein an application programming interface (API) is provided to enable tracking of the graphics assets. 16. The system of claim 12 , wherein a counter is used to track a number of times the graphics asset is used. 17. The system of claim 12 , wherein said shaders are instrumented such that the unique identifier and usage data for said one of the graphics assets is tracked by the system. 18. A computer-readable storage device comprising computer-readable instructions for tracking usage of graphics assets in a system for rendering graphics using the graphics assets, wherein the graphics assets are associated with a software program and loaded into a computer memory and processed by a rendering subsystem, said computer-readable instructions comprising instructions for: during execution of the software program, receiving indication that a requesting process has requested that one of the graphics assets be processed by the rendering subsystem; in response to the indication, instrumenting an instruction set associated with processing by the rendering subsystem, said instrumenting comprising modifying a shader during execution of the software program and substituting the modified shader for the shader; receiving information comprising an identifier, memory location, and requested use for said one of the graphics assets; and during processing of the one of the graphics assets by the rendering subsystem and using the instrumented instruction set, determining that a matching graphics asset was previously identified at the memory location, updating a record associated with the matching graphics asset, and storing a timestamp corresponding to a system time, and otherwise determining a unique identifier for said one of the graphics assets and storing a new entry comprising the memory location, the timestamp, and requested use, wherein the record and timestamp are stored for analysis of usage of the graphics assets by the software program after completion of said execution of the software program. 19. The computer-readable storage device of claim 18 , further comprising instructions for instrumenting a rendering subsystem instruction such that the unique identifier and usage data for said one of the assets is tracked by the system. 20. The computer-readable storage device of claim 18 , further comprising instructions for generating a summary of the information for each graphics asset as a function of time.

Assignees

Inventors

Classifications

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9582919B2 cover?
In one embodiment, a texture identification method and system are disclosed that uniquely identifies textures as they are used by the application and associates collected, inferred, or user-specified data with objects not owned by the library. In various embodiments, textures may be identified in various scenarios such as when textures are loaded, deleted, relocated, reloaded, and the like. In …
Who is the assignee on this patent?
Gould Jason Matthew, Arevalo Baeza Juan Carlos, Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06T15/005. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Feb 28 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).