[Mesa-dev] [PATCH 05/10] i965: perf: add PMA stall metrics

Lionel Landwerlin lionel.g.landwerlin at intel.com
Fri May 4 14:52:48 UTC 2018


These are new metrics for Gen8/9 to measure the effect of the PMA
stall workaround fix.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
---
 src/mesa/drivers/dri/i965/brw_oa_bdw.xml    | 203 +++++++++++++++++++-
 src/mesa/drivers/dri/i965/brw_oa_bxt.xml    | 113 ++++++++++-
 src/mesa/drivers/dri/i965/brw_oa_cflgt2.xml | 103 +++++++++-
 src/mesa/drivers/dri/i965/brw_oa_cflgt3.xml | 103 +++++++++-
 src/mesa/drivers/dri/i965/brw_oa_glk.xml    | 113 ++++++++++-
 src/mesa/drivers/dri/i965/brw_oa_kblgt2.xml | 103 +++++++++-
 src/mesa/drivers/dri/i965/brw_oa_kblgt3.xml | 103 +++++++++-
 src/mesa/drivers/dri/i965/brw_oa_sklgt2.xml | 103 +++++++++-
 src/mesa/drivers/dri/i965/brw_oa_sklgt3.xml | 103 +++++++++-
 src/mesa/drivers/dri/i965/brw_oa_sklgt4.xml | 103 +++++++++-
 10 files changed, 1140 insertions(+), 10 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_oa_bdw.xml b/src/mesa/drivers/dri/i965/brw_oa_bdw.xml
index 258fcacfd59..714a1f08ea7 100644
--- a/src/mesa/drivers/dri/i965/brw_oa_bdw.xml
+++ b/src/mesa/drivers/dri/i965/brw_oa_bdw.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<metrics version="1508421692" merge_md5="">
+<metrics version="1525360313" merge_md5="">
   <set name="Render Metrics Basic Gen8"
        mdapi_supported_apis="OGL OCL IO BB"
        underscore_name="render_basic"
@@ -15289,4 +15289,205 @@
     </register_config>
   </set>
 
+  <set name="Metric set PMA Stall"
+       mdapi_supported_apis="OGL OGL4 IO BB"
+       underscore_name="stc__pma_stall"
+       hw_config_guid="e713f347-953e-4d8c-b02f-6be31df2db2b"
+       chipset="BDW"
+       symbol_name="STC_PmaStall"
+       >
+    <counter name="GS Threads Dispatched"
+             description="The total number of geometry shader hardware threads dispatched."
+             data_type="uint64"
+             equation="A 5 READ"
+             underscore_name="gs_threads"
+             units="threads"
+             symbol_name="GsThreads"
+             semantic_type="event"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier3 Frame Batch Draw"
+             mdapi_hw_unit_type="gpu"
+             mdapi_group="EU Array/Geometry Shader"
+             />
+    <counter name="GPU Time Elapsed"
+             description="Time elapsed on the GPU during the measurement."
+             data_type="uint64"
+             equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
+             underscore_name="gpu_time"
+             units="ns"
+             symbol_name="GpuTime"
+             semantic_type="duration"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+             mdapi_hw_unit_type="gpu"
+             mdapi_group="GPU"
+             />
+    <counter name="GPU Core Clocks"
+             description="The total number of GPU core clocks elapsed during the measurement."
+             data_type="uint64"
+             equation="GPU_CLOCK 0 READ"
+             underscore_name="gpu_core_clocks"
+             units="cycles"
+             symbol_name="GpuCoreClocks"
+             semantic_type="event"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_hw_unit_type="gpu"
+             mdapi_group="GPU"
+             />
+    <counter name="STC PMA stall"
+             description="Percentage of time when stencil cache line and an overlapping pixel are causing stalls"
+             data_type="float"
+             max_equation="100"
+             equation="B 0 READ 100 UMUL $GpuCoreClocks FDIV"
+             underscore_name="stc_pma_stall"
+             units="percent"
+             symbol_name="StcPMAStall"
+             availability="$SliceMask 1 AND"
+             semantic_type="duration"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Frame Batch Draw"
+             mdapi_group="GPU/Stencil Cache"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="AVG GPU Core Frequency"
+             description="Average GPU Core Frequency in the measurement."
+             data_type="uint64"
+             max_equation="$GpuMaxFrequency"
+             equation="$GpuCoreClocks 1000000000 UMUL $GpuTime UDIV"
+             underscore_name="avg_gpu_core_frequency"
+             units="hz"
+             symbol_name="AvgGpuCoreFrequency"
+             semantic_type="event"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+             mdapi_group="GPU"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="HS Threads Dispatched"
+             description="The total number of hull shader hardware threads dispatched."
+             data_type="uint64"
+             equation="A 2 READ"
+             underscore_name="hs_threads"
+             units="threads"
+             symbol_name="HsThreads"
+             semantic_type="event"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier3 Frame Batch Draw"
+             mdapi_hw_unit_type="gpu"
+             mdapi_group="EU Array/Hull Shader"
+             />
+    <counter name="CS Threads Dispatched"
+             description="The total number of compute shader hardware threads dispatched."
+             data_type="uint64"
+             equation="A 4 READ"
+             underscore_name="cs_threads"
+             units="threads"
+             symbol_name="CsThreads"
+             semantic_type="event"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier3 Frame Batch Draw"
+             mdapi_hw_unit_type="gpu"
+             mdapi_group="EU Array/Compute Shader"
+             />
+    <counter name="VS Threads Dispatched"
+             description="The total number of vertex shader hardware threads dispatched."
+             data_type="uint64"
+             equation="A 1 READ"
+             underscore_name="vs_threads"
+             units="threads"
+             symbol_name="VsThreads"
+             semantic_type="event"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier3 Frame Batch Draw"
+             mdapi_hw_unit_type="gpu"
+             mdapi_group="EU Array/Vertex Shader"
+             />
+    <counter name="DS Threads Dispatched"
+             description="The total number of domain shader hardware threads dispatched."
+             data_type="uint64"
+             equation="A 3 READ"
+             underscore_name="ds_threads"
+             units="threads"
+             symbol_name="DsThreads"
+             semantic_type="event"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier3 Frame Batch Draw"
+             mdapi_hw_unit_type="gpu"
+             mdapi_group="EU Array/Domain Shader"
+             />
+    <counter name="FS Threads Dispatched"
+             description="The total number of fragment shader hardware threads dispatched."
+             data_type="uint64"
+             equation="A 6 READ"
+             underscore_name="ps_threads"
+             units="threads"
+             symbol_name="PsThreads"
+             semantic_type="event"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier3 Frame Batch Draw"
+             mdapi_hw_unit_type="gpu"
+             mdapi_group="EU Array/Fragment Shader"
+             />
+    <counter name="GPU Busy"
+             description="The percentage of time in which the GPU has been processing GPU commands."
+             data_type="float"
+             max_equation="100"
+             equation="A 0 READ 100 UMUL $GpuCoreClocks FDIV"
+             underscore_name="gpu_busy"
+             units="percent"
+             symbol_name="GpuBusy"
+             semantic_type="duration"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Overview System Frame"
+             mdapi_group="GPU"
+             mdapi_hw_unit_type="gpu"
+             />
+    <register_config type="NOA">
+        <register type="NOA" address="0x00009840" value="0x000000A0" />
+        <register type="NOA" address="0x00009888" value="0x0C1F0001" />
+        <register type="NOA" address="0x00009888" value="0x001F0015" />
+        <register type="NOA" address="0x00009888" value="0x041F4AC0" />
+        <register type="NOA" address="0x00009888" value="0x061F03D8" />
+        <register type="NOA" address="0x00009888" value="0x0E1F0000" />
+        <register type="NOA" address="0x00009888" value="0x018A8000" />
+        <register type="NOA" address="0x00009888" value="0x0F8A8000" />
+        <register type="NOA" address="0x00009888" value="0x198A8000" />
+        <register type="NOA" address="0x00009888" value="0x1B8A00A0" />
+        <register type="NOA" address="0x00009888" value="0x238B0020" />
+        <register type="NOA" address="0x00009888" value="0x258B0550" />
+        <register type="NOA" address="0x00009888" value="0x1F850080" />
+        <register type="NOA" address="0x00009888" value="0x21850AA0" />
+        <register type="NOA" address="0x00009888" value="0x01834000" />
+        <register type="NOA" address="0x00009888" value="0x0F834000" />
+        <register type="NOA" address="0x00009888" value="0x19835400" />
+        <register type="NOA" address="0x00009888" value="0x01844000" />
+        <register type="NOA" address="0x00009888" value="0x07848000" />
+        <register type="NOA" address="0x00009888" value="0x0984C000" />
+        <register type="NOA" address="0x00009888" value="0x0B844000" />
+        <register type="NOA" address="0x00009888" value="0x11804000" />
+        <register type="NOA" address="0x00009888" value="0x17808000" />
+        <register type="NOA" address="0x00009888" value="0x1980C000" />
+        <register type="NOA" address="0x00009888" value="0x1B804000" />
+        <register type="NOA" address="0x00009888" value="0x4D800000" />
+        <register type="NOA" address="0x00009888" value="0x3D800000" />
+        <register type="NOA" address="0x00009888" value="0x4F800000" />
+        <register type="NOA" address="0x00009888" value="0x43800000" />
+        <register type="NOA" address="0x00009888" value="0x51800000" />
+        <register type="NOA" address="0x00009888" value="0x45800000" />
+        <register type="NOA" address="0x00009888" value="0x21800000" />
+        <register type="NOA" address="0x00009888" value="0x31800000" />
+        <register type="NOA" address="0x00009840" value="0x00000080" />
+    </register_config>
+    <register_config type="OA">
+        <register type="OA" address="0x00002740" value="0x00000000" />
+        <register type="OA" address="0x00002710" value="0x00000000" />
+        <register type="OA" address="0x00002714" value="0x10800000" />
+        <register type="OA" address="0x00002720" value="0x00000000" />
+        <register type="OA" address="0x00002724" value="0x00800000" />
+        <register type="OA" address="0x00002770" value="0x008000E1" />
+        <register type="OA" address="0x00002774" value="0x001FFFE0" />
+    </register_config>
+  </set>
+
 </metrics>
