Shader-Dependent Fragment Rendering with Two-Stage Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Deferred rendering systems face inefficiencies and latency due to the processing of punch through fragments, which have shader-dependent presence, causing unnecessary processing and resource wastage, particularly in graphics processing units (GPUs).

Innovation Solution

The shader program for punch through fragments is split into two stages, with the first stage determining the fragment's presence and the second stage executing only if the fragment survives the initial processing, allowing the depth and tag buffers to be updated only after the presence is confirmed, reducing latency and resource usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the shader program is executed completely for punch through fragments in deferred rendering systems, then the fragment rendering can be performed, but unnecessary processing and resource wastage occur due to shader-dependent presence

Engineering Contradiction:
Improverendering efficiencyVSAvoidprocessing resource wastage
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The shader program is divided into two distinct stages: a first stage that determines fragment presence and a second stage that performs rendering. This segmentation allows the system to execute only the necessary stage (first stage) for punch through fragments, avoiding unnecessary processing and resource wastage while maintaining rendering capability when needed.

Inventive Principle:
Principle #1Segmentation

2Productivity

If the shader program is executed completely for punch through fragments, then the fragment can be rendered, but latency increases due to unnecessary processing

Engineering Contradiction:
Improverendering throughputVSAvoidprocessing latency
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

By segmenting the shader program into presence-determination stage and rendering stage, the system can quickly determine fragment presence using only the first stage, reducing processing latency before committing to the more time-consuming second stage of rendering.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The first stage of the shader program performs preliminary determination of fragment presence before executing the second stage. This preliminary action filters out unnecessary rendering operations for fragments that will not contribute to the final image, reducing overall processing latency.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If depth and tag buffers are updated for all fragments passing depth test, then complete fragment processing is achieved, but resource allocation is wasted for fragments with unknown presence

Engineering Contradiction:
Improvefragment processing completenessVSAvoidresource allocation efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The processing pipeline is segmented into two stages where the first stage determines presence and the second stage performs buffer updates. This ensures that depth and tag buffers are updated only for fragments confirmed to be present, improving resource allocation efficiency while maintaining processing completeness through the structured two-stage approach.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentEP4231139B1Method and graphics processing system for rendering one or more fragments having shader-dependent properties
Publication Date: 2025.09.17 IMAGINATION TECH LTD
  • EP4231139B1 patent drawingFigure 1
  • EP4231139B1 patent drawingFigure 2
  • EP4231139B1 patent drawingFigure 3

AI summary

A compiler configured to analyse a shader program which is for execution in a graphics processing system which comprises: (i) hidden surface removal logic configured to perform hidden surface removal on fragments, and (ii) processing logic configured to execute shader programs for fragments, wherein one or more of the fragments has a shader-dependent property, the compiler being configured to: identify an instruction in the shader program which can affect the shader-dependent property of a fragment; split the shader program into stages by splitting the shader program at a point after the identified instruction in the shader program; and store the stages of the shader program in a memory, wherein the graphics processing system can read the stages of the shader program from the memory.