IP Library Granted Patent US 9,682,318
Granted Patent B2
US 9,682,318 · App. 15/194,514 · Granted Jun 20, 2017

System and method for improving the graphics performance of hosted applications

Inventor: Timothy Cotter (Sunnyvale, CA)
Assignee: Sony Interactive Entertainment America LLC
A63F13/355A63F13/12A63F13/335A63F13/352H04L65/403H04L65/4076H04L65/605H04L67/38H04N21/233H04N21/235H04N21/2343H04N21/2381H04N21/23406H04N21/4781H04N21/6125H04N21/6587H04N21/8458A63F2300/402A63F2300/407A63F2300/534A63F2300/552A63F2300/554A63F2300/556A63F2300/5593A63F2300/572A63F2300/577A63F2300/636A63F2300/69H04N21/6405
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,682,318
App. No.
15/194,514
Granted
Jun 20, 2017
Kind
B2
Abstract

A method includes the following operations: (1) executing an application that that generates a series of video frames using a graphics processing unit (GPU); (2) determining that a first video frame in the series has been completely written to a back buffer; (3) determining whether a current scan line of a second video frame is outside of a specified region, where the second video frame is stored in a front buffer and is being read out line by line following receipt of a monitored synchronizing signal; (4) presenting the first video frame to the front buffer without frame transitions, if the current scan line is outside of the specified region and is in a vertical blanking interval (VBI); and (5) presenting the first video to the front buffer with frame transitions, if the current scan line is outside of the specified region and is not in the VBI.

Claims (40)

1. A method comprising operations of:

executing an application that includes calls to an application program interface (API) for a graphics engine that generates a series of video frames using a graphics processing unit (GPU);

determining that a first video frame in the series has been completely written to a back buffer;

determining whether a current scan line of a second video frame is outside of a specified region, wherein the second video frame is stored in a front buffer and is being read out line by line following receipt of a monitored synchronizing signal;

inserting busy work for the GPU if the current scan line is inside of the specified region;

presenting the first video frame to the front buffer without frame transitions, if the current scan line is outside of the specified region and is in a vertical blanking interval (VBI); and

presenting the first video frame to the front buffer with frame transitions, if the current scan line is outside of the specified region and is not in the VBI.

2. The method of claim 1 , further comprising an operation of transferring the first video frame from a shared buffer to the back buffer.

3. The method of claim 1 , wherein the second video frame is being read out line by line to a display.

4. The method of claim 1 , wherein the second video frame is being read out line by line to an encoder for compression.

5. The method of claim 4 , wherein the encoder generates a compressed video stream that is transmitted over a network to a client device that decompresses and displays the video stream.

6. The method of claim 5 , wherein the video stream is low latency.

7. The method of claim 1 , wherein each of the operations is performed by one or more servers that receive input from the client device through an inbound routing system which includes a plurality of network switches.

8. The method of claim 1 , wherein the busy work includes one or more invisible triangles, each of which takes at least a specified time.

9. The method of claim 1 , wherein the busy work includes one or more vertical quads, each of which misses all pixel centers and takes at least a specified time.

10. A method comprising operations of:

executing an application that includes calls to an application program interface (API) for a graphics engine that generates a series of video frames using a graphics processing unit (GPU);

determining that a first video frame in the series has been completely written to a back buffer;

determining whether a current scan line of a second video frame is outside of a specified region, wherein the second video frame is stored in a front buffer and is being read out line by line to a display following receipt of a monitored synchronizing signal;

inserting busy work for the GPU if the current scan line is inside of the specified region;

presenting the first video frame to the front buffer without frame transitions, if the current scan line is outside of the specified region and is in a vertical blanking interval (VBI);

presenting the first video frame to the front buffer with frame transitions, if the current scan line is outside of the specified region and is not in the VBI; and

transferring the first video frame from a shared buffer to the back buffer, wherein each of the operations is performed by one or more servers that receive input from the client device through an inbound routing system which includes a plurality of network switches.

11. The method of claim 10 , wherein the frame transitions include a mixing operation.

12. The method of claim 10 , wherein the second video frame is being read out line by line to an encoder for compression.

13. The method of claim 12 , wherein the encoder generates a compressed video stream that is transmitted over a network to a client device that decompresses and displays the video stream.

14. The method of claim 13 , wherein the video stream is low latency.

15. The method of claim 10 , the frame transitions include a blending operation.

16. The method of claim 10 , wherein the busy work includes one or more invisible triangles, each of which takes at least a specific time.

17. The method of claim 10 , wherein the busy work includes one or more vertical quads, each of which misses all pixel centers and takes at least a specified time.

18. A method comprising operations of:

executing an application that includes calls to an application program interface (API) for a graphics engine that generates a series of video frames using a graphics processing unit (GPU);

determining that a first video frame in the series has been completely written to a back buffer;

determining whether a current scan line of a second video frame is outside of a specified region, wherein the second video frame is stored in a front buffer and is being read out line by line to an encoder for compression following receipt of a monitored synchronizing signal;

inserting busy work for the GPU if the current scan line is inside of the specified region;

presenting the first video frame to the front buffer without frame transitions, if the current scan line is outside of the specified region and is in a vertical blanking interval (VBI);

presenting the first video frame to the front buffer with frame transitions, if the current scan line is outside of the specified region and is not in the VBI; and

transferring the first video frame from a shared buffer to the back buffer, wherein each of the operations is performed by one or more servers that receive input from the client device through an inbound routing system which includes a plurality of network switches.

19. The method of claim 18 , wherein the encoder generates a compressed video stream that is transmitted over a network to a client device that decompresses and displays the video stream.

20. The method of claim 19 , wherein the video stream is low latency.

Assignments (1)
MERGER Recorded Mar 30, 2020
From: SONY INTERACTIVE ENTERTAINMENT AMERICA LLC
To: SONY INTERACTIVE ENTERTAINMENT LLC
Reel/Frame 053323/0567 →
Continuity (6)
Continuation 13789621 · Mar 7, 2013
Continuation In Part 13232693 · Sep 14, 2011
Continuation In Part 13232971 · Sep 14, 2011
Continuation In Part 13232979 · Sep 14, 2011
Continuation In Part 13232985 · Sep 14, 2011
Related Publication 20160303479A1 · Oct 20, 2016