diff --git a/src/mesa/drivers/dri/i965/brw_oa_bxt.xml b/src/mesa/drivers/dri/i965/brw_oa_bxt.xml
index 5b18369b2cb..db018a3d62b 100644
--- a/src/mesa/drivers/dri/i965/brw_oa_bxt.xml
+++ b/src/mesa/drivers/dri/i965/brw_oa_bxt.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<metrics version="1508421694" merge_md5="">
+<metrics version="1522878593" merge_md5="">
   <set name="Render Metrics Basic Gen9"
        mdapi_supported_apis="OGL OCL IO BB"
        underscore_name="render_basic"
@@ -9384,4 +9384,115 @@
     </register_config>
   </set>
 
+  <set name="Metric set PMA Stall"
+       mdapi_supported_apis="OGL OGL4 OCL IO MEDIA"
+       underscore_name="pma__stall"
+       hw_config_guid="d49cd0d8-8c7f-4465-94fc-51e08c9050bc"
+       chipset="BXT"
+       symbol_name="PMA_Stall"
+       >
+    <counter name="GPU Time Elapsed"
+             description="Time elapsed on the GPU during the measurement."
+             data_type="uint64"
+             equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
+             underscore_name="gpu_time"
+             units="ns"
+             symbol_name="GpuTime"
+             semantic_type="duration"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+             mdapi_hw_unit_type="gpu"
+             mdapi_group="GPU"
+             />
+    <counter name="GPU Core Clocks"
+             description="The total number of GPU core clocks elapsed during the measurement."
+             data_type="uint64"
+             equation="GPU_CLOCK 0 READ"
+             underscore_name="gpu_core_clocks"
+             units="cycles"
+             symbol_name="GpuCoreClocks"
+             semantic_type="event"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_hw_unit_type="gpu"
+             mdapi_group="GPU"
+             />
+    <counter name="STC PMA stall"
+             description="Percentage of time when stencil cache line and an overlapping pixel are causing stalls"
+             data_type="float"
+             max_equation="100"
+             equation="B 0 READ B 1 READ FADD 2 FDIV 100 UMUL $GpuCoreClocks FDIV"
+             underscore_name="stc_pma_stall"
+             units="percent"
+             symbol_name="StcPMAStall"
+             availability="$SliceMask 1 AND"
+             semantic_type="duration"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Frame Batch Draw"
+             mdapi_group="GPU/Stencil Cache"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="AVG GPU Core Frequency"
+             description="Average GPU Core Frequency in the measurement."
+             data_type="uint64"
+             max_equation="$GpuMaxFrequency"
+             equation="$GpuCoreClocks 1000000000 UMUL $GpuTime UDIV"
+             underscore_name="avg_gpu_core_frequency"
+             units="hz"
+             symbol_name="AvgGpuCoreFrequency"
+             semantic_type="event"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+             mdapi_group="GPU"
+             mdapi_hw_unit_type="gpu"
+             />
+    <register_config type="NOA">
+        <register type="NOA" address="0x00009840" value="0x00000080" />
+        <register type="NOA" address="0x00009888" value="0x124C3080" />
+        <register type="NOA" address="0x00009888" value="0x002D1000" />
+        <register type="NOA" address="0x00009888" value="0x062D4000" />
+        <register type="NOA" address="0x00009888" value="0x082D5000" />
+        <register type="NOA" address="0x00009888" value="0x0A2D5000" />
+        <register type="NOA" address="0x00009888" value="0x0C2E0400" />
+        <register type="NOA" address="0x00009888" value="0x0E2E5500" />
+        <register type="NOA" address="0x00009888" value="0x102E0001" />
+        <register type="NOA" address="0x00009888" value="0x004C0045" />
+        <register type="NOA" address="0x00009888" value="0x064C2300" />
+        <register type="NOA" address="0x00009888" value="0x084C26C4" />
+        <register type="NOA" address="0x00009888" value="0x0A4C264E" />
+        <register type="NOA" address="0x00009888" value="0x164C0000" />
+        <register type="NOA" address="0x00009888" value="0x044C0000" />
+        <register type="NOA" address="0x00009888" value="0x0C4C0000" />
+        <register type="NOA" address="0x00009888" value="0x0E4C0000" />
+        <register type="NOA" address="0x00009888" value="0x01938000" />
+        <register type="NOA" address="0x00009888" value="0x0F938000" />
+        <register type="NOA" address="0x00009888" value="0x199300AA" />
+        <register type="NOA" address="0x00009888" value="0x13904000" />
+        <register type="NOA" address="0x00009888" value="0x21904000" />
+        <register type="NOA" address="0x00009888" value="0x23904000" />
+        <register type="NOA" address="0x00009888" value="0x25904000" />
+        <register type="NOA" address="0x00009888" value="0x27904000" />
+        <register type="NOA" address="0x00009888" value="0x29904000" />
+        <register type="NOA" address="0x00009888" value="0x53900000" />
+        <register type="NOA" address="0x00009888" value="0x43900000" />
+        <register type="NOA" address="0x00009888" value="0x55900000" />
+        <register type="NOA" address="0x00009888" value="0x47900000" />
+        <register type="NOA" address="0x00009888" value="0x57900000" />
+        <register type="NOA" address="0x00009888" value="0x49900000" />
+        <register type="NOA" address="0x00009888" value="0x37900000" />
+        <register type="NOA" address="0x00009888" value="0x33900000" />
+    </register_config>
+    <register_config type="OA">
+        <register type="OA" address="0x00002740" value="0x00000000" />
+        <register type="OA" address="0x00002710" value="0x00000000" />
+        <register type="OA" address="0x00002714" value="0x30800000" />
+        <register type="OA" address="0x00002720" value="0x00000000" />
+        <register type="OA" address="0x00002724" value="0x00800000" />
+        <register type="OA" address="0x00002770" value="0x00E00021" />
+        <register type="OA" address="0x00002774" value="0x0007FFF8" />
+        <register type="OA" address="0x00002778" value="0x07000101" />
+        <register type="OA" address="0x0000277C" value="0x0038FFC7" />
+    </register_config>
+  </set>
+
 </metrics>
