Conservative Rasterization Hardware for Degenerate Primitive Tiling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing graphics processing systems face inefficiencies in handling conservative rasterization, particularly with increased primitives, leading to higher processing demands and aliasing issues, which are not adequately addressed by current tile-based and immediate-mode rendering techniques.
Innovation Solution
Implementing a graphics pipeline with vertex coordinate conversion to fixed-point format, identifying degenerate primitives, and using conservative bounding boxes and edge calculations to optimize tile lists, along with microtile coverage determination, to enhance conservative rasterization efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Manufacturing precision
If the number of primitives is increased to improve surface approximation accuracy, then manufacturing precision is improved, but device complexity and processing effort increase
Solution Approach 1:
The rendering space is divided into multiple tiles, and each primitive is processed independently to determine which tiles it overlaps. This segmentation allows the system to handle large numbers of primitives efficiently by processing them in smaller, manageable units rather than as a single large batch.
Solution Approach 2:
Tile lists are generated in advance during the geometry processing phase, identifying which primitives overlap which tiles before the actual rendering occurs. This preliminary classification optimizes the subsequent rendering phase by pre-organizing the work that needs to be done.
2Reliability
If conservative rasterization is used to correctly detect primitive overlap, then reliability is improved, but productivity decreases due to increased pixel processing
Solution Approach 1:
The system applies different coverage determination methods to different regions: inner coverage (underestimate) is used for pixels that are fully overlapped, while outer coverage (overestimate) is used for pixels that are partially overlapped. This local differentiation allows the system to maintain high reliability for overlap detection while optimizing pixel processing throughput by not over-processing pixels that are clearly covered.
3Measurement precision
If fixed-point conversion is applied to handle quantization errors, then measurement precision is improved, but device complexity increases due to additional processing steps
Solution Approach 1:
The system converts vertex coordinates from floating-point format to fixed-point format during the geometry processing phase. This parameter change allows for more precise handling of quantization errors that occur during rasterization, as fixed-point arithmetic provides consistent precision throughout the conversion process without requiring complex floating-point operations in the rendering pipeline.
Data Source
AI summary
A method of rendering primitives is described. Vertex coordinates are converted from floating-point to fixed-point format and triangle primitives having non-zero area prior to the conversion and zero area after the conversion and primitives that have changed from line primitives to point primitives as a consequence of the conversion are identified. A flag is set for each identified primitive and triangle or line primitives that have changed to point primitives as a consequence of the conversion are marked as small objects. Tile lists for each tile in the rendering space are then generated by: for any primitive that is not flagged as a degenerate primitive, using one or more edge calculations to determine whether the primitive overlaps a tile; and for any primitive that is both marked as a small object and flagged as a degenerate primitive, using a conservative bounding box to determine whether the primitive overlaps a tile.


