IP Library › Granted Patent US 8,667,473
Granted Patent B2
US 8,667,473 · App. 11/931,432 · Granted Mar 4, 2014

Analyzing video game performance using non-intrusive capture and storage of run-time game data

Inventors: J. Andrew Goossen (Issaquah, WA); Parham Mohadjer (Redmond, WA); Matthew Kimball (Seattle, WA); Randal N. Linden (Mercer Island, WA); David Aronson (Woodinville, WA)
Assignee: Microsoft Corporation
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 8,667,473
App. No.
11/931,432
Granted
Mar 4, 2014
Kind
B2
Abstract

The performance of a video game is analyzed using non-intrusive capture and storage of game data. A non-linear capture format is used for capturing run-time game data. The run-time game data includes run-time parameters associated with execution of an application code as well as run-time parameters associated with hardware of a game platform upon which the application code is being executed. The captured data is stored in a storage medium using a non-contiguous storage format.

Claims (55)

1. A method for analyzing performance of a video game, the method comprising:

capturing, using a frame format, run-time game data responsive to hardware of a game platform being in a minimal impact state, wherein the run-time game data comprises run-time parameters associated with execution of application code of the video game and run-time parameters associated with the hardware of the game platform upon which the application code of the video game is being executed;

storing the run-time parameters associated with the hardware of the game platform using a non-contiguous storage format in accordance with a capture sequence that is non-linear, wherein the hardware of the game platform is a graphics processor unit (GPU);

responsive to a request to review performance of the hardware of the game platform, concatenating the stored run-time parameters associated with the hardware of the game platform in accordance with the capture sequence that was non-linear; and

displaying performance data in a frame-by-frame format, based on the run-time game data captured using the frame format.

2. The method of claim 1 , further comprising:

capturing a video image when the application code of the video game is being executed; and

storing the video image along with the run-time game data.

3. The method of claim 2 , further comprising:

identifying a performance glitch during execution of the application code of the video game;

providing a performance monitor display; and

displaying in the performance monitor display, at least one of the stored video image or a portion of the stored run-time game data corresponding to a time of occurrence of the performance glitch.

4. The method of claim 3 , wherein identifying the performance glitch comprises identifying an abnormal execution time for a portion of the application code of the video game.

5. The method of claim 3 , wherein identifying the performance glitch comprises visually observing a display screen of the video game during execution of the application code of the video game.

6. The method of claim 1 , wherein the minimal impact state is at least one of:

the hardware of the game platform executing a low priority task; or

the hardware of the game platform being in an idle state.

7. The method of claim 1 , wherein the hardware of the game platform comprises at least one of a central processing unit (CPU) or a data buffer.

8. The method of claim 1 , wherein the hardware of the game platform comprises a central processing unit (CPU) coupled to the graphics processor unit (GPU), and wherein the coupling is configured to permit asynchronous, parallel operation of the CPU and the GPU.

9. The method of claim 8 , further comprising:

identifying a performance glitch during execution of the application code of the video game;

providing a performance monitor display;

retrieving from storage, run-time game data of the CPU relative to the GPU; and

displaying in the performance monitor display, at least one of the run-time parameters and run-time measurements of the CPU relative to the GPU.

10. The method of claim 9 , further comprising:

retrieving from storage, at least one run-time parameter associated with execution of the application code of the video game; and

displaying in the performance monitor display, the at least one run-time parameter associated with execution of the application code of the video game along with at least one run-time parameter of the CPU relative to the GPU.

11. A system for analyzing performance of a video game, the system comprising:

a game platform configured to run the video game;

a debugger software module coupled to the game platform, wherein the debugger software module is configured to:

capture, using a frame format, run-time game data responsive to hardware of the game platform being in a minimal impact state, wherein the run-time game data comprises run-time parameters associated with execution of application code of the video game and run-time parameters associated with the hardware of the game platform upon which the application code of the video game is being executed,

store the run-time parameters associated with the hardware of the game platform using a non-contiguous storage format in accordance with a capture sequence that is non-linear, wherein the hardware of the game platform is a graphics processor unit (GPU), and

responsive to a request to review performance of the hardware of the game platform, concatenate the stored run-time parameters associated with the hardware of the game platform in accordance with the capture sequence that was non-linear; and

a performance monitor configured to display performance data in a frame-by-frame format, based on the run-time game data captured using the frame format.

12. The system of claim 11 , further comprising:

a storage buffer configured to perform circular logging of the run-time game data.

13. The system of claim 11 , further comprising:

a short-term storage buffer coupled to a long-term storage buffer, wherein the short-term storage buffer is configured to store the run-time game data for a first amount of time, and wherein the long-term storage buffer is configured to store the run-time game data for a second amount of time.

14. The system of claim 11 , wherein the performance monitor is further configured to display at least a portion of stored run-time game data over a user-selected period of time.

15. The system of claim 11 , wherein the hardware of the game platform comprises a central processing unit (CPU) coupled to the graphics processor unit (GPU), wherein the coupling is configured to permit asynchronous, parallel operation of the CPU and the GPU, and wherein the performance monitor is further configured to display run-time parameters of the CPU relative to the GPU.

16. A computer-readable storage medium that is not a transitory signal, the computer-readable storage medium having stored thereon computer-readable instructions for performing the steps of:

capturing, using a frame format, run-time game data responsive to hardware of a game platform being in a minimal impact state, wherein the run-time game data comprises run-time parameters associated with execution of application code of a video game and run-time parameters associated with the hardware of the game platform upon which the application code of the video game is being executed;

storing the run-time parameters associated with the hardware of the game platform using a non-contiguous storage format in accordance with a capture sequence that is non-linear, wherein the hardware of the game platform is a graphics processor unit (GPU);

responsive to a request to review performance of the hardware of the game platform, concatenating the stored run-time parameters associated with the hardware of the game platform in accordance with the capture sequence that was non-linear; and

displaying performance data in a frame-by-frame format, based on the run-time game data captured using the frame format.

17. The computer-readable storage medium of claim 16 , having further stored thereon computer-readable instructions for performing the step of:

storing the run-time game data using a storage buffer configured to perform circular logging of the run-time game data.

18. The computer-readable storage medium of claim 16 , having further stored thereon computer-readable instructions for performing the steps of:

capturing a video image when the application code of the video game is being executed; and

storing the video image along with the run-time game data.

19. The computer-readable storage medium of claim 18 , having further stored thereon computer-readable instructions for performing the steps of:

providing a performance monitor display; and

displaying in the performance monitor display, at least one of the stored video image or a portion of the stored run-time game data corresponding to a time of occurrence of a performance glitch.

20. The computer-readable storage medium of claim 18 , having further stored thereon computer-readable instructions for performing the step of:

capturing run-time parameters of a central processing unit (CPU) coupled to the graphics processor unit (GPU), wherein the CPU and the GPU are components of the game platform.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2008
From: GOOSSEN, J. ANDREW; MOHADJER, PARHAM; KIMBALL, MATTHEW; LINDEN, RANDAL N.; ARONSON, DAVID
To: MICROSOFT CORPORATION
Reel/Frame 020436/0220 →
Continuity (1)
Related Publication 20090113303A1 · Apr 30, 2009