Facilitating performance analysis for processing
AssigneeMicrosoft Corporation
InventorsKyle R. Johns, J. Andrew Goossen
Life of this patent
Estimating the term…
Abstract
Facilitating performance analysis for processing includes capturing a state of a processing unit and capturing a plurality of commands submitted to the processing unit for processing. Both the captured state and the captured plurality of commands are also saved. The saved state and commands can be used for analysis, such as by processing only a subset of the commands or processing a modified set of the commands.
Claims15
A method comprising:
- identifying a set of commands to be submitted to a processing unit, wherein the set of commands were captured and saved as they were previously submitted to the processing unit, and wherein the processing unit comprises a graphics processing unit;
- selecting a subset of the set of commands;
- submitting the subset of the set of commands to the processing unit for processing;
- analyzing processing performed by the processing unit in response to the subset of the set of commands
- analyzing the set of commands;
- determining, based on the analysis of the set of commands whether one or more recommendations for using the graphics processing unit are violated by the set of commands;
- if one or more recommendations are violated by the set of commands then:
- selecting one of the violated recommendations;
- determining how much faster a frame could have been drawn if the selected recommendation had not been violated;
- and
- issuing a warning identifying both the selected recommendation that has been violated and how much faster the frame could have been drawn if the selected recommendation had not been violated.
One or more computer readable media having one or more instructions that, when executed by one or more processors, causes the one or more processors to:
- modify a stream of commands that were captured and saved as they were previously submitted to a processing unit, wherein the processing unit comprises a graphics processing unit, and wherein the stream of commands comprises commands previously submitted to the graphics processing unit to have a frame of video drawn;
- submit the modified stream of commands to the processing unit;
- and
- determine a difference between a first amount of time required by the processing unit to process the stream of commands and a second amount of time required by the processing unit to process the modified stream of commands, wherein the first amount of time required by the processing unit to process the stream of commands comprises the amount of time required by the graphics processing unit to draw the frame using the stream of commands and wherein the second amount of time required by the processing unit to process the modified stream of commands comprises the amount of time required by the graphics processing unit to draw the frame using the modified stream of commands.
One or more computer readable media having one or more instructions that, when executed by one or more processors, causes the one or more processors to:
- capture a state of a graphics processing unit;
- capture a plurality of commands submitted to the graphics processing unit in order to draw a frame of video, wherein to capture the plurality of commands is to:
- identify a memory location referenced by one of the plurality of commands;
- capture the contents of the memory location;
- determine whether the memory location was referenced by a previous one of the plurality of commands;
- if the memory location was not referenced by a previous one of the plurality of commands, then capture the contents of the memory location;
- and
- if the memory location was referenced by a previous one of the plurality of commands, then check whether the contents of the memory location are the same as the contents of the memory location when the memory location was referenced by the previous command, and capture the contents of the memory location only if the contents of the memo location are not the same as the contents of the memory location when the memory location was referenced by the previous command;
- and
- save both the captured state and the captured plurality of commands.
Dependencies are inferred from the claim text.