diff --git a/src/mesa/drivers/dri/i965/brw_oa_cflgt2.xml b/src/mesa/drivers/dri/i965/brw_oa_cflgt2.xml
index 15a8e13378e..29f71d47d2f 100644
--- a/src/mesa/drivers/dri/i965/brw_oa_cflgt2.xml
+++ b/src/mesa/drivers/dri/i965/brw_oa_cflgt2.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<metrics version="1508421576" merge_md5="">
+<metrics version="1522878594" merge_md5="">
   <set name="Render Metrics Basic Gen9"
        mdapi_supported_apis="OGL OCL IO BB"
        underscore_name="render_basic"
@@ -10470,4 +10470,105 @@
     </register_config>
   </set>
 
+  <set name="Metric set PMA Stall"
+       mdapi_supported_apis="OGL OGL4 OCL IO MEDIA"
+       underscore_name="pma__stall"
+       hw_config_guid="5ccbf9fb-6bf2-456b-a749-bdff7b1aff13"
+       chipset="CFLGT2"
+       symbol_name="PMA_Stall"
+       >
+    <counter name="GPU Time Elapsed"
+             description="Time elapsed on the GPU during the measurement."
+             data_type="uint64"
+             equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
+             underscore_name="gpu_time"
+             units="ns"
+             symbol_name="GpuTime"
+             semantic_type="duration"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+             mdapi_hw_unit_type="gpu"
+             mdapi_group="GPU"
+             />
+    <counter name="GPU Core Clocks"
+             description="The total number of GPU core clocks elapsed during the measurement."
+             data_type="uint64"
+             equation="GPU_CLOCK 0 READ"
+             underscore_name="gpu_core_clocks"
+             units="cycles"
+             symbol_name="GpuCoreClocks"
+             semantic_type="event"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_hw_unit_type="gpu"
+             mdapi_group="GPU"
+             />
+    <counter name="STC PMA stall"
+             description="Percentage of time when stencil cache line and an overlapping pixel are causing stalls"
+             data_type="float"
+             max_equation="100"
+             equation="B 0 READ B 1 READ FADD 2 FDIV 100 UMUL $GpuCoreClocks FDIV"
+             underscore_name="stc_pma_stall"
+             units="percent"
+             symbol_name="StcPMAStall"
+             availability="$SliceMask 1 AND"
+             semantic_type="duration"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Frame Batch Draw"
+             mdapi_group="GPU/Stencil Cache"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="AVG GPU Core Frequency"
+             description="Average GPU Core Frequency in the measurement."
+             data_type="uint64"
+             max_equation="$GpuMaxFrequency"
+             equation="$GpuCoreClocks 1000000000 UMUL $GpuTime UDIV"
+             underscore_name="avg_gpu_core_frequency"
+             units="hz"
+             symbol_name="AvgGpuCoreFrequency"
+             semantic_type="event"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+             mdapi_group="GPU"
+             mdapi_hw_unit_type="gpu"
+             />
+    <register_config type="NOA">
+        <register type="NOA" address="0x00009840" value="0x00000080" />
+        <register type="NOA" address="0x00009888" value="0x122D3080" />
+        <register type="NOA" address="0x00009888" value="0x000D2000" />
+        <register type="NOA" address="0x00009888" value="0x060D8000" />
+        <register type="NOA" address="0x00009888" value="0x080DA000" />
+        <register type="NOA" address="0x00009888" value="0x0A0DA000" />
+        <register type="NOA" address="0x00009888" value="0x0C0F0800" />
+        <register type="NOA" address="0x00009888" value="0x0E0FAA00" />
+        <register type="NOA" address="0x00009888" value="0x100F0002" />
+        <register type="NOA" address="0x00009888" value="0x002D0025" />
+        <register type="NOA" address="0x00009888" value="0x062D1300" />
+        <register type="NOA" address="0x00009888" value="0x082D16A4" />
+        <register type="NOA" address="0x00009888" value="0x0A2D162E" />
+        <register type="NOA" address="0x00009888" value="0x102D0000" />
+        <register type="NOA" address="0x00009888" value="0x1190003F" />
+        <register type="NOA" address="0x00009888" value="0x51900000" />
+        <register type="NOA" address="0x00009888" value="0x41900000" />
+        <register type="NOA" address="0x00009888" value="0x55900000" />
+        <register type="NOA" address="0x00009888" value="0x45900000" />
+        <register type="NOA" address="0x00009888" value="0x47900000" />
+        <register type="NOA" address="0x00009888" value="0x57900000" />
+        <register type="NOA" address="0x00009888" value="0x49900000" />
+        <register type="NOA" address="0x00009888" value="0x37900000" />
+        <register type="NOA" address="0x00009888" value="0x33900000" />
+    </register_config>
+    <register_config type="OA">
+        <register type="OA" address="0x00002740" value="0x00000000" />
+        <register type="OA" address="0x00002710" value="0x00000000" />
+        <register type="OA" address="0x00002714" value="0x30800000" />
+        <register type="OA" address="0x00002720" value="0x00000000" />
+        <register type="OA" address="0x00002724" value="0x00800000" />
+        <register type="OA" address="0x00002770" value="0x00E00021" />
+        <register type="OA" address="0x00002774" value="0x0007FFF8" />
+        <register type="OA" address="0x00002778" value="0x07000101" />
+        <register type="OA" address="0x0000277C" value="0x0038FFC7" />
+    </register_config>
+  </set>
+
 </metrics>
diff --git a/src/mesa/drivers/dri/i965/brw_oa_cflgt3.xml b/src/mesa/drivers/dri/i965/brw_oa_cflgt3.xml
index b7b8f52f9b0..986668f672a 100644
--- a/src/mesa/drivers/dri/i965/brw_oa_cflgt3.xml
+++ b/src/mesa/drivers/dri/i965/brw_oa_cflgt3.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<metrics version="1508342573" merge_md5="">
+<metrics version="1522878594" merge_md5="">
   <set name="Render Metrics Basic Gen9"
        mdapi_supported_apis="OGL OCL IO BB"
        underscore_name="render_basic"
@@ -10701,4 +10701,105 @@
     </register_config>
   </set>
 
