IP Library Granted Patent US 10,953,316
Granted Patent B2
US 10,953,316 · App. 16/445,093 · Granted Mar 23, 2021

Method and apparatus for improving efficiency without increasing latency in graphics processing

Inventors: Jacob P. Stine (East Palo Alto, CA); Victor Octav Suba Miura (Foster City, CA)
Assignee: SONY INTERACTIVE ENTERTAINMENT INC.
A63F13/00A63F13/12A63F13/355A63F13/52G06T15/005
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 10,953,316
App. No.
16/445,093
Granted
Mar 23, 2021
Kind
B2
Abstract

In methods and apparatuses for reducing latency in graphics processing inputs are received and a first set of frames is generated and stored. Once all of the frames in the first set of frames have been produced, they may be delivered to a GPU. Each frame is then rendered by the GPU, a latency increase resulting from storing the first set of frames is less than a decrease in overall latency resulting from avoiding thread stalls due to the GPU running out of frames to process. It is emphasized that this abstract is provided to comply with the rules requiring an abstract that will allow a searcher or other reader to quickly ascertain the subject matter of the technical disclosure. It is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims.

Claims (36)

1. A non-transitory computer readable medium containing program instructions for reducing latency in graphics processing, wherein execution of the program instructions by one or more processors of a computer system causes the one or more processors to carry out a method, the method comprising:

storing each frame in a first set of frames after the frame has been generated delivering the first set of frames to a graphics processing unit(GPU) thread;

delaying the GPU thread from starting processing any frames until one or more of the frames in the first set of frames have been stored; and

rendering the first set of frames with the GPU thread to produce a rendered first set of frames,

wherein a latency increase resulting from storing the first set of frames is less than a decrease in overall latency resulting from avoiding thread stalls due to the GPU thread running out of frames to process.

2. The non-transitory computer readable medium of claim 1 , wherein the method further comprises generating the first set of frames with a central processing unit (CPU) thread, wherein the CPU thread is configured to generate the first set of frames by processing one or more first inputs from a client device.

3. The non-transitory computer readable medium of claim 2 , wherein the CPU thread begins generating a second set of frames by processing one or more second inputs after the first set of frames have been delivered to the GPU thread.

4. The non-transitory computer readable medium of claim 3 , wherein the GPU thread renders the first set of frames while the CPU thread is generating the second set of frames.

5. The non-transitory computer readable medium of claim 1 , wherein the method further comprises generating the first set of frames with a central processing unit (CPU) thread, wherein the CPU thread generates the first set of frames by processing one or more first inputs from a client device according to instructions in a legacy game's executable code.

6. The non-transitory computer readable medium of claim 1 , wherein the first set of frames includes one or more display lists.

7. The non-transitory computer readable medium of claim 1 , wherein the method further comprises generating the first set of frames with a central processing unit (CPU) thread, wherein generating the first set of frames includes generating graphics primitives for each of the frames in the first set of frames.

8. The non-transitory computer readable medium of claim 1 , wherein the method further comprises generating the first set of frames with a central processing unit (CPU) thread, wherein generating the first set of frames includes high level graphics processing.

9. The non-transitory computer readable medium of claim 1 , wherein rendering the first set of frames includes using a graphics pipeline.

10. The non-transitory computer readable medium of claim 9 , wherein the graphics pipeline utilizes tile based rasterization.

11. The non-transitory computer readable medium of claim 1 , wherein the method further comprises:

delivering the rendered first set of frames to an encoder; and

encoding the rendered first set of frames to produce an encoded first set of frames.

12. The non-transitory computer readable medium of claim 11 , wherein the method further comprises delivering the encoded first set of frames to the client device platform.

13. The non-transitory computer readable medium of claim 1 , wherein the GPU thread is idle until the one or more of the frames in the first set of frames has been stored.

14. The non-transitory computer readable medium of claim 1 , wherein the GPU thread is delayed from starting processing any frames until multiple frames in the first set of frames have been stored.

15. A method, comprising:

storing each frame in a first set of frames after the frame has been generated;

delivering the first set of frames from the buffer to a graphics processing unit GPU thread;

delaying the GPU thread from starting processing any frames until one or more of the frames in the first set of frames have been stored; and

rendering the first set of frames with the GPU thread to produce a rendered first set of frames,

wherein a latency increase resulting from storing the first set of frames is less than a decrease in overall latency resulting from avoiding thread stalls due to the GPU thread running out of frames to process.

16. The method of claim 15 , wherein the GPU thread is delayed from starting processing any frames until multiple frames in the first set of frames have been stored.

17. A system, comprising:

a processor;

a memory coupled to the processor;

one or more instructions embodied in memory for execution by the processor, the instructions being configured to implement a method in, the method comprising:

storing each frame in a first set of frames after the frame has been generated delivering the first set of frames to the GPU thread;

delaying the GPU thread from starting processing any frames until one or more of the frames in the first set of frames have been stored; and

rendering the first set of frames with the GPU thread to produce a rendered first set of frames,

wherein a latency increase resulting from storing the first set of frames is less than a decrease in overall latency resulting from avoiding thread stalls due to the GPU thread running out of frames to process.

18. The emulator of claim 17 , wherein the GPU thread is delayed from starting processing any frames until multiple frames in the first set of frames have been stored.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 18, 2019
From: STINE, JACOB P.; SUBA MIURA, VICTOR OCTAV
To: SONY COMPUTER ENTERTAINMENT INC.
Reel/Frame 049508/0853 →
CHANGE OF NAME Recorded Jun 18, 2019
From: SONY COMPUTER ENTERTAINMENT INC.
To: SONY INTERACTIVE ENTERTAINMENT INC.
Reel/Frame 049512/0590 →
Continuity (3)
Continuation 15838065 · Dec 11, 2017
Continuation 13631812 · Sep 28, 2012
Related Publication 20190299089A1 · Oct 3, 2019