Unified Graphics Pipeline Rendering Mixed Primitives

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphics processing systems require multiple draw call commands to render 3D objects with different primitive types and tessellation domain types, leading to increased complexity and processing overhead due to frequent state switching and shader program reloading.

Innovation Solution

The system allows rendering multiple primitive types and tessellation domain types during a single draw call command, using techniques such as determining primitive types and selecting appropriate tessellation domains within the graphics pipeline stages to reduce the need for separate draw calls and state switches.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If multiple draw call commands are used to render different primitive types, then rendering accuracy and primitive type specificity are improved, but processing overhead and complexity increase

Engineering Contradiction:
Improverendering accuracyVSAvoidprocessing overhead
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The patent merges multiple draw call commands into a single unified draw call that can render multiple primitive types (triangles, lines, points, patches) in one execution. The GPU pipeline processes a mixed primitive stream by dynamically identifying and routing each primitive type through appropriate rendering stages, eliminating the need for separate draw calls while maintaining rendering accuracy for each primitive type.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The graphics processing pipeline is designed with multi-functional capability to handle diverse primitive types within a single draw call. The system implements a universal rendering architecture where the same pipeline can process triangles, lines, points, and patches by dynamically configuring processing stages based on the primitive type detected in the input stream, thereby reducing command overhead while preserving type-specific rendering quality.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Manufacturing precision

If separate draw call commands are used for different tessellation domain types, then tessellation precision is improved, but state switching frequency and processing time increase

Engineering Contradiction:
Improvetessellation precisionVSAvoidprocessing time
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The patent combines multiple tessellation domain types (triangle patches, quadrilateral patches) into a single draw call execution. The tessellation pipeline dynamically identifies the domain type for each primitive and applies appropriate tessellation factors and subdivision rules, maintaining high tessellation precision while eliminating repeated state switching overhead between separate draw calls.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The tessellation processing stages are designed to dynamically adapt to different domain types within a single draw call. The system dynamically configures tessellation parameters, subdivision algorithms, and processing paths based on the detected primitive type, allowing precise tessellation for each domain type without requiring static pre-configuration or repeated state changes.

Inventive Principle:
Principle #15Dynamics

3Adaptability or versatility

If rendering state is switched frequently for different primitive types, then rendering adaptability is improved, but rendering efficiency and throughput decrease

Engineering Contradiction:
Improverendering adaptabilityVSAvoidrendering efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The rendering system implements a universal pipeline architecture that can adapt to multiple primitive types (triangles, lines, points, patches) and tessellation domain types within a single draw call. The pipeline dynamically configures processing stages, shader programs, and rendering parameters based on the detected primitive type, maintaining full rendering adaptability while eliminating the performance penalty of frequent state switching through continuous processing of mixed primitive streams.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9177351B2Multi-primitive graphics rendering pipeline
Publication Date: 2015.11.03 QUALCOMM INC
  • US9177351B2 patent drawing
  • US9177351B2 patent drawing
  • US9177351B2 patent drawing

AI summary

This disclosure describes techniques for rendering a plurality of primitives that includes at least two different types of primitives during the execution of a single draw call command. This disclosure also describes techniques for rendering a plurality of primitives using tessellation domains of different tessellation domain types during the execution of a single draw call command. The techniques of this disclosure may, in some examples, reduce the complexity and processing overhead for user applications, reduce the number of times that the rendering state of the graphics rendering pipeline needs to be switched during the drawing of a graphics scene, and/or reduce the number of times that shader programs need to be reloaded into different processing stages of a graphics pipeline during the rendering of a graphics scene.