+  <set name="Metric set PMA Stall"
+       mdapi_supported_apis="OGL OGL4 OCL IO MEDIA"
+       underscore_name="pma__stall"
+       hw_config_guid="c11af8d1-858b-4f8b-98fb-8d683ba8bda0"
+       chipset="CFLGT3"
+       symbol_name="PMA_Stall"
+       >
+    <counter name="GPU Time Elapsed"
+             description="Time elapsed on the GPU during the measurement."
+             data_type="uint64"
+             equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
+             underscore_name="gpu_time"
+             units="ns"
+             symbol_name="GpuTime"
+             semantic_type="duration"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+             mdapi_hw_unit_type="gpu"
+             mdapi_group="GPU"
+             />
+    <counter name="GPU Core Clocks"
+             description="The total number of GPU core clocks elapsed during the measurement."
+             data_type="uint64"
+             equation="GPU_CLOCK 0 READ"
+             underscore_name="gpu_core_clocks"
+             units="cycles"
+             symbol_name="GpuCoreClocks"
+             semantic_type="event"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_hw_unit_type="gpu"
+             mdapi_group="GPU"
+             />
+    <counter name="STC PMA stall"
+             description="Percentage of time when stencil cache line and an overlapping pixel are causing stalls"
+             data_type="float"
+             max_equation="100"
+             equation="B 0 READ B 1 READ FADD 2 FDIV 100 UMUL $GpuCoreClocks FDIV"
+             underscore_name="stc_pma_stall"
+             units="percent"
+             symbol_name="StcPMAStall"
+             availability="$SliceMask 1 AND"
+             semantic_type="duration"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Frame Batch Draw"
+             mdapi_group="GPU/Stencil Cache"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="AVG GPU Core Frequency"
+             description="Average GPU Core Frequency in the measurement."
+             data_type="uint64"
+             max_equation="$GpuMaxFrequency"
+             equation="$GpuCoreClocks 1000000000 UMUL $GpuTime UDIV"
+             underscore_name="avg_gpu_core_frequency"
+             units="hz"
+             symbol_name="AvgGpuCoreFrequency"
+             semantic_type="event"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+             mdapi_group="GPU"
+             mdapi_hw_unit_type="gpu"
+             />
+    <register_config type="NOA">
+        <register type="NOA" address="0x00009840" value="0x00000080" />
+        <register type="NOA" address="0x00009888" value="0x122D3080" />
+        <register type="NOA" address="0x00009888" value="0x000D2000" />
+        <register type="NOA" address="0x00009888" value="0x060D8000" />
+        <register type="NOA" address="0x00009888" value="0x080DA000" />
+        <register type="NOA" address="0x00009888" value="0x0A0DA000" />
+        <register type="NOA" address="0x00009888" value="0x0C0F0800" />
+        <register type="NOA" address="0x00009888" value="0x0E0FAA00" />
+        <register type="NOA" address="0x00009888" value="0x100F0002" />
+        <register type="NOA" address="0x00009888" value="0x002D0025" />
+        <register type="NOA" address="0x00009888" value="0x062D1300" />
+        <register type="NOA" address="0x00009888" value="0x082D16A4" />
+        <register type="NOA" address="0x00009888" value="0x0A2D162E" />
+        <register type="NOA" address="0x00009888" value="0x102D0000" />
+        <register type="NOA" address="0x00009888" value="0x1190003F" />
+        <register type="NOA" address="0x00009888" value="0x51900000" />
+        <register type="NOA" address="0x00009888" value="0x41900000" />
+        <register type="NOA" address="0x00009888" value="0x55900000" />
+        <register type="NOA" address="0x00009888" value="0x45900000" />
+        <register type="NOA" address="0x00009888" value="0x47900000" />
+        <register type="NOA" address="0x00009888" value="0x57900000" />
+        <register type="NOA" address="0x00009888" value="0x49900000" />
+        <register type="NOA" address="0x00009888" value="0x37900000" />
+        <register type="NOA" address="0x00009888" value="0x33900000" />
+    </register_config>
+    <register_config type="OA">
+        <register type="OA" address="0x00002740" value="0x00000000" />
+        <register type="OA" address="0x00002710" value="0x00000000" />
+        <register type="OA" address="0x00002714" value="0x30800000" />
+        <register type="OA" address="0x00002720" value="0x00000000" />
+        <register type="OA" address="0x00002724" value="0x00800000" />
+        <register type="OA" address="0x00002770" value="0x00E00021" />
+        <register type="OA" address="0x00002774" value="0x0007FFF8" />
+        <register type="OA" address="0x00002778" value="0x07000101" />
+        <register type="OA" address="0x0000277C" value="0x0038FFC7" />
+    </register_config>
+  </set>
+
 </metrics>
diff --git a/src/mesa/drivers/dri/i965/brw_oa_glk.xml b/src/mesa/drivers/dri/i965/brw_oa_glk.xml
index 68fcd2d6dde..e3da757f46f 100644
--- a/src/mesa/drivers/dri/i965/brw_oa_glk.xml
+++ b/src/mesa/drivers/dri/i965/brw_oa_glk.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<metrics version="1508420700" merge_md5="">
+<metrics version="1522878594" merge_md5="">
   <set name="Render Metrics Basic Gen9"
        mdapi_supported_apis="OGL OCL IO BB"
        underscore_name="render_basic"
@@ -9136,4 +9136,115 @@
     </register_config>
   </set>
 
