[Mesa-dev] [RFC 4/6] i965: Implement INTEL_performance_query extension

Petri Latvala petri.latvala at intel.com
Thu May 28 03:51:53 PDT 2015


On 05/06/2015 03:53 AM, Robert Bragg wrote:
> +static struct brw_perf_query_counter gen7_pipeline_statistics[] = {
> +
> +   STAT(IA_VERTICES_COUNT,   "N vertices submitted"),
> +   STAT(IA_PRIMITIVES_COUNT, "N primitives submitted"),
> +   STAT(VS_INVOCATION_COUNT, "N vertex shader invocations"),
> +   STAT(HS_INVOCATION_COUNT, "N hull shader invocations"),
> +   STAT(DS_INVOCATION_COUNT, "N domain shader invocations"),
> +   STAT(GS_INVOCATION_COUNT, "N geometry shader invocations"),
> +   STAT(GS_PRIMITIVES_COUNT, "N geometry shader primitives emitted"),
> +   STAT(CL_INVOCATION_COUNT, "N primitives entering clipping"),
> +   STAT(CL_PRIMITIVES_COUNT, "N primitives leaving clipping"),
> +
> +   /* Implement the "WaDividePSInvocationCountBy4:HSW,BDW" workaround:
> +    * "Invocation counter is 4 times actual.  WA: SW to divide HW reported
> +    *  PS Invocations value by 4."
> +    *
> +    * Prior to Haswell, invocation count was counted by the WM, and it
> +    * buggily counted invocations in units of subspans (2x2 unit). To get the
> +    * correct value, the CS multiplied this by 4. With HSW the logic moved,
> +    * and correctly emitted the number of pixel shader invocations, but,
> +    * whomever forgot to undo the multiply by 4.
> +    */
> +   SCALED_STAT(PS_INVOCATION_COUNT, 1, 4, "N fragment shader invocations"),
> +
> +   STAT(PS_DEPTH_COUNT,      "N z-pass fragments"),
> +
> +   NAMED_STAT(GEN7_SO_PRIM_STORAGE_NEEDED(0), "SO_NUM_PRIMS_WRITTEN (Stream 0)",
> +              "N stream-out (stream 0) primitives (total)"),
> +   NAMED_STAT(GEN7_SO_PRIM_STORAGE_NEEDED(1), "SO_NUM_PRIMS_WRITTEN (Stream 1)",
> +              "N stream-out (stream 1) primitives (total)"),
> +   NAMED_STAT(GEN7_SO_PRIM_STORAGE_NEEDED(2), "SO_NUM_PRIMS_WRITTEN (Stream 2)",
> +              "N stream-out (stream 2) primitives (total)"),
> +   NAMED_STAT(GEN7_SO_PRIM_STORAGE_NEEDED(3), "SO_NUM_PRIMS_WRITTEN (Stream 3)",
> +              "N stream-out (stream 3) primitives (total)"),
> +   NAMED_STAT(GEN7_SO_NUM_PRIMS_WRITTEN(0), "SO_NUM_PRIMS_WRITTEN (Stream 0)",
> +              "N stream-out (stream 0) primitives (written)"),
> +   NAMED_STAT(GEN7_SO_NUM_PRIMS_WRITTEN(1), "SO_NUM_PRIMS_WRITTEN (Stream 1)",
> +              "N stream-out (stream 1) primitives (written)"),
> +   NAMED_STAT(GEN7_SO_NUM_PRIMS_WRITTEN(2), "SO_NUM_PRIMS_WRITTEN (Stream 2)",
> +              "N stream-out (stream 2) primitives (written)"),
> +   NAMED_STAT(GEN7_SO_NUM_PRIMS_WRITTEN(3), "SO_NUM_PRIMS_WRITTEN (Stream 3)",
> +              "N stream-out (stream 3) primitives (written)"),
> +};
> +

Copy-paste error? SO_PRIM_STORAGE_NEEDED gets reported as 
SO_NUM_PRIMS_WRITTEN.


-- 
Petri Latvala



More information about the mesa-dev mailing list