Hidden surface removal in graphics processing systems
First Claim
1. A method of operating a graphics processing pipeline that includes rasteriser processing circuitry that rasterises input primitives to generate graphics fragments to be processed, each graphics fragment having one or more sampling points associated with it, and renderer processing circuitry that processes fragments generated by the rasteriser processing circuitry to generate output fragment data, the method comprising:
- when the graphics processing pipeline is processing a set of graphics primitives, depth sorting primitives of successive sub-sets of the primitives in the set of graphics primitives prior to the rasteriser processing circuitry generating graphics fragments for processing the primitives;
wherein the step of depth sorting primitives of successive sub-sets of the primitives in the set of graphics primitives prior to the rasteriser processing circuitry generating graphics fragments for processing the primitives comprises;
once a sub-set of primitives has been sorted into a sorted sub-set of primitives, passing a primitive in the sorted sub-set of primitives onwards for processing, and adding a next primitive in the set of primitives to the remaining primitives of the sorted sub-set of primitives to generate a new sub-set of primitives for sorting.
1 Assignment
0 Petitions
Accused Products
Abstract
In a graphics processing pipeline 1, a primitive depth sorting stage 9 is arranged prior to the rasterization stage 3 and rendering stage 6. The primitive depth sorting stage 9 operates to sort successive sub-sets of primitives in a stream of primitives 2 received by the graphics processing pipeline 1 based on their depth values. The so-sorted primitives are then output from the primitive depth sorting stage 9 in their sorted depth order to the rasterizer 3. This makes the depth test stages 4, 13 of the graphics processing pipeline 1 more efficient in their hidden surface removal operations, because the primitives entering the rasterizer 3 will be in depth order.
21 Citations
23 Claims
-
1. A method of operating a graphics processing pipeline that includes rasteriser processing circuitry that rasterises input primitives to generate graphics fragments to be processed, each graphics fragment having one or more sampling points associated with it, and renderer processing circuitry that processes fragments generated by the rasteriser processing circuitry to generate output fragment data, the method comprising:
-
when the graphics processing pipeline is processing a set of graphics primitives, depth sorting primitives of successive sub-sets of the primitives in the set of graphics primitives prior to the rasteriser processing circuitry generating graphics fragments for processing the primitives; wherein the step of depth sorting primitives of successive sub-sets of the primitives in the set of graphics primitives prior to the rasteriser processing circuitry generating graphics fragments for processing the primitives comprises;
once a sub-set of primitives has been sorted into a sorted sub-set of primitives, passing a primitive in the sorted sub-set of primitives onwards for processing, and adding a next primitive in the set of primitives to the remaining primitives of the sorted sub-set of primitives to generate a new sub-set of primitives for sorting. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A method of operating a graphics processing pipeline that includes rasteriser processing circuitry that rasterises input primitives to generate graphics fragments to be processed, each graphics fragment having one or more sampling points associated with it, and renderer processing circuitry that processes fragments generated by the rasteriser processing circuitry to generate output fragment data, the method comprising:
when the graphics processing pipeline receives a graphics primitive for processing, prior to the rasteriser processing circuitry generating graphics fragments for processing the primitive, adding the primitive to a primitive queue, determining the order in which the primitive should exit the queue based on depth values associated with the primitives in the queue, and outputting primitives from the queue to the rest of the pipeline in the exit order determined based on the depth values associated with the primitives in the queue.
-
12. A graphics processing pipeline comprising:
-
rasteriser processing circuitry that rasterises input primitives to generate graphics fragments to be processed, each graphics fragment having one or more sampling points associated with it; renderer processing circuitry that processes fragments generated by the rasteriser processing circuitry to generate output fragment data; and primitive depth sorter processing circuitry configured to; when the graphics processing pipeline is processing a set of graphics primitives, depth sort primitives of successive sub-sets of the primitives in the set of graphics primitives prior to the rasteriser processing circuitry generating graphics fragments for processing the primitives; wherein the step of depth sorting primitives of successive sub-sets of the primitives in the set of graphics primitives prior to the rasteriser processing circuitry generating graphics fragments for processing the primitives comprises;
once a sub-set of primitives has been sorted into a sorted sub-set of primitives, passing a primitive in the sorted sub-set of primitives onwards for processing, and adding a next primitive in the set of primitives to the remaining primitives of the sorted sub-set of primitives to generate a new sub-set of primitives for sorting. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A graphics processing pipeline comprising:
-
rasteriser processing circuitry that rasterises input primitives to generate graphics fragments to be processed, each graphics fragment having one or more sampling points associated with it; renderer processing circuitry that processes fragments generated by the rasteriser processing circuitry to generate output fragment data; and primitive depth sorter processing circuitry configured to, when the graphics processing pipeline receives a graphics primitive for processing, prior to the rasteriser processing circuitry generating graphics fragments for processing the primitive, add the primitive to a primitive queue, determine the order in which the primitive should exit the queue based on depth values associated with the primitives in the queue, and output primitives from the queue to the rest of the pipeline in the exit order determined based on the depth values associated with the primitives in the queue.
-
-
23. A non-transitory computer readable storage medium storing computer software code which when executing on a processor performs a method of operating a graphics processing pipeline that includes rasteriser processing circuitry that rasterises input primitives to generate graphics fragments to be processed, each graphics fragment having one or more sampling points associated with it, and renderer processing circuitry that processes fragments generated by the rasteriser processing circuitry to generate output fragment data, the method comprising:
-
when the graphics processing pipeline is processing a set of graphics primitives, depth sorting primitives of successive sub-sets of the primitives in the set of graphics primitives prior to the rasteriser processing circuitry generating graphics fragments for processing the primitives; wherein the step of depth sorting primitives of successive sub-sets of the primitives in the set of graphics primitives prior to the rasteriser processing circuitry generating graphics fragments for processing the primitives comprises;
once a sub-set of primitives has been sorted into a sorted sub-set of primitives, passing a primitive in the sorted sub-set of primitives onwards for processing, and adding a next primitive in the set of primitives to the remaining primitives of the sorted sub-set of primitives to generate a new sub-set of primitives for sorting.
-
Specification