+  <set name="Metric set PMA Stall"
+       mdapi_supported_apis="OGL OGL4 OCL IO MEDIA"
+       underscore_name="pma__stall"
+       hw_config_guid="e6868953-fb47-431d-a060-f785916558fc"
+       chipset="GLK"
+       symbol_name="PMA_Stall"
+       >
+    <counter name="GPU Time Elapsed"
+             description="Time elapsed on the GPU during the measurement."
+             data_type="uint64"
+             equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
+             underscore_name="gpu_time"
+             units="ns"
+             symbol_name="GpuTime"
+             semantic_type="duration"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+             mdapi_hw_unit_type="gpu"
+             mdapi_group="GPU"
+             />
+    <counter name="GPU Core Clocks"
+             description="The total number of GPU core clocks elapsed during the measurement."
+             data_type="uint64"
+             equation="GPU_CLOCK 0 READ"
+             underscore_name="gpu_core_clocks"
+             units="cycles"
+             symbol_name="GpuCoreClocks"
+             semantic_type="event"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_hw_unit_type="gpu"
+             mdapi_group="GPU"
+             />
+    <counter name="STC PMA stall"
+             description="Percentage of time when stencil cache line and an overlapping pixel are causing stalls"
+             data_type="float"
+             max_equation="100"
+             equation="B 0 READ B 1 READ FADD 2 FDIV 100 UMUL $GpuCoreClocks FDIV"
+             underscore_name="stc_pma_stall"
+             units="percent"
+             symbol_name="StcPMAStall"
+             availability="$SliceMask 1 AND"
+             semantic_type="duration"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Frame Batch Draw"
+             mdapi_group="GPU/Stencil Cache"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="AVG GPU Core Frequency"
+             description="Average GPU Core Frequency in the measurement."
+             data_type="uint64"
+             max_equation="$GpuMaxFrequency"
+             equation="$GpuCoreClocks 1000000000 UMUL $GpuTime UDIV"
+             underscore_name="avg_gpu_core_frequency"
+             units="hz"
+             symbol_name="AvgGpuCoreFrequency"
+             semantic_type="event"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+             mdapi_group="GPU"
+             mdapi_hw_unit_type="gpu"
+             />
+    <register_config type="NOA">
+        <register type="NOA" address="0x00009840" value="0x00000080" />
+        <register type="NOA" address="0x00009888" value="0x124C3080" />
+        <register type="NOA" address="0x00009888" value="0x002D1000" />
+        <register type="NOA" address="0x00009888" value="0x062D4000" />
+        <register type="NOA" address="0x00009888" value="0x082D5000" />
+        <register type="NOA" address="0x00009888" value="0x0A2D5000" />
+        <register type="NOA" address="0x00009888" value="0x0C2E0400" />
+        <register type="NOA" address="0x00009888" value="0x0E2E5500" />
+        <register type="NOA" address="0x00009888" value="0x102E0001" />
+        <register type="NOA" address="0x00009888" value="0x004C0045" />
+        <register type="NOA" address="0x00009888" value="0x064C2300" />
+        <register type="NOA" address="0x00009888" value="0x084C26C4" />
+        <register type="NOA" address="0x00009888" value="0x0A4C264E" />
+        <register type="NOA" address="0x00009888" value="0x164C0000" />
+        <register type="NOA" address="0x00009888" value="0x044C0000" />
+        <register type="NOA" address="0x00009888" value="0x0C4C0000" />
+        <register type="NOA" address="0x00009888" value="0x0E4C0000" />
+        <register type="NOA" address="0x00009888" value="0x01938000" />
+        <register type="NOA" address="0x00009888" value="0x0F938000" />
+        <register type="NOA" address="0x00009888" value="0x199300AA" />
+        <register type="NOA" address="0x00009888" value="0x13904000" />
+        <register type="NOA" address="0x00009888" value="0x21904000" />
+        <register type="NOA" address="0x00009888" value="0x23904000" />
+        <register type="NOA" address="0x00009888" value="0x25904000" />
+        <register type="NOA" address="0x00009888" value="0x27904000" />
+        <register type="NOA" address="0x00009888" value="0x29904000" />
+        <register type="NOA" address="0x00009888" value="0x53900000" />
+        <register type="NOA" address="0x00009888" value="0x43900000" />
+        <register type="NOA" address="0x00009888" value="0x55900000" />
+        <register type="NOA" address="0x00009888" value="0x47900000" />
+        <register type="NOA" address="0x00009888" value="0x57900000" />
+        <register type="NOA" address="0x00009888" value="0x49900000" />
+        <register type="NOA" address="0x00009888" value="0x37900000" />
+        <register type="NOA" address="0x00009888" value="0x33900000" />
+    </register_config>
+    <register_config type="OA">
+        <register type="OA" address="0x00002740" value="0x00000000" />
+        <register type="OA" address="0x00002710" value="0x00000000" />
+        <register type="OA" address="0x00002714" value="0x30800000" />
+        <register type="OA" address="0x00002720" value="0x00000000" />
+        <register type="OA" address="0x00002724" value="0x00800000" />
+        <register type="OA" address="0x00002770" value="0x00E00021" />
+        <register type="OA" address="0x00002774" value="0x0007FFF8" />
+        <register type="OA" address="0x00002778" value="0x07000101" />
+        <register type="OA" address="0x0000277C" value="0x0038FFC7" />
+    </register_config>
+  </set>
+
 </metrics>
diff --git a/src/mesa/drivers/dri/i965/brw_oa_kblgt2.xml b/src/mesa/drivers/dri/i965/brw_oa_kblgt2.xml
index da2954e9e2d..c9150c8dcbe 100644
--- a/src/mesa/drivers/dri/i965/brw_oa_kblgt2.xml
+++ b/src/mesa/drivers/dri/i965/brw_oa_kblgt2.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<metrics version="1508421694" merge_md5="">
+<metrics version="1522878593" merge_md5="">
   <set name="Render Metrics Basic Gen9"
        mdapi_supported_apis="OGL OCL IO BB"
        underscore_name="render_basic"
@@ -10634,4 +10634,105 @@
     </register_config>
   </set>
 
+  <set name="Metric set PMA Stall"
+       mdapi_supported_apis="OGL OGL4 OCL IO MEDIA"
+       underscore_name="pma__stall"
+       hw_config_guid="b49aa434-4958-4d98-9e6f-443ff27ca74d"
+       chipset="KBLGT2"
+       symbol_name="PMA_Stall"
+       >
+    <counter name="GPU Time Elapsed"
+             description="Time elapsed on the GPU during the measurement."
+             data_type="uint64"
+             equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
+             underscore_name="gpu_time"
+             units="ns"
+             symbol_name="GpuTime"
+             semantic_type="duration"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+             mdapi_hw_unit_type="gpu"
+             mdapi_group="GPU"
+             />
+    <counter name="GPU Core Clocks"
+             description="The total number of GPU core clocks elapsed during the measurement."
+             data_type="uint64"
+             equation="GPU_CLOCK 0 READ"
+             underscore_name="gpu_core_clocks"
+             units="cycles"
+             symbol_name="GpuCoreClocks"
+             semantic_type="event"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_hw_unit_type="gpu"
+             mdapi_group="GPU"
+             />
+    <counter name="STC PMA stall"
+             description="Percentage of time when stencil cache line and an overlapping pixel are causing stalls"
+             data_type="float"
+             max_equation="100"
+             equation="B 0 READ B 1 READ FADD 2 FDIV 100 UMUL $GpuCoreClocks FDIV"
+             underscore_name="stc_pma_stall"
+             units="percent"
+             symbol_name="StcPMAStall"
+             availability="$SliceMask 1 AND"
+             semantic_type="duration"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Frame Batch Draw"
+             mdapi_group="GPU/Stencil Cache"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="AVG GPU Core Frequency"
+             description="Average GPU Core Frequency in the measurement."
+             data_type="uint64"
+             max_equation="$GpuMaxFrequency"
+             equation="$GpuCoreClocks 1000000000 UMUL $GpuTime UDIV"
+             underscore_name="avg_gpu_core_frequency"
+             units="hz"
+             symbol_name="AvgGpuCoreFrequency"
+             semantic_type="event"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+             mdapi_group="GPU"
+             mdapi_hw_unit_type="gpu"
+             />
+    <register_config type="NOA">
+        <register type="NOA" address="0x00009840" value="0x00000080" />
+        <register type="NOA" address="0x00009888" value="0x122D3080" />
+        <register type="NOA" address="0x00009888" value="0x000D2000" />
+        <register type="NOA" address="0x00009888" value="0x060D8000" />
+        <register type="NOA" address="0x00009888" value="0x080DA000" />
+        <register type="NOA" address="0x00009888" value="0x0A0DA000" />
+        <register type="NOA" address="0x00009888" value="0x0C0F0800" />
+        <register type="NOA" address="0x00009888" value="0x0E0FAA00" />
+        <register type="NOA" address="0x00009888" value="0x100F0002" />
+        <register type="NOA" address="0x00009888" value="0x002D0025" />
+        <register type="NOA" address="0x00009888" value="0x062D1300" />
+        <register type="NOA" address="0x00009888" value="0x082D16A4" />
+        <register type="NOA" address="0x00009888" value="0x0A2D162E" />
+        <register type="NOA" address="0x00009888" value="0x102D0000" />
+        <register type="NOA" address="0x00009888" value="0x1190003F" />
+        <register type="NOA" address="0x00009888" value="0x51900000" />
+        <register type="NOA" address="0x00009888" value="0x41900000" />
+        <register type="NOA" address="0x00009888" value="0x55900000" />
+        <register type="NOA" address="0x00009888" value="0x45900000" />
+        <register type="NOA" address="0x00009888" value="0x47900000" />
+        <register type="NOA" address="0x00009888" value="0x57900000" />
+        <register type="NOA" address="0x00009888" value="0x49900000" />
+        <register type="NOA" address="0x00009888" value="0x37900000" />
+        <register type="NOA" address="0x00009888" value="0x33900000" />
+    </register_config>
+    <register_config type="OA">
+        <register type="OA" address="0x00002740" value="0x00000000" />
+        <register type="OA" address="0x00002710" value="0x00000000" />
+        <register type="OA" address="0x00002714" value="0x30800000" />
+        <register type="OA" address="0x00002720" value="0x00000000" />
+        <register type="OA" address="0x00002724" value="0x00800000" />
+        <register type="OA" address="0x00002770" value="0x00E00021" />
+        <register type="OA" address="0x00002774" value="0x0007FFF8" />
+        <register type="OA" address="0x00002778" value="0x07000101" />
+        <register type="OA" address="0x0000277C" value="0x0038FFC7" />
+    </register_config>
+  </set>
+
 </metrics>
