[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