CPU Software Rasterization Optimization via Pipeline Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Central Processing Units (CPUs) are not optimized for performing graphics operations like texture sampling and rasterization, and they struggle to hide memory latency with large numbers of threads, unlike graphics hardware.

Innovation Solution

A computer-implemented method and system that optimizes emulated fixed-function and programmable graphics operations by translating data into representations, applying optimizations, and executing them to render images using software rasterization on a CPU, which includes a receiving component, translation component, optimization component, and execution component to emulate graphics hardware.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If software rasterization is used to emulate graphics hardware on a CPU, then graphics operations can be performed on general-purpose computing hardware, but performance and latency are degraded compared to specialized graphics hardware

Engineering Contradiction:
ImproveCPU graphics processing capabilityVSAvoidrendering performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments the graphics rendering pipeline into discrete, independently optimizable stages including vertex processing, rasterization, and pixel processing. Each stage is implemented as a separate software module that can be individually optimized and executed, allowing the CPU to process different stages in parallel or sequentially based on workload characteristics, thereby improving overall rendering performance while maintaining CPU versatility.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies preliminary optimization actions by pre-compiling and caching vertex shader programs, pre-processing geometry data, and pre-establishing render states before actual rendering occurs. This preliminary preparation reduces the computational burden during runtime rendering, allowing the CPU to achieve better performance by minimizing latency-critical operations during the actual render pass.

Inventive Principle:
Principle #10Preliminary action

2Device complexity

If a CPU is used to perform fixed-function graphics operations, then hardware specialization is avoided, but the CPU cannot effectively hide memory latency with large numbers of threads

Engineering Contradiction:
Improvegraphics hardware structureVSAvoidmemory latency
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The patent ensures continuous useful action by implementing a work-stealing thread pool architecture where multiple CPU threads continuously issue rendering commands and process different stages of the graphics pipeline. When one thread completes its task or encounters a memory dependency, another thread immediately picks up the workload, ensuring that the CPU cores remain continuously utilized and memory latency is hidden through overlapping computations and command issuance.

Inventive Principle:
Principle #20Continuity of useful action

Solution Approach 2:

The patent performs preliminary actions by pre-fetching texture data, vertex data, and other graphics resources into high-speed cache memory before they are needed for rendering. This preliminary data preparation reduces the impact of memory latency during the actual rendering operations, allowing the CPU to maintain high utilization without specialized graphics hardware memory subsystems.

Inventive Principle:
Principle #10Preliminary action

3Ease of manufacture

If software rasterization is implemented without optimizations, then implementation simplicity is maintained, but rendering performance and efficiency are significantly reduced

Engineering Contradiction:
Improvesoftware rasterization implementationVSAvoidrendering throughput
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent applies parameter changes by dynamically adjusting rendering parameters such as polygon complexity levels, texture sampling rates, and anti-aliasing intensity based on scene characteristics and performance requirements. This allows the software rasterizer to optimize its processing workload without changing the fundamental software implementation, achieving higher rendering throughput while maintaining the simplicity of a software-based approach.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent extracts and removes redundant or unnecessary processing steps from the rendering pipeline based on scene analysis. For example, if certain objects are determined to be occluded or if certain rendering effects are not required for particular geometry, the corresponding processing stages are extracted or skipped entirely, significantly improving rendering throughput without complicating the core software rasterization implementation.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentEP2277106B1Software rasterization optimization
Publication Date: 2019.06.19 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP2277106B1 patent drawingFigure 1
  • EP2277106B1 patent drawingFigure 2
  • EP2277106B1 patent drawingFigure 3

AI summary

Systems, methods, and computer-readable media for optimizing emulated fixed-function and programmable graphics operations are provided. Data comprising fixed function and programmable states for an image or scenario to be rendered is received. The data for the image is translated into operations. One or more optimizations are applied to the operations. The optimized operations are implemented to render the scenario.