diff --git a/src/mesa/drivers/dri/i965/brw_oa_kblgt3.xml b/src/mesa/drivers/dri/i965/brw_oa_kblgt3.xml
index aa1e83e3da1..20911267138 100644
--- a/src/mesa/drivers/dri/i965/brw_oa_kblgt3.xml
+++ b/src/mesa/drivers/dri/i965/brw_oa_kblgt3.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<metrics version="1508421695" merge_md5="">
+<metrics version="1522878593" merge_md5="">
   <set name="Render Metrics Basic Gen9"
        mdapi_supported_apis="OGL OCL IO BB"
        underscore_name="render_basic"
@@ -10701,4 +10701,105 @@
     </register_config>
   </set>
 
+  <set name="Metric set PMA Stall"
+       mdapi_supported_apis="OGL OGL4 OCL IO MEDIA"
+       underscore_name="pma__stall"
+       hw_config_guid="85bc2e4f-2563-4388-921b-dc0dad879cf3"
+       chipset="KBLGT3"
+       symbol_name="PMA_Stall"
+       >
+    <counter name="GPU Time Elapsed"
+             description="Time elapsed on the GPU during the measurement."
+             data_type="uint64"
+             equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
+             underscore_name="gpu_time"
+             units="ns"
+             symbol_name="GpuTime"
+             semantic_type="duration"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+             mdapi_hw_unit_type="gpu"
+             mdapi_group="GPU"
+             />
+    <counter name="GPU Core Clocks"
+             description="The total number of GPU core clocks elapsed during the measurement."
+             data_type="uint64"
+             equation="GPU_CLOCK 0 READ"
+             underscore_name="gpu_core_clocks"
+             units="cycles"
+             symbol_name="GpuCoreClocks"
+             semantic_type="event"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_hw_unit_type="gpu"
+             mdapi_group="GPU"
+             />
+    <counter name="STC PMA stall"
+             description="Percentage of time when stencil cache line and an overlapping pixel are causing stalls"
+             data_type="float"
+             max_equation="100"
+             equation="B 0 READ B 1 READ FADD 2 FDIV 100 UMUL $GpuCoreClocks FDIV"
+             underscore_name="stc_pma_stall"
+             units="percent"
+             symbol_name="StcPMAStall"
+             availability="$SliceMask 1 AND"
+             semantic_type="duration"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Frame Batch Draw"
+             mdapi_group="GPU/Stencil Cache"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="AVG GPU Core Frequency"
+             description="Average GPU Core Frequency in the measurement."
+             data_type="uint64"
+             max_equation="$GpuMaxFrequency"
+             equation="$GpuCoreClocks 1000000000 UMUL $GpuTime UDIV"
+             underscore_name="avg_gpu_core_frequency"
+             units="hz"
+             symbol_name="AvgGpuCoreFrequency"
+             semantic_type="event"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+             mdapi_group="GPU"
+             mdapi_hw_unit_type="gpu"
+             />
+    <register_config type="NOA">
+        <register type="NOA" address="0x00009840" value="0x00000080" />
+        <register type="NOA" address="0x00009888" value="0x122D3080" />
+        <register type="NOA" address="0x00009888" value="0x000D2000" />
+        <register type="NOA" address="0x00009888" value="0x060D8000" />
+        <register type="NOA" address="0x00009888" value="0x080DA000" />
+        <register type="NOA" address="0x00009888" value="0x0A0DA000" />
+        <register type="NOA" address="0x00009888" value="0x0C0F0800" />
+        <register type="NOA" address="0x00009888" value="0x0E0FAA00" />
+        <register type="NOA" address="0x00009888" value="0x100F0002" />
+        <register type="NOA" address="0x00009888" value="0x002D0025" />
+        <register type="NOA" address="0x00009888" value="0x062D1300" />
+        <register type="NOA" address="0x00009888" value="0x082D16A4" />
+        <register type="NOA" address="0x00009888" value="0x0A2D162E" />
+        <register type="NOA" address="0x00009888" value="0x102D0000" />
+        <register type="NOA" address="0x00009888" value="0x1190003F" />
+        <register type="NOA" address="0x00009888" value="0x51900000" />
+        <register type="NOA" address="0x00009888" value="0x41900000" />
+        <register type="NOA" address="0x00009888" value="0x55900000" />
+        <register type="NOA" address="0x00009888" value="0x45900000" />
+        <register type="NOA" address="0x00009888" value="0x47900000" />
+        <register type="NOA" address="0x00009888" value="0x57900000" />
+        <register type="NOA" address="0x00009888" value="0x49900000" />
+        <register type="NOA" address="0x00009888" value="0x37900000" />
+        <register type="NOA" address="0x00009888" value="0x33900000" />
+    </register_config>
+    <register_config type="OA">
+        <register type="OA" address="0x00002740" value="0x00000000" />
+        <register type="OA" address="0x00002710" value="0x00000000" />
+        <register type="OA" address="0x00002714" value="0x30800000" />
+        <register type="OA" address="0x00002720" value="0x00000000" />
+        <register type="OA" address="0x00002724" value="0x00800000" />
+        <register type="OA" address="0x00002770" value="0x00E00021" />
+        <register type="OA" address="0x00002774" value="0x0007FFF8" />
+        <register type="OA" address="0x00002778" value="0x07000101" />
+        <register type="OA" address="0x0000277C" value="0x0038FFC7" />
+    </register_config>
+  </set>
+
 </metrics>
diff --git a/src/mesa/drivers/dri/i965/brw_oa_sklgt2.xml b/src/mesa/drivers/dri/i965/brw_oa_sklgt2.xml
index 8723c2124df..5fbb17344ec 100644
--- a/src/mesa/drivers/dri/i965/brw_oa_sklgt2.xml
+++ b/src/mesa/drivers/dri/i965/brw_oa_sklgt2.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<metrics version="1520270012" merge_md5="">
+<metrics version="1522878592" merge_md5="">
   <set name="Render Metrics Basic Gen9"
        mdapi_supported_apis="OGL OCL IO BB"
        underscore_name="render_basic"
@@ -11668,4 +11668,105 @@
     </register_config>
   </set>
 
