what the difference between "Sample test cull rate" and "partical coverage rate"?

I had read more information of Sample test cull rate  from https://community.arm.com/support-forums/f/graphics-gaming-and-vr-forum/47978/what-does-sample-test-cull-rate-mean# and  known the meaning of partical coverage rate from https://developer.arm.com/documentation/102619/0100/Shader-core-unit-overview

seem like, both of them show the rate of a high density of small triangles.  but using stream I got different results for both.  so , could you please tell me about the difference? Thanks a lot

  • Hi Angie, 

    Sample culling is a primitive culling stage during binning that will discard "visible" (in frustum, passing facing test) small triangles if they actually hit no rasterization sample points. Sample culling rate is the percentage of "visible" triangles that are killed by the sample culling stage. The primitives incur vertex shading inefficiency due to redundant shading and data fetch, but as they are culled during binning they do not impact fragment shading efficiency.

    Partially covered quads are 2x2 pixel quads generated by rasterization that have one or more pixels with no coverage. This occurs when a quad spans an edge of a triangle. Smaller triangles have a higher percentage of partial quads as the percentage of the surface area within one pixel of the primitives' edge is higher. These quads incur fragment shading efficiency overheads, as shading will still process an entire quad, even though only some pixels generate output.

    A high rate for either of these metrics indicates a mesh with very dense geometry. For mobile platforms the recommendation is to keep mesh triangles as large as possible (at least 10 pixels in area), using static mesh level-of-detail schemes to choose simpler meshes as objects get further from the camera. 

    The reason these metrics can diverge is that the first metric shows percentage of primitives (ignoring screen space coverage), whereas the second shows percentage of screen space coverage (ignoring primitives). Screen space metrics can be skewed by a scene that mixes very small and very large triangles - the large primitives will reduce the relative impact of the partial quad overhead (in percentage terms, not absolute terms).

    I hope that makes things clearer.

    Kind regards, 
    Pete