GPU Rendering Synchronization to Reduce Perceptible Delay

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional computing devices experience perceptible delays in rendering graphics due to the GPU rendering images too early or late in the frame refresh cycle, leading to delayed or missed frame refreshes, which affects user experience in gaming and virtual reality applications.

Innovation Solution

A method involving the creation of a synchronization object associated with a wait event tied to the display device's refresh rate, allowing rendering instructions to be buffered and sent to the GPU at a precise time offset before the next frame refresh, ensuring timely rendering and reducing delays.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of time

If the GPU renders the image too early in the current frame refresh, then the rendering completes before the display device is ready, but the image is delayed until the next frame refresh

Engineering Contradiction:
Improveperceptible delayVSAvoidframe refresh timing
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The system performs preliminary actions by preparing rendering instructions in advance and buffering them, then releases them at the precise moment when the display device is ready to refresh, ensuring timely display without perceptible delay

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system uses a synchronization object that provides feedback about the display device's ready state, allowing the rendering system to coordinate its output with the display refresh cycle and eliminate timing mismatches

Inventive Principle:
Principle #23Feedback

2Loss of time

If the GPU renders the image too late in the current frame refresh, then the rendering completes after the display device is ready, but the image is displayed in the following frame refresh

Engineering Contradiction:
Improveperceptible delayVSAvoidframe refresh rate
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

Rendering instructions are prepared in advance and buffered, then released at the optimal moment before the frame refresh to ensure the GPU completes rendering just in time for display, maintaining high frame refresh rates

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically adjusts the release timing of rendering instructions based on the display device's refresh cycle and the GPU's processing speed, optimizing the balance between rendering completion time and display readiness

Inventive Principle:
Principle #15Dynamics

3Speed

If rendering instructions are sent immediately when ready, then the GPU can start processing quickly, but the timing may not align with the display device's frame refresh cycle

Engineering Contradiction:
Improverendering processing speedVSAvoidtiming synchronization
Core Design Contradiction:
SpeedVSMeasurement precision

Solution Approach 1:

A synchronization object provides feedback about the display device's frame refresh timing, allowing the system to send rendering instructions at precisely the right moment to achieve both fast processing and accurate timing alignment

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The synchronization object acts as an intermediary between the rendering system and the display device, coordinating their operations to ensure that rendering completion aligns with frame refresh events while maintaining high processing speed

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10679314B2Techniques for reducing perceptible delay in rendering graphics
Publication Date: 2020.06.09 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10679314B2 patent drawing
  • US10679314B2 patent drawing
  • US10679314B2 patent drawing

AI summary

Examples described herein generally relate to rendering graphics using a graphics processing unit (GPU) in a computing device. A synchronization object associated with a wait event can be created, wherein the wait event indicates a time offset before a timed event associated with a display device of the computing device. A plurality of rendering instructions for the GPU can be stored in a buffer, wherein the plurality of rendering instructions can be received from an application before a release of the synchronization object. Release of the synchronization object can be detected based on occurrence of the wait event, and the plurality of rendering instructions can be sent from the buffer to at least a portion of the GPU based on detecting the release of the synchronization object.