+  <set name="Metric set PMA Stall"
+       mdapi_supported_apis="OGL OGL4 OCL IO MEDIA"
+       underscore_name="pma__stall"
+       hw_config_guid="27871149-2fa9-40ba-aa73-350d60c03a09"
+       chipset="SKLGT2"
+       symbol_name="PMA_Stall"
+       >
+    <counter name="GPU Time Elapsed"
+             description="Time elapsed on the GPU during the measurement."
+             data_type="uint64"
+             equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
+             underscore_name="gpu_time"
+             units="ns"
+             symbol_name="GpuTime"
+             semantic_type="duration"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+             mdapi_hw_unit_type="gpu"
+             mdapi_group="GPU"
+             />
+    <counter name="GPU Core Clocks"
+             description="The total number of GPU core clocks elapsed during the measurement."
+             data_type="uint64"
+             equation="GPU_CLOCK 0 READ"
+             underscore_name="gpu_core_clocks"
+             units="cycles"
+             symbol_name="GpuCoreClocks"
+             semantic_type="event"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_hw_unit_type="gpu"
+             mdapi_group="GPU"
+             />
+    <counter name="STC PMA stall"
+             description="Percentage of time when stencil cache line and an overlapping pixel are causing stalls"
+             data_type="float"
+             max_equation="100"
+             equation="B 0 READ B 1 READ FADD 2 FDIV 100 UMUL $GpuCoreClocks FDIV"
+             underscore_name="stc_pma_stall"
+             units="percent"
+             symbol_name="StcPMAStall"
+             availability="$SliceMask 1 AND"
+             semantic_type="duration"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Frame Batch Draw"
+             mdapi_group="GPU/Stencil Cache"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="AVG GPU Core Frequency"
+             description="Average GPU Core Frequency in the measurement."
+             data_type="uint64"
+             max_equation="$GpuMaxFrequency"
+             equation="$GpuCoreClocks 1000000000 UMUL $GpuTime UDIV"
+             underscore_name="avg_gpu_core_frequency"
+             units="hz"
+             symbol_name="AvgGpuCoreFrequency"
+             semantic_type="event"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+             mdapi_group="GPU"
+             mdapi_hw_unit_type="gpu"
+             />
+    <register_config type="NOA">
+        <register type="NOA" address="0x00009840" value="0x00000080" />
+        <register type="NOA" address="0x00009888" value="0x122D3080" />
+        <register type="NOA" address="0x00009888" value="0x000D2000" />
+        <register type="NOA" address="0x00009888" value="0x060D8000" />
+        <register type="NOA" address="0x00009888" value="0x080DA000" />
+        <register type="NOA" address="0x00009888" value="0x0A0DA000" />
+        <register type="NOA" address="0x00009888" value="0x0C0F0800" />
+        <register type="NOA" address="0x00009888" value="0x0E0FAA00" />
+        <register type="NOA" address="0x00009888" value="0x100F0002" />
+        <register type="NOA" address="0x00009888" value="0x002D0025" />
+        <register type="NOA" address="0x00009888" value="0x062D1300" />
+        <register type="NOA" address="0x00009888" value="0x082D16A4" />
+        <register type="NOA" address="0x00009888" value="0x0A2D162E" />
+        <register type="NOA" address="0x00009888" value="0x102D0000" />
+        <register type="NOA" address="0x00009888" value="0x1190003F" />
+        <register type="NOA" address="0x00009888" value="0x51900000" />
+        <register type="NOA" address="0x00009888" value="0x41900000" />
+        <register type="NOA" address="0x00009888" value="0x55900000" />
+        <register type="NOA" address="0x00009888" value="0x45900000" />
+        <register type="NOA" address="0x00009888" value="0x47900000" />
+        <register type="NOA" address="0x00009888" value="0x57900000" />
+        <register type="NOA" address="0x00009888" value="0x49900000" />
+        <register type="NOA" address="0x00009888" value="0x37900000" />
+        <register type="NOA" address="0x00009888" value="0x33900000" />
+    </register_config>
+    <register_config type="OA">
+        <register type="OA" address="0x00002740" value="0x00000000" />
+        <register type="OA" address="0x00002710" value="0x00000000" />
+        <register type="OA" address="0x00002714" value="0x30800000" />
+        <register type="OA" address="0x00002720" value="0x00000000" />
+        <register type="OA" address="0x00002724" value="0x00800000" />
+        <register type="OA" address="0x00002770" value="0x00E00021" />
+        <register type="OA" address="0x00002774" value="0x0007FFF8" />
+        <register type="OA" address="0x00002778" value="0x07000101" />
+        <register type="OA" address="0x0000277C" value="0x0038FFC7" />
+    </register_config>
+  </set>
+
 </metrics>
diff --git a/src/mesa/drivers/dri/i965/brw_oa_sklgt3.xml b/src/mesa/drivers/dri/i965/brw_oa_sklgt3.xml
index 00b016f0c64..571248cb243 100644
--- a/src/mesa/drivers/dri/i965/brw_oa_sklgt3.xml
+++ b/src/mesa/drivers/dri/i965/brw_oa_sklgt3.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<metrics version="1508421693" merge_md5="">
+<metrics version="1522878593" merge_md5="">
   <set name="Render Metrics Basic Gen9"
        mdapi_supported_apis="OGL OCL IO BB"
        underscore_name="render_basic"
@@ -10701,4 +10701,105 @@
     </register_config>
   </set>
 
+  <set name="Metric set PMA Stall"
+       mdapi_supported_apis="OGL OGL4 OCL IO MEDIA"
+       underscore_name="pma__stall"
+       hw_config_guid="c889fd93-8dc7-4ba5-9451-de34a8b5ea3f"
+       chipset="SKLGT3"
+       symbol_name="PMA_Stall"
+       >
+    <counter name="GPU Time Elapsed"
+             description="Time elapsed on the GPU during the measurement."
+             data_type="uint64"
+             equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
+             underscore_name="gpu_time"
+             units="ns"
+             symbol_name="GpuTime"
+             semantic_type="duration"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+             mdapi_hw_unit_type="gpu"
+             mdapi_group="GPU"
+             />
+    <counter name="GPU Core Clocks"
+             description="The total number of GPU core clocks elapsed during the measurement."
+             data_type="uint64"
+             equation="GPU_CLOCK 0 READ"
+             underscore_name="gpu_core_clocks"
+             units="cycles"
+             symbol_name="GpuCoreClocks"
+             semantic_type="event"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_hw_unit_type="gpu"
+             mdapi_group="GPU"
+             />
+    <counter name="STC PMA stall"
+             description="Percentage of time when stencil cache line and an overlapping pixel are causing stalls"
+             data_type="float"
+             max_equation="100"
+             equation="B 0 READ B 1 READ FADD 2 FDIV 100 UMUL $GpuCoreClocks FDIV"
+             underscore_name="stc_pma_stall"
+             units="percent"
+             symbol_name="StcPMAStall"
+             availability="$SliceMask 1 AND"
+             semantic_type="duration"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Frame Batch Draw"
+             mdapi_group="GPU/Stencil Cache"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="AVG GPU Core Frequency"
+             description="Average GPU Core Frequency in the measurement."
+             data_type="uint64"
+             max_equation="$GpuMaxFrequency"
+             equation="$GpuCoreClocks 1000000000 UMUL $GpuTime UDIV"
+             underscore_name="avg_gpu_core_frequency"
+             units="hz"
+             symbol_name="AvgGpuCoreFrequency"
+             semantic_type="event"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+             mdapi_group="GPU"
+             mdapi_hw_unit_type="gpu"
+             />
+    <register_config type="NOA">
+        <register type="NOA" address="0x00009840" value="0x00000080" />
+        <register type="NOA" address="0x00009888" value="0x122D3080" />
+        <register type="NOA" address="0x00009888" value="0x000D2000" />
+        <register type="NOA" address="0x00009888" value="0x060D8000" />
+        <register type="NOA" address="0x00009888" value="0x080DA000" />
+        <register type="NOA" address="0x00009888" value="0x0A0DA000" />
+        <register type="NOA" address="0x00009888" value="0x0C0F0800" />
+        <register type="NOA" address="0x00009888" value="0x0E0FAA00" />
+        <register type="NOA" address="0x00009888" value="0x100F0002" />
+        <register type="NOA" address="0x00009888" value="0x002D0025" />
+        <register type="NOA" address="0x00009888" value="0x062D1300" />
+        <register type="NOA" address="0x00009888" value="0x082D16A4" />
+        <register type="NOA" address="0x00009888" value="0x0A2D162E" />
+        <register type="NOA" address="0x00009888" value="0x102D0000" />
+        <register type="NOA" address="0x00009888" value="0x1190003F" />
+        <register type="NOA" address="0x00009888" value="0x51900000" />
+        <register type="NOA" address="0x00009888" value="0x41900000" />
+        <register type="NOA" address="0x00009888" value="0x55900000" />
+        <register type="NOA" address="0x00009888" value="0x45900000" />
+        <register type="NOA" address="0x00009888" value="0x47900000" />
+        <register type="NOA" address="0x00009888" value="0x57900000" />
+        <register type="NOA" address="0x00009888" value="0x49900000" />
+        <register type="NOA" address="0x00009888" value="0x37900000" />
+        <register type="NOA" address="0x00009888" value="0x33900000" />
+    </register_config>
+    <register_config type="OA">
+        <register type="OA" address="0x00002740" value="0x00000000" />
+        <register type="OA" address="0x00002710" value="0x00000000" />
+        <register type="OA" address="0x00002714" value="0x30800000" />
+        <register type="OA" address="0x00002720" value="0x00000000" />
+        <register type="OA" address="0x00002724" value="0x00800000" />
+        <register type="OA" address="0x00002770" value="0x00E00021" />
+        <register type="OA" address="0x00002774" value="0x0007FFF8" />
+        <register type="OA" address="0x00002778" value="0x07000101" />
+        <register type="OA" address="0x0000277C" value="0x0038FFC7" />
+    </register_config>
+  </set>
+
 </metrics>
