IP Library › Granted Patent US 12,394,131
Granted Patent B2
US 12,394,131 · App. 18/340,017 · Granted Aug 19, 2025

Graphics processing architecture in a cloud gaming environment

Inventor: Gregoire Pean (San Francisco, CA)
Assignee: Netflix, Inc.
G06T15/005A63F13/355G06T1/20G06T1/60
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 12,394,131
App. No.
18/340,017
Granted
Aug 19, 2025
Kind
B2
Abstract

The disclosed computer-implemented method includes instantiating a simulated library in a shared memory that is shared between a plurality of hardware components in a graphics processing unit (GPU), diverting media frame generation input events produced as part of a multimedia application to the simulated library in the shared memory, selecting at least one media frame for rendering, according to the media frame generation input events, from within the simulated library in the shared memory, queueing the selected media frame for encoding before rendering of the selected media frame is complete and, upon determining that the selected media frame has been rendered, encoding the rendered media frame according to the queue. Various other methods, systems, and computer-readable media are also disclosed.

Claims (37)

1. A computer-implemented method comprising:

instantiating a simulated library in a shared memory that is shared between a plurality of hardware components in a graphics processing unit (GPU);

diverting one or more media frame generation input events produced as part of a multimedia application to the simulated library in the shared memory;

selecting at least one media frame for rendering, according to the one or more media frame generation input events, from within the simulated library in the shared memory;

queueing the selected media frame for encoding before rendering of the selected media frame is complete; and

upon determining that the selected media frame has been rendered, encoding the rendered media frame according to the queueing.

2. The computer-implemented method of claim 1 , wherein the selected frame comprises a video frame.

3. The computer-implemented method of claim 1 , wherein the selected frame comprises an audio frame.

4. The computer-implemented method of claim 1 , wherein the multimedia application comprises a video game.

5. The computer-implemented method of claim 1 , wherein the one or more frame generation input events are generated as part of a swapchain process running on the GPU, and wherein the one or more frame generation input events are diverted to the simulated library in the shared memory without altering the swapchain process.

6. The computer-implemented method of claim 5 , further comprising inserting the encoded rendered frame back into the swapchain process of a Vulkan driver.

7. The computer-implemented method of claim 1 , wherein the simulated library allows the media frame to be rendered and encoded without creating an input window.

8. The computer-implemented method of claim 7 , wherein peripheral inputs are injected at a predetermined injection point at a multimedia application process level.

9. The computer-implemented method of claim 7 , wherein the multimedia application functions as if the multimedia application were communicating directly with a display server.

10. The computer-implemented method of claim 1 , wherein media frame references and audio buffers are provided to a game support process, creating a pipeline directly from the multimedia application to an encoder.

11. The computer-implemented method of claim 10 , wherein the created pipeline directly from the multimedia application to the encoder allows synchronization to be performed on the GPU without support from an associated central processing unit (CPU).

12. The computer-implemented method of claim 11 , wherein the CPU provides at least one of: metadata, one or more fence references, or one or more frame references to one or more components of the GPU, while the synchronization is performed between hardware components of the GPU.

13. A system comprising:

at least one physical processor; and

physical memory comprising computer-executable instructions that, when executed by the physical processor, cause the physical processor to:

instantiate a simulated library in a shared memory that is shared between a plurality of hardware components in a graphics processing unit (GPU);

divert one or more media frame generation input events produced as part of a multimedia application to the simulated library in the shared memory;

select at least one media frame for rendering, according to the one or more media frame generation input events, from within the simulated library in the shared memory;

queue the selected media frame for encoding before rendering of the selected media frame is complete; and

upon determining that the selected media frame has been rendered, encode the rendered media frame according to the queueing.

14. The system of claim 13 , wherein diverting the one or more media frame generation input events produced as part of a multimedia application to the simulated library allows dynamic control over a frame rate of the media frames produced by the multimedia application.

15. The system of claim 13 , wherein diverting the one or more media frame generation input events produced as part of the multimedia application to the simulated library in the shared memory allows the multimedia application to be suspended for at least a specified amount of time.

16. The system of claim 13 , further comprising: upon determining that a client device has dropped one or more media frames, reencoding the dropped frame by the GPU.

17. The system of claim 13 , wherein a pacing module is implemented within the GPU to avoid synchronization drift with an associated output display.

18. The system of claim 13 , further comprising attaching a plurality of video pipelines to one or more swapchain instances that are generated as part of the multimedia application.

19. The system of claim 18 , wherein video feeds from multiple different cameras are fed to different video pipelines among the plurality of video pipelines.

20. A non-transitory computer-readable medium comprising one or more computer-executable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

instantiate a simulated library in a shared memory that is shared between a plurality of hardware components in a graphics processing unit (GPU);

divert one or more media frame generation input events produced as part of a multimedia application to the simulated library in the shared memory;

select at least one media frame for rendering, according to the one or more media frame generation input events, from within the simulated library in the shared memory;

queue the selected media frame for encoding before rendering of the selected media frame is complete; and

upon determining that the selected media frame has been rendered, encode the rendered media frame according to the queue.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 9, 2024
From: PEAN, GREGOIRE
To: NETFLIX, INC.
Reel/Frame 067053/0971 →
Continuity (1)
Related Publication 20240428499A1 · Dec 26, 2024
References Cited (17)
US 7830388B1 · Lu · 2010 [cited by applicant]
US 8442311B1 · Hobbs · 2013 [cited by applicant]
US 9233299B2 · Wilkiewicz · 2016 [cited by examiner]
US 20110157196A1 · Nave · 2011 [cited by examiner]
US 20140187331A1 · Kim · 2014 [cited by examiner]
US 20170064320A1 · Sadhwani · 2017 [cited by examiner]
US 20180174612A1 · Schulz · 2018 [cited by examiner]
US 20220130096A1 · Zhang · 2022 [cited by applicant]
US 20230016903A1 · Colenbrander · 2023 [cited by applicant]
CN 106390449A · 2017 [cited by applicant]
CN 113141511A · 2021 [cited by applicant]
CN 113542794A · 2021 [cited by applicant]
CN 115920372A · 2023 [cited by applicant]
Hong et al., GPU Virtualization and Scheduling Methods: A Comprehensive Survey, ACM Computing Surveys, vol. 50, No. 3, Article 35, Jun. 2017; 37 pages. [cited by applicant]
International Search Report and Written Opinion for International Application No. PCT/US2024/034439, mailed Oct. 18, 2024; 16 pages. [cited by applicant]
Lee et al., “VADI: GPU Virtualization for an Automotive Platform”, Feb. 2016, IEEE Transactions on Industrial Informatics, vol. 12, No. 1, p. 277-290; 14 pages. [cited by applicant]
Liu et al., “Cutting the Cord: Designing a High-Quality Untethered VR System with Low Latency Remote Rendering”, 2018, Association for Computing Machinery, p. 68-80; 13 pages. [cited by applicant]