Graphics Primitive Viewport Masking for Multi-Viewport Rendering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphics processing pipelines are inefficient in projecting graphics primitives to multiple viewports or render targets, lacking an effective method to manage and process these operations efficiently.

Innovation Solution

A system and method utilizing a data structure to execute processes in a graphics processor, allowing for the selection of surfaces and viewports, where a data structure associated with primitives enables efficient projection by using masks and viewport-specific operations, such as viewport multi-cast and coordinate swizzling, to process primitives in a single pass of the pipeline.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If current graphics processing pipelines are used to project graphics primitives to multiple viewports or render targets, then the system can perform multi-viewport rendering, but the processing efficiency is poor and overhead is high

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidpipeline complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the viewport selection process by introducing a data structure with viewport masks that divide and organize viewport information. Each primitive can have an associated data structure containing viewport mask bits that segment the selection process into manageable bitwise operations, allowing efficient routing to multiple viewports without complex pipeline restructuring

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies preliminary action by pre-computing and storing viewport selection information in data structures associated with primitives before rendering. The viewport masks and surface selection data are prepared in advance, allowing the rendering pipeline to make quick selection decisions during the actual rendering pass without complex real-time calculations

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If traditional methods are used for multi-viewport projection, then all viewports can be rendered, but vertex expansion occurs increasing overhead

Engineering Contradiction:
Improveviewport selection flexibilityVSAvoidvertex duplication
Core Design Contradiction:
Adaptability or versatilityVSLoss of substance

Solution Approach 1:

Instead of physically copying vertex data to multiple viewports (which causes vertex expansion), the patent uses a copying mechanism at the data structure level. Viewport mask bits copy selection information rather than actual vertex data, allowing the same vertex to be referenced by multiple viewports without duplication in memory or processing

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The data structure associated with each primitive serves multiple functions: it stores viewport mask bits for viewport selection, contains surface mask information for surface selection, and provides coordinate swizzling data. This multi-functionality eliminates the need for separate data structures for each function, reducing overall memory usage and avoiding vertex expansion

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

3Reliability

If multiple passes are used to process primitives for different viewports, then complete rendering is achieved, but processing time increases

Engineering Contradiction:
Improverendering completenessVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent enables continuous useful action by allowing the rendering pipeline to process multiple viewports and surfaces in a single continuous pass. The viewport masks and surface masks allow the pipeline to continuously select and render to different targets without interrupting the flow or requiring multiple separate passes, maintaining rendering completeness while reducing processing time

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS10078911B2System, method, and computer program product for executing processes involving at least one primitive in a graphics processor, utilizing a data structure
Publication Date: 2018.09.18 NVIDIA CORP
  • US10078911B2 patent drawing
  • US10078911B2 patent drawing
  • US10078911B2 patent drawing

AI summary

A system, method, and computer program product are provided for executing processes involving at least one primitive in a graphics processor, utilizing a data structure. In operation, a data structure is associated with at least one primitive. Additionally, a plurality of processes involving the at least one primitive are executed in a graphics processor, utilizing the data structure. Moreover, the plurality of processes include at least one of selecting at least one surface or portion thereof to which to render, or selecting at least one of a plurality of viewports.