diff --git a/src/mesa/drivers/dri/i965/brw_oa_sklgt4.xml b/src/mesa/drivers/dri/i965/brw_oa_sklgt4.xml
index d52fc335c9b..ea50d993a27 100644
--- a/src/mesa/drivers/dri/i965/brw_oa_sklgt4.xml
+++ b/src/mesa/drivers/dri/i965/brw_oa_sklgt4.xml
@@ -1,5 +1,5 @@
 <?xml version="1.0"?>
-<metrics version="1508421694" merge_md5="">
+<metrics version="1522878593" merge_md5="">
   <set name="Render Metrics Basic Gen9"
        mdapi_supported_apis="OGL OCL IO BB"
        underscore_name="render_basic"
@@ -10724,4 +10724,105 @@
     </register_config>
   </set>
 
+  <set name="Metric set PMA Stall"
+       mdapi_supported_apis="OGL OGL4 OCL IO MEDIA"
+       underscore_name="pma__stall"
+       hw_config_guid="befe9fd6-474e-4a3d-b98e-cd793715cf91"
+       chipset="SKLGT4"
+       symbol_name="PMA_Stall"
+       >
+    <counter name="GPU Time Elapsed"
+             description="Time elapsed on the GPU during the measurement."
+             data_type="uint64"
+             equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
+             underscore_name="gpu_time"
+             units="ns"
+             symbol_name="GpuTime"
+             semantic_type="duration"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+             mdapi_hw_unit_type="gpu"
+             mdapi_group="GPU"
+             />
+    <counter name="GPU Core Clocks"
+             description="The total number of GPU core clocks elapsed during the measurement."
+             data_type="uint64"
+             equation="GPU_CLOCK 0 READ"
+             underscore_name="gpu_core_clocks"
+             units="cycles"
+             symbol_name="GpuCoreClocks"
+             semantic_type="event"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_hw_unit_type="gpu"
+             mdapi_group="GPU"
+             />
+    <counter name="STC PMA stall"
+             description="Percentage of time when stencil cache line and an overlapping pixel are causing stalls"
+             data_type="float"
+             max_equation="100"
+             equation="B 0 READ B 1 READ FADD 2 FDIV 100 UMUL $GpuCoreClocks FDIV"
+             underscore_name="stc_pma_stall"
+             units="percent"
+             symbol_name="StcPMAStall"
+             availability="$SliceMask 1 AND"
+             semantic_type="duration"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Frame Batch Draw"
+             mdapi_group="GPU/Stencil Cache"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="AVG GPU Core Frequency"
+             description="Average GPU Core Frequency in the measurement."
+             data_type="uint64"
+             max_equation="$GpuMaxFrequency"
+             equation="$GpuCoreClocks 1000000000 UMUL $GpuTime UDIV"
+             underscore_name="avg_gpu_core_frequency"
+             units="hz"
+             symbol_name="AvgGpuCoreFrequency"
+             semantic_type="event"
+             mdapi_supported_apis=""
+             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+             mdapi_group="GPU"
+             mdapi_hw_unit_type="gpu"
+             />
+    <register_config type="NOA">
+        <register type="NOA" address="0x00009840" value="0x00000080" />
+        <register type="NOA" address="0x00009888" value="0x122D3080" />
+        <register type="NOA" address="0x00009888" value="0x000D2000" />
+        <register type="NOA" address="0x00009888" value="0x060D8000" />
+        <register type="NOA" address="0x00009888" value="0x080DA000" />
+        <register type="NOA" address="0x00009888" value="0x0A0DA000" />
+        <register type="NOA" address="0x00009888" value="0x0C0F0800" />
+        <register type="NOA" address="0x00009888" value="0x0E0FAA00" />
+        <register type="NOA" address="0x00009888" value="0x100F0002" />
+        <register type="NOA" address="0x00009888" value="0x002D0025" />
+        <register type="NOA" address="0x00009888" value="0x062D1300" />
+        <register type="NOA" address="0x00009888" value="0x082D16A4" />
+        <register type="NOA" address="0x00009888" value="0x0A2D162E" />
+        <register type="NOA" address="0x00009888" value="0x102D0000" />
+        <register type="NOA" address="0x00009888" value="0x1190003F" />
+        <register type="NOA" address="0x00009888" value="0x51900000" />
+        <register type="NOA" address="0x00009888" value="0x41900000" />
+        <register type="NOA" address="0x00009888" value="0x55900000" />
+        <register type="NOA" address="0x00009888" value="0x45900000" />
+        <register type="NOA" address="0x00009888" value="0x47900000" />
+        <register type="NOA" address="0x00009888" value="0x57900000" />
+        <register type="NOA" address="0x00009888" value="0x49900000" />
+        <register type="NOA" address="0x00009888" value="0x37900000" />
+        <register type="NOA" address="0x00009888" value="0x33900000" />
+    </register_config>
+    <register_config type="OA">
+        <register type="OA" address="0x00002740" value="0x00000000" />
+        <register type="OA" address="0x00002710" value="0x00000000" />
+        <register type="OA" address="0x00002714" value="0x30800000" />
+        <register type="OA" address="0x00002720" value="0x00000000" />
+        <register type="OA" address="0x00002724" value="0x00800000" />
+        <register type="OA" address="0x00002770" value="0x00E00021" />
+        <register type="OA" address="0x00002774" value="0x0007FFF8" />
+        <register type="OA" address="0x00002778" value="0x07000101" />
+        <register type="OA" address="0x0000277C" value="0x0038FFC7" />
+    </register_config>
+  </set>
+
 </metrics>
-- 
2.17.0



More information about the mesa-dev mailing list