All of lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis
@ 2023-02-15  0:46 Umesh Nerlige Ramappa
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 01/31] i915/perf: Add support for 64-bit OA formats Umesh Nerlige Ramappa
                   ` (32 more replies)
  0 siblings, 33 replies; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Add support for OAM in IGT and enable support for GPUvis to capture
OA reports on the media GT using OAM unit. Patch groups:

OAM test support
----------------
  i915/perf: Add support for 64-bit OA formats
  ...
  i915/perf: Add OAM support

OAM metrics support
-------------------
  lib/perf: Make chipsets aware of oa formats
  ...
  i915/perf: Make sanity check failures descriptive

GPUvis support
--------------
  lib/perf: Enable multi-tile support for perf library
  ...
  lib/perf: Apply shift to raw timestamp as well

v2:
- Variable array sizes failed to build on fedora-clang, allocate on heap.
- Add i-g-t to patch series.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>

Umesh Nerlige Ramappa (31):
  i915/perf: Add support for 64-bit OA formats
  i915/perf: Define a default engine for OA
  i915/perf: Use default engine for sseu tests
  i915/perf: Ensure rcs0 is present for gen12-mi-rpc
  i915/perf: Use ARRAY_SIZE for buffer-fill test
  i915/perf: Add class:instance support to OA tests
  i915/perf: Enable tests to run on specific engines
  i915/perf: Treat ticks as 64 bit
  i915/perf: Treat timestamp as 64 bit value
  i915/perf: Add OAM format type
  i915/perf: Move OA format array from stack to heap
  i915/perf: Use a helper for OA format
  i915/perf: Add support for oa perf groups
  i915/perf: Test concurrent access to OA in different groups
  i915/perf: Add OAM support
  lib/perf: Make chipsets aware of oa formats
  i915/perf: Choose OAM format for media metrics
  lib/perf" Set missing metric unit for some counters
  lib/perf: Add MTL to supprted HW in oa guid registry
  lib/perf: Add support for OAM format in codegen
  lib/perf: Update MTL GT2 metrics for OAM
  lib/perf: Update MTL GT3 metrics for OAM
  i915/perf: Add support for engine specific metrics
  i915/perf: Run non-zero-reason on media engines as well
  i915/perf: Make sanity check failures descriptive
  lib/perf: Enable multi-tile support for perf library
  lib/perf: Update MTL OA timestamp and EU thread config
  lib/perf: Add support for MPEC format
  lib/perf: Adjust the GPU timestamp for new OA formats
  tools/perf: Choose the right card
  lib/perf: Apply shift to raw timestamp as well

 include/drm-uapi/i915_drm.h                   |   24 +
 lib/i915/perf-configs/codegen.py              |    4 +
 lib/i915/perf-configs/guids.xml               |   36 +-
 lib/i915/perf-configs/mdapi-xml-convert.py    |  220 ++-
 lib/i915/perf-configs/oa-mtlgt2.xml           | 1014 ++++++++++--
 lib/i915/perf-configs/oa-mtlgt3.xml           | 1328 +++++++++++++---
 lib/i915/perf-configs/oa_guid_registry.py     |    3 +-
 .../perf-configs/perf-metricset-codegen.py    |   36 +-
 lib/i915/perf.c                               |   66 +-
 lib/i915/perf.h                               |    2 +-
 lib/i915/perf_data_reader.c                   |   20 +-
 lib/intel_chipset.h                           |    3 +
 lib/intel_device_info.c                       |    1 +
 tests/core_hotunplug.c                        |    2 +-
 tests/i915/perf.c                             | 1363 +++++++++++++----
 tools/i915-perf/i915_perf_configs.c           |    2 +-
 tools/i915-perf/i915_perf_recorder.c          |   90 +-
 17 files changed, 3490 insertions(+), 724 deletions(-)

-- 
2.36.1

^ permalink raw reply	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 01/31] i915/perf: Add support for 64-bit OA formats
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-03-04  2:55   ` Dixit, Ashutosh
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 02/31] i915/perf: Define a default engine for OA Umesh Nerlige Ramappa
                   ` (31 subsequent siblings)
  32 siblings, 1 reply; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Newer gen12 platforms introduced 64 bit OA formats that are used by MTL.
Add support to parse reports for 64 bit counters.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 tests/i915/perf.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 57 insertions(+), 1 deletion(-)

diff --git a/tests/i915/perf.c b/tests/i915/perf.c
index dd1f1ac3..c74434fe 100644
--- a/tests/i915/perf.c
+++ b/tests/i915/perf.c
@@ -107,6 +107,8 @@ struct oa_format {
 	int a40_high_off; /* bytes */
 	int a40_low_off;
 	int n_a40;
+	int a64_off;
+	int n_a64;
 	int a_off;
 	int n_a;
 	int first_a;
@@ -720,6 +722,15 @@ gen8_read_40bit_a_counter(const uint32_t *report,
 	return a40_low[a_id] | high;
 }
 
+static uint64_t
+xehpsdv_read_64bit_a_counter(const uint32_t *report, enum drm_i915_oa_format fmt, int a_id)
+{
+	struct oa_format format = get_oa_format(fmt);
+	uint64_t *a64 = (uint64_t *)(((uint8_t *)report) + format.a64_off);
+
+	return a64[a_id];
+}
+
 static uint64_t
 gen8_40bit_a_delta(uint64_t value0, uint64_t value1)
 {
@@ -754,6 +765,19 @@ accumulate_uint40(int a_index,
 	*delta += gen8_40bit_a_delta(value0, value1);
 }
 
+static void
+accumulate_uint64(int a_index,
+		  const uint32_t *report0,
+		  const uint32_t *report1,
+		  enum drm_i915_oa_format format,
+		  uint64_t *delta)
+{
+	uint64_t value0 = xehpsdv_read_64bit_a_counter(report0, format, a_index),
+		 value1 = xehpsdv_read_64bit_a_counter(report1, format, a_index);
+
+	*delta += (value1 - value0);
+}
+
 static void
 accumulate_reports(struct accumulator *accumulator,
 		   uint32_t *start,
@@ -779,6 +803,11 @@ accumulate_reports(struct accumulator *accumulator,
 				  deltas + idx++);
 	}
 
+	for (int i = 0; i < format.n_a64; i++) {
+		accumulate_uint64(i, start, end, accumulator->format,
+				  deltas + idx++);
+	}
+
 	for (int i = 0; i < format.n_a; i++) {
 		accumulate_uint32(format.a_off + 4 * i,
 				  start, end, deltas + idx++);
@@ -809,6 +838,9 @@ accumulator_print(struct accumulator *accumulator, const char *title)
 
 		for (int i = 0; i < format.n_a40; i++)
 			igt_debug("\tA%u = %"PRIu64"\n", i, deltas[idx++]);
+
+		for (int i = 0; i < format.n_a64; i++)
+			igt_debug("\tA64_%u = %"PRIu64"\n", i, deltas[idx++]);
 	} else {
 		igt_debug("\ttime delta = %"PRIu64"\n", deltas[idx++]);
 	}
@@ -865,7 +897,19 @@ gen8_sanity_check_test_oa_reports(const uint32_t *oa_report0,
 		if (undefined_a_counters[j])
 			continue;
 
-		igt_debug("A%d: delta = %"PRIu64"\n", j, delta);
+		igt_debug("A40_%d: delta = %"PRIu64"\n", j, delta);
+		igt_assert(delta <= max_delta);
+	}
+
+	for (int j = 0; j < format.n_a64; j++) {
+		uint64_t delta = 0;
+
+		accumulate_uint64(j, oa_report0, oa_report1, fmt, &delta);
+
+		if (undefined_a_counters[j])
+			continue;
+
+		igt_debug("A64_%d: delta = %"PRIu64"\n", format.first_a + j, delta);
 		igt_assert(delta <= max_delta);
 	}
 
@@ -1430,6 +1474,18 @@ print_reports(uint32_t *oa_report0, uint32_t *oa_report1, int fmt)
 			  j, value0, value1, delta);
 	}
 
+	for (int j = 0; j < format.n_a64; j++) {
+		uint64_t value0 = xehpsdv_read_64bit_a_counter(oa_report0, fmt, j);
+		uint64_t value1 = xehpsdv_read_64bit_a_counter(oa_report1, fmt, j);
+		uint64_t delta = value1 - value0;
+
+		if (undefined_a_counters[j])
+			continue;
+
+		igt_debug("A_64%d: 1st = %"PRIu64", 2nd = %"PRIu64", delta = %"PRIu64"\n",
+			  format.first_a + j, value0, value1, delta);
+	}
+
 	for (int j = 0; j < format.n_a; j++) {
 		uint32_t *a0 = (uint32_t *)(((uint8_t *)oa_report0) +
 					    format.a_off);
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 02/31] i915/perf: Define a default engine for OA
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 01/31] i915/perf: Add support for 64-bit OA formats Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-03-04  3:05   ` Dixit, Ashutosh
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 03/31] i915/perf: Use default engine for sseu tests Umesh Nerlige Ramappa
                   ` (30 subsequent siblings)
  32 siblings, 1 reply; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Use a helper to set the default engine for use with OA.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 tests/i915/perf.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/tests/i915/perf.c b/tests/i915/perf.c
index c74434fe..15ffb50e 100644
--- a/tests/i915/perf.c
+++ b/tests/i915/perf.c
@@ -228,6 +228,7 @@ static int sysfs = -1;
 static int pm_fd = -1;
 static int stream_fd = -1;
 static uint32_t devid;
+static struct intel_execution_engine2 default_e2;
 
 static uint64_t gt_max_freq_mhz = 0;
 static struct intel_perf *intel_perf = NULL;
@@ -5097,8 +5098,19 @@ static bool has_class_instance(int i915, uint16_t class, uint16_t instance)
 	return false;
 }
 
+static void set_default_engine(const intel_ctx_t *ctx)
+{
+	const struct intel_execution_engine2 *e;
+
+	for_each_ctx_engine(drm_fd, ctx, e)
+		if (e->class == I915_ENGINE_CLASS_RENDER && e->instance == 0)
+			default_e2 = *e;
+}
+
 igt_main
 {
+	const intel_ctx_t *ctx;
+
 	igt_fixture {
 		struct stat sb;
 
@@ -5136,6 +5148,8 @@ igt_main
 
 		igt_require(init_sys_info());
 
+		ctx = intel_ctx_create_all_physical(drm_fd);
+		set_default_engine(ctx);
 		write_u64_file("/proc/sys/dev/i915/perf_stream_paranoid", 1);
 		write_u64_file("/proc/sys/dev/i915/oa_max_sample_rate", 100000);
 
@@ -5323,6 +5337,7 @@ igt_main
 		if (intel_perf)
 			intel_perf_free(intel_perf);
 
+		intel_ctx_destroy(drm_fd, ctx);
 		close(drm_fd);
 	}
 }
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 03/31] i915/perf: Use default engine for sseu tests
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 01/31] i915/perf: Add support for 64-bit OA formats Umesh Nerlige Ramappa
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 02/31] i915/perf: Define a default engine for OA Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-03-04  3:08   ` Dixit, Ashutosh
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 04/31] i915/perf: Ensure rcs0 is present for gen12-mi-rpc Umesh Nerlige Ramappa
                   ` (29 subsequent siblings)
  32 siblings, 1 reply; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Explicitly pass the default engine for the sseu tests.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 tests/i915/perf.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/tests/i915/perf.c b/tests/i915/perf.c
index 15ffb50e..015693e7 100644
--- a/tests/i915/perf.c
+++ b/tests/i915/perf.c
@@ -4482,6 +4482,9 @@ test_global_sseu_config_invalid(void)
 	};
 
 	memset(&default_sseu, 0, sizeof(default_sseu));
+	default_sseu.flags = I915_CONTEXT_SSEU_FLAG_ENGINE_INDEX;
+	default_sseu.engine.engine_class = default_e2.class;
+	default_sseu.engine.engine_instance = default_e2.flags;
 	igt_require(__gem_context_get_param(drm_fd, &ctx_gp) == 0);
 
 	igt_debug("Default context sseu:\n");
@@ -4557,6 +4560,9 @@ test_global_sseu_config(void)
 	};
 
 	memset(&default_sseu, 0, sizeof(default_sseu));
+	default_sseu.flags = I915_CONTEXT_SSEU_FLAG_ENGINE_INDEX;
+	default_sseu.engine.engine_class = default_e2.class;
+	default_sseu.engine.engine_instance = default_e2.flags;
 	igt_require(__gem_context_get_param(drm_fd, &ctx_gp) == 0);
 
 	igt_debug("Default context sseu:\n");
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 04/31] i915/perf: Ensure rcs0 is present for gen12-mi-rpc
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
                   ` (2 preceding siblings ...)
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 03/31] i915/perf: Use default engine for sseu tests Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-03-04  3:26   ` Dixit, Ashutosh
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 05/31] i915/perf: Use ARRAY_SIZE for buffer-fill test Umesh Nerlige Ramappa
                   ` (28 subsequent siblings)
  32 siblings, 1 reply; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Make sure rcs0 is present for gen12-mi-rpc.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 tests/i915/perf.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/tests/i915/perf.c b/tests/i915/perf.c
index 015693e7..02414e06 100644
--- a/tests/i915/perf.c
+++ b/tests/i915/perf.c
@@ -5287,8 +5287,12 @@ igt_main
 		igt_fixture igt_require(intel_gen(devid) >= 12);
 
 		igt_describe("Test MI REPORT PERF COUNT for Gen 12");
-		igt_subtest("gen12-mi-rpc")
+		igt_subtest("gen12-mi-rpc") {
+			igt_require_f(has_class_instance(drm_fd,
+							 I915_ENGINE_CLASS_RENDER,
+							 0), "no render engine\n");
 			gen12_test_mi_rpc();
+		}
 
 		igt_describe("Test OA TLB invalidate");
 		igt_subtest("gen12-oa-tlb-invalidate")
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 05/31] i915/perf: Use ARRAY_SIZE for buffer-fill test
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
                   ` (3 preceding siblings ...)
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 04/31] i915/perf: Ensure rcs0 is present for gen12-mi-rpc Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-03-04  3:28   ` Dixit, Ashutosh
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 06/31] i915/perf: Add class:instance support to OA tests Umesh Nerlige Ramappa
                   ` (27 subsequent siblings)
  32 siblings, 1 reply; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

A prior patch changed the way size of properties is calculated. It
missed one test. Replace the sizeof with ARRAY_SIZE for buffer-fill
test.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 tests/i915/perf.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tests/i915/perf.c b/tests/i915/perf.c
index 02414e06..77bda442 100644
--- a/tests/i915/perf.c
+++ b/tests/i915/perf.c
@@ -2573,7 +2573,7 @@ test_buffer_fill(void)
 	};
 	struct drm_i915_perf_open_param param = {
 		.flags = I915_PERF_FLAG_FD_CLOEXEC,
-		.num_properties = sizeof(properties) / 16,
+		.num_properties = ARRAY_SIZE(properties) / 2,
 		.properties_ptr = to_user_pointer(properties),
 	};
 	struct drm_i915_perf_record_header *header;
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 06/31] i915/perf: Add class:instance support to OA tests
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
                   ` (4 preceding siblings ...)
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 05/31] i915/perf: Use ARRAY_SIZE for buffer-fill test Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-03-04  3:38   ` Dixit, Ashutosh
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 07/31] i915/perf: Enable tests to run on specific engines Umesh Nerlige Ramappa
                   ` (26 subsequent siblings)
  32 siblings, 1 reply; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Add test to verify class:instance interface to perf OA.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 include/drm-uapi/i915_drm.h | 20 +++++++++++++++
 tests/i915/perf.c           | 49 +++++++++++++++++++++++++++++++++++++
 2 files changed, 69 insertions(+)

diff --git a/include/drm-uapi/i915_drm.h b/include/drm-uapi/i915_drm.h
index b71acfba..5fab3066 100644
--- a/include/drm-uapi/i915_drm.h
+++ b/include/drm-uapi/i915_drm.h
@@ -2627,6 +2627,26 @@ enum drm_i915_perf_property_id {
 	 */
 	DRM_I915_PERF_PROP_POLL_OA_PERIOD,
 
+	/**
+	 * In platforms with multiple OA buffers, the engine class instance must
+	 * be passed to open a stream to a OA unit corresponding to the engine.
+	 * Multiple engines may be mapped to the same OA unit.
+	 *
+	 * In addition to the class:instance, if a gem context is also passed, then
+	 * 1) the report headers of OA reports from other engines are squashed.
+	 * 2) OAR is enabled for the class:instance
+	 *
+	 * This property is available in perf revision 6.
+	 */
+	DRM_I915_PERF_PROP_OA_ENGINE_CLASS,
+
+	/**
+	 * This parameter specifies the engine instance.
+	 *
+	 * This property is available in perf revision 6.
+	 */
+	DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE,
+
 	DRM_I915_PERF_PROP_MAX /* non-ABI */
 };
 
diff --git a/tests/i915/perf.c b/tests/i915/perf.c
index 77bda442..13cfe895 100644
--- a/tests/i915/perf.c
+++ b/tests/i915/perf.c
@@ -1188,6 +1188,47 @@ test_invalid_open_flags(void)
 	do_ioctl_err(drm_fd, DRM_IOCTL_I915_PERF_OPEN, &param, EINVAL);
 }
 
+static void
+test_invalid_class_instance(void)
+{
+	uint64_t properties[] = {
+		DRM_I915_PERF_PROP_SAMPLE_OA, true,
+		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
+		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
+		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, 0,
+		DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, 0,
+	};
+	struct drm_i915_perf_open_param param = {
+		.flags = I915_PERF_FLAG_FD_CLOEXEC,
+		.num_properties = ARRAY_SIZE(properties) / 2,
+		.properties_ptr = to_user_pointer(properties),
+	};
+
+#define OA_E_CLASS 9
+#define OA_E_INSTANCE 11
+
+	properties[OA_E_CLASS] = I915_ENGINE_CLASS_COPY;
+	do_ioctl_err(drm_fd, DRM_IOCTL_I915_PERF_OPEN, &param, EINVAL);
+
+	properties[OA_E_CLASS] = 10;
+	do_ioctl_err(drm_fd, DRM_IOCTL_I915_PERF_OPEN, &param, EINVAL);
+
+	properties[OA_E_CLASS] = I915_ENGINE_CLASS_RENDER;
+
+	properties[OA_E_INSTANCE] = 100;
+	do_ioctl_err(drm_fd, DRM_IOCTL_I915_PERF_OPEN, &param, EINVAL);
+
+	properties[OA_E_INSTANCE] = 248;
+	do_ioctl_err(drm_fd, DRM_IOCTL_I915_PERF_OPEN, &param, EINVAL);
+
+	properties[OA_E_CLASS] = default_e2.class;
+	properties[OA_E_INSTANCE] = default_e2.instance;
+
+	stream_fd = __perf_open(drm_fd, &param, false);
+	__perf_close(stream_fd);
+}
+
 static void
 test_invalid_oa_metric_set_id(void)
 {
@@ -5305,6 +5346,14 @@ igt_main
 		}
 	}
 
+	igt_subtest_group {
+		igt_fixture igt_require(i915_perf_revision(drm_fd) >= 6);
+
+		igt_describe("Verify invalid class instance");
+		igt_subtest("gen12-invalid-class-instance")
+			test_invalid_class_instance();
+	}
+
 	igt_subtest("rc6-disable")
 		test_rc6_disable();
 
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 07/31] i915/perf: Enable tests to run on specific engines
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
                   ` (5 preceding siblings ...)
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 06/31] i915/perf: Add class:instance support to OA tests Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-03-06 22:19   ` Dixit, Ashutosh
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 08/31] i915/perf: Treat ticks as 64 bit Umesh Nerlige Ramappa
                   ` (25 subsequent siblings)
  32 siblings, 1 reply; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

New perf interface enabled passing engine class instance to the perf
interface. Enable some tests to utlize this interface to run the test on
supported engines.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 tests/i915/perf.c | 388 +++++++++++++++++++++++++++++++---------------
 1 file changed, 264 insertions(+), 124 deletions(-)

diff --git a/tests/i915/perf.c b/tests/i915/perf.c
index 13cfe895..bd3cdb6a 100644
--- a/tests/i915/perf.c
+++ b/tests/i915/perf.c
@@ -87,6 +87,13 @@ IGT_TEST_DESCRIPTION("Test the i915 perf metrics streaming interface");
 
 #define MAX_OA_BUF_SIZE (16 * 1024 * 1024)
 
+#define ADD_PROPS(_head, _tail, _key, _value) \
+	do { \
+		igt_assert((_tail - _head) < (DRM_I915_PERF_PROP_MAX * 2)); \
+		*_tail++ = DRM_I915_PERF_PROP_##_key; \
+		*_tail++ = _value; \
+	} while (0)
+
 struct accumulator {
 #define MAX_RAW_OA_COUNTERS 62
 	enum drm_i915_oa_format format;
@@ -327,6 +334,50 @@ __perf_open(int fd, struct drm_i915_perf_open_param *param, bool prevent_pm)
 	return ret;
 }
 
+static int i915_perf_revision(int fd)
+{
+	drm_i915_getparam_t gp;
+	int value = 1, ret;
+
+	gp.param = I915_PARAM_PERF_REVISION;
+	gp.value = &value;
+	ret = igt_ioctl(drm_fd, DRM_IOCTL_I915_GETPARAM, &gp);
+	if (ret == -1) {
+		/* If the param is missing, consider version 1. */
+		igt_assert_eq(errno, EINVAL);
+		return 1;
+	}
+
+	return value;
+}
+
+/*
+ * perf_supports_engine is used in the for loop that iterates over engines and
+ * determines if perf test can be run on a particular engine. For perf revisions
+ * below 10, we only need to run the test once, so we return true only for rcs0.
+ * Note that the test itself ignores the class instance parameters if they are
+ * not supported by the perf interface. This enables us to use a single for-loop
+ * construct to run the same test on all platforms and all perf revisions.
+ */
+static bool
+perf_supports_engine(const struct intel_execution_engine2 *e)
+{
+	return e->class == I915_ENGINE_CLASS_RENDER &&
+	       e->instance == 0;
+}
+
+static bool
+has_param_class_instance(void)
+{
+	return i915_perf_revision(drm_fd) >= 6;
+}
+
+static bool
+has_param_poll_period(void)
+{
+	return i915_perf_revision(drm_fd) >= 5;
+}
+
 static int
 lookup_format(int i915_perf_fmt_id)
 {
@@ -1436,7 +1487,8 @@ open_and_read_2_oa_reports(int format_id,
 			   int exponent,
 			   uint32_t *oa_report0,
 			   uint32_t *oa_report1,
-			   bool timer_only)
+			   bool timer_only,
+			   const struct intel_execution_engine2 *e)
 {
 	uint64_t properties[] = {
 		/* Include OA reports in samples */
@@ -1446,11 +1498,15 @@ open_and_read_2_oa_reports(int format_id,
 		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
 		DRM_I915_PERF_PROP_OA_FORMAT, format_id,
 		DRM_I915_PERF_PROP_OA_EXPONENT, exponent,
+		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
+		DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, e->instance,
 
 	};
 	struct drm_i915_perf_open_param param = {
 		.flags = I915_PERF_FLAG_FD_CLOEXEC,
-		.num_properties = ARRAY_SIZE(properties) / 2,
+		.num_properties = has_param_class_instance() ?
+				  ARRAY_SIZE(properties) / 2 :
+				  (ARRAY_SIZE(properties) / 2) - 2,
 		.properties_ptr = to_user_pointer(properties),
 	};
 
@@ -1633,7 +1689,7 @@ print_report(uint32_t *report, int fmt)
 #endif
 
 static void
-test_oa_formats(void)
+test_oa_formats(const struct intel_execution_engine2 *e)
 {
 	for (int i = 0; i < I915_OA_FORMAT_MAX; i++) {
 		struct oa_format format = get_oa_format(i);
@@ -1652,7 +1708,8 @@ test_oa_formats(void)
 					   oa_exp_1_millisec,
 					   oa_report0,
 					   oa_report1,
-					   false); /* timer reports only */
+					   false, /* timer reports only */
+					   e);
 
 		print_reports(oa_report0, oa_report1, i);
 		sanity_check_reports(oa_report0, oa_report1, i);
@@ -1799,7 +1856,7 @@ static bool expected_report_timing_delta(uint32_t delta, uint32_t expected_delta
 }
 
 static void
-test_oa_exponents(void)
+test_oa_exponents(const struct intel_execution_engine2 *e)
 {
 	load_helper_init();
 	load_helper_run(HIGH);
@@ -1817,10 +1874,14 @@ test_oa_exponents(void)
 			DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
 			DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
 			DRM_I915_PERF_PROP_OA_EXPONENT, exponent,
+			DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
+			DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, e->instance,
 		};
 		struct drm_i915_perf_open_param param = {
 			.flags = I915_PERF_FLAG_FD_CLOEXEC,
-			.num_properties = ARRAY_SIZE(properties) / 2,
+			.num_properties = has_param_class_instance() ?
+					  ARRAY_SIZE(properties) / 2 :
+					  (ARRAY_SIZE(properties) / 2) - 2,
 			.properties_ptr = to_user_pointer(properties),
 		};
 		uint64_t expected_timestamp_delta = 2ULL << exponent;
@@ -2099,30 +2160,16 @@ get_time(void)
  * kernelspace.
  */
 static void
-test_blocking(uint64_t requested_oa_period, bool set_kernel_hrtimer, uint64_t kernel_hrtimer)
+test_blocking(uint64_t requested_oa_period,
+	      bool set_kernel_hrtimer,
+	      uint64_t kernel_hrtimer,
+	      const struct intel_execution_engine2 *e)
 {
 	int oa_exponent = max_oa_exponent_for_period_lte(requested_oa_period);
 	uint64_t oa_period = oa_exponent_to_ns(oa_exponent);
-	uint64_t properties[] = {
-		/* Include OA reports in samples */
-		DRM_I915_PERF_PROP_SAMPLE_OA, true,
-
-		/* OA unit configuration */
-		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
-		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
-
-		/* Kernel configuration (optional) */
-		DRM_I915_PERF_PROP_POLL_OA_PERIOD, kernel_hrtimer,
-	};
-	struct drm_i915_perf_open_param param = {
-		.flags = I915_PERF_FLAG_FD_CLOEXEC |
-			I915_PERF_FLAG_DISABLED,
-		.num_properties = set_kernel_hrtimer ?
-				  ARRAY_SIZE(properties) / 2 :
-				  (ARRAY_SIZE(properties) / 2) - 1,
-		.properties_ptr = to_user_pointer(properties),
-	};
+	uint64_t props[DRM_I915_PERF_PROP_MAX * 2];
+	uint64_t *idx = props;
+	struct drm_i915_perf_open_param param;
 	uint8_t buf[1024 * 1024];
 	struct tms start_times;
 	struct tms end_times;
@@ -2147,6 +2194,24 @@ test_blocking(uint64_t requested_oa_period, bool set_kernel_hrtimer, uint64_t ke
 	int64_t start, end;
 	int n = 0;
 
+	ADD_PROPS(props, idx, SAMPLE_OA, true);
+	ADD_PROPS(props, idx, OA_METRICS_SET, test_set->perf_oa_metrics_set);
+	ADD_PROPS(props, idx, OA_FORMAT, test_set->perf_oa_format);
+	ADD_PROPS(props, idx, OA_EXPONENT, oa_exponent);
+
+	if (has_param_poll_period() && set_kernel_hrtimer)
+		ADD_PROPS(props, idx, POLL_OA_PERIOD, kernel_hrtimer);
+
+	if (has_param_class_instance()) {
+		ADD_PROPS(props, idx, OA_ENGINE_CLASS, e->class);
+		ADD_PROPS(props, idx, OA_ENGINE_INSTANCE, e->instance);
+	}
+
+	param.flags = I915_PERF_FLAG_FD_CLOEXEC |
+		      I915_PERF_FLAG_DISABLED;
+	param.num_properties = (idx - props) / 2;
+	param.properties_ptr = to_user_pointer(props);
+
 	stream_fd = __perf_open(drm_fd, &param, true /* prevent_pm */);
 
 	times(&start_times);
@@ -2258,31 +2323,16 @@ test_blocking(uint64_t requested_oa_period, bool set_kernel_hrtimer, uint64_t ke
 }
 
 static void
-test_polling(uint64_t requested_oa_period, bool set_kernel_hrtimer, uint64_t kernel_hrtimer)
+test_polling(uint64_t requested_oa_period,
+	     bool set_kernel_hrtimer,
+	     uint64_t kernel_hrtimer,
+	     const struct intel_execution_engine2 *e)
 {
 	int oa_exponent = max_oa_exponent_for_period_lte(requested_oa_period);
 	uint64_t oa_period = oa_exponent_to_ns(oa_exponent);
-	uint64_t properties[] = {
-		/* Include OA reports in samples */
-		DRM_I915_PERF_PROP_SAMPLE_OA, true,
-
-		/* OA unit configuration */
-		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
-		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
-
-		/* Kernel configuration (optional) */
-		DRM_I915_PERF_PROP_POLL_OA_PERIOD, kernel_hrtimer,
-	};
-	struct drm_i915_perf_open_param param = {
-		.flags = I915_PERF_FLAG_FD_CLOEXEC |
-			I915_PERF_FLAG_DISABLED |
-			I915_PERF_FLAG_FD_NONBLOCK,
-		.num_properties = set_kernel_hrtimer ?
-				  ARRAY_SIZE(properties) / 2 :
-				  (ARRAY_SIZE(properties) / 2) - 1,
-		.properties_ptr = to_user_pointer(properties),
-	};
+	uint64_t props[DRM_I915_PERF_PROP_MAX * 2];
+	uint64_t *idx = props;
+	struct drm_i915_perf_open_param param;
 	uint8_t buf[1024 * 1024];
 	struct tms start_times;
 	struct tms end_times;
@@ -2307,6 +2357,25 @@ test_polling(uint64_t requested_oa_period, bool set_kernel_hrtimer, uint64_t ker
 	int64_t start, end;
 	int n = 0;
 
+	ADD_PROPS(props, idx, SAMPLE_OA, true);
+	ADD_PROPS(props, idx, OA_METRICS_SET, test_set->perf_oa_metrics_set);
+	ADD_PROPS(props, idx, OA_FORMAT, test_set->perf_oa_format);
+	ADD_PROPS(props, idx, OA_EXPONENT, oa_exponent);
+
+	if (has_param_poll_period() && set_kernel_hrtimer)
+		ADD_PROPS(props, idx, POLL_OA_PERIOD, kernel_hrtimer);
+
+	if (has_param_class_instance()) {
+		ADD_PROPS(props, idx, OA_ENGINE_CLASS, e->class);
+		ADD_PROPS(props, idx, OA_ENGINE_INSTANCE, e->instance);
+	}
+
+	param.flags = I915_PERF_FLAG_FD_CLOEXEC |
+		      I915_PERF_FLAG_DISABLED |
+		      I915_PERF_FLAG_FD_NONBLOCK;
+	param.num_properties = (idx - props) / 2;
+	param.properties_ptr = to_user_pointer(props);
+
 	stream_fd = __perf_open(drm_fd, &param, true /* prevent_pm */);
 
 	times(&start_times);
@@ -2557,7 +2626,7 @@ num_valid_reports_captured(struct drm_i915_perf_open_param *param,
 }
 
 static void
-gen12_test_oa_tlb_invalidate(void)
+gen12_test_oa_tlb_invalidate(const struct intel_execution_engine2 *e)
 {
 	int oa_exponent = max_oa_exponent_for_period_lte(30000000);
 	uint64_t properties[] = {
@@ -2566,11 +2635,15 @@ gen12_test_oa_tlb_invalidate(void)
 		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
 		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
+		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
+		DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, e->instance,
 	};
 	struct drm_i915_perf_open_param param = {
 		.flags = I915_PERF_FLAG_FD_CLOEXEC |
 			I915_PERF_FLAG_DISABLED,
-		.num_properties = ARRAY_SIZE(properties) / 2,
+		.num_properties = has_param_class_instance() ?
+				  ARRAY_SIZE(properties) / 2 :
+				  (ARRAY_SIZE(properties) / 2) - 2,
 		.properties_ptr = to_user_pointer(properties),
 	};
 	int num_reports1, num_reports2, num_expected_reports;
@@ -2598,7 +2671,7 @@ gen12_test_oa_tlb_invalidate(void)
 
 
 static void
-test_buffer_fill(void)
+test_buffer_fill(const struct intel_execution_engine2 *e)
 {
 	/* ~5 micro second period */
 	int oa_exponent = max_oa_exponent_for_period_lte(5000);
@@ -2611,10 +2684,14 @@ test_buffer_fill(void)
 		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
 		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
+		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
+		DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, e->instance,
 	};
 	struct drm_i915_perf_open_param param = {
 		.flags = I915_PERF_FLAG_FD_CLOEXEC,
-		.num_properties = ARRAY_SIZE(properties) / 2,
+		.num_properties = has_param_class_instance() ?
+				  ARRAY_SIZE(properties) / 2 :
+				  (ARRAY_SIZE(properties) / 2) - 2,
 		.properties_ptr = to_user_pointer(properties),
 	};
 	struct drm_i915_perf_record_header *header;
@@ -2829,7 +2906,7 @@ test_non_zero_reason(void)
 }
 
 static void
-test_enable_disable(void)
+test_enable_disable(const struct intel_execution_engine2 *e)
 {
 	/* ~5 micro second period */
 	int oa_exponent = max_oa_exponent_for_period_lte(5000);
@@ -2842,11 +2919,15 @@ test_enable_disable(void)
 		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
 		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
+		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
+		DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, e->instance,
 	};
 	struct drm_i915_perf_open_param param = {
 		.flags = I915_PERF_FLAG_FD_CLOEXEC |
 			 I915_PERF_FLAG_DISABLED, /* Verify we start disabled */
-		.num_properties = ARRAY_SIZE(properties) / 2,
+		.num_properties = has_param_class_instance() ?
+				  ARRAY_SIZE(properties) / 2 :
+				  (ARRAY_SIZE(properties) / 2) - 2,
 		.properties_ptr = to_user_pointer(properties),
 	};
 	int buf_size = 65536 * (256 + sizeof(struct drm_i915_perf_record_header));
@@ -3167,7 +3248,7 @@ test_disabled_read_error(void)
 }
 
 static void
-gen12_test_mi_rpc(void)
+gen12_test_mi_rpc(const struct intel_execution_engine2 *e)
 {
 	uint64_t fmt = oar_unit_default_format();
 	uint64_t properties[] = {
@@ -3191,10 +3272,14 @@ gen12_test_mi_rpc(void)
 		 */
 		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
 		DRM_I915_PERF_PROP_OA_FORMAT, fmt,
+		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
+		DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, e->instance,
 	};
 	struct drm_i915_perf_open_param param = {
 		.flags = I915_PERF_FLAG_FD_CLOEXEC,
-		.num_properties = ARRAY_SIZE(properties) / 2,
+		.num_properties = has_param_class_instance() ?
+				  ARRAY_SIZE(properties) / 2 :
+				  (ARRAY_SIZE(properties) / 2) - 2,
 		.properties_ptr = to_user_pointer(properties),
 	};
 	struct buf_ops *bops;
@@ -4017,7 +4102,7 @@ again:
 	} while (WEXITSTATUS(child_ret) == EAGAIN);
 }
 
-static void gen12_single_ctx_helper(void)
+static void gen12_single_ctx_helper(const struct intel_execution_engine2 *e)
 {
 	uint64_t fmt = oar_unit_default_format();
 	uint64_t properties[] = {
@@ -4036,10 +4121,14 @@ static void gen12_single_ctx_helper(void)
 		 */
 		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
 		DRM_I915_PERF_PROP_OA_FORMAT, fmt,
+		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
+		DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, e->instance,
 	};
 	struct drm_i915_perf_open_param param = {
 		.flags = I915_PERF_FLAG_FD_CLOEXEC,
-		.num_properties = ARRAY_SIZE(properties) / 2,
+		.num_properties = has_param_class_instance() ?
+				  ARRAY_SIZE(properties) / 2 :
+				  (ARRAY_SIZE(properties) / 2) - 2,
 		.properties_ptr = to_user_pointer(properties),
 	};
 	struct buf_ops *bops;
@@ -4323,7 +4412,7 @@ static void gen12_single_ctx_helper(void)
 }
 
 static void
-gen12_test_single_ctx_render_target_writes_a_counter(void)
+gen12_test_single_ctx_render_target_writes_a_counter(const struct intel_execution_engine2 *e)
 {
 	int child_ret;
 	struct igt_helper_process child = {};
@@ -4337,7 +4426,7 @@ gen12_test_single_ctx_render_target_writes_a_counter(void)
 			drm_fd = gem_reopen_driver(drm_fd);
 
 			igt_drop_root();
-			gen12_single_ctx_helper();
+			gen12_single_ctx_helper(e);
 
 			close(drm_fd);
 		}
@@ -4401,7 +4490,7 @@ test_rc6_disable(void)
 }
 
 static void
-test_stress_open_close(void)
+test_stress_open_close(const struct intel_execution_engine2 *e)
 {
 	load_helper_init();
 	load_helper_run(HIGH);
@@ -4418,11 +4507,15 @@ test_stress_open_close(void)
 			DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
 			DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
 			DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
+			DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
+			DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, e->instance,
 		};
 		struct drm_i915_perf_open_param param = {
 			.flags = I915_PERF_FLAG_FD_CLOEXEC |
 			         I915_PERF_FLAG_DISABLED, /* XXX: open disabled */
-			.num_properties = ARRAY_SIZE(properties) / 2,
+			.num_properties = has_param_class_instance() ?
+					  ARRAY_SIZE(properties) / 2 :
+					  (ARRAY_SIZE(properties) / 2) - 2,
 			.properties_ptr = to_user_pointer(properties),
 		};
 
@@ -4473,7 +4566,8 @@ static void print_sseu_config(struct drm_i915_gem_context_param_sseu *sseu)
 }
 
 static struct drm_i915_gem_context_param_sseu
-make_valid_reduced_sseu_config(struct drm_i915_gem_context_param_sseu default_sseu)
+make_valid_reduced_sseu_config(struct drm_i915_gem_context_param_sseu default_sseu,
+			       uint16_t class, uint16_t instance)
 {
 	struct drm_i915_gem_context_param_sseu sseu = default_sseu;
 
@@ -4490,11 +4584,14 @@ make_valid_reduced_sseu_config(struct drm_i915_gem_context_param_sseu default_ss
 		sseu.subslice_mask = mask_minus_one(sseu.subslice_mask);
 	}
 
+	sseu.engine.engine_class = class;
+	sseu.engine.engine_instance = instance;
+
 	return sseu;
 }
 
 static void
-test_global_sseu_config_invalid(void)
+test_global_sseu_config_invalid(const struct intel_execution_engine2 *e)
 {
 	struct drm_i915_gem_context_param_sseu default_sseu;
 	struct drm_i915_gem_context_param_sseu sseu_param;
@@ -4514,18 +4611,27 @@ test_global_sseu_config_invalid(void)
 		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
 		DRM_I915_PERF_PROP_GLOBAL_SSEU, to_user_pointer(&sseu_param),
+		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
+		DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, e->instance,
 	};
 	struct drm_i915_perf_open_param param = {
 		.flags = I915_PERF_FLAG_FD_CLOEXEC |
 		I915_PERF_FLAG_DISABLED, /* XXX: open disabled */
-		.num_properties = ARRAY_SIZE(properties) / 2,
+		.num_properties = has_param_class_instance() ?
+				  ARRAY_SIZE(properties) / 2 :
+				  (ARRAY_SIZE(properties) / 2) - 2,
 		.properties_ptr = to_user_pointer(properties),
 	};
 
 	memset(&default_sseu, 0, sizeof(default_sseu));
 	default_sseu.flags = I915_CONTEXT_SSEU_FLAG_ENGINE_INDEX;
-	default_sseu.engine.engine_class = default_e2.class;
-	default_sseu.engine.engine_instance = default_e2.flags;
+	if (has_param_class_instance()) {
+		default_sseu.engine.engine_class = e->class;
+		default_sseu.engine.engine_instance = e->flags;
+	} else {
+		default_sseu.engine.engine_class = default_e2.class;
+		default_sseu.engine.engine_instance = default_e2.flags;
+	}
 	igt_require(__gem_context_get_param(drm_fd, &ctx_gp) == 0);
 
 	igt_debug("Default context sseu:\n");
@@ -4564,7 +4670,9 @@ test_global_sseu_config_invalid(void)
 		igt_fork(child, 1) {
 			igt_drop_root();
 
-			sseu_param = make_valid_reduced_sseu_config(default_sseu);
+			sseu_param = make_valid_reduced_sseu_config(default_sseu,
+								    e->class,
+								    e->instance);
 			do_ioctl_err(drm_fd, DRM_IOCTL_I915_PERF_OPEN, &param, EACCES);
 		}
 		igt_waitchildren();
@@ -4572,7 +4680,7 @@ test_global_sseu_config_invalid(void)
 }
 
 static void
-test_global_sseu_config(void)
+test_global_sseu_config(const struct intel_execution_engine2 *e)
 {
 	struct drm_i915_gem_context_param_sseu default_sseu;
 	struct drm_i915_gem_context_param_sseu sseu_param;
@@ -4592,18 +4700,27 @@ test_global_sseu_config(void)
 		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
 		DRM_I915_PERF_PROP_GLOBAL_SSEU, to_user_pointer(&sseu_param),
+		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
+		DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, e->instance,
 	};
 	struct drm_i915_perf_open_param param = {
 		.flags = I915_PERF_FLAG_FD_CLOEXEC |
 		I915_PERF_FLAG_DISABLED, /* XXX: open disabled */
-		.num_properties = ARRAY_SIZE(properties) / 2,
+		.num_properties = has_param_class_instance() ?
+				  ARRAY_SIZE(properties) / 2 :
+				  (ARRAY_SIZE(properties) / 2) - 2,
 		.properties_ptr = to_user_pointer(properties),
 	};
 
 	memset(&default_sseu, 0, sizeof(default_sseu));
 	default_sseu.flags = I915_CONTEXT_SSEU_FLAG_ENGINE_INDEX;
-	default_sseu.engine.engine_class = default_e2.class;
-	default_sseu.engine.engine_instance = default_e2.flags;
+	if (has_param_class_instance()) {
+		default_sseu.engine.engine_class = e->class;
+		default_sseu.engine.engine_instance = e->flags;
+	} else {
+		default_sseu.engine.engine_class = default_e2.class;
+		default_sseu.engine.engine_instance = default_e2.flags;
+	}
 	igt_require(__gem_context_get_param(drm_fd, &ctx_gp) == 0);
 
 	igt_debug("Default context sseu:\n");
@@ -4613,7 +4730,9 @@ test_global_sseu_config(void)
 
 	write_u64_file("/proc/sys/dev/i915/perf_stream_paranoid", 0);
 
-	sseu_param = make_valid_reduced_sseu_config(default_sseu);
+	sseu_param = make_valid_reduced_sseu_config(default_sseu,
+						    e->class,
+						    e->instance);
 	igt_debug("Selected context sseu:\n");
 	print_sseu_config(&sseu_param);
 
@@ -5115,22 +5234,15 @@ test_sysctl_defaults(void)
 	igt_assert_eq(max_freq, 100000);
 }
 
-static int i915_perf_revision(int fd)
-{
-	drm_i915_getparam_t gp;
-	int value = 1, ret;
+#define __for_each_perf_enabled_engine(fd__, e__) \
+	for_each_physical_engine(fd__, e__) \
+		if (perf_supports_engine(e__)) \
+			igt_dynamic_f("%s", e__->name)
 
-	gp.param = I915_PARAM_PERF_REVISION;
-	gp.value = &value;
-	ret = igt_ioctl(drm_fd, DRM_IOCTL_I915_GETPARAM, &gp);
-	if (ret == -1) {
-		/* If the param is missing, consider version 1. */
-		igt_assert_eq(errno, EINVAL);
-		return 1;
-	}
-
-	return value;
-}
+#define __for_each_render_engine(fd__, e__) \
+	for_each_physical_engine(fd__, e__) \
+		if (e__->class == I915_ENGINE_CLASS_RENDER) \
+			igt_dynamic_f("%s", e__->name)
 
 static bool has_class_instance(int i915, uint16_t class, uint16_t instance)
 {
@@ -5157,6 +5269,7 @@ static void set_default_engine(const intel_ctx_t *ctx)
 igt_main
 {
 	const intel_ctx_t *ctx;
+	const struct intel_execution_engine2 *e;
 
 	igt_fixture {
 		struct stat sb;
@@ -5221,23 +5334,26 @@ igt_main
 	igt_subtest("missing-sample-flags")
 		test_missing_sample_flags();
 
-	igt_subtest("oa-formats")
-		test_oa_formats();
+	igt_subtest_with_dynamic("oa-formats")
+		__for_each_perf_enabled_engine(drm_fd, e)
+			test_oa_formats(e);
 
 	igt_subtest("invalid-oa-exponent")
 		test_invalid_oa_exponent();
 	igt_subtest("low-oa-exponent-permissions")
 		test_low_oa_exponent_permissions();
-	igt_subtest("oa-exponents")
-		test_oa_exponents();
+	igt_subtest_with_dynamic("oa-exponents")
+		__for_each_perf_enabled_engine(drm_fd, e)
+			test_oa_exponents(e);
 
 	igt_subtest("per-context-mode-unprivileged") {
 		igt_require(IS_HASWELL(devid));
 		test_per_context_mode_unprivileged();
 	}
 
-	igt_subtest("buffer-fill")
-		test_buffer_fill();
+	igt_subtest_with_dynamic("buffer-fill")
+		__for_each_perf_enabled_engine(drm_fd, e)
+			test_buffer_fill(e);
 
 	igt_describe("Test that reason field in OA reports is never 0 on Gen8+");
 	igt_subtest("non-zero-reason") {
@@ -5251,45 +5367,64 @@ igt_main
 	igt_subtest("non-sampling-read-error")
 		test_non_sampling_read_error();
 
-	igt_subtest("enable-disable")
-		test_enable_disable();
+	igt_subtest_with_dynamic("enable-disable")
+		__for_each_perf_enabled_engine(drm_fd, e)
+			test_enable_disable(e);
 
 	igt_describe("Test blocking read with default hrtimer frequency");
-	igt_subtest("blocking") {
-		test_blocking(40 * 1000 * 1000 /* 40ms oa period */,
-			      false /* set_kernel_hrtimer */,
-			      5 * 1000 * 1000 /* default 5ms/200Hz hrtimer */);
+	igt_subtest_with_dynamic("blocking") {
+		__for_each_perf_enabled_engine(drm_fd, e)
+			test_blocking(40 * 1000 * 1000 /* 40ms oa period */,
+				      false /* set_kernel_hrtimer */,
+				      5 * 1000 * 1000 /* default 5ms/200Hz hrtimer */,
+				      e);
 	}
 
 	igt_describe("Test blocking read with different hrtimer frequencies");
 	igt_subtest("blocking-parameterized") {
+		const struct intel_execution_engine2 _e = {
+		      .class = default_e2.class,
+		      .instance = default_e2.instance,
+		};
+
 		igt_require(i915_perf_revision(drm_fd) >= 5);
 
 		test_blocking(10 * 1000 * 1000 /* 10ms oa period */,
 			      true /* set_kernel_hrtimer */,
-			      40 * 1000 * 1000 /* default 40ms hrtimer */);
+			      40 * 1000 * 1000 /* default 40ms hrtimer */,
+			      &_e);
 		test_blocking(500 * 1000 /* 500us oa period */,
 			      true /* set_kernel_hrtimer */,
-			      2 * 1000 * 1000 /* default 2ms hrtimer */);
+			      2 * 1000 * 1000 /* default 2ms hrtimer */,
+			      &_e);
 	}
 
 	igt_describe("Test polled read with default hrtimer frequency");
-	igt_subtest("polling") {
-		test_polling(40 * 1000 * 1000 /* 40ms oa period */,
-			     false /* set_kernel_hrtimer */,
-			     5 * 1000 * 1000 /* default 5ms/200Hz hrtimer */);
+	igt_subtest_with_dynamic("polling") {
+		__for_each_perf_enabled_engine(drm_fd, e)
+			test_polling(40 * 1000 * 1000 /* 40ms oa period */,
+				     false /* set_kernel_hrtimer */,
+				     5 * 1000 * 1000 /* default 5ms/200Hz hrtimer */,
+				     e);
 	}
 
 	igt_describe("Test polled read with different hrtimer frequencies");
 	igt_subtest("polling-parameterized") {
+		const struct intel_execution_engine2 _e = {
+		      .class = default_e2.class,
+		      .instance = default_e2.instance,
+		};
+
 		igt_require(i915_perf_revision(drm_fd) >= 5);
 
 		test_polling(10 * 1000 * 1000 /* 10ms oa period */,
 			     true /* set_kernel_hrtimer */,
-			     40 * 1000 * 1000 /* default 40ms hrtimer */);
+			     40 * 1000 * 1000 /* default 40ms hrtimer */,
+			     &_e);
 		test_polling(500 * 1000 /* 500us oa period */,
 			     true /* set_kernel_hrtimer */,
-			     2 * 1000 * 1000 /* default 2ms hrtimer */);
+			     2 * 1000 * 1000 /* default 2ms hrtimer */,
+			     &_e);
 	}
 
 	igt_describe("Test polled read with buffer size smaller than available data");
@@ -5328,21 +5463,23 @@ igt_main
 		igt_fixture igt_require(intel_gen(devid) >= 12);
 
 		igt_describe("Test MI REPORT PERF COUNT for Gen 12");
-		igt_subtest("gen12-mi-rpc") {
-			igt_require_f(has_class_instance(drm_fd,
-							 I915_ENGINE_CLASS_RENDER,
-							 0), "no render engine\n");
-			gen12_test_mi_rpc();
+		igt_subtest_with_dynamic("gen12-mi-rpc") {
+			igt_require(has_class_instance(drm_fd, I915_ENGINE_CLASS_RENDER, 0));
+			__for_each_render_engine(drm_fd, e)
+				gen12_test_mi_rpc(e);
 		}
 
 		igt_describe("Test OA TLB invalidate");
-		igt_subtest("gen12-oa-tlb-invalidate")
-			gen12_test_oa_tlb_invalidate();
+		igt_subtest_with_dynamic("gen12-oa-tlb-invalidate")
+			__for_each_perf_enabled_engine(drm_fd, e)
+				gen12_test_oa_tlb_invalidate(e);
 
 		igt_describe("Measure performance for a specific context using OAR in Gen 12");
-		igt_subtest("gen12-unprivileged-single-ctx-counters") {
+		igt_subtest_with_dynamic("gen12-unprivileged-single-ctx-counters") {
+			igt_require(has_class_instance(drm_fd, I915_ENGINE_CLASS_RENDER, 0));
 			igt_require_f(render_copy, "no render-copy function\n");
-			gen12_test_single_ctx_render_target_writes_a_counter();
+			__for_each_render_engine(drm_fd, e)
+				gen12_test_single_ctx_render_target_writes_a_counter(e);
 		}
 	}
 
@@ -5358,8 +5495,9 @@ igt_main
 		test_rc6_disable();
 
 	igt_describe("Stress tests opening & closing the i915-perf stream in a busy loop");
-	igt_subtest("stress-open-close")
-		test_stress_open_close();
+	igt_subtest_with_dynamic("stress-open-close")
+		__for_each_perf_enabled_engine(drm_fd, e)
+			test_stress_open_close(e);
 
 	igt_subtest_group {
 		igt_fixture {
@@ -5368,12 +5506,14 @@ igt_main
 		}
 
 		igt_describe("Verify invalid SSEU opening parameters");
-		igt_subtest("global-sseu-config-invalid")
-			test_global_sseu_config_invalid();
+		igt_subtest_with_dynamic("global-sseu-config-invalid")
+			__for_each_perf_enabled_engine(drm_fd, e)
+				test_global_sseu_config_invalid(e);
 
 		igt_describe("Verify specifying SSEU opening parameters");
-		igt_subtest("global-sseu-config")
-			test_global_sseu_config();
+		igt_subtest_with_dynamic("global-sseu-config")
+			__for_each_perf_enabled_engine(drm_fd, e)
+				test_global_sseu_config(e);
 	}
 
 	igt_subtest("invalid-create-userspace-config")
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 08/31] i915/perf: Treat ticks as 64 bit
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
                   ` (6 preceding siblings ...)
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 07/31] i915/perf: Enable tests to run on specific engines Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-03-06 23:13   ` Dixit, Ashutosh
  2023-03-09 23:00   ` Dixit, Ashutosh
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 09/31] i915/perf: Treat timestamp as 64 bit value Umesh Nerlige Ramappa
                   ` (24 subsequent siblings)
  32 siblings, 2 replies; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

To support 64 bit OA report headers, treat all ticks as 64 bits.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 tests/i915/perf.c | 79 ++++++++++++++++++++++++++++++++---------------
 1 file changed, 54 insertions(+), 25 deletions(-)

diff --git a/tests/i915/perf.c b/tests/i915/perf.c
index bd3cdb6a..4c7b4e49 100644
--- a/tests/i915/perf.c
+++ b/tests/i915/perf.c
@@ -125,6 +125,7 @@ struct oa_format {
 	int c_off;
 	int n_c;
 	int oa_type;
+	bool report_hdr_64bit;
 };
 
 static struct oa_format hsw_oa_formats[I915_OA_FORMAT_MAX] = {
@@ -244,7 +245,7 @@ static bool *undefined_a_counters;
 static uint64_t oa_exp_1_millisec;
 
 static igt_render_copyfunc_t render_copy = NULL;
-static uint32_t (*read_report_ticks)(const uint32_t *report,
+static uint64_t (*read_report_ticks)(const uint32_t *report,
 				     enum drm_i915_oa_format format);
 static void (*sanity_check_reports)(const uint32_t *oa_report0,
 				    const uint32_t *oa_report1,
@@ -438,7 +439,7 @@ sysfs_read(enum i915_attr_id id)
  * C2 corresponds to a clock counter for the Haswell render basic metric set
  * but it's not included in all of the formats.
  */
-static uint32_t
+static uint64_t
 hsw_read_report_ticks(const uint32_t *report, enum drm_i915_oa_format format)
 {
 	uint32_t *c = (uint32_t *)(((uint8_t *)report) + get_oa_format(format).c_off);
@@ -448,10 +449,41 @@ hsw_read_report_ticks(const uint32_t *report, enum drm_i915_oa_format format)
 	return c[2];
 }
 
-static uint32_t
+static uint64_t
 gen8_read_report_ticks(const uint32_t *report, enum drm_i915_oa_format format)
 {
-	return report[3];
+
+	struct oa_format fmt = get_oa_format(format);
+
+	return fmt.report_hdr_64bit ? *(uint64_t *)&report[6] : report[3];
+}
+
+/*
+ * t0 is a value sampled before t1. width is number of bits used to represent
+ * t0/t1. Normally t1 is greater than t0. In cases where t1 < t0 use this
+ * helper. Since the size of t1/t0 is already 64 bits, no special handling is
+ * needed for width = 64.
+ */
+static uint64_t
+elapsed_delta(uint64_t t1, uint64_t t0, uint32_t width)
+{
+	uint32_t max_bits = sizeof(t1) * 8;
+
+	igt_assert(width <= max_bits);
+
+	if (t1 < t0 && width != max_bits)
+		return ((1ULL << width) - t0) + t1;
+
+	return t1 - t0;
+}
+
+static uint64_t
+oa_tick_delta(const uint32_t *report1,
+	      const uint32_t *report0,
+	      enum drm_i915_oa_format format)
+{
+	return elapsed_delta(read_report_ticks(report1, format),
+			     read_report_ticks(report0, format), 32);
 }
 
 static void
@@ -681,8 +713,8 @@ hsw_sanity_check_render_basic_reports(const uint32_t *oa_report0,
 				      enum drm_i915_oa_format fmt)
 {
 	uint32_t time_delta = timebase_scale(oa_report1[1] - oa_report0[1]);
-	uint32_t clock_delta;
-	uint32_t max_delta;
+	uint64_t clock_delta;
+	uint64_t max_delta;
 	struct oa_format format = get_oa_format(fmt);
 
 	igt_assert_neq(time_delta, 0);
@@ -697,21 +729,19 @@ hsw_sanity_check_render_basic_reports(const uint32_t *oa_report0,
 		clock_delta = (gt_max_freq_mhz *
 			       (uint64_t)time_delta) / 1000;
 	} else {
-		uint32_t ticks0 = read_report_ticks(oa_report0, fmt);
-		uint32_t ticks1 = read_report_ticks(oa_report1, fmt);
 		uint64_t freq;
 
-		clock_delta = ticks1 - ticks0;
+		clock_delta = oa_tick_delta(oa_report1, oa_report0, fmt);
 
-		igt_assert_neq(clock_delta, 0);
+		igt_assert_neq_u64(clock_delta, 0);
 
-		freq = ((uint64_t)clock_delta * 1000) / time_delta;
+		freq = (clock_delta * 1000) / time_delta;
 		igt_debug("freq = %"PRIu64"\n", freq);
 
 		igt_assert(freq <= gt_max_freq_mhz);
 	}
 
-	igt_debug("clock delta = %"PRIu32"\n", clock_delta);
+	igt_debug("clock delta = %"PRIu64"\n", clock_delta);
 
 	/* The maximum rate for any HSW counter =
 	 *   clock_delta * N EUs
@@ -844,7 +874,8 @@ accumulate_reports(struct accumulator *accumulator,
 		accumulate_uint32(4, start, end, deltas + idx++);
 
 		/* clock cycles */
-		accumulate_uint32(12, start, end, deltas + idx++);
+		deltas[idx] += oa_tick_delta(end, start, accumulator->format);
+		idx++;
 	} else {
 		/* timestamp */
 		accumulate_uint32(4, start, end, deltas + idx++);
@@ -917,10 +948,8 @@ gen8_sanity_check_test_oa_reports(const uint32_t *oa_report0,
 {
 	struct oa_format format = get_oa_format(fmt);
 	uint32_t time_delta = timebase_scale(oa_report1[1] - oa_report0[1]);
-	uint32_t ticks0 = read_report_ticks(oa_report0, fmt);
-	uint32_t ticks1 = read_report_ticks(oa_report1, fmt);
-	uint32_t clock_delta = ticks1 - ticks0;
-	uint32_t max_delta;
+	uint64_t clock_delta = oa_tick_delta(oa_report1, oa_report0, fmt);
+	uint64_t max_delta;
 	uint64_t freq;
 	uint32_t *rpt0_b = (uint32_t *)(((uint8_t *)oa_report0) +
 					format.b_off);
@@ -933,10 +962,10 @@ gen8_sanity_check_test_oa_reports(const uint32_t *oa_report0,
 		  gen8_read_report_reason(oa_report0),
 		  gen8_read_report_reason(oa_report1));
 
-	freq = time_delta ? ((uint64_t)clock_delta * 1000) / time_delta : 0;
+	freq = time_delta ? (clock_delta * 1000) / time_delta : 0;
 	igt_debug("freq = %"PRIu64"\n", freq);
 
-	igt_debug("clock delta = %"PRIu32"\n", clock_delta);
+	igt_debug("clock delta = %"PRIu64"\n", clock_delta);
 
 	max_delta = clock_delta * intel_perf->devinfo.n_eus;
 
@@ -1037,7 +1066,7 @@ gen8_sanity_check_test_oa_reports(const uint32_t *oa_report0,
 					    format.c_off);
 		uint32_t delta = c1[j] - c0[j];
 
-		igt_debug("C%d: delta = %"PRIu32", max_delta=%"PRIu32"\n",
+		igt_debug("C%d: delta = %"PRIu32", max_delta=%"PRIu64"\n",
 			  j, delta, max_delta);
 		igt_assert(delta <= max_delta);
 	}
@@ -1529,10 +1558,10 @@ print_reports(uint32_t *oa_report0, uint32_t *oa_report1, int fmt)
 	if (IS_HASWELL(devid) && format.n_c == 0) {
 		igt_debug("CLOCK = N/A\n");
 	} else {
-		uint32_t clock0 = read_report_ticks(oa_report0, fmt);
-		uint32_t clock1 = read_report_ticks(oa_report1, fmt);
+		uint64_t clock0 = read_report_ticks(oa_report0, fmt);
+		uint64_t clock1 = read_report_ticks(oa_report1, fmt);
 
-		igt_debug("CLOCK: 1st = %"PRIu32", 2nd = %"PRIu32", delta = %"PRIu32"\n",
+		igt_debug("CLOCK: 1st = %"PRIu64", 2nd = %"PRIu64", delta = %"PRIu64"\n",
 			  clock0, clock1, clock1 - clock0);
 	}
 
@@ -1634,9 +1663,9 @@ print_report(uint32_t *report, int fmt)
 	if (IS_HASWELL(devid) && format.n_c == 0) {
 		igt_debug("CLOCK = N/A\n");
 	} else {
-		uint32_t clock = read_report_ticks(report, fmt);
+		uint64_t clock = read_report_ticks(report, fmt);
 
-		igt_debug("CLOCK: %"PRIu32"\n", clock);
+		igt_debug("CLOCK: %"PRIu64"\n", clock);
 	}
 
 	if (intel_gen(devid) >= 8) {
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 09/31] i915/perf: Treat timestamp as 64 bit value
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
                   ` (7 preceding siblings ...)
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 08/31] i915/perf: Treat ticks as 64 bit Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-03-07 12:53   ` Kamil Konieczny
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 10/31] i915/perf: Add OAM format type Umesh Nerlige Ramappa
                   ` (23 subsequent siblings)
  32 siblings, 1 reply; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

New OA formats in MTL have 64 bit OA report header. Update the timestamp
in the tests to be dafault 64 bit.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 tests/i915/perf.c | 156 +++++++++++++++++++++++++++-------------------
 1 file changed, 93 insertions(+), 63 deletions(-)

diff --git a/tests/i915/perf.c b/tests/i915/perf.c
index 4c7b4e49..c3c5663b 100644
--- a/tests/i915/perf.c
+++ b/tests/i915/perf.c
@@ -552,9 +552,28 @@ cs_timebase_scale(uint32_t u32_delta)
 }
 
 static uint64_t
-timebase_scale(uint32_t u32_delta)
+oa_timestamp(const uint32_t *report, enum drm_i915_oa_format format)
 {
-	return ((uint64_t)u32_delta * NSEC_PER_SEC) / intel_perf->devinfo.timestamp_frequency;
+	struct oa_format fmt = get_oa_format(format);
+
+	return fmt.report_hdr_64bit ? *(uint64_t *)&report[2] : report[1];
+}
+
+static uint64_t
+oa_timestamp_delta(const uint32_t *report1,
+		   const uint32_t *report0,
+		   enum drm_i915_oa_format format)
+{
+	uint32_t width = intel_graphics_ver(devid) >= IP_VER(12, 55) ? 56 : 32;
+
+	return elapsed_delta(oa_timestamp(report1, format),
+			     oa_timestamp(report0, format), width);
+}
+
+static uint64_t
+timebase_scale(uint64_t delta)
+{
+	return (delta * NSEC_PER_SEC) / intel_perf->devinfo.timestamp_frequency;
 }
 
 /* Returns: the largest OA exponent that will still result in a sampling period
@@ -563,7 +582,7 @@ timebase_scale(uint32_t u32_delta)
 static int
 max_oa_exponent_for_period_lte(uint64_t period)
 {
-	/* NB: timebase_scale() takes a uint32_t and an exponent of 30
+	/* NB: timebase_scale() takes a uint64_t and an exponent of 30
 	 * would already represent a period of ~3 minutes so there's
 	 * really no need to consider higher exponents.
 	 */
@@ -712,12 +731,14 @@ hsw_sanity_check_render_basic_reports(const uint32_t *oa_report0,
 				      const uint32_t *oa_report1,
 				      enum drm_i915_oa_format fmt)
 {
-	uint32_t time_delta = timebase_scale(oa_report1[1] - oa_report0[1]);
+	uint64_t time_delta = timebase_scale(oa_timestamp_delta(oa_report1,
+								oa_report0,
+								fmt));
 	uint64_t clock_delta;
 	uint64_t max_delta;
 	struct oa_format format = get_oa_format(fmt);
 
-	igt_assert_neq(time_delta, 0);
+	igt_assert_neq_u64(time_delta, 0);
 
 	/* As a special case we have to consider that on Haswell we
 	 * can't explicitly derive a clock delta for all OA report
@@ -726,8 +747,7 @@ hsw_sanity_check_render_basic_reports(const uint32_t *oa_report0,
 	if (format.n_c == 0) {
 		/* Assume running at max freq for sake of
 		 * below sanity check on counters... */
-		clock_delta = (gt_max_freq_mhz *
-			       (uint64_t)time_delta) / 1000;
+		clock_delta = (gt_max_freq_mhz * time_delta) / 1000;
 	} else {
 		uint64_t freq;
 
@@ -871,7 +891,8 @@ accumulate_reports(struct accumulator *accumulator,
 
 	if (intel_gen(devid) >= 8) {
 		/* timestamp */
-		accumulate_uint32(4, start, end, deltas + idx++);
+		deltas[idx] += oa_timestamp_delta(end, start, accumulator->format);
+		idx++;
 
 		/* clock cycles */
 		deltas[idx] += oa_tick_delta(end, start, accumulator->format);
@@ -947,7 +968,9 @@ gen8_sanity_check_test_oa_reports(const uint32_t *oa_report0,
 				  enum drm_i915_oa_format fmt)
 {
 	struct oa_format format = get_oa_format(fmt);
-	uint32_t time_delta = timebase_scale(oa_report1[1] - oa_report0[1]);
+	uint64_t time_delta = timebase_scale(oa_timestamp_delta(oa_report1,
+								oa_report0,
+								fmt));
 	uint64_t clock_delta = oa_tick_delta(oa_report1, oa_report0, fmt);
 	uint64_t max_delta;
 	uint64_t freq;
@@ -1135,11 +1158,11 @@ static int
 i915_read_reports_until_timestamp(enum drm_i915_oa_format oa_format,
 				  uint8_t *buf,
 				  uint32_t max_size,
-				  uint32_t start_timestamp,
-				  uint32_t end_timestamp)
+				  uint64_t start_timestamp,
+				  uint64_t end_timestamp)
 {
 	size_t format_size = get_oa_format(oa_format).size;
-	uint32_t last_seen_timestamp = start_timestamp;
+	uint64_t last_seen_timestamp = start_timestamp;
 	int total_len = 0;
 
 	while (last_seen_timestamp < end_timestamp) {
@@ -1148,7 +1171,7 @@ i915_read_reports_until_timestamp(enum drm_i915_oa_format oa_format,
 		/* Running out of space. */
 		if ((max_size - total_len) < format_size) {
 			igt_warn("run out of space before reaching "
-				 "end timestamp (%u/%u)\n",
+				 "end timestamp (%"PRIu64"/%"PRIu64")\n",
 				 last_seen_timestamp, end_timestamp);
 			return -1;
 		}
@@ -1177,7 +1200,7 @@ i915_read_reports_until_timestamp(enum drm_i915_oa_format oa_format,
 			uint32_t *report = (uint32_t *) (header + 1);
 
 			if (header->type == DRM_I915_PERF_RECORD_SAMPLE)
-				last_seen_timestamp = report[1];
+				last_seen_timestamp = oa_timestamp(report, oa_format);
 
 			offset += header->size;
 		}
@@ -1483,11 +1506,11 @@ read_2_oa_reports(int format_id,
 			report = (const void *)(header + 1);
 			dump_report(report, format_size / 4, "oa-formats");
 
-			igt_debug("read report: reason = %x, timestamp = %x, exponent mask=%x\n",
-				  report[0], report[1], exponent_mask);
+			igt_debug("read report: reason = %x, timestamp = %"PRIx64", exponent mask=%x\n",
+				  report[0], oa_timestamp(report, format_id), exponent_mask);
 
 			/* Don't expect zero for timestamps */
-			igt_assert_neq(report[1], 0);
+			igt_assert_neq_u64(oa_timestamp(report, format_id), 0);
 
 			if (timer_only) {
 				if (!oa_report_is_periodic(exponent, report)) {
@@ -1551,9 +1574,11 @@ static void
 print_reports(uint32_t *oa_report0, uint32_t *oa_report1, int fmt)
 {
 	struct oa_format format = get_oa_format(fmt);
+	uint64_t ts0 = oa_timestamp(oa_report0, fmt);
+	uint64_t ts1 = oa_timestamp(oa_report1, fmt);
 
-	igt_debug("TIMESTAMP: 1st = %"PRIu32", 2nd = %"PRIu32", delta = %"PRIu32"\n",
-		  oa_report0[1], oa_report1[1], oa_report1[1] - oa_report0[1]);
+	igt_debug("TIMESTAMP: 1st = %"PRIu64", 2nd = %"PRIu64", delta = %"PRIu64"\n",
+		  ts0, ts1, ts1 - ts0);
 
 	if (IS_HASWELL(devid) && format.n_c == 0) {
 		igt_debug("CLOCK = N/A\n");
@@ -1658,7 +1683,7 @@ print_report(uint32_t *report, int fmt)
 {
 	struct oa_format format = get_oa_format(fmt);
 
-	igt_debug("TIMESTAMP: %"PRIu32"\n", report[1]);
+	igt_debug("TIMESTAMP: %"PRIu64"\n", oa_timestamp(report, fmt));
 
 	if (IS_HASWELL(devid) && format.n_c == 0) {
 		igt_debug("CLOCK = N/A\n");
@@ -1887,6 +1912,8 @@ static bool expected_report_timing_delta(uint32_t delta, uint32_t expected_delta
 static void
 test_oa_exponents(const struct intel_execution_engine2 *e)
 {
+	uint64_t fmt = test_set->perf_oa_format;
+
 	load_helper_init();
 	load_helper_run(HIGH);
 
@@ -1901,7 +1928,7 @@ test_oa_exponents(const struct intel_execution_engine2 *e)
 
 			/* OA unit configuration */
 			DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-			DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+			DRM_I915_PERF_PROP_OA_FORMAT, fmt,
 			DRM_I915_PERF_PROP_OA_EXPONENT, exponent,
 			DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
 			DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, e->instance,
@@ -1914,7 +1941,7 @@ test_oa_exponents(const struct intel_execution_engine2 *e)
 			.properties_ptr = to_user_pointer(properties),
 		};
 		uint64_t expected_timestamp_delta = 2ULL << exponent;
-		size_t format_size = get_oa_format(test_set->perf_oa_format).size;
+		size_t format_size = get_oa_format(fmt).size;
 		size_t sample_size = (sizeof(struct drm_i915_perf_record_header) +
 				      format_size);
 		int max_reports = MAX_OA_BUF_SIZE / format_size;
@@ -1978,15 +2005,16 @@ test_oa_exponents(const struct intel_execution_engine2 *e)
 
 		__perf_close(stream_fd);
 
-		igt_debug("report%04i ts=%08x hw_id=0x%08x\n", 0,
-			  timer_reports[0].report[1],
+		igt_debug("report%04i ts=%"PRIx64" hw_id=0x%08x\n", 0,
+			  oa_timestamp(timer_reports[0].report, fmt),
 			  oa_report_get_ctx_id(timer_reports[0].report));
 		for (int i = 1; i < n_timer_reports; i++) {
-			uint32_t delta =
-				timer_reports[i].report[1] - timer_reports[i - 1].report[1];
+			uint64_t delta = oa_timestamp_delta(timer_reports[i].report,
+							    timer_reports[i - 1].report,
+							    fmt);
 
-			igt_debug("report%04i ts=%08x hw_id=0x%08x delta=%u %s\n", i,
-				  timer_reports[i].report[1],
+			igt_debug("report%04i ts=%"PRIx64" hw_id=0x%08x delta=%"PRIu64" %s\n", i,
+				  oa_timestamp(timer_reports[i].report, fmt),
 				  oa_report_get_ctx_id(timer_reports[i].report),
 				  delta, expected_report_timing_delta(delta,
 								      expected_timestamp_delta) ? "" : "******");
@@ -2705,13 +2733,14 @@ test_buffer_fill(const struct intel_execution_engine2 *e)
 	/* ~5 micro second period */
 	int oa_exponent = max_oa_exponent_for_period_lte(5000);
 	uint64_t oa_period = oa_exponent_to_ns(oa_exponent);
+	uint64_t fmt = test_set->perf_oa_format;
 	uint64_t properties[] = {
 		/* Include OA reports in samples */
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
 
 		/* OA unit configuration */
 		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+		DRM_I915_PERF_PROP_OA_FORMAT, fmt,
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
 		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
 		DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, e->instance,
@@ -2728,7 +2757,7 @@ test_buffer_fill(const struct intel_execution_engine2 *e)
 	uint8_t *buf = malloc(buf_size);
 	int len;
 	size_t oa_buf_size = MAX_OA_BUF_SIZE;
-	size_t report_size = get_oa_format(test_set->perf_oa_format).size;
+	size_t report_size = get_oa_format(fmt).size;
 	int n_full_oa_reports = oa_buf_size / report_size;
 	uint64_t fill_duration = n_full_oa_reports * oa_period;
 
@@ -2803,17 +2832,17 @@ test_buffer_fill(const struct intel_execution_engine2 *e)
 					igt_debug("report loss, trying again\n");
 					break;
 				case DRM_I915_PERF_RECORD_SAMPLE:
-					igt_debug(" > report ts=%u"
-						  " ts_delta_last_periodic=%8u is_timer=%i ctx_id=%8x nb_periodic=%u\n",
-						  report[1],
-						  n_periodic_reports > 0 ? report[1] - last_periodic_report[1] : 0,
+					igt_debug(" > report ts=%"PRIu64""
+						  " ts_delta_last_periodic=%"PRIu64" is_timer=%i ctx_id=%8x nb_periodic=%u\n",
+						  oa_timestamp(report, fmt),
+						  n_periodic_reports > 0 ?  oa_timestamp_delta(report, last_periodic_report, fmt) : 0,
 						  oa_report_is_periodic(oa_exponent, report),
 						  oa_report_get_ctx_id(report),
 						  n_periodic_reports);
 
 					if (first_timestamp == 0)
-						first_timestamp = report[1];
-					last_timestamp = report[1];
+						first_timestamp = oa_timestamp(report, fmt);
+					last_timestamp = oa_timestamp(report, fmt);
 
 					if (((last_timestamp - first_timestamp) * oa_period) < (fill_duration / 2))
 						break;
@@ -2940,13 +2969,14 @@ test_enable_disable(const struct intel_execution_engine2 *e)
 	/* ~5 micro second period */
 	int oa_exponent = max_oa_exponent_for_period_lte(5000);
 	uint64_t oa_period = oa_exponent_to_ns(oa_exponent);
+	uint64_t fmt = test_set->perf_oa_format;
 	uint64_t properties[] = {
 		/* Include OA reports in samples */
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
 
 		/* OA unit configuration */
 		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+		DRM_I915_PERF_PROP_OA_FORMAT, fmt,
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
 		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
 		DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, e->instance,
@@ -2962,7 +2992,7 @@ test_enable_disable(const struct intel_execution_engine2 *e)
 	int buf_size = 65536 * (256 + sizeof(struct drm_i915_perf_record_header));
 	uint8_t *buf = malloc(buf_size);
 	size_t oa_buf_size = MAX_OA_BUF_SIZE;
-	size_t report_size = get_oa_format(test_set->perf_oa_format).size;
+	size_t report_size = get_oa_format(fmt).size;
 	int n_full_oa_reports = oa_buf_size / report_size;
 	uint64_t fill_duration = n_full_oa_reports * oa_period;
 
@@ -2975,7 +3005,7 @@ test_enable_disable(const struct intel_execution_engine2 *e)
 		int len;
 		uint32_t n_periodic_reports;
 		struct drm_i915_perf_record_header *header;
-		uint32_t first_timestamp = 0, last_timestamp = 0;
+		uint64_t first_timestamp = 0, last_timestamp = 0;
 		uint32_t last_periodic_report[64];
 
 		/* Giving enough time for an overflow might help catch whether
@@ -3022,15 +3052,15 @@ test_enable_disable(const struct intel_execution_engine2 *e)
 					break;
 				case DRM_I915_PERF_RECORD_SAMPLE:
 					if (first_timestamp == 0)
-						first_timestamp = report[1];
-					last_timestamp = report[1];
+						first_timestamp = oa_timestamp(report, fmt);
+					last_timestamp = oa_timestamp(report, fmt);
 
-					igt_debug(" > report ts=%8x"
-						  " ts_delta_last_periodic=%s%8u"
+					igt_debug(" > report ts=%"PRIx64""
+						  " ts_delta_last_periodic=%s%"PRIu64""
 						  " is_timer=%i ctx_id=0x%8x\n",
-						  report[1],
+						  oa_timestamp(report, fmt),
 						  oa_report_is_periodic(oa_exponent, report) ? " " : "*",
-						  n_periodic_reports > 0 ? (report[1] - last_periodic_report[1]) : 0,
+						  n_periodic_reports > 0 ?  oa_timestamp_delta(report, last_periodic_report, fmt) : 0,
 						  oa_report_is_periodic(oa_exponent, report),
 						  oa_report_get_ctx_id(report));
 
@@ -3060,7 +3090,7 @@ test_enable_disable(const struct intel_execution_engine2 *e)
 
 		do_ioctl(stream_fd, I915_PERF_IOCTL_DISABLE, 0);
 
-		igt_debug("first ts = %u, last ts = %u\n", first_timestamp, last_timestamp);
+		igt_debug("first ts = %lu, last ts = %lu\n", first_timestamp, last_timestamp);
 
 		igt_debug("%f < %zu < %f\n",
 			  report_size * n_full_oa_reports * 0.45,
@@ -3366,7 +3396,7 @@ gen12_test_mi_rpc(const struct intel_execution_engine2 *e)
 	 * size amount of data was written.
 	 */
 	igt_assert_eq(report32[0], REPORT_ID);
-	igt_assert_neq(report32[1], 0);
+	igt_assert(oa_timestamp(report32, test_set->perf_oa_format));
 	igt_assert_neq(report32[format.b_off >> 2], 0x80808080);
 	igt_assert_eq(report32[format_size_32], 0x80808080);
 
@@ -3427,7 +3457,7 @@ test_mi_rpc(void)
 	report32 = buf->ptr;
 	dump_report(report32, 64, "mi-rpc");
 	igt_assert_eq(report32[0], 0xdeadbeef); /* report ID */
-	igt_assert_neq(report32[1], 0); /* timestamp */
+	igt_assert(oa_timestamp(report32, test_set->perf_oa_format)); /* timestamp */
 
 	igt_assert_neq(report32[63], 0x80808080); /* end of report */
 	igt_assert_eq(report32[64], 0x80808080); /* after 256 byte report */
@@ -4166,9 +4196,9 @@ static void gen12_single_ctx_helper(const struct intel_execution_engine2 *e)
 	uint32_t context0_id, context1_id;
 	uint32_t *report0_32, *report1_32, *report2_32, *report3_32;
 	uint64_t timestamp0_64, timestamp1_64;
-	uint32_t delta_ts64, delta_oa32;
+	uint64_t delta_ts64, delta_oa32;
 	uint64_t delta_ts64_ns, delta_oa32_ns;
-	uint32_t delta_delta;
+	uint64_t delta_delta;
 	int width = 800;
 	int height = 600;
 #define INVALID_CTX_ID 0xffffffff
@@ -4323,14 +4353,14 @@ static void gen12_single_ctx_helper(const struct intel_execution_engine2 *e)
 	 */
 	report0_32 = dst_buf->ptr;
 	igt_assert_eq(report0_32[0], 0xdeadbeef);
-	igt_assert_neq(report0_32[1], 0);
+	igt_assert(oa_timestamp(report0_32, fmt));
 	ctx0_id = report0_32[2];
 	igt_debug("MI_RPC(start) CTX ID: %u\n", ctx0_id);
 	dump_report(report0_32, 64, "report0_32");
 
 	report1_32 = report0_32 + 64;
 	igt_assert_eq(report1_32[0], 0xbeefbeef);
-	igt_assert_neq(report1_32[1], 0);
+	igt_assert(oa_timestamp(report1_32, fmt));
 	ctx1_id = report1_32[2];
 	igt_debug("CTX ID1: %u\n", ctx1_id);
 	dump_report(report1_32, 64, "report1_32");
@@ -4338,7 +4368,7 @@ static void gen12_single_ctx_helper(const struct intel_execution_engine2 *e)
 	/* Verify that counters in context1 are all zeroes */
 	report2_32 = report0_32 + 128;
 	igt_assert_eq(report2_32[0], 0x00c0ffee);
-	igt_assert_neq(report2_32[1], 0);
+	igt_assert(oa_timestamp(report2_32, fmt));
 	dump_report(report2_32, 64, "report2_32");
 	igt_assert_eq(0, memcmp(&report2_32[4],
 				(uint8_t *) dst_buf->ptr + 2048,
@@ -4346,7 +4376,7 @@ static void gen12_single_ctx_helper(const struct intel_execution_engine2 *e)
 
 	report3_32 = report0_32 + 192;
 	igt_assert_eq(report3_32[0], 0x01c0ffee);
-	igt_assert_neq(report3_32[1], 0);
+	igt_assert(oa_timestamp(report3_32, fmt));
 	dump_report(report3_32, 64, "report3_32");
 	igt_assert_eq(0, memcmp(&report3_32[4],
 				(uint8_t *) dst_buf->ptr + 2048,
@@ -4360,8 +4390,8 @@ static void gen12_single_ctx_helper(const struct intel_execution_engine2 *e)
 			accumulator.deltas[2 + 21],
 			accumulator.deltas[2 + 26]);
 
-	igt_debug("oa_timestamp32 0 = %u\n", report0_32[1]);
-	igt_debug("oa_timestamp32 1 = %u\n", report1_32[1]);
+	igt_debug("oa_timestamp32 0 = %"PRIu64"\n", oa_timestamp(report0_32, fmt));
+	igt_debug("oa_timestamp32 1 = %"PRIu64"\n", oa_timestamp(report1_32, fmt));
 	igt_debug("ctx_id 0 = %u\n", report0_32[2]);
 	igt_debug("ctx_id 1 = %u\n", report1_32[2]);
 
@@ -4376,23 +4406,23 @@ static void gen12_single_ctx_helper(const struct intel_execution_engine2 *e)
 	igt_debug("ts_timestamp64 1 = %"PRIu64"\n", timestamp1_64);
 
 	delta_ts64 = timestamp1_64 - timestamp0_64;
-	delta_oa32 = report1_32[1] - report0_32[1];
+	delta_oa32 = oa_timestamp_delta(report1_32, report0_32, fmt);
 
 	/* Sanity check that we can pass the delta to timebase_scale */
-	igt_assert(delta_ts64 < UINT32_MAX);
 	delta_oa32_ns = timebase_scale(delta_oa32);
 	delta_ts64_ns = cs_timebase_scale(delta_ts64);
 
-	igt_debug("oa32 delta = %u, = %uns\n",
-			delta_oa32, (unsigned)delta_oa32_ns);
-	igt_debug("ts64 delta = %u, = %uns\n",
-			delta_ts64, (unsigned)delta_ts64_ns);
+	igt_debug("oa32 delta = %"PRIu64", = %"PRIu64"ns\n",
+			delta_oa32, delta_oa32_ns);
+	igt_debug("ts64 delta = %"PRIu64", = %"PRIu64"ns\n",
+			delta_ts64, delta_ts64_ns);
 
 	delta_delta = delta_ts64_ns > delta_oa32_ns ?
 		      (delta_ts64_ns - delta_oa32_ns) :
 		      (delta_oa32_ns - delta_ts64_ns);
 	if (delta_delta > 500) {
-		igt_debug("delta_delta exceeds margin, skipping..\n");
+		igt_debug("delta_delta = %"PRIu64". exceeds margin, skipping..\n",
+			  delta_delta);
 		exit(EAGAIN);
 	}
 
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 10/31] i915/perf: Add OAM format type
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
                   ` (8 preceding siblings ...)
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 09/31] i915/perf: Treat timestamp as 64 bit value Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-03-07 13:45   ` Kamil Konieczny
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 11/31] i915/perf: Move OA format array from stack to heap Umesh Nerlige Ramappa
                   ` (22 subsequent siblings)
  32 siblings, 1 reply; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Don't check for B and C counters sanity for OAM formats.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 tests/i915/perf.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tests/i915/perf.c b/tests/i915/perf.c
index c3c5663b..e9613dc9 100644
--- a/tests/i915/perf.c
+++ b/tests/i915/perf.c
@@ -104,6 +104,7 @@ struct accumulator {
 enum {
 	OAG,
 	OAR,
+	OAM,
 
 	MAX_OA_TYPE,
 };
@@ -1035,7 +1036,7 @@ gen8_sanity_check_test_oa_reports(const uint32_t *oa_report0,
 	/* The TestOa metric set defines all B counters to be a
 	 * multiple of the gpu clock
 	 */
-	if (format.n_b) {
+	if (format.n_b && (format.oa_type == OAG || format.oa_type == OAR)) {
 		if (clock_delta > 0) {
 			b = rpt1_b[0] - rpt0_b[0];
 			igt_debug("B0: delta = %"PRIu32"\n", b);
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 11/31] i915/perf: Move OA format array from stack to heap
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
                   ` (9 preceding siblings ...)
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 10/31] i915/perf: Add OAM format type Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-03-07 13:32   ` Kamil Konieczny
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 12/31] i915/perf: Use a helper for OA format Umesh Nerlige Ramappa
                   ` (21 subsequent siblings)
  32 siblings, 1 reply; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

The OA format size will change based on the specific format used in some
of the tests. In preparation for that, allocated the space required for
the format on heap.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 tests/i915/perf.c | 48 ++++++++++++++++++++++++-----------------------
 1 file changed, 25 insertions(+), 23 deletions(-)

diff --git a/tests/i915/perf.c b/tests/i915/perf.c
index e9613dc9..add41f7d 100644
--- a/tests/i915/perf.c
+++ b/tests/i915/perf.c
@@ -1950,9 +1950,9 @@ test_oa_exponents(const struct intel_execution_engine2 *e)
 		uint8_t *buf = calloc(1, buf_size);
 		int ret, n_timer_reports = 0;
 		uint32_t matches = 0;
-		struct {
-			uint32_t report[64];
-		} timer_reports[30];
+#define NUM_TIMER_REPORTS 30
+		uint32_t *reports = malloc(NUM_TIMER_REPORTS * format_size);
+		uint32_t *timer_reports = reports;
 
 		igt_debug("testing OA exponent %d,"
 			  " expected ts delta = %"PRIu64" (%"PRIu64"ns/%.2fus/%.2fms)\n",
@@ -1963,7 +1963,7 @@ test_oa_exponents(const struct intel_execution_engine2 *e)
 
 		stream_fd = __perf_open(drm_fd, &param, true /* prevent_pm */);
 
-		while (n_timer_reports < ARRAY_SIZE(timer_reports)) {
+		while (n_timer_reports < NUM_TIMER_REPORTS) {
 			struct drm_i915_perf_record_header *header;
 
 			while ((ret = read(stream_fd, buf, buf_size)) < 0 &&
@@ -1976,7 +1976,7 @@ test_oa_exponents(const struct intel_execution_engine2 *e)
 			igt_assert(ret > 0);
 
 			for (int offset = 0;
-			     offset < ret && n_timer_reports < ARRAY_SIZE(timer_reports);
+			     offset < ret && n_timer_reports < NUM_TIMER_REPORTS;
 			     offset += header->size) {
 				uint32_t *report;
 
@@ -1998,25 +1998,25 @@ test_oa_exponents(const struct intel_execution_engine2 *e)
 				if (!oa_report_is_periodic(exponent, report))
 					continue;
 
-				memcpy(timer_reports[n_timer_reports].report, report,
-				       sizeof(timer_reports[n_timer_reports].report));
+				memcpy(timer_reports, report, format_size);
 				n_timer_reports++;
+				timer_reports += (format_size / 4);
 			}
 		}
 
 		__perf_close(stream_fd);
 
 		igt_debug("report%04i ts=%"PRIx64" hw_id=0x%08x\n", 0,
-			  oa_timestamp(timer_reports[0].report, fmt),
-			  oa_report_get_ctx_id(timer_reports[0].report));
+			  oa_timestamp(&reports[0], fmt),
+			  oa_report_get_ctx_id(&reports[0]));
 		for (int i = 1; i < n_timer_reports; i++) {
-			uint64_t delta = oa_timestamp_delta(timer_reports[i].report,
-							    timer_reports[i - 1].report,
+			uint64_t delta = oa_timestamp_delta(&reports[i],
+							    &reports[i - 1],
 							    fmt);
 
 			igt_debug("report%04i ts=%"PRIx64" hw_id=0x%08x delta=%"PRIu64" %s\n", i,
-				  oa_timestamp(timer_reports[i].report, fmt),
-				  oa_report_get_ctx_id(timer_reports[i].report),
+				  oa_timestamp(&reports[i], fmt),
+				  oa_report_get_ctx_id(&reports[i]),
 				  delta, expected_report_timing_delta(delta,
 								      expected_timestamp_delta) ? "" : "******");
 
@@ -2033,6 +2033,8 @@ test_oa_exponents(const struct intel_execution_engine2 *e)
 		 * etc...
 		 */
 		igt_assert_lte(n_timer_reports / 2, matches);
+
+		free(reports);
 	}
 
 	load_helper_stop();
@@ -2754,13 +2756,14 @@ test_buffer_fill(const struct intel_execution_engine2 *e)
 		.properties_ptr = to_user_pointer(properties),
 	};
 	struct drm_i915_perf_record_header *header;
-	int buf_size = 65536 * (256 + sizeof(struct drm_i915_perf_record_header));
+	size_t report_size = get_oa_format(fmt).size;
+	int buf_size = 65536 * (report_size + sizeof(struct drm_i915_perf_record_header));
 	uint8_t *buf = malloc(buf_size);
 	int len;
 	size_t oa_buf_size = MAX_OA_BUF_SIZE;
-	size_t report_size = get_oa_format(fmt).size;
 	int n_full_oa_reports = oa_buf_size / report_size;
 	uint64_t fill_duration = n_full_oa_reports * oa_period;
+	uint32_t *last_periodic_report = malloc(report_size / 4);
 
 	igt_assert(fill_duration < 1000000000);
 
@@ -2770,7 +2773,6 @@ test_buffer_fill(const struct intel_execution_engine2 *e)
 		bool overflow_seen;
 		uint32_t n_periodic_reports;
 		uint32_t first_timestamp = 0, last_timestamp = 0;
-		uint32_t last_periodic_report[64];
 
 		do_ioctl(stream_fd, I915_PERF_IOCTL_ENABLE, 0);
 
@@ -2849,8 +2851,7 @@ test_buffer_fill(const struct intel_execution_engine2 *e)
 						break;
 
 					if (oa_report_is_periodic(oa_exponent, report)) {
-						memcpy(last_periodic_report, report,
-						       sizeof(last_periodic_report));
+						memcpy(last_periodic_report, report, report_size);
 						n_periodic_reports++;
 					}
 					break;
@@ -2876,6 +2877,7 @@ test_buffer_fill(const struct intel_execution_engine2 *e)
 			   report_size * n_full_oa_reports * 0.55);
 	}
 
+	free(last_periodic_report);
 	free(buf);
 
 	__perf_close(stream_fd);
@@ -2990,12 +2992,13 @@ test_enable_disable(const struct intel_execution_engine2 *e)
 				  (ARRAY_SIZE(properties) / 2) - 2,
 		.properties_ptr = to_user_pointer(properties),
 	};
-	int buf_size = 65536 * (256 + sizeof(struct drm_i915_perf_record_header));
+	size_t report_size = get_oa_format(fmt).size;
+	int buf_size = 65536 * (report_size + sizeof(struct drm_i915_perf_record_header));
 	uint8_t *buf = malloc(buf_size);
 	size_t oa_buf_size = MAX_OA_BUF_SIZE;
-	size_t report_size = get_oa_format(fmt).size;
 	int n_full_oa_reports = oa_buf_size / report_size;
 	uint64_t fill_duration = n_full_oa_reports * oa_period;
+	uint32_t *last_periodic_report = malloc(report_size / 4);
 
 	load_helper_init();
 	load_helper_run(HIGH);
@@ -3007,7 +3010,6 @@ test_enable_disable(const struct intel_execution_engine2 *e)
 		uint32_t n_periodic_reports;
 		struct drm_i915_perf_record_header *header;
 		uint64_t first_timestamp = 0, last_timestamp = 0;
-		uint32_t last_periodic_report[64];
 
 		/* Giving enough time for an overflow might help catch whether
 		 * the OA unit has been enabled even if the driver might at
@@ -3069,8 +3071,7 @@ test_enable_disable(const struct intel_execution_engine2 *e)
 						break;
 
 					if (oa_report_is_periodic(oa_exponent, report)) {
-						memcpy(last_periodic_report, report,
-						       sizeof(last_periodic_report));
+						memcpy(last_periodic_report, report, report_size);
 
 						/* We want to measure only the
 						 * periodic reports, ctx-switch
@@ -3113,6 +3114,7 @@ test_enable_disable(const struct intel_execution_engine2 *e)
 		igt_assert_eq(errno, EIO);
 	}
 
+	free(last_periodic_report);
 	free(buf);
 
 	__perf_close(stream_fd);
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 12/31] i915/perf: Use a helper for OA format
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
                   ` (10 preceding siblings ...)
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 11/31] i915/perf: Move OA format array from stack to heap Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-03-07 13:49   ` Kamil Konieczny
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 13/31] i915/perf: Add support for oa perf groups Umesh Nerlige Ramappa
                   ` (20 subsequent siblings)
  32 siblings, 1 reply; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Refactor and use a helper for OA format

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 tests/i915/perf.c | 24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

diff --git a/tests/i915/perf.c b/tests/i915/perf.c
index add41f7d..90c78929 100644
--- a/tests/i915/perf.c
+++ b/tests/i915/perf.c
@@ -670,6 +670,12 @@ oar_unit_default_format(void)
 	return test_set->perf_oa_format;
 }
 
+static int
+oa_unit_default_format(void)
+{
+	return test_set->perf_oa_format;
+}
+
 /*
  * Temporary wrapper to distinguish mappings on !llc platforms,
  * where it seems cache over GEM_MMAP_OFFSET is not flushed before execution.
@@ -1913,7 +1919,7 @@ static bool expected_report_timing_delta(uint32_t delta, uint32_t expected_delta
 static void
 test_oa_exponents(const struct intel_execution_engine2 *e)
 {
-	uint64_t fmt = test_set->perf_oa_format;
+	uint64_t fmt = oa_unit_default_format();
 
 	load_helper_init();
 	load_helper_run(HIGH);
@@ -2256,7 +2262,7 @@ test_blocking(uint64_t requested_oa_period,
 
 	ADD_PROPS(props, idx, SAMPLE_OA, true);
 	ADD_PROPS(props, idx, OA_METRICS_SET, test_set->perf_oa_metrics_set);
-	ADD_PROPS(props, idx, OA_FORMAT, test_set->perf_oa_format);
+	ADD_PROPS(props, idx, OA_FORMAT, oa_unit_default_format());
 	ADD_PROPS(props, idx, OA_EXPONENT, oa_exponent);
 
 	if (has_param_poll_period() && set_kernel_hrtimer)
@@ -2419,7 +2425,7 @@ test_polling(uint64_t requested_oa_period,
 
 	ADD_PROPS(props, idx, SAMPLE_OA, true);
 	ADD_PROPS(props, idx, OA_METRICS_SET, test_set->perf_oa_metrics_set);
-	ADD_PROPS(props, idx, OA_FORMAT, test_set->perf_oa_format);
+	ADD_PROPS(props, idx, OA_FORMAT, oa_unit_default_format());
 	ADD_PROPS(props, idx, OA_EXPONENT, oa_exponent);
 
 	if (has_param_poll_period() && set_kernel_hrtimer)
@@ -2693,7 +2699,7 @@ gen12_test_oa_tlb_invalidate(const struct intel_execution_engine2 *e)
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
 
 		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+		DRM_I915_PERF_PROP_OA_FORMAT, oa_unit_default_format(),
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
 		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
 		DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, e->instance,
@@ -2736,7 +2742,7 @@ test_buffer_fill(const struct intel_execution_engine2 *e)
 	/* ~5 micro second period */
 	int oa_exponent = max_oa_exponent_for_period_lte(5000);
 	uint64_t oa_period = oa_exponent_to_ns(oa_exponent);
-	uint64_t fmt = test_set->perf_oa_format;
+	uint64_t fmt = oa_unit_default_format();
 	uint64_t properties[] = {
 		/* Include OA reports in samples */
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
@@ -2972,7 +2978,7 @@ test_enable_disable(const struct intel_execution_engine2 *e)
 	/* ~5 micro second period */
 	int oa_exponent = max_oa_exponent_for_period_lte(5000);
 	uint64_t oa_period = oa_exponent_to_ns(oa_exponent);
-	uint64_t fmt = test_set->perf_oa_format;
+	uint64_t fmt = oa_unit_default_format();
 	uint64_t properties[] = {
 		/* Include OA reports in samples */
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
@@ -4567,7 +4573,7 @@ test_stress_open_close(const struct intel_execution_engine2 *e)
 
 			/* OA unit configuration */
 			DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-			DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+			DRM_I915_PERF_PROP_OA_FORMAT, oa_unit_default_format(),
 			DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
 			DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
 			DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, e->instance,
@@ -4670,7 +4676,7 @@ test_global_sseu_config_invalid(const struct intel_execution_engine2 *e)
 
 		/* OA unit configuration */
 		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+		DRM_I915_PERF_PROP_OA_FORMAT, oa_unit_default_format(),
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
 		DRM_I915_PERF_PROP_GLOBAL_SSEU, to_user_pointer(&sseu_param),
 		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
@@ -4759,7 +4765,7 @@ test_global_sseu_config(const struct intel_execution_engine2 *e)
 
 		/* OA unit configuration */
 		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+		DRM_I915_PERF_PROP_OA_FORMAT, oa_unit_default_format(),
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
 		DRM_I915_PERF_PROP_GLOBAL_SSEU, to_user_pointer(&sseu_param),
 		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 13/31] i915/perf: Add support for oa perf groups
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
                   ` (11 preceding siblings ...)
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 12/31] i915/perf: Use a helper for OA format Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-03-07 14:09   ` Kamil Konieczny
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 14/31] i915/perf: Test concurrent access to OA in different groups Umesh Nerlige Ramappa
                   ` (19 subsequent siblings)
  32 siblings, 1 reply; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

With multiple OA buffers, we need a way to group engines per OA buffer.
Add support for oa perf groups for tests

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 tests/i915/perf.c | 169 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 169 insertions(+)

diff --git a/tests/i915/perf.c b/tests/i915/perf.c
index 90c78929..727eaf4e 100644
--- a/tests/i915/perf.c
+++ b/tests/i915/perf.c
@@ -39,6 +39,7 @@
 #include <math.h>
 
 #include "i915/gem.h"
+#include "i915/gem_engine_topology.h"
 #include "i915/perf.h"
 #include "igt.h"
 #include "igt_perf.h"
@@ -238,6 +239,8 @@ static int pm_fd = -1;
 static int stream_fd = -1;
 static uint32_t devid;
 static struct intel_execution_engine2 default_e2;
+static struct perf_engine_group *perf_oa_groups;
+static uint32_t num_perf_oa_groups;
 
 static uint64_t gt_max_freq_mhz = 0;
 static struct intel_perf *intel_perf = NULL;
@@ -5312,6 +5315,167 @@ test_sysctl_defaults(void)
 		if (e__->class == I915_ENGINE_CLASS_RENDER) \
 			igt_dynamic_f("%s", e__->name)
 
+struct perf_engine_group {
+	/* exclusive perf fd per engine group */
+	int perf_fd;
+
+	/* gem context id passed to perf */
+	uint32_t ctx_id;
+	uint32_t oa_unit_id;
+
+	/* perf engines in a group */
+	int num_engines;
+	struct i915_engine_class_instance *ci;
+};
+
+static struct drm_i915_query_engine_info *query_engine_info(int i915)
+{
+	struct drm_i915_query_engine_info *qinfo;
+
+#define QUERY_SIZE (0x4000)
+	qinfo = malloc(QUERY_SIZE);
+	igt_assert(qinfo);
+	memset(qinfo, 0, QUERY_SIZE);
+	igt_assert(!__gem_query_engines(i915, qinfo, QUERY_SIZE));
+#undef QUERY_SIZE
+
+	return qinfo;
+}
+
+static int compare_engine_oa_unit_id(const void *e1, const void *e2)
+{
+	const struct drm_i915_engine_info *_e1 = e1;
+	const struct drm_i915_engine_info *_e2 = e2;
+
+	return (int)_e1->rsvd0 - (int)_e2->rsvd0;
+}
+
+static struct perf_engine_group *default_engine_group(uint32_t *num_groups)
+{
+	struct perf_engine_group *groups = malloc(sizeof(*groups));
+
+	igt_debug("using default engine group\n");
+
+	groups->perf_fd = -1,
+	groups->ctx_id = 0xffffffff,
+	groups->oa_unit_id = 0,
+	groups->num_engines = 1,
+
+	groups->ci = malloc(sizeof(*groups->ci));
+	groups->ci->engine_class = default_e2.class;
+	groups->ci->engine_instance = default_e2.instance;
+
+	*num_groups = 1;
+
+	return groups;
+}
+
+/* Until oa_unit_id is exposed from uapi, work around it */
+static void populate_mtl_oa_unit_ids(struct drm_i915_query_engine_info *qinfo)
+{
+	struct i915_engine_class_instance ci;
+	int i;
+
+	for (i = 0; i < qinfo->num_engines; i++) {
+		ci = qinfo->engines[i].engine;
+
+		switch (ci.engine_class) {
+		case I915_ENGINE_CLASS_RENDER:
+			qinfo->engines[i].rsvd0 = 0;
+			break;
+
+		case I915_ENGINE_CLASS_VIDEO:
+		case I915_ENGINE_CLASS_VIDEO_ENHANCE:
+			qinfo->engines[i].rsvd0 = 1;
+			break;
+
+		default:
+			qinfo->engines[i].rsvd0 = UINT32_MAX;
+			break;
+		}
+
+		igt_debug("class:instance = %d:%d, id = %d\n",
+			  ci.engine_class, ci.engine_instance,
+			  qinfo->engines[i].rsvd0);
+	}
+}
+
+static struct perf_engine_group *get_engine_groups(int i915, uint32_t *num_groups)
+{
+	struct drm_i915_query_engine_info *qinfo;
+	struct perf_engine_group *groups = NULL;
+	uint32_t id = UINT32_MAX, num_grps = 0, i = 0, j;
+
+	qinfo = query_engine_info(i915);
+	if (!qinfo)
+		return default_engine_group(num_groups);
+	igt_assert(qinfo->num_engines);
+
+	/* Currently only meteorlake is supported with engine groups */
+	if (IS_METEORLAKE(devid)) {
+		populate_mtl_oa_unit_ids(qinfo);
+	} else {
+		free(qinfo);
+		return default_engine_group(num_groups);
+	}
+
+	/* sort so that engines with same oa id are together */
+	qsort(qinfo->engines, qinfo->num_engines, sizeof(qinfo->engines[0]),
+	      compare_engine_oa_unit_id);
+
+	/* create groups */
+	for (i = 0; i < qinfo->num_engines; i++) {
+		struct i915_engine_class_instance ci = qinfo->engines[i].engine;
+
+		igt_debug("class:instance = %d:%d, id = %d\n",
+			  ci.engine_class, ci.engine_instance,
+			  qinfo->engines[i].rsvd0);
+
+		if (qinfo->engines[i].rsvd0 == UINT32_MAX)
+			continue;
+
+		if (qinfo->engines[i].rsvd0 != id) {
+			id = qinfo->engines[i].rsvd0;
+			groups = realloc(groups, ++num_grps * sizeof(*groups));
+			j = num_grps - 1;
+			groups[j].perf_fd = -1;
+			groups[j].ctx_id = 0xffffffff;
+			groups[j].oa_unit_id = id;
+			groups[j].num_engines = 0;
+			/* alloc max engines, trim later */
+			groups[j].ci = malloc(qinfo->num_engines * sizeof(ci));
+		}
+		groups[j].ci[groups[j].num_engines++] = ci;
+	}
+
+	igt_assert(num_grps);
+
+	/* trim engines */
+	for (i = 0; i < num_grps; i++) {
+		struct i915_engine_class_instance *ci = groups[i].ci;
+
+		ci = realloc(ci, groups[i].num_engines * sizeof(*ci));
+		groups[i].ci = ci;
+	}
+
+	*num_groups = num_grps;
+
+	free(qinfo);
+
+	return groups;
+}
+
+static void put_engine_groups(struct perf_engine_group *groups,
+			      unsigned int num_groups)
+{
+	int i;
+
+	for (i = 0; i < num_groups; i++)
+		free(groups[i].ci);
+
+	free(groups);
+}
+
 static bool has_class_instance(int i915, uint16_t class, uint16_t instance)
 {
 	int fd;
@@ -5382,6 +5546,8 @@ igt_main
 		write_u64_file("/proc/sys/dev/i915/oa_max_sample_rate", 100000);
 
 		gt_max_freq_mhz = sysfs_read(RPS_RP0_FREQ_MHZ);
+		perf_oa_groups = get_engine_groups(drm_fd, &num_perf_oa_groups);
+		igt_assert(perf_oa_groups && num_perf_oa_groups);
 
 		if (has_class_instance(drm_fd, I915_ENGINE_CLASS_RENDER, 0))
 			render_copy = igt_get_render_copyfunc(devid);
@@ -5604,6 +5770,9 @@ igt_main
 		if (intel_perf)
 			intel_perf_free(intel_perf);
 
+		if (perf_oa_groups)
+			put_engine_groups(perf_oa_groups, num_perf_oa_groups);
+
 		intel_ctx_destroy(drm_fd, ctx);
 		close(drm_fd);
 	}
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 14/31] i915/perf: Test concurrent access to OA in different groups
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
                   ` (12 preceding siblings ...)
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 13/31] i915/perf: Add support for oa perf groups Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-03-13 15:04   ` Kamil Konieczny
  2023-03-14 23:17   ` Dixit, Ashutosh
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 15/31] i915/perf: Add OAM support Umesh Nerlige Ramappa
                   ` (18 subsequent siblings)
  32 siblings, 2 replies; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

With multiple OA buffers, verify that the perf interface allows
concurrent access to the OA buffers in different groups.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 tests/i915/perf.c | 135 ++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 131 insertions(+), 4 deletions(-)

diff --git a/tests/i915/perf.c b/tests/i915/perf.c
index 727eaf4e..9c926fd2 100644
--- a/tests/i915/perf.c
+++ b/tests/i915/perf.c
@@ -2248,6 +2248,7 @@ test_blocking(uint64_t requested_oa_period,
 
 	int max_iterations = (test_duration_ns / oa_period) + 2;
 	int n_extra_iterations = 0;
+	int perf_fd;
 
 	/* It's a bit tricky to put a lower limit here, but we expect a
 	 * relatively low latency for seeing reports, while we don't currently
@@ -2281,7 +2282,7 @@ test_blocking(uint64_t requested_oa_period,
 	param.num_properties = (idx - props) / 2;
 	param.properties_ptr = to_user_pointer(props);
 
-	stream_fd = __perf_open(drm_fd, &param, true /* prevent_pm */);
+	perf_fd = __perf_open(drm_fd, &param, true /* prevent_pm */);
 
 	times(&start_times);
 
@@ -2313,14 +2314,14 @@ test_blocking(uint64_t requested_oa_period,
 	 * the error delta.
 	 */
 	start = get_time();
-	do_ioctl(stream_fd, I915_PERF_IOCTL_ENABLE, 0);
+	do_ioctl(perf_fd, I915_PERF_IOCTL_ENABLE, 0);
 	for (/* nop */; ((end = get_time()) - start) < test_duration_ns; /* nop */) {
 		struct drm_i915_perf_record_header *header;
 		bool timer_report_read = false;
 		bool non_timer_report_read = false;
 		int ret;
 
-		while ((ret = read(stream_fd, buf, sizeof(buf))) < 0 &&
+		while ((ret = read(perf_fd, buf, sizeof(buf))) < 0 &&
 		       errno == EINTR)
 			;
 
@@ -2388,7 +2389,7 @@ test_blocking(uint64_t requested_oa_period,
 	if (!set_kernel_hrtimer)
 		igt_assert(kernel_ns <= (test_duration_ns / 100ull));
 
-	__perf_close(stream_fd);
+	__perf_close(perf_fd);
 }
 
 static void
@@ -5476,6 +5477,14 @@ static void put_engine_groups(struct perf_engine_group *groups,
 	free(groups);
 }
 
+static struct i915_engine_class_instance *
+random_engine(struct perf_engine_group *group)
+{
+	srandom(time(NULL));
+
+	return &group->ci[random() % group->num_engines];
+}
+
 static bool has_class_instance(int i915, uint16_t class, uint16_t instance)
 {
 	int fd;
@@ -5498,6 +5507,112 @@ static void set_default_engine(const intel_ctx_t *ctx)
 			default_e2 = *e;
 }
 
+/*
+ * Test if OA buffer streams can be independently opened on each gt. Once a user
+ * opens a stream, that gt is exclusive to the user, other users get -EBUSY on
+ * trying to open a stream. Note that OA metrics are global to the gt and can
+ * get clobbered if we try to support concurrency.
+ */
+static void
+test_gt_exclusive_stream(const intel_ctx_t *ctx, bool exponent)
+{
+	uint64_t properties[] = {
+		DRM_I915_PERF_PROP_SAMPLE_OA, true,
+		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
+		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, 0,
+		DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, 0,
+		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
+	};
+	struct drm_i915_perf_open_param param = {
+		.flags = I915_PERF_FLAG_FD_CLOEXEC,
+		/* for gem_context use case, we do no pass exponent */
+		.num_properties = exponent ?
+				  ARRAY_SIZE(properties) / 2 - 1:
+				  ARRAY_SIZE(properties) / 2,
+		.properties_ptr = to_user_pointer(properties),
+	};
+	uint32_t i, j;
+
+	/* for each group, open one random perf stream with sample OA */
+	for (i = 0; i < num_perf_oa_groups; i++) {
+		struct perf_engine_group *grp = &perf_oa_groups[i];
+		struct i915_engine_class_instance *ci = random_engine(grp);
+
+		if (!exponent) {
+			properties[0] = DRM_I915_PERF_PROP_CTX_HANDLE;
+			properties[1] = ctx->id;
+		}
+
+		properties[7] = ci->engine_class;
+		properties[9] = ci->engine_instance;
+		grp->perf_fd = igt_ioctl(drm_fd,
+					 DRM_IOCTL_I915_PERF_OPEN,
+					 &param);
+		igt_assert(grp->perf_fd >= 0);
+		igt_debug("opened OA buffer with c:i %d:%d\n",
+			  ci->engine_class, ci->engine_instance);
+	}
+
+	/* for each group make sure no other streams can be opened */
+	for (i = 0; i < num_perf_oa_groups; i++) {
+		struct perf_engine_group *grp = &perf_oa_groups[i];
+		int err;
+
+		for (j = 0; j < grp->num_engines; j++) {
+			struct i915_engine_class_instance *ci = grp->ci + j;
+
+			/*
+			 * case 1:
+			 * concurrent access to OAG should fail
+			 */
+			properties[0] = DRM_I915_PERF_PROP_SAMPLE_OA;
+			properties[1] = true;
+			properties[7] = ci->engine_class;
+			properties[9] = ci->engine_instance;
+			/* for SAMPLE OA use case, we must pass exponent */
+			param.num_properties = ARRAY_SIZE(properties) / 2;
+			do_ioctl_err(drm_fd, DRM_IOCTL_I915_PERF_OPEN, &param,
+				     EBUSY);
+			igt_debug("try OA buffer with c:i %d:%d\n",
+				  ci->engine_class, ci->engine_instance);
+
+			/*
+			 * case 2:
+			 * concurrent access to non-OAG unit should fail
+			 */
+			properties[0] = DRM_I915_PERF_PROP_CTX_HANDLE;
+			properties[1] = gem_context_create(drm_fd);
+			/* for gem_context use case, we do no pass exponent */
+			param.num_properties = ARRAY_SIZE(properties) / 2 - 1;
+			errno = 0;
+			err = igt_ioctl(drm_fd, DRM_IOCTL_I915_PERF_OPEN, &param);
+			igt_assert(err < 0);
+			igt_assert(errno == EBUSY || errno == ENODEV);
+			igt_debug("try OA ci unit with c:i %d:%d\n",
+				  ci->engine_class, ci->engine_instance);
+			gem_context_destroy(drm_fd, properties[1]);
+		}
+
+		if (grp->perf_fd >= 0)
+			close(grp->perf_fd);
+	}
+}
+
+static void
+test_gt_concurrent_oa_buffer_read(void)
+{
+	igt_fork(child, num_perf_oa_groups) {
+		struct intel_execution_engine2 e;
+
+		e.class = perf_oa_groups[child].ci->engine_class;
+		e.instance = perf_oa_groups[child].ci->engine_instance;
+
+		test_blocking(40 * 1000 * 1000, false, 5 * 1000 * 1000, &e);
+	}
+	igt_waitchildren();
+}
+
 igt_main
 {
 	const intel_ctx_t *ctx;
@@ -5723,6 +5838,18 @@ igt_main
 		igt_describe("Verify invalid class instance");
 		igt_subtest("gen12-invalid-class-instance")
 			test_invalid_class_instance();
+
+		igt_describe("Verify exclusivity of perf streams with sample oa option");
+		igt_subtest("gen12-gt-exclusive-stream-sample-oa")
+			test_gt_exclusive_stream(ctx, true);
+
+		igt_describe("Verify exclusivity of perf streams with ctx handle");
+		igt_subtest("gen12-gt-exclusive-stream-ctx-handle")
+			test_gt_exclusive_stream(ctx, false);
+
+		igt_describe("Verify concurrent reads from OA buffers in different gts");
+		igt_subtest("gen12-gt-concurrent-oa-buffer-read")
+			test_gt_concurrent_oa_buffer_read();
 	}
 
 	igt_subtest("rc6-disable")
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 15/31] i915/perf: Add OAM support
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
                   ` (13 preceding siblings ...)
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 14/31] i915/perf: Test concurrent access to OA in different groups Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-03-13 15:21   ` Kamil Konieczny
  2023-03-15 21:52   ` Dixit, Ashutosh
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 16/31] lib/perf: Make chipsets aware of oa formats Umesh Nerlige Ramappa
                   ` (17 subsequent siblings)
  32 siblings, 2 replies; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Add OAM formats and support for media engines in perf tests

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 include/drm-uapi/i915_drm.h |   4 ++
 lib/intel_chipset.h         |   3 +
 lib/intel_device_info.c     |   1 +
 tests/i915/perf.c           | 138 +++++++++++++++++++++++++-----------
 4 files changed, 105 insertions(+), 41 deletions(-)

diff --git a/include/drm-uapi/i915_drm.h b/include/drm-uapi/i915_drm.h
index 5fab3066..ab244346 100644
--- a/include/drm-uapi/i915_drm.h
+++ b/include/drm-uapi/i915_drm.h
@@ -2545,6 +2545,10 @@ enum drm_i915_oa_format {
 	I915_OAR_FORMAT_A32u40_A4u32_B8_C8,
 	I915_OA_FORMAT_A24u40_A14u32_B8_C8,
 
+	/* MTL OAM */
+	I915_OAM_FORMAT_MPEC8u64_B8_C8,
+	I915_OAM_FORMAT_MPEC8u32_B8_C8,
+
 	I915_OA_FORMAT_MAX	    /* non-ABI */
 };
 
diff --git a/lib/intel_chipset.h b/lib/intel_chipset.h
index c9762ae6..c2c8998d 100644
--- a/lib/intel_chipset.h
+++ b/lib/intel_chipset.h
@@ -45,6 +45,7 @@ struct intel_device_info {
 	unsigned gt; /* 0 if unknown */
 	bool has_4tile : 1;
 	bool has_flatccs : 1;
+	bool has_oam : 1;
 	bool is_mobile : 1;
 	bool is_whitney : 1;
 	bool is_almador : 1;
@@ -231,4 +232,6 @@ void intel_check_pch(void);
 
 #define HAS_FLATCCS(devid)	(intel_get_device_info(devid)->has_flatccs)
 
+#define HAS_OAM(devid)		(intel_get_device_info(devid)->has_oam)
+
 #endif /* _INTEL_CHIPSET_H */
diff --git a/lib/intel_device_info.c b/lib/intel_device_info.c
index 12b81d48..0b11dfce 100644
--- a/lib/intel_device_info.c
+++ b/lib/intel_device_info.c
@@ -472,6 +472,7 @@ static const struct intel_device_info intel_meteorlake_info = {
 	.graphics_rel = 70,
 	.display_ver = 14,
 	.has_4tile = true,
+	.has_oam = true,
 	.is_meteorlake = true,
 	.codename = "meteorlake",
 	.cmds_info = &gen12_mtl_cmds_info,
diff --git a/tests/i915/perf.c b/tests/i915/perf.c
index 9c926fd2..9c546cc1 100644
--- a/tests/i915/perf.c
+++ b/tests/i915/perf.c
@@ -212,6 +212,40 @@ static struct oa_format dg2_oa_formats[I915_OA_FORMAT_MAX] = {
 		.c_off = 224, .n_c = 8, .oa_type = OAG, },
 };
 
+static struct oa_format mtl_oa_formats[I915_OA_FORMAT_MAX] = {
+	[I915_OAR_FORMAT_A32u40_A4u32_B8_C8] = {
+		"A32u40_A4u32_B8_C8", .size = 256,
+		.a40_high_off = 160, .a40_low_off = 16, .n_a40 = 32,
+		.a_off = 144, .n_a = 4, .first_a = 32,
+		.b_off = 192, .n_b = 8,
+		.c_off = 224, .n_c = 8, .oa_type = OAR, },
+	/* This format has A36 and A37 interleaved with high bytes of some A
+	 * counters, so we will accumulate only subset of counters.
+	 */
+	[I915_OA_FORMAT_A24u40_A14u32_B8_C8] = {
+		"A24u40_A14u32_B8_C8", .size = 256,
+		/* u40: A4 - A23 */
+		.a40_high_off = 160, .a40_low_off = 16, .n_a40 = 20, .first_a40 = 4,
+		/* u32: A0 - A3 */
+		.a_off = 16, .n_a = 4,
+		.b_off = 192, .n_b = 8,
+		.c_off = 224, .n_c = 8, .oa_type = OAG, },
+
+	/* Treat MPEC countes as A counters for now */
+	[I915_OAM_FORMAT_MPEC8u64_B8_C8] = {
+		"MPEC8u64_B8_C8", .size = 192,
+		.a64_off = 32, .n_a64 = 8,
+		.b_off = 96, .n_b = 8,
+		.c_off = 128, .n_c = 8, .oa_type = OAM,
+		.report_hdr_64bit = true, },
+	[I915_OAM_FORMAT_MPEC8u32_B8_C8] = {
+		"MPEC8u32_B8_C8", .size = 128,
+		.a_off = 32, .n_a = 8,
+		.b_off = 64, .n_b = 8,
+		.c_off = 96, .n_c = 8, .oa_type = OAM,
+		.report_hdr_64bit = true, },
+};
+
 static bool hsw_undefined_a_counters[45] = {
 	[4] = true,
 	[6] = true,
@@ -273,8 +307,10 @@ get_oa_format(enum drm_i915_oa_format format)
 {
 	if (IS_HASWELL(devid))
 		return hsw_oa_formats[format];
-	else if (IS_DG2(devid) || IS_METEORLAKE(devid))
+	else if (IS_DG2(devid))
 		return dg2_oa_formats[format];
+	else if (IS_METEORLAKE(devid))
+		return mtl_oa_formats[format];
 	else if (IS_GEN12(devid))
 		return gen12_oa_formats[format];
 	else
@@ -356,21 +392,6 @@ static int i915_perf_revision(int fd)
 	return value;
 }
 
-/*
- * perf_supports_engine is used in the for loop that iterates over engines and
- * determines if perf test can be run on a particular engine. For perf revisions
- * below 10, we only need to run the test once, so we return true only for rcs0.
- * Note that the test itself ignores the class instance parameters if they are
- * not supported by the perf interface. This enables us to use a single for-loop
- * construct to run the same test on all platforms and all perf revisions.
- */
-static bool
-perf_supports_engine(const struct intel_execution_engine2 *e)
-{
-	return e->class == I915_ENGINE_CLASS_RENDER &&
-	       e->instance == 0;
-}
-
 static bool
 has_param_class_instance(void)
 {
@@ -674,8 +695,12 @@ oar_unit_default_format(void)
 }
 
 static int
-oa_unit_default_format(void)
+oa_unit_default_format(const struct intel_execution_engine2 *e)
 {
+	if (e->class == I915_ENGINE_CLASS_VIDEO ||
+	    e->class == I915_ENGINE_CLASS_VIDEO_ENHANCE)
+		return I915_OAM_FORMAT_MPEC8u32_B8_C8;
+
 	return test_set->perf_oa_format;
 }
 
@@ -1752,6 +1777,20 @@ print_report(uint32_t *report, int fmt)
 }
 #endif
 
+static bool
+oa_unit_supports_engine(int oa_unit, const struct intel_execution_engine2 *e)
+{
+	switch (oa_unit) {
+	case OAM:
+		return e->class == I915_ENGINE_CLASS_VIDEO ||
+		       e->class == I915_ENGINE_CLASS_VIDEO_ENHANCE;
+	case OAG:
+		return e->class == I915_ENGINE_CLASS_RENDER;
+	}
+
+	return false;
+}
+
 static void
 test_oa_formats(const struct intel_execution_engine2 *e)
 {
@@ -1763,7 +1802,7 @@ test_oa_formats(const struct intel_execution_engine2 *e)
 		if (!format.name) /* sparse, indexed by ID */
 			continue;
 
-		if (format.oa_type != OAG) /* sparse, indexed by ID */
+		if (!oa_unit_supports_engine(format.oa_type, e))
 			continue;
 
 		igt_debug("Checking OA format %s\n", format.name);
@@ -1922,7 +1961,7 @@ static bool expected_report_timing_delta(uint32_t delta, uint32_t expected_delta
 static void
 test_oa_exponents(const struct intel_execution_engine2 *e)
 {
-	uint64_t fmt = oa_unit_default_format();
+	uint64_t fmt = oa_unit_default_format(e);
 
 	load_helper_init();
 	load_helper_run(HIGH);
@@ -2266,7 +2305,7 @@ test_blocking(uint64_t requested_oa_period,
 
 	ADD_PROPS(props, idx, SAMPLE_OA, true);
 	ADD_PROPS(props, idx, OA_METRICS_SET, test_set->perf_oa_metrics_set);
-	ADD_PROPS(props, idx, OA_FORMAT, oa_unit_default_format());
+	ADD_PROPS(props, idx, OA_FORMAT, oa_unit_default_format(e));
 	ADD_PROPS(props, idx, OA_EXPONENT, oa_exponent);
 
 	if (has_param_poll_period() && set_kernel_hrtimer)
@@ -2429,7 +2468,7 @@ test_polling(uint64_t requested_oa_period,
 
 	ADD_PROPS(props, idx, SAMPLE_OA, true);
 	ADD_PROPS(props, idx, OA_METRICS_SET, test_set->perf_oa_metrics_set);
-	ADD_PROPS(props, idx, OA_FORMAT, oa_unit_default_format());
+	ADD_PROPS(props, idx, OA_FORMAT, oa_unit_default_format(e));
 	ADD_PROPS(props, idx, OA_EXPONENT, oa_exponent);
 
 	if (has_param_poll_period() && set_kernel_hrtimer)
@@ -2703,7 +2742,7 @@ gen12_test_oa_tlb_invalidate(const struct intel_execution_engine2 *e)
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
 
 		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-		DRM_I915_PERF_PROP_OA_FORMAT, oa_unit_default_format(),
+		DRM_I915_PERF_PROP_OA_FORMAT, oa_unit_default_format(e),
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
 		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
 		DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, e->instance,
@@ -2746,7 +2785,7 @@ test_buffer_fill(const struct intel_execution_engine2 *e)
 	/* ~5 micro second period */
 	int oa_exponent = max_oa_exponent_for_period_lte(5000);
 	uint64_t oa_period = oa_exponent_to_ns(oa_exponent);
-	uint64_t fmt = oa_unit_default_format();
+	uint64_t fmt = oa_unit_default_format(e);
 	uint64_t properties[] = {
 		/* Include OA reports in samples */
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
@@ -2982,7 +3021,7 @@ test_enable_disable(const struct intel_execution_engine2 *e)
 	/* ~5 micro second period */
 	int oa_exponent = max_oa_exponent_for_period_lte(5000);
 	uint64_t oa_period = oa_exponent_to_ns(oa_exponent);
-	uint64_t fmt = oa_unit_default_format();
+	uint64_t fmt = oa_unit_default_format(e);
 	uint64_t properties[] = {
 		/* Include OA reports in samples */
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
@@ -4577,7 +4616,7 @@ test_stress_open_close(const struct intel_execution_engine2 *e)
 
 			/* OA unit configuration */
 			DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-			DRM_I915_PERF_PROP_OA_FORMAT, oa_unit_default_format(),
+			DRM_I915_PERF_PROP_OA_FORMAT, oa_unit_default_format(e),
 			DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
 			DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
 			DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, e->instance,
@@ -4680,7 +4719,7 @@ test_global_sseu_config_invalid(const struct intel_execution_engine2 *e)
 
 		/* OA unit configuration */
 		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-		DRM_I915_PERF_PROP_OA_FORMAT, oa_unit_default_format(),
+		DRM_I915_PERF_PROP_OA_FORMAT, oa_unit_default_format(e),
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
 		DRM_I915_PERF_PROP_GLOBAL_SSEU, to_user_pointer(&sseu_param),
 		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
@@ -4769,7 +4808,7 @@ test_global_sseu_config(const struct intel_execution_engine2 *e)
 
 		/* OA unit configuration */
 		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-		DRM_I915_PERF_PROP_OA_FORMAT, oa_unit_default_format(),
+		DRM_I915_PERF_PROP_OA_FORMAT, oa_unit_default_format(e),
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
 		DRM_I915_PERF_PROP_GLOBAL_SSEU, to_user_pointer(&sseu_param),
 		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
@@ -5306,10 +5345,27 @@ test_sysctl_defaults(void)
 	igt_assert_eq(max_freq, 100000);
 }
 
-#define __for_each_perf_enabled_engine(fd__, e__) \
-	for_each_physical_engine(fd__, e__) \
-		if (perf_supports_engine(e__)) \
-			igt_dynamic_f("%s", e__->name)
+static struct intel_execution_engine2 *
+__ci_to_e2(const intel_ctx_t *ctx, struct i915_engine_class_instance *ci)
+{
+	static struct intel_execution_engine2 e2;
+	struct intel_execution_engine2 *e;
+
+	for_each_ctx_engine(drm_fd, ctx, e) {
+		if (e->class == ci->engine_class && e->instance == ci->engine_instance) {
+			e2 = *e;
+			break;
+		}
+	}
+
+	return &e2;
+}
+
+#define __for_random_engine_in_each_group(groups_, ctx_, e_) \
+	for (int i_ = 0; \
+	     i_ < num_perf_oa_groups && !!(e_ = __ci_to_e2(ctx_, random_engine(&groups_[i_]))); \
+	     i_++) \
+		igt_dynamic_f("%d-%s", i_, e_->name)
 
 #define __for_each_render_engine(fd__, e__) \
 	for_each_physical_engine(fd__, e__) \
@@ -5684,7 +5740,7 @@ igt_main
 		test_missing_sample_flags();
 
 	igt_subtest_with_dynamic("oa-formats")
-		__for_each_perf_enabled_engine(drm_fd, e)
+		__for_random_engine_in_each_group(perf_oa_groups, ctx, e)
 			test_oa_formats(e);
 
 	igt_subtest("invalid-oa-exponent")
@@ -5692,7 +5748,7 @@ igt_main
 	igt_subtest("low-oa-exponent-permissions")
 		test_low_oa_exponent_permissions();
 	igt_subtest_with_dynamic("oa-exponents")
-		__for_each_perf_enabled_engine(drm_fd, e)
+		__for_random_engine_in_each_group(perf_oa_groups, ctx, e)
 			test_oa_exponents(e);
 
 	igt_subtest("per-context-mode-unprivileged") {
@@ -5701,7 +5757,7 @@ igt_main
 	}
 
 	igt_subtest_with_dynamic("buffer-fill")
-		__for_each_perf_enabled_engine(drm_fd, e)
+		__for_random_engine_in_each_group(perf_oa_groups, ctx, e)
 			test_buffer_fill(e);
 
 	igt_describe("Test that reason field in OA reports is never 0 on Gen8+");
@@ -5717,12 +5773,12 @@ igt_main
 		test_non_sampling_read_error();
 
 	igt_subtest_with_dynamic("enable-disable")
-		__for_each_perf_enabled_engine(drm_fd, e)
+		__for_random_engine_in_each_group(perf_oa_groups, ctx, e)
 			test_enable_disable(e);
 
 	igt_describe("Test blocking read with default hrtimer frequency");
 	igt_subtest_with_dynamic("blocking") {
-		__for_each_perf_enabled_engine(drm_fd, e)
+		__for_random_engine_in_each_group(perf_oa_groups, ctx, e)
 			test_blocking(40 * 1000 * 1000 /* 40ms oa period */,
 				      false /* set_kernel_hrtimer */,
 				      5 * 1000 * 1000 /* default 5ms/200Hz hrtimer */,
@@ -5750,7 +5806,7 @@ igt_main
 
 	igt_describe("Test polled read with default hrtimer frequency");
 	igt_subtest_with_dynamic("polling") {
-		__for_each_perf_enabled_engine(drm_fd, e)
+		__for_random_engine_in_each_group(perf_oa_groups, ctx, e)
 			test_polling(40 * 1000 * 1000 /* 40ms oa period */,
 				     false /* set_kernel_hrtimer */,
 				     5 * 1000 * 1000 /* default 5ms/200Hz hrtimer */,
@@ -5820,7 +5876,7 @@ igt_main
 
 		igt_describe("Test OA TLB invalidate");
 		igt_subtest_with_dynamic("gen12-oa-tlb-invalidate")
-			__for_each_perf_enabled_engine(drm_fd, e)
+			__for_random_engine_in_each_group(perf_oa_groups, ctx, e)
 				gen12_test_oa_tlb_invalidate(e);
 
 		igt_describe("Measure performance for a specific context using OAR in Gen 12");
@@ -5857,7 +5913,7 @@ igt_main
 
 	igt_describe("Stress tests opening & closing the i915-perf stream in a busy loop");
 	igt_subtest_with_dynamic("stress-open-close")
-		__for_each_perf_enabled_engine(drm_fd, e)
+		__for_random_engine_in_each_group(perf_oa_groups, ctx, e)
 			test_stress_open_close(e);
 
 	igt_subtest_group {
@@ -5868,12 +5924,12 @@ igt_main
 
 		igt_describe("Verify invalid SSEU opening parameters");
 		igt_subtest_with_dynamic("global-sseu-config-invalid")
-			__for_each_perf_enabled_engine(drm_fd, e)
+			__for_random_engine_in_each_group(perf_oa_groups, ctx, e)
 				test_global_sseu_config_invalid(e);
 
 		igt_describe("Verify specifying SSEU opening parameters");
 		igt_subtest_with_dynamic("global-sseu-config")
-			__for_each_perf_enabled_engine(drm_fd, e)
+			__for_random_engine_in_each_group(perf_oa_groups, ctx, e)
 				test_global_sseu_config(e);
 	}
 
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 16/31] lib/perf: Make chipsets aware of oa formats
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
                   ` (14 preceding siblings ...)
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 15/31] i915/perf: Add OAM support Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-03-13 15:49   ` Kamil Konieczny
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 17/31] i915/perf: Choose OAM format for media metrics Umesh Nerlige Ramappa
                   ` (16 subsequent siblings)
  32 siblings, 1 reply; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Make chipsets aware of oa formats to allow addition of different formats
per chipset.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 lib/i915/perf-configs/mdapi-xml-convert.py | 98 +++++++++++++---------
 1 file changed, 58 insertions(+), 40 deletions(-)

diff --git a/lib/i915/perf-configs/mdapi-xml-convert.py b/lib/i915/perf-configs/mdapi-xml-convert.py
index b20b104d..5c784643 100755
--- a/lib/i915/perf-configs/mdapi-xml-convert.py
+++ b/lib/i915/perf-configs/mdapi-xml-convert.py
@@ -133,24 +133,39 @@ xehpsdv_chipset_params = {
     }
 }
 
+# There is no ReportType field in most Metrics XML files, Use 256B_GENERIC_NOA16
+# to denote the generic 256 byte format that is used by most chipsets
+hsw_chipset_oa_formats = {
+    '256B_GENERIC_NOA16': hsw_chipset_params,
+}
+
+gen8_11_chipset_oa_formats = {
+    '256B_GENERIC_NOA16': gen8_11_chipset_params,
+}
+
+xehpsdv_chipset_oa_formats = {
+    '256B_GENERIC_NOA16': xehpsdv_chipset_params,
+}
+
+
 chipsets = {
-    'HSW': hsw_chipset_params,
-    'BDW': gen8_11_chipset_params,
-    'CHV': gen8_11_chipset_params,
-    'SKL': gen8_11_chipset_params,
-    'BXT': gen8_11_chipset_params,
-    'KBL': gen8_11_chipset_params,
-    'GLK': gen8_11_chipset_params,
-    'CFL': gen8_11_chipset_params,
-    'CNL': gen8_11_chipset_params,
-    'ICL': gen8_11_chipset_params,
-    'EHL': gen8_11_chipset_params,
-    'TGL': gen8_11_chipset_params,
-    'RKL': gen8_11_chipset_params,
-    'DG1': gen8_11_chipset_params,
-    'ADL': gen8_11_chipset_params,
-    'ACM': xehpsdv_chipset_params,
-    'MTL': xehpsdv_chipset_params,
+    'HSW': hsw_chipset_oa_formats,
+    'BDW': gen8_11_chipset_oa_formats,
+    'CHV': gen8_11_chipset_oa_formats,
+    'SKL': gen8_11_chipset_oa_formats,
+    'BXT': gen8_11_chipset_oa_formats,
+    'KBL': gen8_11_chipset_oa_formats,
+    'GLK': gen8_11_chipset_oa_formats,
+    'CFL': gen8_11_chipset_oa_formats,
+    'CNL': gen8_11_chipset_oa_formats,
+    'ICL': gen8_11_chipset_oa_formats,
+    'EHL': gen8_11_chipset_oa_formats,
+    'TGL': gen8_11_chipset_oa_formats,
+    'RKL': gen8_11_chipset_oa_formats,
+    'DG1': gen8_11_chipset_oa_formats,
+    'ADL': gen8_11_chipset_oa_formats,
+    'ACM': xehpsdv_chipset_oa_formats,
+    'MTL': xehpsdv_chipset_oa_formats,
 }
 
 xehp_plus = ( 'ACM', 'MTL' )
@@ -180,14 +195,14 @@ def underscore(name):
 def print_err(*args):
     sys.stderr.write(' '.join(map(str,args)) + '\n')
 
-def read_value(chipset, offset):
-    if offset in chipsets[chipset]['register_offsets']:
-        return chipsets[chipset]['register_offsets'][offset]
+def read_value(chipset, offset, oa_format):
+    if offset in chipsets[chipset][oa_format]['register_offsets']:
+        return chipsets[chipset][oa_format]['register_offsets'][offset]
     print_err("Unknown offset register at offset {0}".format(offset))
     assert 0
 
 
-def read_token_to_rpn_read(chipset, token, raw_offsets):
+def read_token_to_rpn_read(chipset, token, raw_offsets, oa_format):
     width, offset_str = token.split('@')
 
     # For Broadwell the raw read notation was extended for 40 bit
@@ -200,10 +215,10 @@ def read_token_to_rpn_read(chipset, token, raw_offsets):
 
     if raw_offsets:
         # Location in the HW reports
-        a_offset = chipsets[chipset]['a_offset']
-        b_offset = chipsets[chipset]['b_offset']
-        c_offset = chipsets[chipset]['c_offset']
-        report_size = chipsets[chipset]['oa_report_size']
+        a_offset = chipsets[chipset][oa_format]['a_offset']
+        b_offset = chipsets[chipset][oa_format]['b_offset']
+        c_offset = chipsets[chipset][oa_format]['c_offset']
+        report_size = chipsets[chipset][oa_format]['oa_report_size']
 
         if offset < a_offset:
             if offset == 4:
@@ -228,7 +243,7 @@ def read_token_to_rpn_read(chipset, token, raw_offsets):
         elif offset < report_size:
             return "C " + str(int((offset - c_offset) / 4)) + " READ"
         else:
-            return "{0} READ".format(read_value(chipset, offset))
+            return "{0} READ".format(read_value(chipset, offset, oa_format))
     else:
         # Location in the accumulated deltas
         idx = int(offset / 8)
@@ -245,7 +260,7 @@ def read_token_to_rpn_read(chipset, token, raw_offsets):
             elif idx < 62:
                 return "C " + str(idx - 54) + " READ"
             else:
-                return "{0} READ".format(read_value(chipset, offset))
+                return "{0} READ".format(read_value(chipset, offset, oa_format))
         elif chipset in xehp_plus:
             # For XEHPSDV the array of accumulated counters is
             # assumed to start with a GPU_TIME then GPU_CLOCK,
@@ -262,7 +277,7 @@ def read_token_to_rpn_read(chipset, token, raw_offsets):
             elif idx < 56:
                 return "C " + str(idx - 48) + " READ"
             else:
-                return "{0} READ".format(read_value(chipset, offset))
+                return "{0} READ".format(read_value(chipset, offset, oa_format))
         else:
             # For Gen8+ the array of accumulated counters is
             # assumed to start with a GPU_TIME then GPU_CLOCK,
@@ -279,11 +294,11 @@ def read_token_to_rpn_read(chipset, token, raw_offsets):
             elif idx < 54:
                 return "C " + str(idx - 46) + " READ"
             else:
-                return "{0} READ".format(read_value(chipset, offset))
+                return "{0} READ".format(read_value(chipset, offset, oa_format))
 
     assert 0
 
-def replace_read_tokens_with_rpn_read_ops(chipset, equation, raw_offsets):
+def replace_read_tokens_with_rpn_read_ops(chipset, oa_format, equation, raw_offsets):
     # MDAPI MetricSet equations use tokens like 'dw@0xff' for reading raw
     # values from snapshots, but this doesn't seem convenient for a few
     # reasons:
@@ -307,7 +322,7 @@ def replace_read_tokens_with_rpn_read_ops(chipset, equation, raw_offsets):
 
     for token in tokens:
         if '@' in token:
-            read_exp = read_token_to_rpn_read(chipset, token, raw_offsets)
+            read_exp = read_token_to_rpn_read(chipset, token, raw_offsets, oa_format)
             equation = equation + " " + read_exp
         else:
             equation = equation + " " + token
@@ -425,14 +440,14 @@ def fixup_equation(equation):
 # double check that there's never any variations between repeated
 # configs
 #
-def filter_single_config_registers_of_type(mdapi_metric_set, type):
+def filter_single_config_registers_of_type(mdapi_metric_set, type, oa_format):
     regs = []
     for mdapi_reg_config in mdapi_metric_set.findall("RegConfigStart"):
         tmp_regs = []
         for mdapi_reg in mdapi_reg_config.findall("Register"):
             reg = (int(mdapi_reg.get('offset'),16), int(mdapi_reg.get('value'),16))
 
-            if reg[0] in chipsets[chipset]['config_reg_blacklist']:
+            if reg[0] in chipsets[chipset][oa_format]['config_reg_blacklist']:
                 continue
 
             if mdapi_reg.get('type') == type:
@@ -472,7 +487,7 @@ def get_mux_id_group(id_groups, id):
 
 
 
-def process_mux_configs(mdapi_set):
+def process_mux_configs(mdapi_set, oa_format):
     allow_missing_id = True
 
     mux_config_id_groups = []
@@ -483,7 +498,7 @@ def process_mux_configs(mdapi_set):
         for mdapi_reg in mdapi_reg_config.findall("Register"):
             address = int(mdapi_reg.get('offset'), 16)
 
-            if address in chipsets[chipset]['config_reg_blacklist']:
+            if address in chipsets[chipset][oa_format]['config_reg_blacklist']:
                 continue
 
             reg_type = mdapi_reg.get('type')
@@ -613,6 +628,7 @@ for arg in args.xml:
         if "OGL" not in apis and "OCL" not in apis and "MEDIA" not in apis:
             continue
 
+        oa_format = '256B_GENERIC_NOA16'
         set_symbol_name = oa_registry.Registry.sanitize_symbol_name(mdapi_set.get('SymbolName'))
 
         if set_symbol_name in sets:
@@ -668,7 +684,7 @@ for arg in args.xml:
         # to deal with. (At least we got the handling of the Broadwell
         # ComputeExtended example wrong and it took several email exchanges and
         # a conference call to confirm how to interpret this case)
-        mux_configs = process_mux_configs(mdapi_set)
+        mux_configs = process_mux_configs(mdapi_set, oa_format)
 
         # Unlike for MUX registers, we only expect one set of FLEX/OA
         # registers per metric set (even though they are sometimes duplicated
@@ -680,8 +696,8 @@ for arg in args.xml:
         # need some adapting to support multiple OA/FLEX configs with different
         # availability expressions)
         #
-        flex_regs = filter_single_config_registers_of_type(mdapi_set, "FLEX")
-        oa_regs = filter_single_config_registers_of_type(mdapi_set, "OA")
+        flex_regs = filter_single_config_registers_of_type(mdapi_set, "FLEX", oa_format)
+        oa_regs = filter_single_config_registers_of_type(mdapi_set, "OA", oa_format)
 
 
         # Note: we ignore Perfmon registers
@@ -877,6 +893,7 @@ for arg in args.xml:
                     raw_read_eq = None
                 else:
                     raw_read_eq = replace_read_tokens_with_rpn_read_ops(chipset,
+                                                                        oa_format,
                                                                         raw_read_eq,
                                                                         True) #raw offsets
 
@@ -886,6 +903,7 @@ for arg in args.xml:
                     delta_read_eq = None
                 else:
                     delta_read_eq = replace_read_tokens_with_rpn_read_ops(chipset,
+                                                                          oa_format,
                                                                           delta_read_eq,
                                                                           False) #delta offsets
 
@@ -1070,8 +1088,8 @@ for set in metrics.findall(".//set"):
         for reg in config.findall("register"):
             addr = int(reg.get('address'), 16)
 
-            if 'registers' in chipsets[chipset] and addr in chipsets[chipset]['registers']:
-                reg_info = chipsets[chipset]['registers'][addr]
+            if 'registers' in chipsets[chipset][oa_format] and addr in chipsets[chipset][oa_format]['registers']:
+                reg_info = chipsets[chipset][oa_format]['registers'][addr]
                 comment = ' <!--' + reg_info['name'] + ' -->'
             else:
                 comment = ''
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 17/31] i915/perf: Choose OAM format for media metrics
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
                   ` (15 preceding siblings ...)
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 16/31] lib/perf: Make chipsets aware of oa formats Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-03-13 15:52   ` Kamil Konieczny
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 18/31] lib/perf" Set missing metric unit for some counters Umesh Nerlige Ramappa
                   ` (15 subsequent siblings)
  32 siblings, 1 reply; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

If the metric set has OAM format defined, update the generated metrics
accordingly.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 lib/i915/perf-configs/codegen.py              |  4 +++
 lib/i915/perf-configs/mdapi-xml-convert.py    |  1 +
 .../perf-configs/perf-metricset-codegen.py    | 36 ++++++++++++-------
 3 files changed, 29 insertions(+), 12 deletions(-)

diff --git a/lib/i915/perf-configs/codegen.py b/lib/i915/perf-configs/codegen.py
index 755142cc..020e76ef 100644
--- a/lib/i915/perf-configs/codegen.py
+++ b/lib/i915/perf-configs/codegen.py
@@ -117,6 +117,10 @@ class Set:
     def underscore_name(self):
         return self.xml.get('underscore_name')
 
+    @property
+    def oa_format(self):
+        return self.xml.get('oa_format')
+
     def findall(self, path):
         return self.xml.findall(path)
 
diff --git a/lib/i915/perf-configs/mdapi-xml-convert.py b/lib/i915/perf-configs/mdapi-xml-convert.py
index 5c784643..3b7d0663 100755
--- a/lib/i915/perf-configs/mdapi-xml-convert.py
+++ b/lib/i915/perf-configs/mdapi-xml-convert.py
@@ -659,6 +659,7 @@ for arg in args.xml:
         set.set('symbol_name', set_symbol_name)
         set.set('underscore_name', underscore(mdapi_set.get('SymbolName')))
         set.set('mdapi_supported_apis', strip_dx_apis(mdapi_set.get('SupportedAPI')))
+        set.set('oa_format', oa_format)
 
 
         # Look at the hardware register config before looking at the counters.
diff --git a/lib/i915/perf-configs/perf-metricset-codegen.py b/lib/i915/perf-configs/perf-metricset-codegen.py
index 08351309..8b2c5d7b 100644
--- a/lib/i915/perf-configs/perf-metricset-codegen.py
+++ b/lib/i915/perf-configs/perf-metricset-codegen.py
@@ -128,18 +128,30 @@ def generate_metric_sets(args, gen):
 
             """))
         elif gen.chipset.startswith("acm") or gen.chipset.startswith("mtl"):
-            c(textwrap.dedent("""\
-                metric_set->perf_oa_format = I915_OA_FORMAT_A24u40_A14u32_B8_C8;
-
-                metric_set->perf_raw_size = 256;
-                metric_set->gpu_time_offset = 0;
-                metric_set->gpu_clock_offset = 1;
-                metric_set->a_offset = 2;
-                metric_set->b_offset = metric_set->a_offset + 38;
-                metric_set->c_offset = metric_set->b_offset + 8;
-                metric_set->perfcnt_offset = metric_set->c_offset + 8;
-
-            """))
+            if set.oa_format == "128B_MPEC8_NOA16":
+                c(textwrap.dedent("""\
+                    metric_set->perf_oa_format = I915_OAM_FORMAT_MPEC8u32_B8_C8;
+
+                    metric_set->perf_raw_size = 128;
+                    metric_set->gpu_time_offset = 0;
+                    metric_set->gpu_clock_offset = 1;
+                    metric_set->a_offset = 2;
+                    metric_set->b_offset = metric_set->a_offset + 8;
+                    metric_set->c_offset = metric_set->b_offset + 8;
+                    metric_set->perfcnt_offset = metric_set->c_offset + 8;
+                """))
+            else:
+                c(textwrap.dedent("""\
+                    metric_set->perf_oa_format = I915_OA_FORMAT_A24u40_A14u32_B8_C8;
+
+                    metric_set->perf_raw_size = 256;
+                    metric_set->gpu_time_offset = 0;
+                    metric_set->gpu_clock_offset = 1;
+                    metric_set->a_offset = 2;
+                    metric_set->b_offset = metric_set->a_offset + 38;
+                    metric_set->c_offset = metric_set->b_offset + 8;
+                    metric_set->perfcnt_offset = metric_set->c_offset + 8;
+                """))
         else:
             c(textwrap.dedent("""\
                 metric_set->perf_oa_format = I915_OA_FORMAT_A32u40_A4u32_B8_C8;
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 18/31] lib/perf" Set missing metric unit for some counters
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
                   ` (16 preceding siblings ...)
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 17/31] i915/perf: Choose OAM format for media metrics Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-02-24 13:22   ` Kamil Konieczny
  2023-03-15  4:44   ` Dixit, Ashutosh
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 19/31] lib/perf: Add MTL to supprted HW in oa guid registry Umesh Nerlige Ramappa
                   ` (14 subsequent siblings)
  32 siblings, 2 replies; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Some counters do not have units specified, so use 'number' as the unit.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 lib/i915/perf-configs/mdapi-xml-convert.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/lib/i915/perf-configs/mdapi-xml-convert.py b/lib/i915/perf-configs/mdapi-xml-convert.py
index 3b7d0663..eee12ad5 100755
--- a/lib/i915/perf-configs/mdapi-xml-convert.py
+++ b/lib/i915/perf-configs/mdapi-xml-convert.py
@@ -819,9 +819,14 @@ for arg in args.xml:
             # XXX Not sure why EU metrics tend to just be bundled under 'gpu'
             counter.set('mdapi_hw_unit_type', mdapi_counter.get('HWUnitType').lower())
 
+            # Some counters do not have MetricUnits, treat them as number.
+            if mdapi_counter.get('MetricUnits') == None:
+                units = "number"
+            else:
+                units = mdapi_counter.get('MetricUnits').lower()
+
             # There are counters representing cycle counts that have a semantic
             # type of 'duration' which doesn't seem to make sense...
-            units = mdapi_counter.get('MetricUnits').lower()
             if units == "cycles":
                 semantic_type = "event"
             else:
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 19/31] lib/perf: Add MTL to supprted HW in oa guid registry
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
                   ` (17 preceding siblings ...)
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 18/31] lib/perf" Set missing metric unit for some counters Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-03-13 15:55   ` Kamil Konieczny
  2023-03-13 15:57   ` Kamil Konieczny
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 20/31] lib/perf: Add support for OAM format in codegen Umesh Nerlige Ramappa
                   ` (13 subsequent siblings)
  32 siblings, 2 replies; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Add MTL to supprted HW in oa guid registry

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 lib/i915/perf-configs/oa_guid_registry.py | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/lib/i915/perf-configs/oa_guid_registry.py b/lib/i915/perf-configs/oa_guid_registry.py
index 50076e95..f520f817 100644
--- a/lib/i915/perf-configs/oa_guid_registry.py
+++ b/lib/i915/perf-configs/oa_guid_registry.py
@@ -100,7 +100,8 @@ class Registry:
                            'RKL',
                            'DG1',
                            'ACM',
-                           'PVC' )
+                           'PVC',
+                           'MTL', )
         if name in known_chipsets:
             return name
 
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 20/31] lib/perf: Add support for OAM format in codegen
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
                   ` (18 preceding siblings ...)
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 19/31] lib/perf: Add MTL to supprted HW in oa guid registry Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-03-13 16:04   ` Kamil Konieczny
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 21/31] lib/perf: Update MTL GT2 metrics for OAM Umesh Nerlige Ramappa
                   ` (12 subsequent siblings)
  32 siblings, 1 reply; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Include OAM samedia format for MTL.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 lib/i915/perf-configs/mdapi-xml-convert.py | 118 +++++++++++++++++++--
 1 file changed, 112 insertions(+), 6 deletions(-)

diff --git a/lib/i915/perf-configs/mdapi-xml-convert.py b/lib/i915/perf-configs/mdapi-xml-convert.py
index eee12ad5..ba0b7ba4 100755
--- a/lib/i915/perf-configs/mdapi-xml-convert.py
+++ b/lib/i915/perf-configs/mdapi-xml-convert.py
@@ -135,6 +135,36 @@ xehpsdv_chipset_params = {
 
 # There is no ReportType field in most Metrics XML files, Use 256B_GENERIC_NOA16
 # to denote the generic 256 byte format that is used by most chipsets
+# Just treat the MPEC counter names as A counters here. If a format has both A
+# and MPEC counters, then we need to change this.
+mtl_chipset_oam_samedia_ll_params = {
+    'a_offset': 32,
+    'b_offset': 96,
+    'c_offset': 128,
+    'oa_report_size': 192,
+    'config_reg_blacklist': {
+        0x2364, # OACTXID
+    },
+    'register_offsets': {
+        0x1b0: 'PERFCNT 0',
+        0x1b8: 'PERFCNT 1',
+    }
+}
+
+mtl_chipset_oam_samedia_params = {
+    'a_offset': 32,
+    'b_offset': 64,
+    'c_offset': 96,
+    'oa_report_size': 128,
+    'config_reg_blacklist': {
+        0x2364, # OACTXID
+    },
+    'register_offsets': {
+        0x1b0: 'PERFCNT 0',
+        0x1b8: 'PERFCNT 1',
+    }
+}
+
 hsw_chipset_oa_formats = {
     '256B_GENERIC_NOA16': hsw_chipset_params,
 }
@@ -147,6 +177,11 @@ xehpsdv_chipset_oa_formats = {
     '256B_GENERIC_NOA16': xehpsdv_chipset_params,
 }
 
+mtl_chipset_oa_formats = {
+    '256B_GENERIC_NOA16': xehpsdv_chipset_params,
+    '192B_MPEC8LL_NOA16': mtl_chipset_oam_samedia_ll_params,
+    '128B_MPEC8_NOA16': mtl_chipset_oam_samedia_params,
+}
 
 chipsets = {
     'HSW': hsw_chipset_oa_formats,
@@ -165,7 +200,7 @@ chipsets = {
     'DG1': gen8_11_chipset_oa_formats,
     'ADL': gen8_11_chipset_oa_formats,
     'ACM': xehpsdv_chipset_oa_formats,
-    'MTL': xehpsdv_chipset_oa_formats,
+    'MTL': mtl_chipset_oa_formats,
 }
 
 xehp_plus = ( 'ACM', 'MTL' )
@@ -202,7 +237,62 @@ def read_value(chipset, offset, oa_format):
     assert 0
 
 
-def read_token_to_rpn_read(chipset, token, raw_offsets, oa_format):
+def read_token_to_rpn_read_oam(chipset, token, raw_offsets, oa_format):
+    width, offset_str = token.split('@')
+    offset = int(offset_str, 16)
+
+    if width == 'qw':
+        den = 8
+    else:
+        den = 4
+
+    if raw_offsets:
+        # Location in the HW reports
+        a_offset = chipsets[chipset][oa_format]['a_offset']
+        b_offset = chipsets[chipset][oa_format]['b_offset']
+        c_offset = chipsets[chipset][oa_format]['c_offset']
+        report_size = chipsets[chipset][oa_format]['oa_report_size']
+
+        if offset < a_offset:
+            if offset == 8:
+                return "GPU_TIME 0 READ"
+            elif offset == 24:
+                return "GPU_CLOCK 0 READ"
+            else:
+                assert 0
+        elif offset < b_offset:
+            a_cnt_offset = int((offset - a_offset) / den)
+            return "A " + str(a_cnt_offset) + " READ"
+        elif offset < c_offset:
+            return "B " + str(int((offset - b_offset) / den)) + " READ"
+        elif offset < report_size:
+            return "C " + str(int((offset - c_offset) / den)) + " READ"
+        else:
+            return "{0} READ".format(read_value(chipset, offset, oa_format))
+    else:
+        # Location in the accumulated deltas
+        idx = int(offset / 8)
+        if chipset in xehp_plus:
+            # For XEHPSDV the array of accumulated counters is
+            # assumed to start with a GPU_TIME then GPU_CLOCK,
+            # then 38 A counters, then 8 B counters and finally
+            # 8 C counters.
+            if idx == 0:
+                return "GPU_TIME 0 READ"
+            elif idx == 1:
+                return "GPU_CLOCK 0 READ"
+            elif idx < 40:
+                return "A " + str(idx - 2) + " READ"
+            elif idx < 48:
+                return "B " + str(idx - 40) + " READ"
+            elif idx < 56:
+                return "C " + str(idx - 48) + " READ"
+            else:
+                return "{0} READ".format(read_value(chipset, offset, oa_format))
+
+    assert 0
+
+def read_token_to_rpn_read_oag(chipset, token, raw_offsets, oa_format):
     width, offset_str = token.split('@')
 
     # For Broadwell the raw read notation was extended for 40 bit
@@ -298,6 +388,16 @@ def read_token_to_rpn_read(chipset, token, raw_offsets, oa_format):
 
     assert 0
 
+
+def read_token_to_rpn_read(chipset, token, raw_offsets, oa_format):
+    if oa_format == '256B_GENERIC_NOA16':
+        return read_token_to_rpn_read_oag(chipset, token, raw_offsets, oa_format)
+
+    if oa_format in ['192B_MPEC8LL_NOA16', '128B_MPEC8_NOA16']:
+        return read_token_to_rpn_read_oam(chipset, token, raw_offsets, oa_format)
+
+    assert 0
+
 def replace_read_tokens_with_rpn_read_ops(chipset, oa_format, equation, raw_offsets):
     # MDAPI MetricSet equations use tokens like 'dw@0xff' for reading raw
     # values from snapshots, but this doesn't seem convenient for a few
@@ -625,10 +725,13 @@ for arg in args.xml:
     for mdapi_set in mdapi.findall(".//MetricSet"):
 
         apis = mdapi_set.get('SupportedAPI')
-        if "OGL" not in apis and "OCL" not in apis and "MEDIA" not in apis:
+        if "OGL" not in apis and "OCL" not in apis and "MEDIA" not in apis and "IO" not in apis:
             continue
 
         oa_format = '256B_GENERIC_NOA16'
+        if mdapi_set.get('ReportType') in chipsets[chipset]:
+            oa_format = mdapi_set.get('ReportType')
+
         set_symbol_name = oa_registry.Registry.sanitize_symbol_name(mdapi_set.get('SymbolName'))
 
         if set_symbol_name in sets:
@@ -647,7 +750,7 @@ for arg in args.xml:
         if set_symbol_name in set_blacklist:
             continue
 
-        if mdapi_set.get('SnapshotReportSize') != '256':
+        if mdapi_set.get('SnapshotReportSize') != str(chipsets[chipset][oa_format]['oa_report_size']):
             print_err("WARNING: skipping metric set '{0}', report size {1} invalid".format(set_symbol_name, mdapi_set.get('SnapshotReportSize')))
             continue
 
@@ -880,8 +983,11 @@ for arg in args.xml:
             # XXX: As a special case, we override the raw and delta report
             # equations for the GpuTime counters, which seem inconsistent
             if mdapi_counter.get('SymbolName') == "GpuTime":
-                mdapi_counter.set('SnapshotReportReadEquation', "dw@0x04 1000000000 UMUL $GpuTimestampFrequency UDIV")
                 mdapi_counter.set('DeltaReportReadEquation', "qw@0x0 1000000000 UMUL $GpuTimestampFrequency UDIV")
+                if chipset == 'MTL' and oa_format != '256B_GENERIC_NOA16':
+                    mdapi_counter.set('SnapshotReportReadEquation', "qw@0x08 1000000000 UMUL $GpuTimestampFrequency UDIV")
+                else:
+                    mdapi_counter.set('SnapshotReportReadEquation', "dw@0x04 1000000000 UMUL $GpuTimestampFrequency UDIV")
 
             availability = fixup_equation(mdapi_counter.get('AvailabilityEquation'))
             if availability == "":
@@ -919,7 +1025,7 @@ for arg in args.xml:
                           "(" + mdapi_counter.get('ShortName') + ")" + "\"")
                 # Media metric counters currently have no delta equation even
                 # though they have normalization equations that reference $Self
-                if "MEDIA" in apis:
+                if "MEDIA" in apis or "IO" in apis:
                     print_err("WARNING: -> Treating inconsistent media metric's 'raw' equation as a 'delta report' equation, but results should be double checked!")
                     delta_read_eq = raw_read_eq
                 else:
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 21/31] lib/perf: Update MTL GT2 metrics for OAM
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
                   ` (19 preceding siblings ...)
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 20/31] lib/perf: Add support for OAM format in codegen Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-03-13 16:09   ` Kamil Konieczny
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 22/31] lib/perf: Update MTL GT3 " Umesh Nerlige Ramappa
                   ` (11 subsequent siblings)
  32 siblings, 1 reply; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Add OAM metrics configurations and update MTL GT2 metrics.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 lib/i915/perf-configs/guids.xml     |   13 +-
 lib/i915/perf-configs/oa-mtlgt2.xml | 1014 ++++++++++++++++++++++++---
 2 files changed, 919 insertions(+), 108 deletions(-)

diff --git a/lib/i915/perf-configs/guids.xml b/lib/i915/perf-configs/guids.xml
index cc0dc916..0b96aa91 100644
--- a/lib/i915/perf-configs/guids.xml
+++ b/lib/i915/perf-configs/guids.xml
@@ -2357,7 +2357,7 @@
     <guid config_hash="321ffd18a528dd67798e8a8476f632fe" mdapi_config_hash="7984537ffe8ca547d3583a56edf26bbd" id="fc82db3d-d6a7-413a-8349-b31f02251d2f" chipset="mtlgt2" name="Ext1" />
     <guid config_hash="28f18aeeb865c4bf1d8d82d77f571085" mdapi_config_hash="bba07ef452c6a67f0a8ff04fa9b4d93d" id="3479a81d-9017-4930-af0c-14f7fabadb38" chipset="mtlgt2" name="Ext4" />
     <guid config_hash="0955d0036c6b2b4afe94cb4d8115c577" mdapi_config_hash="38688d5ff152f82f150d9c569caf2351" id="e4701256-cd06-48f7-a005-d4d1f9e895c1" chipset="mtlgt2" name="Ext5" />
-    <guid config_hash="d93bc60082d0b69a8f0d430732d63f94" mdapi_config_hash="dc7a66d4de8f704f44b50c10b9dff1de" id="3e47d0e8-5414-4496-8746-37e36fefc777" chipset="mtlgt2" name="Ext7" />
+    <guid config_hash="dcdb3b48b18515e0a0f7d2179c89bda6" mdapi_config_hash="a4f1512b26ca4c3ed1d8d818cfedcd65" id="3e47d0e8-5414-4496-8746-37e36fefc777" chipset="mtlgt2" name="Ext7" />
     <guid config_hash="3de00cb5cc6f1598d624b9d4c2d072cf" mdapi_config_hash="0237dfeb5d300cab42cc36a64552ebe7" id="5aa36c1f-c6da-45ab-ab21-397d9a4b6a06" chipset="mtlgt2" name="Ext8" />
     <guid config_hash="f66aff20b452fc6746f6f345aa996b63" mdapi_config_hash="14b2a444cc752fd4946c11906f5a7486" id="1df59d79-16d8-471c-b3da-f0f62862f89e" chipset="mtlgt2" name="Ext10" />
     <guid config_hash="f27eef4bd1b25e14f598ff04fe69a511" mdapi_config_hash="1f4b2bf31f456235f289cf7eba5039c2" id="d05d3d84-ba16-41b5-b825-5a3d2aaabbfc" chipset="mtlgt2" name="Ext11" />
@@ -2463,10 +2463,10 @@
     <guid config_hash="a68a66449827d355064d3db9473b4df5" mdapi_config_hash="129fbcf33c8f25a6c15935e5aeaef3b4" id="8e09a7a1-b0e8-464a-a28d-90250f64ec9e" chipset="mtlgt2" name="Ext501" />
     <guid config_hash="b66b6fe10d453212eb1bd501ae6a29bd" mdapi_config_hash="17c05f7a6933e3fcf7669b142bb55705" id="57a19b6a-1b7d-4337-a9c9-710c56c46f84" chipset="mtlgt2" name="Ext502" />
     <guid config_hash="610d0cdc34fe0442b0c8e6277703f21a" mdapi_config_hash="32ce7dfe4ea7f5e79c69cc04d41d3f01" id="394b21ab-311c-47a5-9b10-88159f5ac999" chipset="mtlgt2" name="Ext503" />
-    <guid config_hash="92ba0e22539647cf0eb2bc7f10cd4cf8" mdapi_config_hash="41e11d55b96e18999fad3efe5f8bf16a" id="143440a0-d7e2-4f41-8372-8fdca1ecc2a8" chipset="mtlgt2" name="Ext508" />
-    <guid config_hash="e36ab792e7756ea6ea71e387c873dfdd" mdapi_config_hash="18af689ecd1d15e707c0192ea02f5824" id="7c5d3f41-b690-44b2-8352-00215ac94bae" chipset="mtlgt2" name="Ext509" />
-    <guid config_hash="25febf37102198080c0e680e94beaced" mdapi_config_hash="bb8ff9dfe34ad6197c7540e7ddee356b" id="02f43996-feff-4e13-a8fd-eea9de2f13fc" chipset="mtlgt2" name="Ext510" />
-    <guid config_hash="29bcf55f5b34e961768cd5cbbd828532" mdapi_config_hash="670a9e1fd79cd9610418c85d13df3436" id="2cbd327c-40e2-452b-a9fc-c7787869a352" chipset="mtlgt2" name="Ext511" />
+    <guid config_hash="3c81d715dab552c96a708e5561cddf32" mdapi_config_hash="2ef3813b66f81eda0cb04dbe437234d8" id="143440a0-d7e2-4f41-8372-8fdca1ecc2a8" chipset="mtlgt2" name="Ext508" />
+    <guid config_hash="15984b5fb58b51a666ece004db6ae774" mdapi_config_hash="26232e447ea7dcf0c3a97e4353250a53" id="7c5d3f41-b690-44b2-8352-00215ac94bae" chipset="mtlgt2" name="Ext509" />
+    <guid config_hash="d44c98ea5ef5bff89e9ceb275d0da118" mdapi_config_hash="a8071d6fc9bd3959731ab78598f80294" id="02f43996-feff-4e13-a8fd-eea9de2f13fc" chipset="mtlgt2" name="Ext510" />
+    <guid config_hash="df750e7700406492d3bcd261c4af73e6" mdapi_config_hash="c2e0e09a27bb2ad5f80b0766ab56b37b" id="2cbd327c-40e2-452b-a9fc-c7787869a352" chipset="mtlgt2" name="Ext511" />
     <guid config_hash="6d9b68c2c4b89d9a952160fe503ac6a6" mdapi_config_hash="4508de639c858687559dd85a870d624f" id="3a9dba68-9402-48b0-a8ec-28e4e4a534de" chipset="mtlgt2" name="Ext516" />
     <guid config_hash="039124a8e61c2e323aace525da916ab0" mdapi_config_hash="ac8b6cf6d21ba83fe04789064b2caa97" id="ea503506-9afa-42dc-b85b-1237dce6e8af" chipset="mtlgt2" name="Ext517" />
     <guid config_hash="589d2f86e9b14cf16b9c8c33e473d1e4" mdapi_config_hash="1184ac825d3d0cba18e7ca501e515fc9" id="5056524c-12e3-4ba6-8788-eb934f284753" chipset="mtlgt2" name="Ext518" />
@@ -2740,4 +2740,7 @@
     <guid config_hash="e7efe91c7aeb591043358c1b5e3c019d" mdapi_config_hash="94ecec147a25de742814fbb01fd4e9c3" id="f739508f-51b2-48df-839c-e92c14d14c64" chipset="mtlgt3" name="Ext1006" />
     <guid config_hash="a96fb9e9d0949e6cc372ef445fded872" mdapi_config_hash="7fb3e6405e4b54b8566589aa79cd960e" id="926b1773-807e-4ee5-8561-30c9eb0a6344" chipset="mtlgt3" name="Ext1007" />
     <guid config_hash="310dddcb04d1088a3865f698d758cbc2" mdapi_config_hash="c6a3be7d49b5697074021ca673a39a57" id="82f69b49-772a-4169-bf9a-b1ef08e0823b" chipset="mtlgt3" name="Ext1010" />
+    <guid config_hash="482cebdeeb78bb56e67b42d24644c8db" mdapi_config_hash="11e33e01a371bf15e59b9786f4fe1050" id="de84260e-32ac-4863-ba4f-998a685174a2" chipset="mtlgt2" name="MediaSet1" />
+    <guid config_hash="5bfab887a79b99cf34a606dcca5f4f8a" mdapi_config_hash="1c238e39e5c73eefd870cef2fb7a18af" id="b9d5c6d5-39f2-4069-b343-e7a886353b89" chipset="mtlgt2" name="MediaSet2" />
+    <guid config_hash="44bcb438bea8b46b57779739bebfbd69" mdapi_config_hash="fbbd97d1f3b60c17eae57bbd3c42e7fe" id="a1700053-56bc-4b7e-87b9-e29b07a08f62" chipset="mtlgt2" name="TestOam" />
 </guids>
diff --git a/lib/i915/perf-configs/oa-mtlgt2.xml b/lib/i915/perf-configs/oa-mtlgt2.xml
index 0155145b..33ba70d0 100644
--- a/lib/i915/perf-configs/oa-mtlgt2.xml
+++ b/lib/i915/perf-configs/oa-mtlgt2.xml
@@ -1,10 +1,11 @@
 <?xml version="1.0"?>
-<metrics version="1669276337" merge_md5="">
+<metrics version="1675300099" merge_md5="">
   <set name="Render Metrics Basic"
        chipset="MTLGT2"
        symbol_name="RenderBasic"
        underscore_name="render_basic"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="232e858b-7116-44e8-a4be-856c59026650"
        >
     <counter name="GPU Time Elapsed"
@@ -565,6 +566,7 @@
        symbol_name="ComputeBasic"
        underscore_name="compute_basic"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="fea2b2b7-a072-41c5-9092-2d7c48bb56c6"
        >
     <counter name="GPU Time Elapsed"
@@ -1118,6 +1120,7 @@
        symbol_name="AsyncCompute"
        underscore_name="async_compute"
        mdapi_supported_apis="OGL OCL MEDIA IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="011e5c80-c877-46fd-90ff-fd0bb29cb5ec"
        >
     <counter name="GPU Time Elapsed"
@@ -1460,6 +1463,7 @@
        symbol_name="XveActivity"
        underscore_name="xve_activity"
        mdapi_supported_apis="OGL OGL4 OCL MEDIA IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="5f430543-ba1e-487c-b217-90570cfb85f9"
        >
     <counter name="GPU Time Elapsed"
@@ -1758,6 +1762,7 @@
        symbol_name="GpuBusyness"
        underscore_name="gpu_busyness"
        mdapi_supported_apis="VK OGL OCL MEDIA IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="3cb64fed-0f61-4e41-a754-b9c5b4892f77"
        >
     <counter name="GPU Time Elapsed"
@@ -2017,6 +2022,7 @@
        symbol_name="HDCAndSF"
        underscore_name="hdc_and_sf"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="27d6eda4-aabc-4203-8848-aef69658ae74"
        >
     <counter name="GPU Time Elapsed"
@@ -2298,6 +2304,7 @@
        symbol_name="L3"
        underscore_name="l3"
        mdapi_supported_apis="VK OGL OCL MEDIA IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="50b898ad-44ae-4d02-ba5b-a7d2a024a480"
        >
     <counter name="GPU Time Elapsed"
@@ -2537,6 +2544,7 @@
        symbol_name="RasterizerAndPixelBackend1"
        underscore_name="rasterizer_and_pixel_backend1"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="29adb364-f161-40cb-929d-c14036447c4f"
        >
     <counter name="GPU Time Elapsed"
@@ -2729,6 +2737,7 @@
        symbol_name="RasterizerAndPixelBackend2"
        underscore_name="rasterizer_and_pixel_backend2"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="787c682f-68be-4a64-b998-77d8a30b4ea6"
        >
     <counter name="GPU Time Elapsed"
@@ -2927,6 +2936,7 @@
        symbol_name="RenderPipeProfile"
        underscore_name="render_pipe_profile"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="1269ddfd-22a6-47ca-9a1a-dc37b8c38490"
        >
     <counter name="GPU Time Elapsed"
@@ -3321,6 +3331,7 @@
        symbol_name="Sampler"
        underscore_name="sampler"
        mdapi_supported_apis="VK OGL OCL MEDIA IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="3c304c3b-9ada-4d92-9b54-34ec4e70aea6"
        >
     <counter name="GPU Time Elapsed"
@@ -3584,6 +3595,7 @@
        symbol_name="TDL1"
        underscore_name="tdl1"
        mdapi_supported_apis="VK OGL OCL MEDIA IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="616fc1b0-53bb-4411-93b0-b34ab2b0bfb8"
        >
     <counter name="GPU Time Elapsed"
@@ -3928,6 +3940,7 @@
        symbol_name="TDL2"
        underscore_name="tdl2"
        mdapi_supported_apis="VK OGL OCL MEDIA IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="952fa513-550e-49bc-a355-22fadbea5455"
        >
     <counter name="GPU Time Elapsed"
@@ -4288,6 +4301,7 @@
        symbol_name="TestOa"
        underscore_name="test_oa"
        mdapi_supported_apis="VK OGL OCL MEDIA IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="d0ed8afd-ad64-4774-8788-1a15f4ab7829"
        >
     <counter name="GPU Time Elapsed"
@@ -4512,6 +4526,7 @@
        symbol_name="Ext1"
        underscore_name="ext1"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="fc82db3d-d6a7-413a-8349-b31f02251d2f"
        >
     <counter name="GPU Time Elapsed"
@@ -4820,6 +4835,7 @@
        symbol_name="Ext4"
        underscore_name="ext4"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="3479a81d-9017-4930-af0c-14f7fabadb38"
        >
     <counter name="GPU Time Elapsed"
@@ -5041,6 +5057,7 @@
        symbol_name="Ext5"
        underscore_name="ext5"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="e4701256-cd06-48f7-a005-d4d1f9e895c1"
        >
     <counter name="GPU Time Elapsed"
@@ -5330,6 +5347,7 @@
        symbol_name="Ext7"
        underscore_name="ext7"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="3e47d0e8-5414-4496-8746-37e36fefc777"
        >
     <counter name="GPU Time Elapsed"
@@ -5379,7 +5397,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="C 7 READ"
+             equation="B 4 READ"
              availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
              mdapi_group="GTI/L3"
              mdapi_usage_flags="Frame Batch Draw"
@@ -5393,7 +5411,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="C 6 READ"
+             equation="B 5 READ"
              availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
              mdapi_group="GTI/L3"
              mdapi_usage_flags="Frame Batch Draw"
@@ -5407,7 +5425,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="C 5 READ"
+             equation="B 6 READ"
              availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
              mdapi_group="GTI/L3"
              mdapi_usage_flags="Frame Batch Draw"
@@ -5421,7 +5439,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="C 4 READ"
+             equation="B 7 READ"
              availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
              mdapi_group="GTI/L3"
              mdapi_usage_flags="Frame Batch Draw"
@@ -5435,7 +5453,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="C 3 READ"
+             equation="C 7 READ"
              availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
              mdapi_group="GTI/L3"
              mdapi_usage_flags="Frame Batch Draw"
@@ -5449,7 +5467,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="C 2 READ"
+             equation="C 6 READ"
              availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
              mdapi_group="GTI/L3"
              mdapi_usage_flags="Frame Batch Draw"
@@ -5463,7 +5481,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="C 1 READ"
+             equation="C 5 READ"
              availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
              mdapi_group="GTI/L3"
              mdapi_usage_flags="Frame Batch Draw"
@@ -5477,7 +5495,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="C 0 READ"
+             equation="C 4 READ"
              availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
              mdapi_group="GTI/L3"
              mdapi_usage_flags="Frame Batch Draw"
@@ -5492,7 +5510,7 @@
              max_equation="100"
              units="percent"
              semantic_type="duration"
-             equation="B 7 READ 100 UMUL $GpuCoreClocks FDIV"
+             equation="C 0 READ 100 UMUL $GpuCoreClocks FDIV"
              availability="$GtSlice0XeCore0"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
@@ -5507,7 +5525,7 @@
              max_equation="100"
              units="percent"
              semantic_type="duration"
-             equation="B 6 READ 100 UMUL $GpuCoreClocks FDIV"
+             equation="C 1 READ 100 UMUL $GpuCoreClocks FDIV"
              availability="$GtSlice0XeCore1"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
@@ -5522,7 +5540,7 @@
              max_equation="100"
              units="percent"
              semantic_type="duration"
-             equation="B 5 READ 100 UMUL $GpuCoreClocks FDIV"
+             equation="C 2 READ 100 UMUL $GpuCoreClocks FDIV"
              availability="$GtSlice0XeCore2"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
@@ -5537,7 +5555,7 @@
              max_equation="100"
              units="percent"
              semantic_type="duration"
-             equation="B 4 READ 100 UMUL $GpuCoreClocks FDIV"
+             equation="C 3 READ 100 UMUL $GpuCoreClocks FDIV"
              availability="$GtSlice0XeCore3"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
@@ -5548,83 +5566,86 @@
         <register type="NOA" address="0x00000D04" value="0x00000200" />
         <register type="NOA" address="0x00009884" value="0x00000008" />
         <register type="NOA" address="0x00009888" value="0x18030004" />
-        <register type="NOA" address="0x00009888" value="0x00023000" />
-        <register type="NOA" address="0x00009888" value="0x0A030D00" />
+        <register type="NOA" address="0x00009888" value="0x0202000C" />
+        <register type="NOA" address="0x00009888" value="0x0C030034" />
         <register type="NOA" address="0x00009888" value="0x04030000" />
-        <register type="NOA" address="0x00009888" value="0x00030000" />
-        <register type="NOA" address="0x00009888" value="0x00049000" />
-        <register type="NOA" address="0x00009888" value="0x00083000" />
+        <register type="NOA" address="0x00009888" value="0x02030000" />
+        <register type="NOA" address="0x00009888" value="0x02040006" />
+        <register type="NOA" address="0x00009888" value="0x0208000C" />
         <register type="NOA" address="0x00009884" value="0x00000009" />
         <register type="NOA" address="0x00009888" value="0x18030004" />
-        <register type="NOA" address="0x00009888" value="0x0A030034" />
+        <register type="NOA" address="0x00009888" value="0x0C030D00" />
         <register type="NOA" address="0x00009888" value="0x04030000" />
-        <register type="NOA" address="0x00009888" value="0x00030000" />
-        <register type="NOA" address="0x00009888" value="0x00042000" />
+        <register type="NOA" address="0x00009888" value="0x02030000" />
+        <register type="NOA" address="0x00009888" value="0x02040008" />
         <register type="NOA" address="0x00009884" value="0x0000000A" />
         <register type="NOA" address="0x00009888" value="0x18030004" />
-        <register type="NOA" address="0x00009888" value="0x00020300" />
-        <register type="NOA" address="0x00009888" value="0x08030D00" />
+        <register type="NOA" address="0x00009888" value="0x020200C0" />
+        <register type="NOA" address="0x00009888" value="0x0E030034" />
         <register type="NOA" address="0x00009888" value="0x04030000" />
-        <register type="NOA" address="0x00009888" value="0x00030000" />
-        <register type="NOA" address="0x00009888" value="0x00040900" />
-        <register type="NOA" address="0x00009888" value="0x00080300" />
+        <register type="NOA" address="0x00009888" value="0x02030000" />
+        <register type="NOA" address="0x00009888" value="0x02040060" />
+        <register type="NOA" address="0x00009888" value="0x020800C0" />
         <register type="NOA" address="0x00009884" value="0x0000000B" />
         <register type="NOA" address="0x00009888" value="0x18030004" />
-        <register type="NOA" address="0x00009888" value="0x08030034" />
+        <register type="NOA" address="0x00009888" value="0x0E030D00" />
         <register type="NOA" address="0x00009888" value="0x04030000" />
-        <register type="NOA" address="0x00009888" value="0x00030000" />
-        <register type="NOA" address="0x00009888" value="0x00040200" />
+        <register type="NOA" address="0x00009888" value="0x02030000" />
+        <register type="NOA" address="0x00009888" value="0x02040080" />
         <register type="NOA" address="0x00009884" value="0x00000004" />
         <register type="NOA" address="0x00009888" value="0x04010000" />
         <register type="NOA" address="0x00009888" value="0x0C010000" />
         <register type="NOA" address="0x00009888" value="0x04410000" />
         <register type="NOA" address="0x00009888" value="0x0C410000" />
         <register type="NOA" address="0x00009888" value="0x04810000" />
-        <register type="NOA" address="0x00009888" value="0x0C810040" />
+        <register type="NOA" address="0x00009888" value="0x0C810000" />
         <register type="NOA" address="0x00009888" value="0x04C10000" />
-        <register type="NOA" address="0x00009888" value="0x0CC10001" />
-        <register type="NOA" address="0x00009888" value="0x00010004" />
-        <register type="NOA" address="0x00009888" value="0x0E010040" />
-        <register type="NOA" address="0x00009888" value="0x12010380" />
+        <register type="NOA" address="0x00009888" value="0x0CC10000" />
+        <register type="NOA" address="0x00009888" value="0x00010040" />
+        <register type="NOA" address="0x00009888" value="0x08010006" />
+        <register type="NOA" address="0x00009888" value="0x12010200" />
         <register type="NOA" address="0x00009888" value="0x02010000" />
-        <register type="NOA" address="0x00009888" value="0x00410004" />
-        <register type="NOA" address="0x00009888" value="0x0E410001" />
-        <register type="NOA" address="0x00009888" value="0x1241000E" />
+        <register type="NOA" address="0x00009888" value="0x00410040" />
+        <register type="NOA" address="0x00009888" value="0x08410180" />
+        <register type="NOA" address="0x00009888" value="0x12410008" />
         <register type="NOA" address="0x00009888" value="0x02410000" />
-        <register type="NOA" address="0x00009888" value="0x00810004" />
-        <register type="NOA" address="0x00009888" value="0x10810380" />
+        <register type="NOA" address="0x00009888" value="0x00810040" />
+        <register type="NOA" address="0x00009888" value="0x0A810006" />
+        <register type="NOA" address="0x00009888" value="0x10810200" />
         <register type="NOA" address="0x00009888" value="0x02810000" />
-        <register type="NOA" address="0x00009888" value="0x00C10004" />
-        <register type="NOA" address="0x00009888" value="0x10C1000E" />
+        <register type="NOA" address="0x00009888" value="0x00C10040" />
+        <register type="NOA" address="0x00009888" value="0x0AC10180" />
+        <register type="NOA" address="0x00009888" value="0x10C10008" />
         <register type="NOA" address="0x00009888" value="0x02C10000" />
         <register type="NOA" address="0x00009884" value="0x00000000" />
-        <register type="NOA" address="0x00009888" value="0x00124400" />
-        <register type="NOA" address="0x00009888" value="0x00130A00" />
-        <register type="NOA" address="0x00009888" value="0x0213BABA" />
-        <register type="NOA" address="0x00009888" value="0x00140500" />
-        <register type="NOA" address="0x00009888" value="0x02144949" />
-        <register type="NOA" address="0x00009888" value="0x00150500" />
-        <register type="NOA" address="0x00009888" value="0x02158383" />
-        <register type="NOA" address="0x00009888" value="0x00160500" />
-        <register type="NOA" address="0x00009888" value="0x02165555" />
-        <register type="NOA" address="0x00009888" value="0x00170A00" />
-        <register type="NOA" address="0x00009888" value="0x000CFF30" />
-        <register type="NOA" address="0x00009888" value="0x000EFF30" />
-        <register type="NOA" address="0x00009888" value="0x000D0A00" />
-        <register type="NOA" address="0x00009888" value="0x021A2020" />
-        <register type="NOA" address="0x00009888" value="0x001B2200" />
-        <register type="NOA" address="0x00009888" value="0x00060A00" />
-        <register type="NOA" address="0x00009888" value="0x0206AAAA" />
-        <register type="NOA" address="0x00009888" value="0x0001FA00" />
-        <register type="NOA" address="0x00009888" value="0x0201AAAA" />
+        <register type="NOA" address="0x00009888" value="0x00124020" />
+        <register type="NOA" address="0x00009888" value="0x0013AE00" />
+        <register type="NOA" address="0x00009888" value="0x0213BAA0" />
+        <register type="NOA" address="0x00009888" value="0x00146100" />
+        <register type="NOA" address="0x00009888" value="0x02144950" />
+        <register type="NOA" address="0x00009888" value="0x0015C200" />
+        <register type="NOA" address="0x00009888" value="0x02158350" />
+        <register type="NOA" address="0x00009888" value="0x00165500" />
+        <register type="NOA" address="0x00009888" value="0x02165550" />
+        <register type="NOA" address="0x00009888" value="0x021700A0" />
+        <register type="NOA" address="0x00009888" value="0x000CFCF0" />
+        <register type="NOA" address="0x00009888" value="0x000EFCF0" />
+        <register type="NOA" address="0x00009888" value="0x020D00A0" />
+        <register type="NOA" address="0x00009888" value="0x001A0800" />
+        <register type="NOA" address="0x00009888" value="0x021A2000" />
+        <register type="NOA" address="0x00009888" value="0x001B2040" />
+        <register type="NOA" address="0x00009888" value="0x0006AA00" />
+        <register type="NOA" address="0x00009888" value="0x0206AAA0" />
+        <register type="NOA" address="0x00009888" value="0x0001AA00" />
+        <register type="NOA" address="0x00009888" value="0x0201AAAF" />
         <register type="NOA" address="0x00009888" value="0x5A010000" />
-        <register type="NOA" address="0x00009888" value="0x5C010600" />
-        <register type="NOA" address="0x00009888" value="0x5E010290" />
-        <register type="NOA" address="0x00009888" value="0x60010E01" />
+        <register type="NOA" address="0x00009888" value="0x5C010E07" />
+        <register type="NOA" address="0x00009888" value="0x5E010070" />
+        <register type="NOA" address="0x00009888" value="0x60010227" />
         <register type="NOA" address="0x00009888" value="0x06010000" />
-        <register type="NOA" address="0x00009888" value="0x62010070" />
+        <register type="NOA" address="0x00009888" value="0x62010090" />
         <register type="NOA" address="0x00009888" value="0x4E010000" />
-        <register type="NOA" address="0x00009888" value="0x50010E07" />
+        <register type="NOA" address="0x00009888" value="0x50010003" />
         <register type="NOA" address="0x00009888" value="0x52010070" />
         <register type="NOA" address="0x00009888" value="0x54010E07" />
         <register type="NOA" address="0x00009888" value="0x56010070" />
@@ -5648,6 +5669,7 @@
        symbol_name="Ext8"
        underscore_name="ext8"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="5aa36c1f-c6da-45ab-ab21-397d9a4b6a06"
        >
     <counter name="GPU Time Elapsed"
@@ -5867,6 +5889,7 @@
        symbol_name="Ext10"
        underscore_name="ext10"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="1df59d79-16d8-471c-b3da-f0f62862f89e"
        >
     <counter name="GPU Time Elapsed"
@@ -6156,6 +6179,7 @@
        symbol_name="Ext11"
        underscore_name="ext11"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="d05d3d84-ba16-41b5-b825-5a3d2aaabbfc"
        >
     <counter name="GPU Time Elapsed"
@@ -6375,6 +6399,7 @@
        symbol_name="Ext12"
        underscore_name="ext12"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="a49e7038-1e78-4b49-bc55-e7e7d04e4074"
        >
     <counter name="GPU Time Elapsed"
@@ -6600,6 +6625,7 @@
        symbol_name="Ext13"
        underscore_name="ext13"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="10f4cba5-2db8-46a9-a211-391dca810ea0"
        >
     <counter name="GPU Time Elapsed"
@@ -6841,6 +6867,7 @@
        symbol_name="Ext14"
        underscore_name="ext14"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="36c1995a-e670-4c2a-ab94-74b9e7360fb2"
        >
     <counter name="GPU Time Elapsed"
@@ -7090,6 +7117,7 @@
        symbol_name="Ext17"
        underscore_name="ext17"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="a04168f6-637e-44af-a1b6-e5f005708df4"
        >
     <counter name="GPU Time Elapsed"
@@ -7200,7 +7228,7 @@
              max_equation="100"
              units="percent"
              semantic_type="duration"
-             equation="B 7 READ B 6 READ FADD 4 FDIV 100 UMUL $GpuCoreClocks FDIV"
+             equation="B 7 READ B 6 READ FADD 2 FDIV 100 UMUL $GpuCoreClocks FDIV"
              availability="$GtSlice0XeCore0"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
@@ -7215,7 +7243,7 @@
              max_equation="100"
              units="percent"
              semantic_type="duration"
-             equation="B 5 READ B 4 READ FADD 4 FDIV 100 UMUL $GpuCoreClocks FDIV"
+             equation="B 5 READ B 4 READ FADD 2 FDIV 100 UMUL $GpuCoreClocks FDIV"
              availability="$GtSlice0XeCore1"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
@@ -7230,7 +7258,7 @@
              max_equation="100"
              units="percent"
              semantic_type="duration"
-             equation="B 3 READ B 2 READ FADD 4 FDIV 100 UMUL $GpuCoreClocks FDIV"
+             equation="B 3 READ B 2 READ FADD 2 FDIV 100 UMUL $GpuCoreClocks FDIV"
              availability="$GtSlice0XeCore2"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
@@ -7245,7 +7273,7 @@
              max_equation="100"
              units="percent"
              semantic_type="duration"
-             equation="B 1 READ B 0 READ FADD 4 FDIV 100 UMUL $GpuCoreClocks FDIV"
+             equation="B 1 READ B 0 READ FADD 2 FDIV 100 UMUL $GpuCoreClocks FDIV"
              availability="$GtSlice0XeCore3"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
@@ -7360,6 +7388,7 @@
        symbol_name="Ext21"
        underscore_name="ext21"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="0486a0e0-3522-4689-bdf9-623603f8e3c6"
        >
     <counter name="GPU Time Elapsed"
@@ -7622,6 +7651,7 @@
        symbol_name="Ext23"
        underscore_name="ext23"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="b30ba7fb-fe8f-4e81-b271-3d6f52edc257"
        >
     <counter name="GPU Time Elapsed"
@@ -7821,6 +7851,7 @@
        symbol_name="Ext28"
        underscore_name="ext28"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="053ca218-0961-4bb2-b689-9fe2cb090fdc"
        >
     <counter name="GPU Time Elapsed"
@@ -8083,6 +8114,7 @@
        symbol_name="Ext31"
        underscore_name="ext31"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="7a4a45f1-e844-460b-8800-91b62eb47124"
        >
     <counter name="GPU Time Elapsed"
@@ -8282,6 +8314,7 @@
        symbol_name="Ext35"
        underscore_name="ext35"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="fd99f6f4-d418-4d86-800b-52998df4eb00"
        >
     <counter name="GPU Time Elapsed"
@@ -8481,6 +8514,7 @@
        symbol_name="Ext39"
        underscore_name="ext39"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="10f4436b-83c7-4e38-867d-82144311e412"
        >
     <counter name="GPU Time Elapsed"
@@ -8684,6 +8718,7 @@
        symbol_name="Ext43"
        underscore_name="ext43"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="ab8c937a-a24c-4b7b-94d2-7cdf4cf3829f"
        >
     <counter name="GPU Time Elapsed"
@@ -8858,6 +8893,7 @@
        symbol_name="Ext45"
        underscore_name="ext45"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="aa3ac820-b824-4681-94ff-3425eee63648"
        >
     <counter name="GPU Time Elapsed"
@@ -9048,6 +9084,7 @@
        symbol_name="Ext51"
        underscore_name="ext51"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="3a093546-2929-4b79-87f4-97df02c1fe8e"
        >
     <counter name="GPU Time Elapsed"
@@ -9223,6 +9260,7 @@
        symbol_name="Ext53"
        underscore_name="ext53"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="2ccdac56-9683-4eb5-89fd-7d42e77c117f"
        >
     <counter name="GPU Time Elapsed"
@@ -9422,6 +9460,7 @@
        symbol_name="Ext57"
        underscore_name="ext57"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="d297b1e3-fc04-45a7-a5c5-f92ab4357eb2"
        >
     <counter name="GPU Time Elapsed"
@@ -9621,6 +9660,7 @@
        symbol_name="Ext61"
        underscore_name="ext61"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="bc372334-fe31-452e-843a-515328c75fd2"
        >
     <counter name="GPU Time Elapsed"
@@ -9824,6 +9864,7 @@
        symbol_name="Ext65"
        underscore_name="ext65"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="8a5ca732-17d3-4336-a33c-292a7f625237"
        >
     <counter name="GPU Time Elapsed"
@@ -9966,6 +10007,7 @@
        symbol_name="Ext66"
        underscore_name="ext66"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="2e72f570-378b-4672-a615-374c1a3d524c"
        >
     <counter name="GPU Time Elapsed"
@@ -10124,6 +10166,7 @@
        symbol_name="Ext73"
        underscore_name="ext73"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="8f63bf05-fccb-45c2-89c1-cf1226c4fb80"
        >
     <counter name="GPU Time Elapsed"
@@ -10259,6 +10302,7 @@
        symbol_name="Ext74"
        underscore_name="ext74"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="2e5b5a64-580f-4cfc-ac3b-e6ccc55a1260"
        >
     <counter name="GPU Time Elapsed"
@@ -10410,6 +10454,7 @@
        symbol_name="Ext77"
        underscore_name="ext77"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="1e7215b8-72b7-460b-99d1-9be3984e9f6c"
        >
     <counter name="GPU Time Elapsed"
@@ -10599,6 +10644,7 @@
        symbol_name="Ext79"
        underscore_name="ext79"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="a1a1cc95-7466-461d-a3a4-a04818bb5d74"
        >
     <counter name="GPU Time Elapsed"
@@ -10744,6 +10790,7 @@
        symbol_name="Ext80"
        underscore_name="ext80"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="06d62e44-cf58-4e35-a8cf-c76ee2b4fd7f"
        >
     <counter name="GPU Time Elapsed"
@@ -10905,6 +10952,7 @@
        symbol_name="Ext83"
        underscore_name="ext83"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="428a93d8-3475-4efc-960e-3402b062d8f0"
        >
     <counter name="GPU Time Elapsed"
@@ -11138,6 +11186,7 @@
        symbol_name="Ext85"
        underscore_name="ext85"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="e6db7a16-f214-4cd0-91e9-94d8036c20ee"
        >
     <counter name="GPU Time Elapsed"
@@ -11397,6 +11446,7 @@
        symbol_name="Ext87"
        underscore_name="ext87"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="b96d78d7-c0c8-4941-9f28-e746f36627e4"
        >
     <counter name="GPU Time Elapsed"
@@ -11586,6 +11636,7 @@
        symbol_name="Ext91"
        underscore_name="ext91"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="55e5926a-364e-45f0-bbcd-69375ac61391"
        >
     <counter name="GPU Time Elapsed"
@@ -11775,6 +11826,7 @@
        symbol_name="Ext93"
        underscore_name="ext93"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="a06cf71c-ad14-49b8-8a22-b367118514bb"
        >
     <counter name="GPU Time Elapsed"
@@ -11920,6 +11972,7 @@
        symbol_name="Ext94"
        underscore_name="ext94"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="a05152f2-80f2-47cc-add7-70f4664b58e8"
        >
     <counter name="GPU Time Elapsed"
@@ -12081,6 +12134,7 @@
        symbol_name="Ext97"
        underscore_name="ext97"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="39f8d4d2-b28d-40a3-b545-a57865d7714e"
        >
     <counter name="GPU Time Elapsed"
@@ -12249,6 +12303,7 @@
        symbol_name="Ext98"
        underscore_name="ext98"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="ee9377fe-2623-4588-8ffc-517e34c2eb75"
        >
     <counter name="GPU Time Elapsed"
@@ -12436,6 +12491,7 @@
        symbol_name="Ext100"
        underscore_name="ext100"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="b5533650-f6f1-4f66-ad40-6b4aba600102"
        >
     <counter name="GPU Time Elapsed"
@@ -12708,6 +12764,7 @@
        symbol_name="Ext101"
        underscore_name="ext101"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="136839ab-66a3-42ac-bca4-1cfca1d3088e"
        >
     <counter name="GPU Time Elapsed"
@@ -12947,6 +13004,7 @@
        symbol_name="Ext102"
        underscore_name="ext102"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="bd8e9b37-35b3-4a94-8ff7-bbad7d67642c"
        >
     <counter name="GPU Time Elapsed"
@@ -13174,6 +13232,7 @@
        symbol_name="Ext104"
        underscore_name="ext104"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="576a210f-b921-46dc-9af7-7f34eb1d368e"
        >
     <counter name="GPU Time Elapsed"
@@ -13350,6 +13409,7 @@
        symbol_name="Ext105"
        underscore_name="ext105"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="96b32930-859d-4fa8-8d81-4d26a160f0e8"
        >
     <counter name="GPU Time Elapsed"
@@ -13537,6 +13597,7 @@
        symbol_name="Ext106"
        underscore_name="ext106"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="bbe4bf0d-03a3-482a-869c-1c6e71d52dac"
        >
     <counter name="GPU Time Elapsed"
@@ -13706,6 +13767,7 @@
        symbol_name="Ext107"
        underscore_name="ext107"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="02eafe17-886d-4559-b18d-c661fd6914c0"
        >
     <counter name="GPU Time Elapsed"
@@ -13886,6 +13948,7 @@
        symbol_name="Ext113"
        underscore_name="ext113"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="8cb51ae4-6d00-44d5-9d24-29521022f02b"
        >
     <counter name="GPU Time Elapsed"
@@ -14220,6 +14283,7 @@
        symbol_name="Ext116"
        underscore_name="ext116"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="c50c1328-01a4-44a4-bc10-cea109a86100"
        >
     <counter name="GPU Time Elapsed"
@@ -14411,6 +14475,7 @@
        symbol_name="Ext118"
        underscore_name="ext118"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="3ac7b553-9dd8-4588-be88-8a50d4aa8497"
        >
     <counter name="GPU Time Elapsed"
@@ -14656,6 +14721,7 @@
        symbol_name="Ext120"
        underscore_name="ext120"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="39bbba4c-b77d-424a-9156-ede3d325df25"
        >
     <counter name="GPU Time Elapsed"
@@ -14849,6 +14915,7 @@
        symbol_name="Ext122"
        underscore_name="ext122"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="1c2b42f8-2763-4c20-85d9-5a5bd7381eb8"
        >
     <counter name="GPU Time Elapsed"
@@ -15089,6 +15156,7 @@
        symbol_name="Ext123"
        underscore_name="ext123"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="80240cbe-83d5-44dd-a03a-c498a6928be5"
        >
     <counter name="GPU Time Elapsed"
@@ -15274,6 +15342,7 @@
        symbol_name="Ext124"
        underscore_name="ext124"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="f8d36c8e-4129-4962-afce-7917f98e9b2d"
        >
     <counter name="GPU Time Elapsed"
@@ -15515,6 +15584,7 @@
        symbol_name="Ext126"
        underscore_name="ext126"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="08670eec-8015-4c40-b900-d47b9824ec83"
        >
     <counter name="GPU Time Elapsed"
@@ -15734,6 +15804,7 @@
        symbol_name="Ext128"
        underscore_name="ext128"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="7d149ad7-90bd-4201-8791-2e8c1c4359e8"
        >
     <counter name="GPU Time Elapsed"
@@ -15882,6 +15953,7 @@
        symbol_name="Ext130"
        underscore_name="ext130"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="52597b67-dea9-411c-845e-c7f7befa744e"
        >
     <counter name="GPU Time Elapsed"
@@ -16003,6 +16075,7 @@
        symbol_name="Ext131"
        underscore_name="ext131"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="56b5eb77-117c-4392-a4ed-6a809598c28f"
        >
     <counter name="GPU Time Elapsed"
@@ -16136,6 +16209,7 @@
        symbol_name="Ext134"
        underscore_name="ext134"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="d4f5b1c3-553d-46f6-abb8-8535ee5e4c90"
        >
     <counter name="GPU Time Elapsed"
@@ -16241,6 +16315,7 @@
        symbol_name="Ext135"
        underscore_name="ext135"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="2aa7d46b-8b53-4693-9e5b-1245dc85cb90"
        >
     <counter name="GPU Time Elapsed"
@@ -16358,6 +16433,7 @@
        symbol_name="Ext138"
        underscore_name="ext138"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="18d95a38-b79c-42ac-a1c1-f6f3ef5ee213"
        >
     <counter name="GPU Time Elapsed"
@@ -16463,6 +16539,7 @@
        symbol_name="Ext139"
        underscore_name="ext139"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="7869d90b-8a61-40c5-b705-91ce55b64cd8"
        >
     <counter name="GPU Time Elapsed"
@@ -16580,6 +16657,7 @@
        symbol_name="Ext142"
        underscore_name="ext142"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="c9f005ff-957d-471f-b6d3-98ebfd423f88"
        >
     <counter name="GPU Time Elapsed"
@@ -16685,6 +16763,7 @@
        symbol_name="Ext143"
        underscore_name="ext143"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="bf8f687e-d93f-439a-904e-14758015b273"
        >
     <counter name="GPU Time Elapsed"
@@ -16802,6 +16881,7 @@
        symbol_name="Ext146"
        underscore_name="ext146"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="38cb3c8a-b6b1-46e9-b18e-331afd4faad6"
        >
     <counter name="GPU Time Elapsed"
@@ -16907,6 +16987,7 @@
        symbol_name="Ext147"
        underscore_name="ext147"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="f0624b43-b429-4be9-9cef-1a9c966b9bf5"
        >
     <counter name="GPU Time Elapsed"
@@ -17024,6 +17105,7 @@
        symbol_name="Ext150"
        underscore_name="ext150"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="9be51bc5-540f-4a51-80b9-a6e8f849107c"
        >
     <counter name="GPU Time Elapsed"
@@ -17127,6 +17209,7 @@
        symbol_name="Ext151"
        underscore_name="ext151"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="5303f1e7-b41b-4f48-a638-02293743f84d"
        >
     <counter name="GPU Time Elapsed"
@@ -17242,6 +17325,7 @@
        symbol_name="Ext154"
        underscore_name="ext154"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="269bfd75-1e50-4717-959c-f72de6c5e37e"
        >
     <counter name="GPU Time Elapsed"
@@ -17427,6 +17511,7 @@
        symbol_name="Ext155"
        underscore_name="ext155"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="77c2e8f4-297f-46ed-95a9-370e21e131c6"
        >
     <counter name="GPU Time Elapsed"
@@ -17563,6 +17648,7 @@
        symbol_name="Ext156"
        underscore_name="ext156"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="dea81dd8-3792-4245-9ce3-4591a6ff2d31"
        >
     <counter name="GPU Time Elapsed"
@@ -17698,6 +17784,7 @@
        symbol_name="Ext158"
        underscore_name="ext158"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="0f6dfbfe-33f8-4910-996a-8b639c57066f"
        >
     <counter name="GPU Time Elapsed"
@@ -17873,6 +17960,7 @@
        symbol_name="Ext159"
        underscore_name="ext159"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="7b4a0c8f-f35d-49e2-b1a7-243740c4d888"
        >
     <counter name="GPU Time Elapsed"
@@ -18076,6 +18164,7 @@
        symbol_name="Ext161"
        underscore_name="ext161"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="bf4c98bf-1930-408b-87ad-2674e6e617c0"
        >
     <counter name="GPU Time Elapsed"
@@ -18279,6 +18368,7 @@
        symbol_name="Ext163"
        underscore_name="ext163"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="2826204b-5835-4b64-840f-133d1ca5b03a"
        >
     <counter name="GPU Time Elapsed"
@@ -18482,6 +18572,7 @@
        symbol_name="Ext165"
        underscore_name="ext165"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="b9e7193e-99b9-4e9f-9738-de7144ea3b39"
        >
     <counter name="GPU Time Elapsed"
@@ -18685,6 +18776,7 @@
        symbol_name="Ext167"
        underscore_name="ext167"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="4797cea4-4618-42c1-aa36-0f8210b42a47"
        >
     <counter name="GPU Time Elapsed"
@@ -18888,6 +18980,7 @@
        symbol_name="Ext169"
        underscore_name="ext169"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="daeb4a53-f0ba-4bec-9462-8025cc17ca8b"
        >
     <counter name="GPU Time Elapsed"
@@ -19091,6 +19184,7 @@
        symbol_name="Ext171"
        underscore_name="ext171"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="2aeaff8e-ce08-49f1-aacf-c9631dc3c756"
        >
     <counter name="GPU Time Elapsed"
@@ -19474,6 +19568,7 @@
        symbol_name="Ext173"
        underscore_name="ext173"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="5005db3a-31a9-498c-8153-bf47147473b1"
        >
     <counter name="GPU Time Elapsed"
@@ -19675,6 +19770,7 @@
        symbol_name="Ext174"
        underscore_name="ext174"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="3e2a351c-3f4f-461a-a6cf-64f099b83fc5"
        >
     <counter name="GPU Time Elapsed"
@@ -19883,6 +19979,7 @@
        symbol_name="Ext175"
        underscore_name="ext175"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="14c17f9b-021b-41e5-a4f0-ab8daaad56a4"
        >
     <counter name="GPU Time Elapsed"
@@ -20100,6 +20197,7 @@
        symbol_name="Ext176"
        underscore_name="ext176"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="a258d429-a165-4fed-bbcb-c743a09dd68f"
        >
     <counter name="GPU Time Elapsed"
@@ -20324,6 +20422,7 @@
        symbol_name="Ext177"
        underscore_name="ext177"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="986b3512-df42-4300-a3fb-3a0d5835b5dc"
        >
     <counter name="GPU Time Elapsed"
@@ -20546,6 +20645,7 @@
        symbol_name="Ext181"
        underscore_name="ext181"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="29b4890b-203f-44d7-a007-270354d414ed"
        >
     <counter name="GPU Time Elapsed"
@@ -20715,6 +20815,7 @@
        symbol_name="Ext184"
        underscore_name="ext184"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="87ec0ca0-a406-4ddb-9fb9-60beed37e12a"
        >
     <counter name="GPU Time Elapsed"
@@ -20914,6 +21015,7 @@
        symbol_name="Ext188"
        underscore_name="ext188"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="11c77c80-498e-4cad-9e2d-565a52fd3578"
        >
     <counter name="GPU Time Elapsed"
@@ -21113,6 +21215,7 @@
        symbol_name="Ext190"
        underscore_name="ext190"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="123714d3-5d52-49de-91eb-0c909557d221"
        >
     <counter name="GPU Time Elapsed"
@@ -21272,6 +21375,7 @@
        symbol_name="Ext192"
        underscore_name="ext192"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="d2741830-1ee3-42ab-b578-2b9c31a69c1c"
        >
     <counter name="GPU Time Elapsed"
@@ -21546,6 +21650,7 @@
        symbol_name="Ext195"
        underscore_name="ext195"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="d41508b5-921c-4033-a2f0-8a88aad4e718"
        >
     <counter name="GPU Time Elapsed"
@@ -21827,6 +21932,7 @@
        symbol_name="Ext200"
        underscore_name="ext200"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="73a53c50-0922-4d77-87d9-13b18d368e4e"
        >
     <counter name="GPU Time Elapsed"
@@ -22022,6 +22128,7 @@
        symbol_name="Ext201"
        underscore_name="ext201"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="32b9a4f4-b1f0-478f-8998-d86e5c5c458f"
        >
     <counter name="GPU Time Elapsed"
@@ -22221,6 +22328,7 @@
        symbol_name="Ext202"
        underscore_name="ext202"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="e1606d82-b67b-4fd8-9b07-a769dd6e6581"
        >
     <counter name="GPU Time Elapsed"
@@ -22322,6 +22430,7 @@
        symbol_name="Ext203"
        underscore_name="ext203"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="16647b5e-c9e4-4201-afc2-cb47a9f3f4d2"
        >
     <counter name="GPU Time Elapsed"
@@ -22423,6 +22532,7 @@
        symbol_name="Ext204"
        underscore_name="ext204"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="639a17e1-f339-49ab-9884-6b9a91a5a0c8"
        >
     <counter name="GPU Time Elapsed"
@@ -22622,6 +22732,7 @@
        symbol_name="Ext205"
        underscore_name="ext205"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="7420acf6-1809-41e3-b5d1-49455c60aa66"
        >
     <counter name="GPU Time Elapsed"
@@ -22821,6 +22932,7 @@
        symbol_name="Ext212"
        underscore_name="ext212"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="015d134a-1b6e-4969-b972-b904c1d0cc85"
        >
     <counter name="GPU Time Elapsed"
@@ -22998,6 +23110,7 @@
        symbol_name="Ext214"
        underscore_name="ext214"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="191eb41b-6180-4cf9-b3fb-048bf4da8b94"
        >
     <counter name="GPU Time Elapsed"
@@ -23191,6 +23304,7 @@
        symbol_name="Ext220"
        underscore_name="ext220"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="840ad20c-c8ba-4dd5-bc42-674987d6ec79"
        >
     <counter name="GPU Time Elapsed"
@@ -23366,6 +23480,7 @@
        symbol_name="Ext225"
        underscore_name="ext225"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="a8bfddc1-d469-45d6-8790-7d8c649ada41"
        >
     <counter name="GPU Time Elapsed"
@@ -23496,6 +23611,7 @@
        symbol_name="Ext227"
        underscore_name="ext227"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="325e5e9b-a055-4c22-8997-98d546a31afe"
        >
     <counter name="GPU Time Elapsed"
@@ -23626,6 +23742,7 @@
        symbol_name="Ext229"
        underscore_name="ext229"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="94537bb4-60fd-45fe-b172-29ed90c9abac"
        >
     <counter name="GPU Time Elapsed"
@@ -23759,6 +23876,7 @@
        symbol_name="Ext231"
        underscore_name="ext231"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="7fceb68b-57e6-480d-81d1-991d8d6f7c4d"
        >
     <counter name="GPU Time Elapsed"
@@ -23908,6 +24026,7 @@
        symbol_name="Ext237"
        underscore_name="ext237"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="ad62dc60-987b-415e-9f7d-6976fbe82dac"
        >
     <counter name="GPU Time Elapsed"
@@ -24061,6 +24180,7 @@
        symbol_name="Ext238"
        underscore_name="ext238"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="e630dd77-cf9e-4deb-8f52-57506b306b63"
        >
     <counter name="GPU Time Elapsed"
@@ -24248,6 +24368,7 @@
        symbol_name="Ext239"
        underscore_name="ext239"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="6dfee12d-6bfc-434a-8873-bc076a47d80b"
        >
     <counter name="GPU Time Elapsed"
@@ -24361,6 +24482,7 @@
        symbol_name="Ext240"
        underscore_name="ext240"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="5edd0480-7a46-49f7-8709-7f737d0cc42a"
        >
     <counter name="GPU Time Elapsed"
@@ -24474,6 +24596,7 @@
        symbol_name="Ext500"
        underscore_name="ext500"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="a7cd6b7e-e8ee-4853-b2d3-269bf3ed73c7"
        >
     <counter name="GPU Time Elapsed"
@@ -24724,6 +24847,7 @@
        symbol_name="Ext501"
        underscore_name="ext501"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="8e09a7a1-b0e8-464a-a28d-90250f64ec9e"
        >
     <counter name="GPU Time Elapsed"
@@ -24974,6 +25098,7 @@
        symbol_name="Ext502"
        underscore_name="ext502"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="57a19b6a-1b7d-4337-a9c9-710c56c46f84"
        >
     <counter name="GPU Time Elapsed"
@@ -25224,6 +25349,7 @@
        symbol_name="Ext503"
        underscore_name="ext503"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="394b21ab-311c-47a5-9b10-88159f5ac999"
        >
     <counter name="GPU Time Elapsed"
@@ -25474,6 +25600,7 @@
        symbol_name="Ext508"
        underscore_name="ext508"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="143440a0-d7e2-4f41-8372-8fdca1ecc2a8"
        >
     <counter name="GPU Time Elapsed"
@@ -25553,10 +25680,10 @@
         <register type="NOA" address="0x00009888" value="0x00045550" />
         <register type="NOA" address="0x00009888" value="0x02045555" />
         <register type="NOA" address="0x00009888" value="0x04080010" />
-        <register type="NOA" address="0x00009888" value="0x10080180" />
-        <register type="NOA" address="0x00009888" value="0x12080105" />
-        <register type="NOA" address="0x00009888" value="0x14080083" />
-        <register type="NOA" address="0x00009888" value="0x160803C1" />
+        <register type="NOA" address="0x00009888" value="0x10080140" />
+        <register type="NOA" address="0x00009888" value="0x120800C4" />
+        <register type="NOA" address="0x00009888" value="0x14080042" />
+        <register type="NOA" address="0x00009888" value="0x160803C0" />
         <register type="NOA" address="0x00009888" value="0x08080000" />
         <register type="NOA" address="0x00009888" value="0x0008FFF0" />
         <register type="NOA" address="0x00009888" value="0x02080003" />
@@ -25567,9 +25694,9 @@
         <register type="NOA" address="0x00009888" value="0x00045550" />
         <register type="NOA" address="0x00009888" value="0x02040001" />
         <register type="NOA" address="0x00009888" value="0x04080010" />
-        <register type="NOA" address="0x00009888" value="0x0A080146" />
-        <register type="NOA" address="0x00009888" value="0x0C0800C4" />
-        <register type="NOA" address="0x00009888" value="0x0E080042" />
+        <register type="NOA" address="0x00009888" value="0x0A080105" />
+        <register type="NOA" address="0x00009888" value="0x0C080083" />
+        <register type="NOA" address="0x00009888" value="0x0E080001" />
         <register type="NOA" address="0x00009888" value="0x1008000F" />
         <register type="NOA" address="0x00009888" value="0x08080000" />
         <register type="NOA" address="0x00009888" value="0x00080000" />
@@ -25609,6 +25736,7 @@
        symbol_name="Ext509"
        underscore_name="ext509"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="7c5d3f41-b690-44b2-8352-00215ac94bae"
        >
     <counter name="GPU Time Elapsed"
@@ -25683,29 +25811,31 @@
         <register type="NOA" address="0x00000D04" value="0x00000200" />
         <register type="NOA" address="0x00009884" value="0x00000008" />
         <register type="NOA" address="0x00009888" value="0x1C085400" />
+        <register type="NOA" address="0x00009888" value="0x1E080014" />
         <register type="NOA" address="0x00009888" value="0x0002FFF0" />
         <register type="NOA" address="0x00009888" value="0x0202FFFF" />
         <register type="NOA" address="0x00009888" value="0x00045550" />
         <register type="NOA" address="0x00009888" value="0x02045555" />
-        <register type="NOA" address="0x00009888" value="0x04080008" />
-        <register type="NOA" address="0x00009888" value="0x10080180" />
-        <register type="NOA" address="0x00009888" value="0x12080105" />
-        <register type="NOA" address="0x00009888" value="0x14080083" />
-        <register type="NOA" address="0x00009888" value="0x16080001" />
+        <register type="NOA" address="0x00009888" value="0x04080098" />
+        <register type="NOA" address="0x00009888" value="0x10080140" />
+        <register type="NOA" address="0x00009888" value="0x120800C4" />
+        <register type="NOA" address="0x00009888" value="0x14080042" />
+        <register type="NOA" address="0x00009888" value="0x160803C0" />
         <register type="NOA" address="0x00009888" value="0x08080000" />
         <register type="NOA" address="0x00009888" value="0x0008FFF0" />
         <register type="NOA" address="0x00009888" value="0x02080003" />
         <register type="NOA" address="0x00009884" value="0x00000009" />
         <register type="NOA" address="0x00009888" value="0x1C085400" />
+        <register type="NOA" address="0x00009888" value="0x1E080014" />
         <register type="NOA" address="0x00009888" value="0x0002FFF0" />
         <register type="NOA" address="0x00009888" value="0x02020003" />
         <register type="NOA" address="0x00009888" value="0x00045550" />
         <register type="NOA" address="0x00009888" value="0x02040001" />
-        <register type="NOA" address="0x00009888" value="0x04080008" />
-        <register type="NOA" address="0x00009888" value="0x0A080146" />
-        <register type="NOA" address="0x00009888" value="0x0C0800C4" />
-        <register type="NOA" address="0x00009888" value="0x0E080042" />
-        <register type="NOA" address="0x00009888" value="0x10080000" />
+        <register type="NOA" address="0x00009888" value="0x04080098" />
+        <register type="NOA" address="0x00009888" value="0x0A080105" />
+        <register type="NOA" address="0x00009888" value="0x0C080083" />
+        <register type="NOA" address="0x00009888" value="0x0E080001" />
+        <register type="NOA" address="0x00009888" value="0x1008000F" />
         <register type="NOA" address="0x00009888" value="0x08080000" />
         <register type="NOA" address="0x00009888" value="0x00080000" />
         <register type="NOA" address="0x00009888" value="0x02080000" />
@@ -25744,6 +25874,7 @@
        symbol_name="Ext510"
        underscore_name="ext510"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="02f43996-feff-4e13-a8fd-eea9de2f13fc"
        >
     <counter name="GPU Time Elapsed"
@@ -25823,10 +25954,10 @@
         <register type="NOA" address="0x00009888" value="0x00045550" />
         <register type="NOA" address="0x00009888" value="0x02045555" />
         <register type="NOA" address="0x00009888" value="0x04080010" />
-        <register type="NOA" address="0x00009888" value="0x10080180" />
-        <register type="NOA" address="0x00009888" value="0x12080105" />
-        <register type="NOA" address="0x00009888" value="0x14080083" />
-        <register type="NOA" address="0x00009888" value="0x160803C1" />
+        <register type="NOA" address="0x00009888" value="0x10080140" />
+        <register type="NOA" address="0x00009888" value="0x120800C4" />
+        <register type="NOA" address="0x00009888" value="0x14080042" />
+        <register type="NOA" address="0x00009888" value="0x160803C0" />
         <register type="NOA" address="0x00009888" value="0x08080000" />
         <register type="NOA" address="0x00009888" value="0x0008FFF0" />
         <register type="NOA" address="0x00009888" value="0x02080003" />
@@ -25837,9 +25968,9 @@
         <register type="NOA" address="0x00009888" value="0x00045550" />
         <register type="NOA" address="0x00009888" value="0x02040001" />
         <register type="NOA" address="0x00009888" value="0x04080010" />
-        <register type="NOA" address="0x00009888" value="0x0A080146" />
-        <register type="NOA" address="0x00009888" value="0x0C0800C4" />
-        <register type="NOA" address="0x00009888" value="0x0E080042" />
+        <register type="NOA" address="0x00009888" value="0x0A080105" />
+        <register type="NOA" address="0x00009888" value="0x0C080083" />
+        <register type="NOA" address="0x00009888" value="0x0E080001" />
         <register type="NOA" address="0x00009888" value="0x1008000F" />
         <register type="NOA" address="0x00009888" value="0x08080000" />
         <register type="NOA" address="0x00009888" value="0x00080000" />
@@ -25895,6 +26026,7 @@
        symbol_name="Ext511"
        underscore_name="ext511"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="2cbd327c-40e2-452b-a9fc-c7787869a352"
        >
     <counter name="GPU Time Elapsed"
@@ -25969,29 +26101,31 @@
         <register type="NOA" address="0x00000D04" value="0x00000200" />
         <register type="NOA" address="0x00009884" value="0x0000000A" />
         <register type="NOA" address="0x00009888" value="0x1C085400" />
+        <register type="NOA" address="0x00009888" value="0x1E080014" />
         <register type="NOA" address="0x00009888" value="0x0002FFF0" />
         <register type="NOA" address="0x00009888" value="0x0202FFFF" />
         <register type="NOA" address="0x00009888" value="0x00045550" />
         <register type="NOA" address="0x00009888" value="0x02045555" />
-        <register type="NOA" address="0x00009888" value="0x04080008" />
-        <register type="NOA" address="0x00009888" value="0x10080180" />
-        <register type="NOA" address="0x00009888" value="0x12080105" />
-        <register type="NOA" address="0x00009888" value="0x14080083" />
-        <register type="NOA" address="0x00009888" value="0x16080001" />
+        <register type="NOA" address="0x00009888" value="0x04080098" />
+        <register type="NOA" address="0x00009888" value="0x10080140" />
+        <register type="NOA" address="0x00009888" value="0x120800C4" />
+        <register type="NOA" address="0x00009888" value="0x14080042" />
+        <register type="NOA" address="0x00009888" value="0x160803C0" />
         <register type="NOA" address="0x00009888" value="0x08080000" />
         <register type="NOA" address="0x00009888" value="0x0008FFF0" />
         <register type="NOA" address="0x00009888" value="0x02080003" />
         <register type="NOA" address="0x00009884" value="0x0000000B" />
         <register type="NOA" address="0x00009888" value="0x1C085400" />
+        <register type="NOA" address="0x00009888" value="0x1E080014" />
         <register type="NOA" address="0x00009888" value="0x0002FFF0" />
         <register type="NOA" address="0x00009888" value="0x02020003" />
         <register type="NOA" address="0x00009888" value="0x00045550" />
         <register type="NOA" address="0x00009888" value="0x02040001" />
-        <register type="NOA" address="0x00009888" value="0x04080008" />
-        <register type="NOA" address="0x00009888" value="0x0A080146" />
-        <register type="NOA" address="0x00009888" value="0x0C0800C4" />
-        <register type="NOA" address="0x00009888" value="0x0E080042" />
-        <register type="NOA" address="0x00009888" value="0x10080000" />
+        <register type="NOA" address="0x00009888" value="0x04080098" />
+        <register type="NOA" address="0x00009888" value="0x0A080105" />
+        <register type="NOA" address="0x00009888" value="0x0C080083" />
+        <register type="NOA" address="0x00009888" value="0x0E080001" />
+        <register type="NOA" address="0x00009888" value="0x1008000F" />
         <register type="NOA" address="0x00009888" value="0x08080000" />
         <register type="NOA" address="0x00009888" value="0x00080000" />
         <register type="NOA" address="0x00009888" value="0x02080000" />
@@ -26046,6 +26180,7 @@
        symbol_name="Ext516"
        underscore_name="ext516"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="3a9dba68-9402-48b0-a8ec-28e4e4a534de"
        >
     <counter name="GPU Time Elapsed"
@@ -26171,6 +26306,7 @@
        symbol_name="Ext517"
        underscore_name="ext517"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="ea503506-9afa-42dc-b85b-1237dce6e8af"
        >
     <counter name="GPU Time Elapsed"
@@ -26296,6 +26432,7 @@
        symbol_name="Ext518"
        underscore_name="ext518"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="5056524c-12e3-4ba6-8788-eb934f284753"
        >
     <counter name="GPU Time Elapsed"
@@ -26428,6 +26565,7 @@
        symbol_name="Ext519"
        underscore_name="ext519"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="13f8665d-c5aa-47b4-ae3e-af80dd134e1b"
        >
     <counter name="GPU Time Elapsed"
@@ -26560,6 +26698,7 @@
        symbol_name="Ext520"
        underscore_name="ext520"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="4d5b4699-5a6a-4a85-81e1-3ad75d735476"
        >
     <counter name="GPU Time Elapsed"
@@ -26701,6 +26840,7 @@
        symbol_name="Ext521"
        underscore_name="ext521"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="f9cc9e2c-c517-49a1-b27c-f81b08b411fc"
        >
     <counter name="GPU Time Elapsed"
@@ -26842,6 +26982,7 @@
        symbol_name="Ext522"
        underscore_name="ext522"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="f5fe71de-58e0-4fba-a75a-111906d8fb5b"
        >
     <counter name="GPU Time Elapsed"
@@ -26990,6 +27131,7 @@
        symbol_name="Ext523"
        underscore_name="ext523"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="46d82207-1235-45ea-a0e6-f71fa55a3380"
        >
     <counter name="GPU Time Elapsed"
@@ -27138,6 +27280,7 @@
        symbol_name="Ext540"
        underscore_name="ext540"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="0ea54a28-5052-4c2a-a18a-8cc17383a072"
        >
     <counter name="GPU Time Elapsed"
@@ -27263,6 +27406,7 @@
        symbol_name="Ext541"
        underscore_name="ext541"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="9cd9ba1c-3c59-483d-9ce3-136c8898f09d"
        >
     <counter name="GPU Time Elapsed"
@@ -27395,6 +27539,7 @@
        symbol_name="Ext542"
        underscore_name="ext542"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="ab29d0d9-3388-4316-af23-932aeef1ed23"
        >
     <counter name="GPU Time Elapsed"
@@ -27536,6 +27681,7 @@
        symbol_name="Ext543"
        underscore_name="ext543"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="16bf4ba3-2204-4d52-8f5e-d49ef8f571bb"
        >
     <counter name="GPU Time Elapsed"
@@ -27684,6 +27830,7 @@
        symbol_name="Ext604"
        underscore_name="ext604"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="66331aff-0aaf-41e7-ad18-fa61060d3af6"
        >
     <counter name="GPU Time Elapsed"
@@ -27923,6 +28070,7 @@
        symbol_name="Ext1000"
        underscore_name="ext1000"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="2d24479d-6766-4632-8d2b-f440c9bf53c7"
        >
     <counter name="GPU Time Elapsed"
@@ -28269,6 +28417,7 @@
        symbol_name="Ext1001"
        underscore_name="ext1001"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="15aa1ce0-6750-4566-8b2b-6d71a6ac4039"
        >
     <counter name="GPU Time Elapsed"
@@ -28672,6 +28821,7 @@
        symbol_name="Ext1002"
        underscore_name="ext1002"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="23131267-15c5-47bc-bcb3-4c05fc452e0e"
        >
     <counter name="GPU Time Elapsed"
@@ -28990,6 +29140,7 @@
        symbol_name="Ext1003"
        underscore_name="ext1003"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="605d1ee1-c160-46ee-9e31-6daf3885401c"
        >
     <counter name="GPU Time Elapsed"
@@ -29337,6 +29488,7 @@
        symbol_name="Ext1004"
        underscore_name="ext1004"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="40f4dcae-3ed1-4f3e-bddf-dbb87bc4279b"
        >
     <counter name="GPU Time Elapsed"
@@ -29684,6 +29836,7 @@
        symbol_name="Ext1005"
        underscore_name="ext1005"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="099da490-3594-4baa-98af-cea30d4d6c15"
        >
     <counter name="GPU Time Elapsed"
@@ -30087,6 +30240,7 @@
        symbol_name="Ext1006"
        underscore_name="ext1006"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="ab298da4-5917-4592-bbe0-1c21dedf000b"
        >
     <counter name="GPU Time Elapsed"
@@ -30433,6 +30587,7 @@
        symbol_name="Ext1007"
        underscore_name="ext1007"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="1b429688-49f8-48f2-8a06-18ba5c6a2b52"
        >
     <counter name="GPU Time Elapsed"
@@ -30722,6 +30877,7 @@
        symbol_name="Ext1010"
        underscore_name="ext1010"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="a4717f34-1c8b-40d8-a022-abbcf03cc6e5"
        >
     <counter name="GPU Time Elapsed"
@@ -30841,4 +30997,656 @@
     </register_config>
   </set>
 
+  <set name="MediaSet1"
+       chipset="MTLGT2"
+       symbol_name="MediaSet1"
+       underscore_name="media_set1"
+       mdapi_supported_apis="IO"
+       oa_format="128B_MPEC8_NOA16"
+       hw_config_guid="de84260e-32ac-4863-ba4f-998a685174a2"
+       >
+    <counter name="GPU Time Elapsed"
+             symbol_name="GpuTime"
+             underscore_name="gpu_time"
+             description="GPU Time Elapsed"
+             data_type="uint64"
+             units="ns"
+             semantic_type="event"
+             equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Overview System Batch"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="GPU Core Clocks"
+             symbol_name="GpuCoreClocks"
+             underscore_name="gpu_core_clocks"
+             description="The total number of GPU core clocks elapsed during the measurement."
+             data_type="uint64"
+             units="cycles"
+             semantic_type="event"
+             equation="GPU_CLOCK 0 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="AVG GPU Core Frequency"
+             symbol_name="AvgGpuCoreFrequency"
+             underscore_name="avg_gpu_core_frequency"
+             description="Average GPU Core Frequency in the measurement."
+             data_type="uint64"
+             max_equation="$GpuMaxFrequency"
+             units="hz"
+             semantic_type="event"
+             equation="$GpuCoreClocks 1000000000 UMUL $GpuTime UDIV"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="VIDEO_DECODE_BOX0_READ_REQUEST"
+             symbol_name="VIDEO_DECODE_BOX0_READ_REQUEST"
+             underscore_name="video_decode_box0_read_request"
+             description="Number of VDBOX0 read requests"
+             data_type="uint64"
+             units="messages"
+             semantic_type="event"
+             equation="A 0 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="VIDEO_DECODE_BOX0_WRITE_REQUEST"
+             symbol_name="VIDEO_DECODE_BOX0_WRITE_REQUEST"
+             underscore_name="video_decode_box0_write_request"
+             description="Number of VDBOX0 write requests"
+             data_type="uint64"
+             units="messages"
+             semantic_type="event"
+             equation="A 1 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="VIDEO_DECODE_BOX1_READ_REQUEST"
+             symbol_name="VIDEO_DECODE_BOX1_READ_REQUEST"
+             underscore_name="video_decode_box1_read_request"
+             description="Number of VDBOX1 read requests"
+             data_type="uint64"
+             units="messages"
+             semantic_type="event"
+             equation="A 2 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="VIDEO_DECODE_BOX1_WRITE_REQUEST"
+             symbol_name="VIDEO_DECODE_BOX1_WRITE_REQUEST"
+             underscore_name="video_decode_box1_write_request"
+             description="Number of VDBOX1 write requests"
+             data_type="uint64"
+             units="messages"
+             semantic_type="event"
+             equation="A 3 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="VIDEO_ENHANCEMENT_BOX0_READ_REQUEST"
+             symbol_name="VIDEO_ENHANCEMENT_BOX0_READ_REQUEST"
+             underscore_name="video_enhancement_box0_read_request"
+             description="Number of VEBOX0 read requests"
+             data_type="uint64"
+             units="messages"
+             semantic_type="event"
+             equation="A 4 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="VIDEO_ENHANCEMENT_BOX0_WRITE_REQUEST"
+             symbol_name="VIDEO_ENHANCEMENT_BOX0_WRITE_REQUEST"
+             underscore_name="video_enhancement_box0_write_request"
+             description="Number of VEBOX0 write requests"
+             data_type="uint64"
+             units="messages"
+             semantic_type="event"
+             equation="A 5 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="VIDEO_ENHANCEMENT_BOX1_READ_REQUEST"
+             symbol_name="VIDEO_ENHANCEMENT_BOX1_READ_REQUEST"
+             underscore_name="video_enhancement_box1_read_request"
+             description="Number of VEBOX1 read requests"
+             data_type="uint64"
+             units="messages"
+             semantic_type="event"
+             equation="A 6 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="VIDEO_ENHANCEMENT_BOX1_WRITE_REQUEST"
+             symbol_name="VIDEO_ENHANCEMENT_BOX1_WRITE_REQUEST"
+             underscore_name="video_enhancement_box1_write_request"
+             description="Number of VEBOX1 write requests"
+             data_type="uint64"
+             units="messages"
+             semantic_type="event"
+             equation="A 7 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <register_config type="OA">
+        <register type="OA" address="0x00393200" value="0x00000201" />
+        <register type="OA" address="0x00393204" value="0x00000000" />
+        <register type="OA" address="0x00393208" value="0x00000202" />
+        <register type="OA" address="0x0039320C" value="0x00000000" />
+        <register type="OA" address="0x00393210" value="0x00000401" />
+        <register type="OA" address="0x00393214" value="0x00000000" />
+        <register type="OA" address="0x00393218" value="0x00000402" />
+        <register type="OA" address="0x0039321C" value="0x00000000" />
+        <register type="OA" address="0x00393220" value="0x00002201" />
+        <register type="OA" address="0x00393224" value="0x00000000" />
+        <register type="OA" address="0x00393228" value="0x00002202" />
+        <register type="OA" address="0x0039322C" value="0x00000000" />
+        <register type="OA" address="0x00393230" value="0x00002401" />
+        <register type="OA" address="0x00393234" value="0x00000000" />
+        <register type="OA" address="0x00393238" value="0x00002402" />
+        <register type="OA" address="0x0039323C" value="0x00000000" />
+        <register type="OA" address="0x00393034" value="0x00000000" />
+    </register_config>
+  </set>
+
+  <set name="MediaSet2"
+       chipset="MTLGT2"
+       symbol_name="MediaSet2"
+       underscore_name="media_set2"
+       mdapi_supported_apis="IO"
+       oa_format="128B_MPEC8_NOA16"
+       hw_config_guid="b9d5c6d5-39f2-4069-b343-e7a886353b89"
+       >
+    <counter name="GPU Time Elapsed"
+             symbol_name="GpuTime"
+             underscore_name="gpu_time"
+             description="GPU Time Elapsed"
+             data_type="uint64"
+             units="ns"
+             semantic_type="event"
+             equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Overview System Batch"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="GPU Core Clocks"
+             symbol_name="GpuCoreClocks"
+             underscore_name="gpu_core_clocks"
+             description="The total number of GPU core clocks elapsed during the measurement."
+             data_type="uint64"
+             units="cycles"
+             semantic_type="event"
+             equation="GPU_CLOCK 0 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="AVG GPU Core Frequency"
+             symbol_name="AvgGpuCoreFrequency"
+             underscore_name="avg_gpu_core_frequency"
+             description="Average GPU Core Frequency in the measurement."
+             data_type="uint64"
+             max_equation="$GpuMaxFrequency"
+             units="hz"
+             semantic_type="event"
+             equation="$GpuCoreClocks 1000000000 UMUL $GpuTime UDIV"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="MEDIA_READ_REQUEST"
+             symbol_name="MEDIA_READ_REQUEST"
+             underscore_name="media_read_request"
+             description="Number of read requests from stand alone media "
+             data_type="uint64"
+             units="messages"
+             semantic_type="event"
+             equation="A 0 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="MEDIA_WRITE_REQUEST"
+             symbol_name="MEDIA_WRITE_REQUEST"
+             underscore_name="media_write_request"
+             description="Number of write requests from stand alone media "
+             data_type="uint64"
+             units="messages"
+             semantic_type="event"
+             equation="A 1 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="COMMAND PARSER VIDEO DECODE_ENGINE0 BUSY"
+             symbol_name="COMMAND_PARSER_VIDEO_DECODE_ENGINE0_BUSY"
+             underscore_name="command_parser_video_decode_engine0_busy"
+             description="Percentage of time in which there is a context loaded and active on the media VDBOX0"
+             data_type="float"
+             max_equation="100"
+             units="percent"
+             semantic_type="duration"
+             equation="A 2 READ 100 UMUL $GpuCoreClocks FDIV"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="COMMAND_PARSER_VIDEO_DECODE_ENGINE1_BUSY"
+             symbol_name="COMMAND_PARSER_VIDEO_DECODE_ENGINE1_BUSY"
+             underscore_name="command_parser_video_decode_engine1_busy"
+             description="Percentage of time in which there is a context loaded and active on the media VDBOX1"
+             data_type="float"
+             max_equation="100"
+             units="percent"
+             semantic_type="duration"
+             equation="A 3 READ 100 UMUL $GpuCoreClocks FDIV"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="COMMAND_PARSER_VIDEO_ENHANCEMENT_ENGINE0_BUSY"
+             symbol_name="COMMAND_PARSER_VIDEO_ENHANCEMENT_ENGINE0_BUSY"
+             underscore_name="command_parser_video_enhancement_engine0_busy"
+             description="Percentage of time in which there is a context loaded and active on the media VEBOX0"
+             data_type="float"
+             max_equation="100"
+             units="percent"
+             semantic_type="duration"
+             equation="A 4 READ 100 UMUL $GpuCoreClocks FDIV"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="COMMAND_PARSER_VIDEO_ENHANCEMENT_ENGINE1_BUSY"
+             symbol_name="COMMAND_PARSER_VIDEO_ENHANCEMENT_ENGINE1_BUSY"
+             underscore_name="command_parser_video_enhancement_engine1_busy"
+             description="Percentage of time in which there is a context loaded and active on the media VEBOX0"
+             data_type="float"
+             max_equation="100"
+             units="percent"
+             semantic_type="duration"
+             equation="A 5 READ 100 UMUL $GpuCoreClocks FDIV"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="COMMAND_PARSER_GRAPHICS_SECURITY_CONTROLLER_BUSY"
+             symbol_name="COMMAND_PARSER_GRAPHICS_SECURITY_CONTROLLER_BUSY"
+             underscore_name="command_parser_graphics_security_controller_busy"
+             description="Percentage of time in which Graphics Security Controller is active."
+             data_type="float"
+             max_equation="100"
+             units="percent"
+             semantic_type="duration"
+             equation="A 6 READ 100 UMUL $GpuCoreClocks FDIV"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <register_config type="OA">
+        <register type="OA" address="0x00393200" value="0x00000001" />
+        <register type="OA" address="0x00393204" value="0x00000000" />
+        <register type="OA" address="0x00393208" value="0x00000002" />
+        <register type="OA" address="0x0039320C" value="0x00000000" />
+        <register type="OA" address="0x00393210" value="0x00000200" />
+        <register type="OA" address="0x00393214" value="0x00000000" />
+        <register type="OA" address="0x00393218" value="0x00000400" />
+        <register type="OA" address="0x0039321C" value="0x00000000" />
+        <register type="OA" address="0x00393220" value="0x00002200" />
+        <register type="OA" address="0x00393224" value="0x00000000" />
+        <register type="OA" address="0x00393228" value="0x00002400" />
+        <register type="OA" address="0x0039322C" value="0x00000000" />
+        <register type="OA" address="0x00393230" value="0x00000003" />
+        <register type="OA" address="0x00393234" value="0x00000000" />
+        <register type="OA" address="0x00393034" value="0x00000000" />
+    </register_config>
+  </set>
+
+  <set name="TestOam"
+       chipset="MTLGT2"
+       symbol_name="TestOam"
+       underscore_name="test_oam"
+       mdapi_supported_apis="IO"
+       oa_format="128B_MPEC8_NOA16"
+       hw_config_guid="a1700053-56bc-4b7e-87b9-e29b07a08f62"
+       >
+    <counter name="GPU Time Elapsed"
+             symbol_name="GpuTime"
+             underscore_name="gpu_time"
+             description="GPU Time Elapsed"
+             data_type="uint64"
+             units="ns"
+             semantic_type="event"
+             equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Overview System Batch"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="GPU Core Clocks"
+             symbol_name="GpuCoreClocks"
+             underscore_name="gpu_core_clocks"
+             description="The total number of GPU core clocks elapsed during the measurement."
+             data_type="uint64"
+             units="cycles"
+             semantic_type="event"
+             equation="GPU_CLOCK 0 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="AVG GPU Core Frequency"
+             symbol_name="AvgGpuCoreFrequency"
+             underscore_name="avg_gpu_core_frequency"
+             description="Average GPU Core Frequency in the measurement."
+             data_type="uint64"
+             max_equation="$GpuMaxFrequency"
+             units="hz"
+             semantic_type="event"
+             equation="$GpuCoreClocks 1000000000 UMUL $GpuTime UDIV"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="TestCounter0"
+             symbol_name="Counter0"
+             underscore_name="counter0"
+             description="HW test counter 0. Factor: 0.0"
+             data_type="uint64"
+             units="events"
+             semantic_type="event"
+             equation="B 0 READ"
+             mdapi_group="Test"
+             mdapi_usage_flags="Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="TestCounter1"
+             symbol_name="Counter1"
+             underscore_name="counter1"
+             description="HW test counter 1. Factor: 1.0"
+             data_type="uint64"
+             units="events"
+             semantic_type="event"
+             equation="B 1 READ"
+             mdapi_group="Test"
+             mdapi_usage_flags="Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="TestCounter2"
+             symbol_name="Counter2"
+             underscore_name="counter2"
+             description="HW test counter 2. Factor: 1.0"
+             data_type="uint64"
+             units="events"
+             semantic_type="event"
+             equation="B 2 READ"
+             mdapi_group="Test"
+             mdapi_usage_flags="Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="TestCounter3"
+             symbol_name="Counter3"
+             underscore_name="counter3"
+             description="HW test counter 3. Factor: 0.5"
+             data_type="uint64"
+             units="events"
+             semantic_type="event"
+             equation="B 3 READ"
+             mdapi_group="Test"
+             mdapi_usage_flags="Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="TestCounter4"
+             symbol_name="Counter4"
+             underscore_name="counter4"
+             description="HW test counter 4. Factor: 0.3333"
+             data_type="uint64"
+             units="events"
+             semantic_type="event"
+             equation="B 4 READ"
+             mdapi_group="Test"
+             mdapi_usage_flags="Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="TestCounter5"
+             symbol_name="Counter5"
+             underscore_name="counter5"
+             description="HW test counter 5. Factor: 0.3333"
+             data_type="uint64"
+             units="events"
+             semantic_type="event"
+             equation="B 5 READ"
+             mdapi_group="Test"
+             mdapi_usage_flags="Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="TestCounter6"
+             symbol_name="Counter6"
+             underscore_name="counter6"
+             description="HW test counter 6. Factor: 0.16666"
+             data_type="uint64"
+             units="events"
+             semantic_type="event"
+             equation="B 6 READ"
+             mdapi_group="Test"
+             mdapi_usage_flags="Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="TestCounter8"
+             symbol_name="Counter8"
+             underscore_name="counter8"
+             description="TestCounter8"
+             data_type="uint64"
+             units="events"
+             semantic_type="event"
+             equation="C 0 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="VIDEO_DECODE_BOX0_WRITE_REQUEST_VISA"
+             symbol_name="VIDEO_DECODE_BOX0_WRITE_REQUEST_VISA"
+             underscore_name="video_decode_box0_write_request_visa"
+             description="Number of VDBOX0 write requests"
+             data_type="uint64"
+             units="messages"
+             semantic_type="event"
+             equation="C 1 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="VIDEO_DECODE_BOX0_READ_REQUEST_VISA"
+             symbol_name="VIDEO_DECODE_BOX0_READ_REQUEST_VISA"
+             underscore_name="video_decode_box0_read_request_visa"
+             description="Number of VDBOX0 read requests"
+             data_type="uint64"
+             units="messages"
+             semantic_type="event"
+             equation="B 7 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="VIDEO_DECODE_BOX0_READ_REQUEST_MPEC"
+             symbol_name="VIDEO_DECODE_BOX0_READ_REQUEST_MPEC"
+             underscore_name="video_decode_box0_read_request_mpec"
+             description="Number of VDBOX0 read requests"
+             data_type="uint64"
+             units="messages"
+             semantic_type="event"
+             equation="A 0 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="VIDEO_DECODE_BOX0_WRITE_REQUEST_MPEC"
+             symbol_name="VIDEO_DECODE_BOX0_WRITE_REQUEST_MPEC"
+             underscore_name="video_decode_box0_write_request_mpec"
+             description="Number of VDBOX0 write requests"
+             data_type="uint64"
+             units="messages"
+             semantic_type="event"
+             equation="A 1 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <register_config type="NOA">
+        <register type="NOA" address="0x0038D114" value="0x00000003" />
+        <register type="NOA" address="0x0038D100" value="0x00000DE0" />
+        <register type="NOA" address="0x0038D104" value="0x00000001" />
+        <register type="NOA" address="0x0038D100" value="0x00000DE2" />
+        <register type="NOA" address="0x0038D104" value="0x00000001" />
+        <register type="NOA" address="0x0038D100" value="0x000001C0" />
+        <register type="NOA" address="0x0038D104" value="0x00000001" />
+        <register type="NOA" address="0x0038D100" value="0x000001C1" />
+        <register type="NOA" address="0x0038D104" value="0x00000809" />
+        <register type="NOA" address="0x0038D100" value="0x000001C3" />
+        <register type="NOA" address="0x0038D104" value="0x00800400" />
+        <register type="NOA" address="0x0038D100" value="0x000001C4" />
+        <register type="NOA" address="0x0038D104" value="0x00000000" />
+        <register type="NOA" address="0x0038D100" value="0x000001C5" />
+        <register type="NOA" address="0x0038D104" value="0x00000000" />
+        <register type="NOA" address="0x0038D100" value="0x00000360" />
+        <register type="NOA" address="0x0038D104" value="0x00000001" />
+        <register type="NOA" address="0x0038D100" value="0x00000361" />
+        <register type="NOA" address="0x0038D104" value="0x00001819" />
+        <register type="NOA" address="0x0038D100" value="0x00000362" />
+        <register type="NOA" address="0x0038D104" value="0x00001C1D" />
+        <register type="NOA" address="0x0038D100" value="0x00000363" />
+        <register type="NOA" address="0x0038D104" value="0x02402006" />
+        <register type="NOA" address="0x0038D100" value="0x00000364" />
+        <register type="NOA" address="0x0038D104" value="0x00000000" />
+        <register type="NOA" address="0x0038D100" value="0x00000365" />
+        <register type="NOA" address="0x0038D104" value="0x00000000" />
+        <register type="NOA" address="0x0038D100" value="0x000003A0" />
+        <register type="NOA" address="0x0038D104" value="0x00000001" />
+        <register type="NOA" address="0x0038D100" value="0x000003A1" />
+        <register type="NOA" address="0x0038D104" value="0x00001011" />
+        <register type="NOA" address="0x0038D100" value="0x000003BB" />
+        <register type="NOA" address="0x0038D104" value="0x00000001" />
+        <register type="NOA" address="0x0038D100" value="0x000003BC" />
+        <register type="NOA" address="0x0038D104" value="0x00000001" />
+        <register type="NOA" address="0x0038D100" value="0x000004E0" />
+        <register type="NOA" address="0x0038D104" value="0x00000001" />
+        <register type="NOA" address="0x0038D100" value="0x000004E1" />
+        <register type="NOA" address="0x0038D104" value="0x00001819" />
+        <register type="NOA" address="0x0038D100" value="0x000004E3" />
+        <register type="NOA" address="0x0038D104" value="0x00000400" />
+        <register type="NOA" address="0x0038D100" value="0x000004E4" />
+        <register type="NOA" address="0x0038D104" value="0x00000000" />
+        <register type="NOA" address="0x0038D100" value="0x000004E5" />
+        <register type="NOA" address="0x0038D104" value="0x00000000" />
+        <register type="NOA" address="0x0038D100" value="0x00000420" />
+        <register type="NOA" address="0x0038D104" value="0x00000001" />
+        <register type="NOA" address="0x0038D100" value="0x00000421" />
+        <register type="NOA" address="0x0038D104" value="0x00001A1B" />
+        <register type="NOA" address="0x0038D100" value="0x00000423" />
+        <register type="NOA" address="0x0038D104" value="0x00000400" />
+        <register type="NOA" address="0x0038D100" value="0x00000424" />
+        <register type="NOA" address="0x0038D104" value="0x00000000" />
+        <register type="NOA" address="0x0038D100" value="0x00000425" />
+        <register type="NOA" address="0x0038D104" value="0x00000000" />
+        <register type="NOA" address="0x0038D100" value="0x00000540" />
+        <register type="NOA" address="0x0038D104" value="0x00000001" />
+        <register type="NOA" address="0x0038D100" value="0x00000541" />
+        <register type="NOA" address="0x0038D104" value="0x00001415" />
+        <register type="NOA" address="0x0038D100" value="0x00000543" />
+        <register type="NOA" address="0x0038D104" value="0x00000400" />
+        <register type="NOA" address="0x0038D100" value="0x00000544" />
+        <register type="NOA" address="0x0038D104" value="0x00000000" />
+        <register type="NOA" address="0x0038D100" value="0x00000545" />
+        <register type="NOA" address="0x0038D104" value="0x00000000" />
+        <register type="NOA" address="0x0038D100" value="0x00000660" />
+        <register type="NOA" address="0x0038D104" value="0x00000001" />
+        <register type="NOA" address="0x0038D100" value="0x00000661" />
+        <register type="NOA" address="0x0038D104" value="0x00000001" />
+        <register type="NOA" address="0x0038D100" value="0x00000663" />
+        <register type="NOA" address="0x0038D104" value="0x00000C02" />
+        <register type="NOA" address="0x0038D100" value="0x00000664" />
+        <register type="NOA" address="0x0038D104" value="0x00000000" />
+        <register type="NOA" address="0x0038D100" value="0x00000665" />
+        <register type="NOA" address="0x0038D104" value="0x00000000" />
+        <register type="NOA" address="0x0038D100" value="0x00000669" />
+        <register type="NOA" address="0x0038D104" value="0x00000001" />
+        <register type="NOA" address="0x0038D100" value="0x0000066A" />
+        <register type="NOA" address="0x0038D104" value="0x00000015" />
+        <register type="NOA" address="0x0038D114" value="0x0000000B" />
+    </register_config>
+    <register_config type="OA">
+        <register type="OA" address="0x00393200" value="0x00000201" />
+        <register type="OA" address="0x00393204" value="0x00000000" />
+        <register type="OA" address="0x00393208" value="0x00000202" />
+        <register type="OA" address="0x0039320C" value="0x00000000" />
+        <register type="OA" address="0x00393000" value="0x00000000" />
+        <register type="OA" address="0x00393004" value="0xF0800000" />
+        <register type="OA" address="0x00393010" value="0x00000000" />
+        <register type="OA" address="0x00393014" value="0xF0800000" />
+        <register type="OA" address="0x00393020" value="0x00000000" />
+        <register type="OA" address="0x00393040" value="0x00000004" />
+        <register type="OA" address="0x00393044" value="0x0000FFFF" />
+        <register type="OA" address="0x00393048" value="0x00000003" />
+        <register type="OA" address="0x0039304C" value="0x0000FFFF" />
+        <register type="OA" address="0x00393050" value="0x00000007" />
+        <register type="OA" address="0x00393054" value="0x0000FFFF" />
+        <register type="OA" address="0x00393058" value="0x00100002" />
+        <register type="OA" address="0x0039305C" value="0x0000FFF7" />
+        <register type="OA" address="0x00393060" value="0x00100002" />
+        <register type="OA" address="0x00393064" value="0x0000FFCF" />
+        <register type="OA" address="0x00393068" value="0x00100082" />
+        <register type="OA" address="0x0039306C" value="0x0000FFEF" />
+        <register type="OA" address="0x00393070" value="0x001000C2" />
+        <register type="OA" address="0x00393074" value="0x0000FFE7" />
+        <register type="OA" address="0x00393078" value="0x00002002" />
+        <register type="OA" address="0x0039307C" value="0x0000F9FF" />
+        <register type="OA" address="0x00393034" value="0x00000000" />
+    </register_config>
+  </set>
+
 </metrics>
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 22/31] lib/perf: Update MTL GT3 metrics for OAM
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
                   ` (20 preceding siblings ...)
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 21/31] lib/perf: Update MTL GT2 metrics for OAM Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-03-13 16:15   ` Kamil Konieczny
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 23/31] i915/perf: Add support for engine specific metrics Umesh Nerlige Ramappa
                   ` (10 subsequent siblings)
  32 siblings, 1 reply; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Add OAM metrics configurations and update MTL GT3 metrics.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 lib/i915/perf-configs/guids.xml     |   23 +-
 lib/i915/perf-configs/oa-mtlgt3.xml | 1328 ++++++++++++++++++++++-----
 2 files changed, 1133 insertions(+), 218 deletions(-)

diff --git a/lib/i915/perf-configs/guids.xml b/lib/i915/perf-configs/guids.xml
index 0b96aa91..510450f8 100644
--- a/lib/i915/perf-configs/guids.xml
+++ b/lib/i915/perf-configs/guids.xml
@@ -2507,12 +2507,12 @@
     <guid config_hash="21fd6477790dc8803dd6331b8c41dd24" mdapi_config_hash="48c076d960ec7e094bc846058a20264f" id="9604dfeb-2724-459c-a25b-5e5e06d93fd8" chipset="mtlgt3" name="TDL3" />
     <guid config_hash="95b5a166dff16d27293d7d657c146c20" mdapi_config_hash="742195ae50b801b9c5d680a5a9558cb0" id="b5333a47-add0-46a5-82d9-e62dcee14e81" chipset="mtlgt3" name="TDL4" />
     <guid config_hash="269711b73f95981cabbcdee5a96a9ccb" mdapi_config_hash="c4289990e5c8cbd4918e9c2c333f251c" id="7272a7b8-6df2-4180-a95f-2ef7ad4412cc" chipset="mtlgt3" name="TestOa" />
-    <guid config_hash="d439e67a55ee3ca7a70a35714c53bb52" mdapi_config_hash="8247df78555a4b792c33f0efa550952f" id="682c3520-dffc-4a76-8e17-1d9effc01a1a" chipset="mtlgt3" name="Ext1" />
+    <guid config_hash="6d1cd0ed097d034869eb468b43dd879a" mdapi_config_hash="d6e43578c93c9c1ba32a063e36fa10cc" id="682c3520-dffc-4a76-8e17-1d9effc01a1a" chipset="mtlgt3" name="Ext1" />
     <guid config_hash="e06924155d4acde10c45e89e6c65868d" mdapi_config_hash="eb6499f1a47dad7eae75cdb85b0bef2a" id="b24b7052-70a1-4ef7-b61d-7ee4d7e159ab" chipset="mtlgt3" name="Ext3" />
     <guid config_hash="fc06c18d17085caa964777920a316cf4" mdapi_config_hash="e80db872fee6810d6f47a683a4a1c9ce" id="205ab9ab-56fd-4fdc-b3b3-91dc57be0fd3" chipset="mtlgt3" name="Ext4" />
     <guid config_hash="939e13be9335004538a9e1d6944b4836" mdapi_config_hash="71a1bb2c5722c63fcf7176f6c61975a4" id="26cb7ee1-a26d-410a-9283-e07d6ced5fce" chipset="mtlgt3" name="Ext5" />
     <guid config_hash="6e82d13da5cd70235fefab3b43e9e4c9" mdapi_config_hash="561b960bd69e9823d50cfae86614fabd" id="e62c9cd7-ada7-487d-87aa-b1ad4ab9a2c5" chipset="mtlgt3" name="Ext6" />
-    <guid config_hash="070c9de0d068a9aacf8674c062374e05" mdapi_config_hash="1293975723eab282470ebaa4c97faa70" id="714e9d80-e4e3-40e6-9e79-2ca6d1d0a5a5" chipset="mtlgt3" name="Ext7" />
+    <guid config_hash="baa81cf9fb16c0a5e738fc023f371350" mdapi_config_hash="614db897903581ee199202e79c94ca6c" id="714e9d80-e4e3-40e6-9e79-2ca6d1d0a5a5" chipset="mtlgt3" name="Ext7" />
     <guid config_hash="5660b1f0e0ba49d22c1eaef513c8b58a" mdapi_config_hash="31ab651e5dc06042c8d2248f65a75d73" id="30499dfb-3977-4808-a34c-93e7b50e0454" chipset="mtlgt3" name="Ext8" />
     <guid config_hash="b3b01ef016a1c55d9d932400511dd7cc" mdapi_config_hash="b4c689c289687c4df0e2523faf70cc4f" id="417618f2-7a87-4745-bccd-6ba14d17bfa4" chipset="mtlgt3" name="Ext9" />
     <guid config_hash="97c49cf8f71f5bf86035d3bf6cb690c9" mdapi_config_hash="e25449627d90b790133b98f4a92657e1" id="443c32c7-e5e4-43da-b4f2-77efe45a60ed" chipset="mtlgt3" name="Ext10" />
@@ -2698,14 +2698,14 @@
     <guid config_hash="25302806331fba9bc9f3450e0e642e96" mdapi_config_hash="d5a07d5812d1d12b522960872fd28137" id="f6e20d5b-52be-4035-85c2-818a690bf601" chipset="mtlgt3" name="Ext501" />
     <guid config_hash="b206b0dc53133698a7ca18febc7e320a" mdapi_config_hash="80d90f8d67609d99b1b85717ee3f9cd2" id="d09cedef-e3e3-41b5-8ce8-ddc3933339ca" chipset="mtlgt3" name="Ext502" />
     <guid config_hash="2c857922a97a5830183ca8b8efb72008" mdapi_config_hash="dbc6d492e27a8a6cfa2063ba2ca11edf" id="96067625-3663-4f9a-8b26-74e47ab1aff4" chipset="mtlgt3" name="Ext503" />
-    <guid config_hash="c77afaf69426cacf0d39b737afa6cbac" mdapi_config_hash="09e22d191f45567e982863a37d9c382d" id="2bc8b90d-997c-4d62-b101-fe1aa74036e5" chipset="mtlgt3" name="Ext508" />
-    <guid config_hash="530cf98a637fc90c254c75c3bd9dedfb" mdapi_config_hash="25f6d07bddccffeaab56aadb24ae6be5" id="79252877-1dcd-4700-b4bd-58bce74b796d" chipset="mtlgt3" name="Ext509" />
-    <guid config_hash="e8ab95f7c69adc8f259904c1de459856" mdapi_config_hash="2c1390b1ce682645b58f2396701c0d4b" id="68ac1770-b062-48cd-94f4-44c6ae16867a" chipset="mtlgt3" name="Ext510" />
-    <guid config_hash="a15516d4ed73424ae36e6d4d1b95a200" mdapi_config_hash="59c1035f145bb7e00fb0b0d622feace5" id="443b8a84-7e77-4e9f-8a2a-56743897cba3" chipset="mtlgt3" name="Ext511" />
-    <guid config_hash="ae9653c036a3dc324743f6ccac40eb92" mdapi_config_hash="285cd0a99124ba6a244a47577c34e3eb" id="68581669-8e57-4ff9-bb70-71a99f8454c8" chipset="mtlgt3" name="Ext512" />
-    <guid config_hash="a1122c9120f4a345403dcb9be51afc13" mdapi_config_hash="26f2e86d15758105a9406c379bc83b80" id="1b49d31f-4d7c-4dd7-ad31-030ccb59649e" chipset="mtlgt3" name="Ext513" />
-    <guid config_hash="54126b539d950f606053619014452c83" mdapi_config_hash="06e7700eb4e4ba08285b4fc0316db6ad" id="1b0ce68b-c301-4d05-8659-85fad0825057" chipset="mtlgt3" name="Ext514" />
-    <guid config_hash="8667c4542c2ece365f0439a3659c4267" mdapi_config_hash="c5d806b0e6a6c7be6d1ad75a69a2527b" id="fde32e67-1a87-4946-bf96-c1ff68105749" chipset="mtlgt3" name="Ext515" />
+    <guid config_hash="b89becafa0012d0119ce4251d4266b2c" mdapi_config_hash="83261cb3061414efb24e04580990df45" id="2bc8b90d-997c-4d62-b101-fe1aa74036e5" chipset="mtlgt3" name="Ext508" />
+    <guid config_hash="aec3fc91255b37e4f7a9f5019f5a01e0" mdapi_config_hash="993dc808e586668f20473bfc21356dae" id="79252877-1dcd-4700-b4bd-58bce74b796d" chipset="mtlgt3" name="Ext509" />
+    <guid config_hash="059b5bdee62d6b61c00848beeb2751e2" mdapi_config_hash="624661deaf5382d8c447936b0760f2ac" id="68ac1770-b062-48cd-94f4-44c6ae16867a" chipset="mtlgt3" name="Ext510" />
+    <guid config_hash="2c302efab54ba8133e020e08c44f19e5" mdapi_config_hash="0d150ac4cdc7a15a37706b2499af5490" id="443b8a84-7e77-4e9f-8a2a-56743897cba3" chipset="mtlgt3" name="Ext511" />
+    <guid config_hash="d01972b09245455a8a53df3ee5b0de48" mdapi_config_hash="1b6e276e805087093a4002d1a2fc59d4" id="68581669-8e57-4ff9-bb70-71a99f8454c8" chipset="mtlgt3" name="Ext512" />
+    <guid config_hash="980fc02bcda49523aae80255d30dd8d9" mdapi_config_hash="9083f055e06214711443b1aa92209a51" id="1b49d31f-4d7c-4dd7-ad31-030ccb59649e" chipset="mtlgt3" name="Ext513" />
+    <guid config_hash="d4c01604867190e57eb85b43ea35b19d" mdapi_config_hash="f0cc4cfd7a9d70f2d1c3464dedad851d" id="1b0ce68b-c301-4d05-8659-85fad0825057" chipset="mtlgt3" name="Ext514" />
+    <guid config_hash="019a6367c845719ff7381414a99781ff" mdapi_config_hash="2b95a32768f0449b837fb9915ed514d9" id="fde32e67-1a87-4946-bf96-c1ff68105749" chipset="mtlgt3" name="Ext515" />
     <guid config_hash="5ad38daa6cb00090cfb6658a43d30d06" mdapi_config_hash="ba325785aeb3c90926c9955686094006" id="bf950c5b-7250-47f4-aa59-d97b22db02ff" chipset="mtlgt3" name="Ext516" />
     <guid config_hash="5093d322d1b278f2e323e259408c7b30" mdapi_config_hash="2e6f2f19cb9752141887cbe4bd057819" id="9027ff05-4348-4061-a434-0befaba7c379" chipset="mtlgt3" name="Ext517" />
     <guid config_hash="9d968609fbc2e37f71dca7e2b5eddea6" mdapi_config_hash="b2cbdc9610f599b7c65f6100260049f0" id="6ad0dee9-17bf-4b54-8b70-e30afcc8710b" chipset="mtlgt3" name="Ext518" />
@@ -2743,4 +2743,7 @@
     <guid config_hash="482cebdeeb78bb56e67b42d24644c8db" mdapi_config_hash="11e33e01a371bf15e59b9786f4fe1050" id="de84260e-32ac-4863-ba4f-998a685174a2" chipset="mtlgt2" name="MediaSet1" />
     <guid config_hash="5bfab887a79b99cf34a606dcca5f4f8a" mdapi_config_hash="1c238e39e5c73eefd870cef2fb7a18af" id="b9d5c6d5-39f2-4069-b343-e7a886353b89" chipset="mtlgt2" name="MediaSet2" />
     <guid config_hash="44bcb438bea8b46b57779739bebfbd69" mdapi_config_hash="fbbd97d1f3b60c17eae57bbd3c42e7fe" id="a1700053-56bc-4b7e-87b9-e29b07a08f62" chipset="mtlgt2" name="TestOam" />
+    <guid config_hash="482cebdeeb78bb56e67b42d24644c8db" mdapi_config_hash="11e33e01a371bf15e59b9786f4fe1050" id="4d9b2817-19b9-4461-a54b-dc9fdb7d69cb" chipset="mtlgt3" name="MediaSet1" />
+    <guid config_hash="5bfab887a79b99cf34a606dcca5f4f8a" mdapi_config_hash="1c238e39e5c73eefd870cef2fb7a18af" id="651a6694-0ac1-4bd5-a4a1-94bcf479d4f4" chipset="mtlgt3" name="MediaSet2" />
+    <guid config_hash="44bcb438bea8b46b57779739bebfbd69" mdapi_config_hash="fbbd97d1f3b60c17eae57bbd3c42e7fe" id="bac01106-5869-489c-a306-67303a434173" chipset="mtlgt3" name="TestOam" />
 </guids>
diff --git a/lib/i915/perf-configs/oa-mtlgt3.xml b/lib/i915/perf-configs/oa-mtlgt3.xml
index 400e1ff4..5e173865 100644
--- a/lib/i915/perf-configs/oa-mtlgt3.xml
+++ b/lib/i915/perf-configs/oa-mtlgt3.xml
@@ -1,10 +1,11 @@
 <?xml version="1.0"?>
-<metrics version="1669276497" merge_md5="">
+<metrics version="1675300133" merge_md5="">
   <set name="Render Metrics Basic"
        chipset="MTLGT3"
        symbol_name="RenderBasic"
        underscore_name="render_basic"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="1124d1b6-6182-4b5a-950b-27b38ef7c996"
        >
     <counter name="GPU Time Elapsed"
@@ -579,6 +580,7 @@
        symbol_name="ComputeBasic"
        underscore_name="compute_basic"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="522743d7-4e01-461a-8600-7904e8ddc80c"
        >
     <counter name="GPU Time Elapsed"
@@ -1132,6 +1134,7 @@
        symbol_name="AsyncCompute"
        underscore_name="async_compute"
        mdapi_supported_apis="OGL OCL MEDIA IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="d9edd254-60e8-4ce0-82b1-7b3de3bc79a6"
        >
     <counter name="GPU Time Elapsed"
@@ -1474,6 +1477,7 @@
        symbol_name="XveActivity"
        underscore_name="xve_activity"
        mdapi_supported_apis="OGL OGL4 OCL MEDIA IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="703a9693-1444-4e7c-a235-1c4d6ee01943"
        >
     <counter name="GPU Time Elapsed"
@@ -1772,6 +1776,7 @@
        symbol_name="GpuBusyness"
        underscore_name="gpu_busyness"
        mdapi_supported_apis="VK OGL OCL MEDIA IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="edae72d3-bb06-47af-87b4-7585274c6076"
        >
     <counter name="GPU Time Elapsed"
@@ -2030,6 +2035,7 @@
        symbol_name="HDCAndSF1"
        underscore_name="hdc_and_sf1"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="e1a408d6-aece-4bde-8bbd-1c7fbfff02cf"
        >
     <counter name="GPU Time Elapsed"
@@ -2233,6 +2239,7 @@
        symbol_name="HDCAndSF2"
        underscore_name="hdc_and_sf2"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="374e8aa3-09df-4d69-ad32-3133f6ad3c86"
        >
     <counter name="GPU Time Elapsed"
@@ -2438,6 +2445,7 @@
        symbol_name="L3"
        underscore_name="l3"
        mdapi_supported_apis="VK OGL OCL MEDIA IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="580d5311-4e9d-4210-b419-37259ffcd3f2"
        >
     <counter name="GPU Time Elapsed"
@@ -2816,6 +2824,7 @@
        symbol_name="RasterizerAndPixelBackend1"
        underscore_name="rasterizer_and_pixel_backend1"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="4286bd8f-f9db-45e5-aa37-51dd7067f751"
        >
     <counter name="GPU Time Elapsed"
@@ -3060,6 +3069,7 @@
        symbol_name="RasterizerAndPixelBackend2"
        underscore_name="rasterizer_and_pixel_backend2"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="ac90f98d-14a6-4dcc-b5d7-31ee157bb6e2"
        >
     <counter name="GPU Time Elapsed"
@@ -3261,6 +3271,7 @@
        symbol_name="RenderPipeProfile1"
        underscore_name="render_pipe_profile1"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="f15b97f6-eb1b-43a8-839c-7bd956c143c4"
        >
     <counter name="GPU Time Elapsed"
@@ -3655,6 +3666,7 @@
        symbol_name="RenderPipeProfile2"
        underscore_name="render_pipe_profile2"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="86b9199d-8a44-4694-bbde-6fd35bada236"
        >
     <counter name="GPU Time Elapsed"
@@ -4049,6 +4061,7 @@
        symbol_name="Sampler"
        underscore_name="sampler"
        mdapi_supported_apis="VK OGL OCL MEDIA IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="ae70a69c-341d-492a-b703-afa08a3497ba"
        >
     <counter name="GPU Time Elapsed"
@@ -4482,6 +4495,7 @@
        symbol_name="TDL1"
        underscore_name="tdl1"
        mdapi_supported_apis="VK OGL OCL MEDIA IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="cf27081a-d750-4c9d-8a19-154f976992ee"
        >
     <counter name="GPU Time Elapsed"
@@ -4833,6 +4847,7 @@
        symbol_name="TDL2"
        underscore_name="tdl2"
        mdapi_supported_apis="VK OGL OCL MEDIA IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="fa292653-8b18-448b-b57e-8e8ff92fac11"
        >
     <counter name="GPU Time Elapsed"
@@ -5179,6 +5194,7 @@
        symbol_name="TDL3"
        underscore_name="tdl3"
        mdapi_supported_apis="VK OGL OCL MEDIA IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="9604dfeb-2724-459c-a25b-5e5e06d93fd8"
        >
     <counter name="GPU Time Elapsed"
@@ -5532,6 +5548,7 @@
        symbol_name="TDL4"
        underscore_name="tdl4"
        mdapi_supported_apis="VK OGL OCL MEDIA IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="b5333a47-add0-46a5-82d9-e62dcee14e81"
        >
     <counter name="GPU Time Elapsed"
@@ -5880,6 +5897,7 @@
        symbol_name="TestOa"
        underscore_name="test_oa"
        mdapi_supported_apis="VK OGL OCL MEDIA IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="7272a7b8-6df2-4180-a95f-2ef7ad4412cc"
        >
     <counter name="GPU Time Elapsed"
@@ -6104,6 +6122,7 @@
        symbol_name="Ext1"
        underscore_name="ext1"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="682c3520-dffc-4a76-8e17-1d9effc01a1a"
        >
     <counter name="GPU Time Elapsed"
@@ -6153,7 +6172,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="C 7 READ 128 UMUL"
+             equation="B 2 READ 128 UMUL"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
              mdapi_supported_apis=""
@@ -6166,7 +6185,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="C 6 READ 128 UMUL"
+             equation="B 3 READ 128 UMUL"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
              mdapi_supported_apis=""
@@ -6179,7 +6198,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="C 5 READ"
+             equation="B 4 READ"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
              mdapi_supported_apis=""
@@ -6192,7 +6211,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="C 4 READ"
+             equation="B 5 READ"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
              mdapi_supported_apis=""
@@ -6218,7 +6237,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="C 3 READ C 2 READ UADD"
+             equation="B 6 READ B 7 READ UADD"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
              mdapi_supported_apis=""
@@ -6231,7 +6250,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="C 1 READ C 0 READ UADD"
+             equation="C 0 READ C 1 READ UADD"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
              mdapi_supported_apis=""
@@ -6257,7 +6276,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="B 7 READ 128 UMUL"
+             equation="C 2 READ 128 UMUL"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
              mdapi_supported_apis=""
@@ -6270,7 +6289,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="B 6 READ 128 UMUL"
+             equation="C 3 READ 128 UMUL"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
              mdapi_supported_apis=""
@@ -6284,7 +6303,7 @@
              max_equation="100"
              units="percent"
              semantic_type="duration"
-             equation="B 5 READ 100 UMUL $GpuCoreClocks FDIV"
+             equation="C 4 READ 100 UMUL $GpuCoreClocks FDIV"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
              mdapi_supported_apis=""
@@ -6298,7 +6317,7 @@
              max_equation="100"
              units="percent"
              semantic_type="duration"
-             equation="B 4 READ 100 UMUL $GpuCoreClocks FDIV"
+             equation="C 5 READ 100 UMUL $GpuCoreClocks FDIV"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
              mdapi_supported_apis=""
@@ -6364,7 +6383,7 @@
              max_equation="100"
              units="percent"
              semantic_type="duration"
-             equation="B 2 READ 100 UMUL $GpuCoreClocks FDIV"
+             equation="C 7 READ 100 UMUL $GpuCoreClocks FDIV"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
              mdapi_supported_apis=""
@@ -6378,7 +6397,7 @@
              max_equation="100"
              units="percent"
              semantic_type="duration"
-             equation="B 3 READ 100 UMUL $GpuCoreClocks FDIV"
+             equation="C 6 READ 100 UMUL $GpuCoreClocks FDIV"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
              mdapi_supported_apis=""
@@ -6387,36 +6406,36 @@
     <register_config type="NOA">
         <register type="NOA" address="0x00000D04" value="0x00000200" />
         <register type="NOA" address="0x00009884" value="0x00000000" />
-        <register type="NOA" address="0x00009888" value="0x15010007" />
-        <register type="NOA" address="0x00009888" value="0x17053400" />
-        <register type="NOA" address="0x00009888" value="0x15210007" />
-        <register type="NOA" address="0x00009888" value="0x17253400" />
-        <register type="NOA" address="0x00009888" value="0x0007BBE0" />
-        <register type="NOA" address="0x00009888" value="0x0207BBAF" />
+        <register type="NOA" address="0x00009888" value="0x150100E0" />
+        <register type="NOA" address="0x00009888" value="0x17051000" />
+        <register type="NOA" address="0x00009888" value="0x152100E0" />
+        <register type="NOA" address="0x00009888" value="0x17251000" />
+        <register type="NOA" address="0x00009888" value="0x0007AEE0" />
+        <register type="NOA" address="0x00009888" value="0x0207BEEF" />
         <register type="NOA" address="0x00009888" value="0x0001AAA0" />
         <register type="NOA" address="0x00009888" value="0x0201AAAA" />
         <register type="NOA" address="0x00009888" value="0x03010004" />
-        <register type="NOA" address="0x00009888" value="0x09010180" />
-        <register type="NOA" address="0x00009888" value="0x0B010380" />
-        <register type="NOA" address="0x00009888" value="0x0F010147" />
-        <register type="NOA" address="0x00009888" value="0x110103C0" />
-        <register type="NOA" address="0x00009888" value="0x13010340" />
-        <register type="NOA" address="0x00009888" value="0x01010004" />
+        <register type="NOA" address="0x00009888" value="0x07010005" />
+        <register type="NOA" address="0x00009888" value="0x09010007" />
+        <register type="NOA" address="0x00009888" value="0x0B0103CD" />
+        <register type="NOA" address="0x00009888" value="0x0F010006" />
+        <register type="NOA" address="0x00009888" value="0x1101000E" />
+        <register type="NOA" address="0x00009888" value="0x01018000" />
         <register type="NOA" address="0x00009888" value="0x03050004" />
-        <register type="NOA" address="0x00009888" value="0x07050080" />
+        <register type="NOA" address="0x00009888" value="0x15050005" />
         <register type="NOA" address="0x00009888" value="0x01050000" />
         <register type="NOA" address="0x00009888" value="0x03210004" />
-        <register type="NOA" address="0x00009888" value="0x09210006" />
-        <register type="NOA" address="0x00009888" value="0x0B21000E" />
-        <register type="NOA" address="0x00009888" value="0x0D210147" />
-        <register type="NOA" address="0x00009888" value="0x1121000F" />
-        <register type="NOA" address="0x00009888" value="0x1321000D" />
-        <register type="NOA" address="0x00009888" value="0x01210008" />
+        <register type="NOA" address="0x00009888" value="0x07210140" />
+        <register type="NOA" address="0x00009888" value="0x092101C0" />
+        <register type="NOA" address="0x00009888" value="0x0D2103CD" />
+        <register type="NOA" address="0x00009888" value="0x0F210180" />
+        <register type="NOA" address="0x00009888" value="0x11210380" />
+        <register type="NOA" address="0x00009888" value="0x01214000" />
         <register type="NOA" address="0x00009888" value="0x03250004" />
-        <register type="NOA" address="0x00009888" value="0x09250002" />
+        <register type="NOA" address="0x00009888" value="0x13250140" />
         <register type="NOA" address="0x00009888" value="0x01250000" />
         <register type="NOA" address="0x00009888" value="0x56010000" />
-        <register type="NOA" address="0x00009888" value="0x58010000" />
+        <register type="NOA" address="0x00009888" value="0x58010201" />
         <register type="NOA" address="0x00009888" value="0x5A010010" />
         <register type="NOA" address="0x00009888" value="0x5C010201" />
         <register type="NOA" address="0x00009888" value="0x5E010010" />
@@ -6425,7 +6444,7 @@
         <register type="NOA" address="0x00009888" value="0x4E010010" />
         <register type="NOA" address="0x00009888" value="0x50010201" />
         <register type="NOA" address="0x00009888" value="0x52010010" />
-        <register type="NOA" address="0x00009888" value="0x54010201" />
+        <register type="NOA" address="0x00009888" value="0x54010000" />
         <register type="NOA" address="0x00009884" value="0x00000000" />
         <register type="NOA" address="0x00009888" value="0x72010002" />
     </register_config>
@@ -6446,6 +6465,7 @@
        symbol_name="Ext3"
        underscore_name="ext3"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="b24b7052-70a1-4ef7-b61d-7ee4d7e159ab"
        >
     <counter name="GPU Time Elapsed"
@@ -6692,6 +6712,7 @@
        symbol_name="Ext4"
        underscore_name="ext4"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="205ab9ab-56fd-4fdc-b3b3-91dc57be0fd3"
        >
     <counter name="GPU Time Elapsed"
@@ -7049,6 +7070,7 @@
        symbol_name="Ext5"
        underscore_name="ext5"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="26cb7ee1-a26d-410a-9283-e07d6ced5fce"
        >
     <counter name="GPU Time Elapsed"
@@ -7401,6 +7423,7 @@
        symbol_name="Ext6"
        underscore_name="ext6"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="e62c9cd7-ada7-487d-87aa-b1ad4ab9a2c5"
        >
     <counter name="GPU Time Elapsed"
@@ -7824,6 +7847,7 @@
        symbol_name="Ext7"
        underscore_name="ext7"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="714e9d80-e4e3-40e6-9e79-2ca6d1d0a5a5"
        >
     <counter name="GPU Time Elapsed"
@@ -7873,7 +7897,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="C 7 READ"
+             equation="B 0 READ"
              availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
              mdapi_group="GTI/L3"
              mdapi_usage_flags="Frame Batch Draw"
@@ -7887,7 +7911,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="C 6 READ"
+             equation="B 1 READ"
              availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
              mdapi_group="GTI/L3"
              mdapi_usage_flags="Frame Batch Draw"
@@ -7901,7 +7925,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="C 5 READ"
+             equation="B 2 READ"
              availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
              mdapi_group="GTI/L3"
              mdapi_usage_flags="Frame Batch Draw"
@@ -7915,7 +7939,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="C 4 READ"
+             equation="B 3 READ"
              availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
              mdapi_group="GTI/L3"
              mdapi_usage_flags="Frame Batch Draw"
@@ -7929,7 +7953,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="C 3 READ"
+             equation="B 4 READ"
              availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
              mdapi_group="GTI/L3"
              mdapi_usage_flags="Frame Batch Draw"
@@ -7943,7 +7967,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="C 2 READ"
+             equation="B 5 READ"
              availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
              mdapi_group="GTI/L3"
              mdapi_usage_flags="Frame Batch Draw"
@@ -7957,7 +7981,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="C 1 READ"
+             equation="B 6 READ"
              availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
              mdapi_group="GTI/L3"
              mdapi_usage_flags="Frame Batch Draw"
@@ -7971,7 +7995,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="C 0 READ"
+             equation="B 7 READ"
              availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
              mdapi_group="GTI/L3"
              mdapi_usage_flags="Frame Batch Draw"
@@ -7985,7 +8009,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="B 7 READ"
+             equation="C 7 READ"
              availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
              mdapi_group="GTI/L3"
              mdapi_usage_flags="Frame Batch Draw"
@@ -7999,7 +8023,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="B 6 READ"
+             equation="C 6 READ"
              availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
              mdapi_group="GTI/L3"
              mdapi_usage_flags="Frame Batch Draw"
@@ -8013,7 +8037,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="B 5 READ"
+             equation="C 5 READ"
              availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
              mdapi_group="GTI/L3"
              mdapi_usage_flags="Frame Batch Draw"
@@ -8027,7 +8051,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="B 4 READ"
+             equation="C 4 READ"
              availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
              mdapi_group="GTI/L3"
              mdapi_usage_flags="Frame Batch Draw"
@@ -8041,7 +8065,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="B 3 READ"
+             equation="C 3 READ"
              availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
              mdapi_group="GTI/L3"
              mdapi_usage_flags="Frame Batch Draw"
@@ -8055,7 +8079,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="B 2 READ"
+             equation="C 2 READ"
              availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
              mdapi_group="GTI/L3"
              mdapi_usage_flags="Frame Batch Draw"
@@ -8069,7 +8093,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="B 1 READ"
+             equation="C 1 READ"
              availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
              mdapi_group="GTI/L3"
              mdapi_usage_flags="Frame Batch Draw"
@@ -8083,7 +8107,7 @@
              data_type="uint64"
              units="events"
              semantic_type="event"
-             equation="B 0 READ"
+             equation="C 0 READ"
              availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
              mdapi_group="GTI/L3"
              mdapi_usage_flags="Frame Batch Draw"
@@ -8094,9 +8118,9 @@
         <register type="NOA" address="0x00000D04" value="0x00000200" />
         <register type="NOA" address="0x00009884" value="0x00000008" />
         <register type="NOA" address="0x00009888" value="0x03010000" />
-        <register type="NOA" address="0x00009888" value="0x0B010040" />
+        <register type="NOA" address="0x00009888" value="0x0B010000" />
         <register type="NOA" address="0x00009888" value="0x03210000" />
-        <register type="NOA" address="0x00009888" value="0x0B210001" />
+        <register type="NOA" address="0x00009888" value="0x0B210000" />
         <register type="NOA" address="0x00009888" value="0x03410000" />
         <register type="NOA" address="0x00009888" value="0x0B410000" />
         <register type="NOA" address="0x00009888" value="0x03610000" />
@@ -8106,56 +8130,55 @@
         <register type="NOA" address="0x00009888" value="0x03A10000" />
         <register type="NOA" address="0x00009888" value="0x0BA10000" />
         <register type="NOA" address="0x00009888" value="0x03C10000" />
-        <register type="NOA" address="0x00009888" value="0x0BC10000" />
+        <register type="NOA" address="0x00009888" value="0x0BC10006" />
         <register type="NOA" address="0x00009888" value="0x03E10000" />
-        <register type="NOA" address="0x00009888" value="0x0BE10000" />
-        <register type="NOA" address="0x00009888" value="0x00025500" />
+        <register type="NOA" address="0x00009888" value="0x0BE10180" />
+        <register type="NOA" address="0x00009888" value="0x00020055" />
         <register type="NOA" address="0x00009888" value="0x02025500" />
-        <register type="NOA" address="0x00009888" value="0x00820055" />
+        <register type="NOA" address="0x00009888" value="0x00825500" />
         <register type="NOA" address="0x00009888" value="0x02820055" />
-        <register type="NOA" address="0x00009888" value="0x01010004" />
-        <register type="NOA" address="0x00009888" value="0x13010380" />
-        <register type="NOA" address="0x00009888" value="0x01210004" />
-        <register type="NOA" address="0x00009888" value="0x1321000E" />
-        <register type="NOA" address="0x00009888" value="0x01410004" />
-        <register type="NOA" address="0x00009888" value="0x09410040" />
-        <register type="NOA" address="0x00009888" value="0x11410380" />
-        <register type="NOA" address="0x00009888" value="0x01610004" />
-        <register type="NOA" address="0x00009888" value="0x09610001" />
-        <register type="NOA" address="0x00009888" value="0x1161000E" />
-        <register type="NOA" address="0x00009888" value="0x00015000" />
-        <register type="NOA" address="0x00009888" value="0x0201009C" />
+        <register type="NOA" address="0x00009888" value="0x01010040" />
+        <register type="NOA" address="0x00009888" value="0x05010006" />
+        <register type="NOA" address="0x00009888" value="0x13010200" />
+        <register type="NOA" address="0x00009888" value="0x01210040" />
+        <register type="NOA" address="0x00009888" value="0x05210180" />
+        <register type="NOA" address="0x00009888" value="0x13210008" />
+        <register type="NOA" address="0x00009888" value="0x01410040" />
+        <register type="NOA" address="0x00009888" value="0x07410006" />
+        <register type="NOA" address="0x00009888" value="0x11410200" />
+        <register type="NOA" address="0x00009888" value="0x01610040" />
+        <register type="NOA" address="0x00009888" value="0x07610180" />
+        <register type="NOA" address="0x00009888" value="0x11610008" />
+        <register type="NOA" address="0x00009888" value="0x00010B1A" />
         <register type="NOA" address="0x00009888" value="0x04013940" />
         <register type="NOA" address="0x00009888" value="0x06010002" />
-        <register type="NOA" address="0x00009888" value="0x01810004" />
-        <register type="NOA" address="0x00009888" value="0x07810040" />
-        <register type="NOA" address="0x00009888" value="0x0F810380" />
-        <register type="NOA" address="0x00009888" value="0x01A10004" />
-        <register type="NOA" address="0x00009888" value="0x07A10001" />
-        <register type="NOA" address="0x00009888" value="0x0FA1000E" />
-        <register type="NOA" address="0x00009888" value="0x01C10004" />
-        <register type="NOA" address="0x00009888" value="0x05C10040" />
-        <register type="NOA" address="0x00009888" value="0x0DC10380" />
-        <register type="NOA" address="0x00009888" value="0x01E10004" />
-        <register type="NOA" address="0x00009888" value="0x05E10001" />
-        <register type="NOA" address="0x00009888" value="0x0DE1000E" />
-        <register type="NOA" address="0x00009888" value="0x008104E5" />
-        <register type="NOA" address="0x00009888" value="0x02814A00" />
+        <register type="NOA" address="0x00009888" value="0x01810040" />
+        <register type="NOA" address="0x00009888" value="0x09810006" />
+        <register type="NOA" address="0x00009888" value="0x0F810200" />
+        <register type="NOA" address="0x00009888" value="0x01A10040" />
+        <register type="NOA" address="0x00009888" value="0x09A10180" />
+        <register type="NOA" address="0x00009888" value="0x0FA10008" />
+        <register type="NOA" address="0x00009888" value="0x01C10040" />
+        <register type="NOA" address="0x00009888" value="0x0DC10200" />
+        <register type="NOA" address="0x00009888" value="0x01E10040" />
+        <register type="NOA" address="0x00009888" value="0x0DE10008" />
+        <register type="NOA" address="0x00009888" value="0x00812000" />
+        <register type="NOA" address="0x00009888" value="0x02814B63" />
         <register type="NOA" address="0x00009888" value="0x04810013" />
         <register type="NOA" address="0x00009884" value="0x00000000" />
-        <register type="NOA" address="0x00009888" value="0x00050F0F" />
+        <register type="NOA" address="0x00009888" value="0x00050FF0" />
         <register type="NOA" address="0x00009888" value="0x0002FFFF" />
         <register type="NOA" address="0x00009888" value="0x00015555" />
         <register type="NOA" address="0x00009888" value="0x02015555" />
-        <register type="NOA" address="0x00009888" value="0x0003AA55" />
+        <register type="NOA" address="0x00009888" value="0x000355AA" />
         <register type="NOA" address="0x00009888" value="0x0203AA55" />
-        <register type="NOA" address="0x00009888" value="0x00040F0F" />
-        <register type="NOA" address="0x00009888" value="0x4C010000" />
-        <register type="NOA" address="0x00009888" value="0x56010020" />
-        <register type="NOA" address="0x00009888" value="0x58010401" />
-        <register type="NOA" address="0x00009888" value="0x5A010030" />
-        <register type="NOA" address="0x00009888" value="0x5C010804" />
-        <register type="NOA" address="0x00009888" value="0x5E010020" />
+        <register type="NOA" address="0x00009888" value="0x00040FF0" />
+        <register type="NOA" address="0x00009888" value="0x4C010400" />
+        <register type="NOA" address="0x00009888" value="0x56010040" />
+        <register type="NOA" address="0x00009888" value="0x58010604" />
+        <register type="NOA" address="0x00009888" value="0x5A010020" />
+        <register type="NOA" address="0x00009888" value="0x5C010401" />
+        <register type="NOA" address="0x00009888" value="0x5E010000" />
         <register type="NOA" address="0x00009888" value="0x06010000" />
         <register type="NOA" address="0x00009888" value="0x60010400" />
         <register type="NOA" address="0x00009888" value="0x4E010010" />
@@ -8182,6 +8205,7 @@
        symbol_name="Ext8"
        underscore_name="ext8"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="30499dfb-3977-4808-a34c-93e7b50e0454"
        >
     <counter name="GPU Time Elapsed"
@@ -8536,6 +8560,7 @@
        symbol_name="Ext9"
        underscore_name="ext9"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="417618f2-7a87-4745-bccd-6ba14d17bfa4"
        >
     <counter name="GPU Time Elapsed"
@@ -8756,6 +8781,7 @@
        symbol_name="Ext10"
        underscore_name="ext10"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="443c32c7-e5e4-43da-b4f2-77efe45a60ed"
        >
     <counter name="GPU Time Elapsed"
@@ -9110,6 +9136,7 @@
        symbol_name="Ext11"
        underscore_name="ext11"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="3833e442-880a-4746-9df1-6347b7e5a081"
        >
     <counter name="GPU Time Elapsed"
@@ -9464,6 +9491,7 @@
        symbol_name="Ext12"
        underscore_name="ext12"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="931bb082-6f87-450e-8910-fd6a4ab206f7"
        >
     <counter name="GPU Time Elapsed"
@@ -9828,6 +9856,7 @@
        symbol_name="Ext13"
        underscore_name="ext13"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="f7fdd159-e273-47ab-99bc-f4fc410c6053"
        >
     <counter name="GPU Time Elapsed"
@@ -10058,6 +10087,7 @@
        symbol_name="Ext14"
        underscore_name="ext14"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="423732fb-f20a-4549-b632-53ac587668d9"
        >
     <counter name="GPU Time Elapsed"
@@ -10290,6 +10320,7 @@
        symbol_name="Ext15"
        underscore_name="ext15"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="0fa8f991-d412-4014-a7a7-be08ccf5fc4c"
        >
     <counter name="GPU Time Elapsed"
@@ -10530,6 +10561,7 @@
        symbol_name="Ext16"
        underscore_name="ext16"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="e37de2da-c16f-4b2a-82bc-e1062fabfa2a"
        >
     <counter name="GPU Time Elapsed"
@@ -10772,6 +10804,7 @@
        symbol_name="Ext17"
        underscore_name="ext17"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="e8a60701-f694-496d-95be-34cc80796a46"
        >
     <counter name="GPU Time Elapsed"
@@ -10882,7 +10915,7 @@
              max_equation="100"
              units="percent"
              semantic_type="duration"
-             equation="B 7 READ B 6 READ FADD 4 FDIV 100 UMUL $GpuCoreClocks FDIV"
+             equation="B 7 READ B 6 READ FADD 2 FDIV 100 UMUL $GpuCoreClocks FDIV"
              availability="$GtSlice0XeCore0"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
@@ -10897,7 +10930,7 @@
              max_equation="100"
              units="percent"
              semantic_type="duration"
-             equation="B 1 READ B 0 READ FADD 4 FDIV 100 UMUL $GpuCoreClocks FDIV"
+             equation="B 1 READ B 0 READ FADD 2 FDIV 100 UMUL $GpuCoreClocks FDIV"
              availability="$GtSlice0XeCore1"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
@@ -10912,7 +10945,7 @@
              max_equation="100"
              units="percent"
              semantic_type="duration"
-             equation="B 3 READ B 2 READ FADD 4 FDIV 100 UMUL $GpuCoreClocks FDIV"
+             equation="B 3 READ B 2 READ FADD 2 FDIV 100 UMUL $GpuCoreClocks FDIV"
              availability="$GtSlice0XeCore2"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
@@ -10927,7 +10960,7 @@
              max_equation="100"
              units="percent"
              semantic_type="duration"
-             equation="B 5 READ B 4 READ FADD 4 FDIV 100 UMUL $GpuCoreClocks FDIV"
+             equation="B 5 READ B 4 READ FADD 2 FDIV 100 UMUL $GpuCoreClocks FDIV"
              availability="$GtSlice0XeCore3"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
@@ -11020,6 +11053,7 @@
        symbol_name="Ext18"
        underscore_name="ext18"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="1c957158-09ff-4a89-aa5b-3c1b4e46f9ba"
        >
     <counter name="GPU Time Elapsed"
@@ -11270,6 +11304,7 @@
        symbol_name="Ext21"
        underscore_name="ext21"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="a0b46166-6078-4045-8321-6df39b8e8ced"
        >
     <counter name="GPU Time Elapsed"
@@ -11514,6 +11549,7 @@
        symbol_name="Ext22"
        underscore_name="ext22"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="92371114-aa03-46d8-ab34-6e843fc92123"
        >
     <counter name="GPU Time Elapsed"
@@ -11760,6 +11796,7 @@
        symbol_name="Ext23"
        underscore_name="ext23"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="c7cd47a5-39e8-4c58-9b4f-a9c6df869db8"
        >
     <counter name="GPU Time Elapsed"
@@ -11954,6 +11991,7 @@
        symbol_name="Ext24"
        underscore_name="ext24"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="2adf2c05-e151-4fa7-9e77-2331bd94235e"
        >
     <counter name="GPU Time Elapsed"
@@ -12150,6 +12188,7 @@
        symbol_name="Ext28"
        underscore_name="ext28"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="1fcdcf0a-54da-4397-8832-c884d8d0b3ff"
        >
     <counter name="GPU Time Elapsed"
@@ -12394,6 +12433,7 @@
        symbol_name="Ext29"
        underscore_name="ext29"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="9701aca8-76a6-49ee-96c9-ff983f24d29e"
        >
     <counter name="GPU Time Elapsed"
@@ -12640,6 +12680,7 @@
        symbol_name="Ext31"
        underscore_name="ext31"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="f47e74cf-7966-43ea-bbac-46f9a0d1dc1f"
        >
     <counter name="GPU Time Elapsed"
@@ -12830,6 +12871,7 @@
        symbol_name="Ext32"
        underscore_name="ext32"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="3e220edc-390e-4964-9e57-4d45f3e01de8"
        >
     <counter name="GPU Time Elapsed"
@@ -13022,6 +13064,7 @@
        symbol_name="Ext35"
        underscore_name="ext35"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="d334294d-8dd2-4ae2-ae31-7d0d4acc2b6b"
        >
     <counter name="GPU Time Elapsed"
@@ -13212,6 +13255,7 @@
        symbol_name="Ext36"
        underscore_name="ext36"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="b749495f-4fc4-4e54-965e-38990758473b"
        >
     <counter name="GPU Time Elapsed"
@@ -13404,6 +13448,7 @@
        symbol_name="Ext39"
        underscore_name="ext39"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="09c0f842-3711-48f5-bf3e-74c1caa9f791"
        >
     <counter name="GPU Time Elapsed"
@@ -13598,6 +13643,7 @@
        symbol_name="Ext40"
        underscore_name="ext40"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="be7c864e-0538-420d-916d-ce3aed7742ba"
        >
     <counter name="GPU Time Elapsed"
@@ -13794,6 +13840,7 @@
        symbol_name="Ext43"
        underscore_name="ext43"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="86cf3d13-947b-4f7f-9685-1ff59ec342dd"
        >
     <counter name="GPU Time Elapsed"
@@ -13974,6 +14021,7 @@
        symbol_name="Ext44"
        underscore_name="ext44"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="7675136e-a91e-4bf8-b206-32591b878339"
        >
     <counter name="GPU Time Elapsed"
@@ -14156,6 +14204,7 @@
        symbol_name="Ext45"
        underscore_name="ext45"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="e953dbdb-3451-4912-80ae-241ecc56a59e"
        >
     <counter name="GPU Time Elapsed"
@@ -14331,6 +14380,7 @@
        symbol_name="Ext46"
        underscore_name="ext46"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="94219d74-6a23-4b93-bf62-88c9ad4ed4bd"
        >
     <counter name="GPU Time Elapsed"
@@ -14508,6 +14558,7 @@
        symbol_name="Ext51"
        underscore_name="ext51"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="cab52f96-c6bf-48ca-a34e-17e52cadc8a6"
        >
     <counter name="GPU Time Elapsed"
@@ -14759,6 +14810,7 @@
        symbol_name="Ext53"
        underscore_name="ext53"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="e4597eb9-ffa4-4da5-a180-5e12299f22cc"
        >
     <counter name="GPU Time Elapsed"
@@ -14949,6 +15001,7 @@
        symbol_name="Ext54"
        underscore_name="ext54"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="0a11c113-298b-4f77-a085-1b7cac225015"
        >
     <counter name="GPU Time Elapsed"
@@ -15141,6 +15194,7 @@
        symbol_name="Ext57"
        underscore_name="ext57"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="6f983509-03f1-463a-be88-3e4a40de40b4"
        >
     <counter name="GPU Time Elapsed"
@@ -15331,6 +15385,7 @@
        symbol_name="Ext58"
        underscore_name="ext58"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="75d3fdde-e74d-4ec2-a7f0-f88fe5971af3"
        >
     <counter name="GPU Time Elapsed"
@@ -15523,6 +15578,7 @@
        symbol_name="Ext61"
        underscore_name="ext61"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="98c25532-687f-489a-b070-667edd3c41f9"
        >
     <counter name="GPU Time Elapsed"
@@ -15717,6 +15773,7 @@
        symbol_name="Ext62"
        underscore_name="ext62"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="6ee28b50-5390-4655-af96-9d99569aee82"
        >
     <counter name="GPU Time Elapsed"
@@ -15913,6 +15970,7 @@
        symbol_name="Ext65"
        underscore_name="ext65"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="89a4a65b-cbfa-4c75-99fb-e5d7f0def495"
        >
     <counter name="GPU Time Elapsed"
@@ -16060,6 +16118,7 @@
        symbol_name="Ext66"
        underscore_name="ext66"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="99e44f76-928f-4835-866f-663e25c69f66"
        >
     <counter name="GPU Time Elapsed"
@@ -16202,6 +16261,7 @@
        symbol_name="Ext67"
        underscore_name="ext67"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="f45dfc0c-70ef-48bd-83a2-30cf4a6ba0d5"
        >
     <counter name="GPU Time Elapsed"
@@ -16351,6 +16411,7 @@
        symbol_name="Ext68"
        underscore_name="ext68"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="eab0942c-5181-4caf-aeec-44d9a0b69ada"
        >
     <counter name="GPU Time Elapsed"
@@ -16493,6 +16554,7 @@
        symbol_name="Ext73"
        underscore_name="ext73"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="d9d0c398-6429-4ba8-bc08-6e8556a5880f"
        >
     <counter name="GPU Time Elapsed"
@@ -16640,6 +16702,7 @@
        symbol_name="Ext74"
        underscore_name="ext74"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="d91bf24f-08af-4d1d-b957-c2293923c9a4"
        >
     <counter name="GPU Time Elapsed"
@@ -16780,6 +16843,7 @@
        symbol_name="Ext75"
        underscore_name="ext75"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="b5c2eaef-cffa-490b-a80e-de2b37ca63d8"
        >
     <counter name="GPU Time Elapsed"
@@ -16929,6 +16993,7 @@
        symbol_name="Ext76"
        underscore_name="ext76"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="d5cdafcf-483d-40f7-8dc9-feca73e94246"
        >
     <counter name="GPU Time Elapsed"
@@ -17071,6 +17136,7 @@
        symbol_name="Ext77"
        underscore_name="ext77"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="240802cf-de55-472f-9e0a-710270ae9487"
        >
     <counter name="GPU Time Elapsed"
@@ -17260,6 +17326,7 @@
        symbol_name="Ext78"
        underscore_name="ext78"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="3dd49211-aa69-4711-87c2-97289ff9cfff"
        >
     <counter name="GPU Time Elapsed"
@@ -17451,6 +17518,7 @@
        symbol_name="Ext79"
        underscore_name="ext79"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="64aeba75-9dbe-4231-81f6-8c991b84c070"
        >
     <counter name="GPU Time Elapsed"
@@ -17608,6 +17676,7 @@
        symbol_name="Ext80"
        underscore_name="ext80"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="3b293ce5-af38-4ae2-96f4-a542d3c68d5e"
        >
     <counter name="GPU Time Elapsed"
@@ -17758,6 +17827,7 @@
        symbol_name="Ext81"
        underscore_name="ext81"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="09516dce-66a0-499f-8457-97f78bb921e6"
        >
     <counter name="GPU Time Elapsed"
@@ -17917,6 +17987,7 @@
        symbol_name="Ext82"
        underscore_name="ext82"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="c0bdc35b-af55-4ac9-8078-f22578201756"
        >
     <counter name="GPU Time Elapsed"
@@ -18069,6 +18140,7 @@
        symbol_name="Ext83"
        underscore_name="ext83"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="7f4b6bdf-4a28-4e6b-a67b-c9a0d320ddb8"
        >
     <counter name="GPU Time Elapsed"
@@ -18455,6 +18527,7 @@
        symbol_name="Ext85"
        underscore_name="ext85"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="e19c5430-c632-43eb-b27f-eeb3d405bfd8"
        >
     <counter name="GPU Time Elapsed"
@@ -18709,6 +18782,7 @@
        symbol_name="Ext86"
        underscore_name="ext86"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="d379e5f5-32f3-4a6b-957f-5ccf607dda00"
        >
     <counter name="GPU Time Elapsed"
@@ -18964,6 +19038,7 @@
        symbol_name="Ext87"
        underscore_name="ext87"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="3e86ea71-8695-4815-ac18-0fd4510541a1"
        >
     <counter name="GPU Time Elapsed"
@@ -19148,6 +19223,7 @@
        symbol_name="Ext88"
        underscore_name="ext88"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="31ad28aa-7425-4bb4-b1a3-423821d98d84"
        >
     <counter name="GPU Time Elapsed"
@@ -19332,6 +19408,7 @@
        symbol_name="Ext91"
        underscore_name="ext91"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="a1963e82-2bad-44e2-9bb1-ee18657c09cd"
        >
     <counter name="GPU Time Elapsed"
@@ -19516,6 +19593,7 @@
        symbol_name="Ext92"
        underscore_name="ext92"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="fdf0722d-cb2e-46bd-8c1f-a85c6fbca3ff"
        >
     <counter name="GPU Time Elapsed"
@@ -19700,6 +19778,7 @@
        symbol_name="Ext93"
        underscore_name="ext93"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="e0810ece-3bb5-4786-871b-b504faa00ba7"
        >
     <counter name="GPU Time Elapsed"
@@ -19857,6 +19936,7 @@
        symbol_name="Ext94"
        underscore_name="ext94"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="8697d9f7-3085-4ae7-b88d-e77697972732"
        >
     <counter name="GPU Time Elapsed"
@@ -20007,6 +20087,7 @@
        symbol_name="Ext95"
        underscore_name="ext95"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="d059b804-fc25-4cbc-9682-ebc806a0d423"
        >
     <counter name="GPU Time Elapsed"
@@ -20166,6 +20247,7 @@
        symbol_name="Ext96"
        underscore_name="ext96"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="ca3c5e8c-b83a-474f-85fa-af7572a1ce27"
        >
     <counter name="GPU Time Elapsed"
@@ -20318,6 +20400,7 @@
        symbol_name="Ext97"
        underscore_name="ext97"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="fbed5532-2b4f-4194-b856-0404c387b2e4"
        >
     <counter name="GPU Time Elapsed"
@@ -20576,6 +20659,7 @@
        symbol_name="Ext98"
        underscore_name="ext98"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="4c975484-c2f5-4f29-b8fa-8ec1068de77a"
        >
     <counter name="GPU Time Elapsed"
@@ -20769,6 +20853,7 @@
        symbol_name="Ext99"
        underscore_name="ext99"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="13017c9d-9d3a-41d1-8f9c-2eafdcbefab4"
        >
     <counter name="GPU Time Elapsed"
@@ -20964,6 +21049,7 @@
        symbol_name="Ext100"
        underscore_name="ext100"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="a7ef0e01-74c3-48c5-8d0f-00241111cf69"
        >
     <counter name="GPU Time Elapsed"
@@ -21233,6 +21319,7 @@
        symbol_name="Ext101"
        underscore_name="ext101"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="7e86b43f-715e-419a-83eb-e8777fd7c77a"
        >
     <counter name="GPU Time Elapsed"
@@ -21504,6 +21591,7 @@
        symbol_name="Ext102"
        underscore_name="ext102"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="1fb36f5f-04a3-412f-a6ca-80233bf408a0"
        >
     <counter name="GPU Time Elapsed"
@@ -21889,6 +21977,7 @@
        symbol_name="Ext103"
        underscore_name="ext103"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="5228137b-8e8d-4d67-b195-d5f64a88f5f0"
        >
     <counter name="GPU Time Elapsed"
@@ -22274,6 +22363,7 @@
        symbol_name="Ext104"
        underscore_name="ext104"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="5503160a-7b2a-4099-9ec6-0d3a551cb388"
        >
     <counter name="GPU Time Elapsed"
@@ -22446,6 +22536,7 @@
        symbol_name="Ext105"
        underscore_name="ext105"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="418f87f0-b6d8-4684-883e-4f10a79c5070"
        >
     <counter name="GPU Time Elapsed"
@@ -22618,6 +22709,7 @@
        symbol_name="Ext106"
        underscore_name="ext106"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="f5b7256f-9bf6-4c95-94c1-4044cfad0ea6"
        >
     <counter name="GPU Time Elapsed"
@@ -22789,6 +22881,7 @@
        symbol_name="Ext107"
        underscore_name="ext107"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="28d75db6-0eb3-4651-b820-513a76013504"
        >
     <counter name="GPU Time Elapsed"
@@ -22960,6 +23053,7 @@
        symbol_name="Ext108"
        underscore_name="ext108"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="080da0b6-29a4-416b-b20f-ece0e2527f60"
        >
     <counter name="GPU Time Elapsed"
@@ -23131,6 +23225,7 @@
        symbol_name="Ext109"
        underscore_name="ext109"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="75a9e66d-9bbe-46d7-971e-71ca8ef680ff"
        >
     <counter name="GPU Time Elapsed"
@@ -23300,6 +23395,7 @@
        symbol_name="Ext110"
        underscore_name="ext110"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="ae5589a9-7e09-4343-a611-3161977315d5"
        >
     <counter name="GPU Time Elapsed"
@@ -23473,6 +23569,7 @@
        symbol_name="Ext111"
        underscore_name="ext111"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="a5e1e738-1338-4d76-a6a7-5517111cc852"
        >
     <counter name="GPU Time Elapsed"
@@ -23646,6 +23743,7 @@
        symbol_name="Ext113"
        underscore_name="ext113"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="1a24edc7-8187-43b6-86aa-fcf56c223893"
        >
     <counter name="GPU Time Elapsed"
@@ -23961,6 +24059,7 @@
        symbol_name="Ext114"
        underscore_name="ext114"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="32565d07-8ac7-41c3-89a3-66d0c1100616"
        >
     <counter name="GPU Time Elapsed"
@@ -24278,6 +24377,7 @@
        symbol_name="Ext116"
        underscore_name="ext116"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="f725009a-c5e7-4418-9adf-ddb70cb2edde"
        >
     <counter name="GPU Time Elapsed"
@@ -24463,6 +24563,7 @@
        symbol_name="Ext117"
        underscore_name="ext117"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="f633497f-c116-461f-a0e9-bb3fdcef7683"
        >
     <counter name="GPU Time Elapsed"
@@ -24650,6 +24751,7 @@
        symbol_name="Ext118"
        underscore_name="ext118"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="bae9e67e-4b5c-4fb9-b21d-21a6966bed46"
        >
     <counter name="GPU Time Elapsed"
@@ -24897,6 +24999,7 @@
        symbol_name="Ext119"
        underscore_name="ext119"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="95c08faf-813c-4b71-9062-09569c5ff432"
        >
     <counter name="GPU Time Elapsed"
@@ -25146,6 +25249,7 @@
        symbol_name="Ext120"
        underscore_name="ext120"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="045ee54e-4e02-4877-adb1-5bd14ba49100"
        >
     <counter name="GPU Time Elapsed"
@@ -25333,6 +25437,7 @@
        symbol_name="Ext121"
        underscore_name="ext121"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="2e3894b5-2b6a-49c4-b2b6-0dde7375cb7b"
        >
     <counter name="GPU Time Elapsed"
@@ -25520,6 +25625,7 @@
        symbol_name="Ext122"
        underscore_name="ext122"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="25ca1237-2ed3-447a-9767-1a85da89daef"
        >
     <counter name="GPU Time Elapsed"
@@ -25823,6 +25929,7 @@
        symbol_name="Ext123"
        underscore_name="ext123"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="cf41fd07-c4c2-466c-9d85-774dcde02359"
        >
     <counter name="GPU Time Elapsed"
@@ -26136,6 +26243,7 @@
        symbol_name="Ext124"
        underscore_name="ext124"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="2445e8f0-04c4-43f5-87ff-e2f99a2528ed"
        >
     <counter name="GPU Time Elapsed"
@@ -26424,6 +26532,7 @@
        symbol_name="Ext125"
        underscore_name="ext125"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="446192f5-9062-4f1e-a99e-1be87cdcd0b8"
        >
     <counter name="GPU Time Elapsed"
@@ -26714,6 +26823,7 @@
        symbol_name="Ext126"
        underscore_name="ext126"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="9a0ec3ea-1d61-413e-8b9c-169cdec1f9b3"
        >
     <counter name="GPU Time Elapsed"
@@ -26937,6 +27047,7 @@
        symbol_name="Ext127"
        underscore_name="ext127"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="1f70ab0a-6efd-461b-b06e-3b47d3602f36"
        >
     <counter name="GPU Time Elapsed"
@@ -27162,6 +27273,7 @@
        symbol_name="Ext128"
        underscore_name="ext128"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="9eedb03f-340b-40ec-8a66-43d01973003e"
        >
     <counter name="GPU Time Elapsed"
@@ -27310,6 +27422,7 @@
        symbol_name="Ext129"
        underscore_name="ext129"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="0e5ffe58-83b2-445b-a439-9ee7a01642d4"
        >
     <counter name="GPU Time Elapsed"
@@ -27461,6 +27574,7 @@
        symbol_name="Ext130"
        underscore_name="ext130"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="78925a28-3e52-4d74-b03b-cb27c6a4401a"
        >
     <counter name="GPU Time Elapsed"
@@ -27594,6 +27708,7 @@
        symbol_name="Ext131"
        underscore_name="ext131"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="1e91d8d9-ced4-4240-bf9e-fdd7d015c058"
        >
     <counter name="GPU Time Elapsed"
@@ -27720,6 +27835,7 @@
        symbol_name="Ext132"
        underscore_name="ext132"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="1cacf022-b4d4-401c-abec-acc0a3353adc"
        >
     <counter name="GPU Time Elapsed"
@@ -27855,6 +27971,7 @@
        symbol_name="Ext133"
        underscore_name="ext133"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="3c15657a-b3da-4513-8b9c-08bcc1ca0226"
        >
     <counter name="GPU Time Elapsed"
@@ -27983,6 +28100,7 @@
        symbol_name="Ext134"
        underscore_name="ext134"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="da34c79f-d1c6-4d15-b848-2085528bb86b"
        >
     <counter name="GPU Time Elapsed"
@@ -28099,6 +28217,7 @@
        symbol_name="Ext135"
        underscore_name="ext135"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="33ceab81-26bc-49f3-a124-5dbb2d592a87"
        >
     <counter name="GPU Time Elapsed"
@@ -28206,6 +28325,7 @@
        symbol_name="Ext136"
        underscore_name="ext136"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="d8b7d2f7-7c3a-4a68-b6c1-48d197b22945"
        >
     <counter name="GPU Time Elapsed"
@@ -28324,6 +28444,7 @@
        symbol_name="Ext137"
        underscore_name="ext137"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="01d6bd34-b8d1-4412-b53b-0d16b327abec"
        >
     <counter name="GPU Time Elapsed"
@@ -28433,6 +28554,7 @@
        symbol_name="Ext138"
        underscore_name="ext138"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="7485f9ec-ac5f-4c6d-8c5f-6a023e7d29d5"
        >
     <counter name="GPU Time Elapsed"
@@ -28549,6 +28671,7 @@
        symbol_name="Ext139"
        underscore_name="ext139"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="944dc12b-b2fd-4bf5-a59d-540e2b280cdd"
        >
     <counter name="GPU Time Elapsed"
@@ -28656,6 +28779,7 @@
        symbol_name="Ext140"
        underscore_name="ext140"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="5c97330a-b407-4ef8-908f-7fdeec216f81"
        >
     <counter name="GPU Time Elapsed"
@@ -28774,6 +28898,7 @@
        symbol_name="Ext141"
        underscore_name="ext141"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="65e4ac2a-db8f-4918-bdd6-ac4d85de160e"
        >
     <counter name="GPU Time Elapsed"
@@ -28883,6 +29008,7 @@
        symbol_name="Ext142"
        underscore_name="ext142"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="0eb11775-ad71-44d4-ad2c-c2fa6431b144"
        >
     <counter name="GPU Time Elapsed"
@@ -28999,6 +29125,7 @@
        symbol_name="Ext143"
        underscore_name="ext143"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="d7736d53-f1cb-4899-8f3d-d8aaad1f1c67"
        >
     <counter name="GPU Time Elapsed"
@@ -29106,6 +29233,7 @@
        symbol_name="Ext144"
        underscore_name="ext144"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="496219cc-316b-4945-9fc4-180e60331262"
        >
     <counter name="GPU Time Elapsed"
@@ -29224,6 +29352,7 @@
        symbol_name="Ext145"
        underscore_name="ext145"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="c7e6721e-51f9-40af-ba8b-0520a1082855"
        >
     <counter name="GPU Time Elapsed"
@@ -29333,6 +29462,7 @@
        symbol_name="Ext146"
        underscore_name="ext146"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="0e9b064c-9fa7-4e85-8aaa-cc871010117d"
        >
     <counter name="GPU Time Elapsed"
@@ -29449,6 +29579,7 @@
        symbol_name="Ext147"
        underscore_name="ext147"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="44d73f02-f843-4717-a3d5-3d1dfbd3f106"
        >
     <counter name="GPU Time Elapsed"
@@ -29556,6 +29687,7 @@
        symbol_name="Ext148"
        underscore_name="ext148"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="b84f370e-1b64-41d1-a4d8-f095fb79e5f8"
        >
     <counter name="GPU Time Elapsed"
@@ -29674,6 +29806,7 @@
        symbol_name="Ext149"
        underscore_name="ext149"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="772a2c24-0a03-480e-baca-72f2f55a5422"
        >
     <counter name="GPU Time Elapsed"
@@ -29783,6 +29916,7 @@
        symbol_name="Ext150"
        underscore_name="ext150"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="953d3bf8-af3d-4287-ac22-dcd122c5eb51"
        >
     <counter name="GPU Time Elapsed"
@@ -29897,6 +30031,7 @@
        symbol_name="Ext151"
        underscore_name="ext151"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="dbb009c2-98ad-4af0-905a-e7808ac5424c"
        >
     <counter name="GPU Time Elapsed"
@@ -30003,6 +30138,7 @@
        symbol_name="Ext152"
        underscore_name="ext152"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="16fd8981-676d-4cbc-b010-8d731ba66a06"
        >
     <counter name="GPU Time Elapsed"
@@ -30119,6 +30255,7 @@
        symbol_name="Ext153"
        underscore_name="ext153"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="7bcdd766-98a5-461a-ac8e-d8c648958364"
        >
     <counter name="GPU Time Elapsed"
@@ -30227,6 +30364,7 @@
        symbol_name="Ext154"
        underscore_name="ext154"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="c0459fa8-1790-46b8-a0f8-3064baf7c670"
        >
     <counter name="GPU Time Elapsed"
@@ -30532,6 +30670,7 @@
        symbol_name="Ext155"
        underscore_name="ext155"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="304d9439-4bdd-48a9-a82e-15b3533afaf4"
        >
     <counter name="GPU Time Elapsed"
@@ -30667,6 +30806,7 @@
        symbol_name="Ext156"
        underscore_name="ext156"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="90691d58-782d-459c-a242-f6e515fe9567"
        >
     <counter name="GPU Time Elapsed"
@@ -30803,6 +30943,7 @@
        symbol_name="Ext158"
        underscore_name="ext158"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="cf34a431-3cc9-4b70-a84e-0d31a71170f0"
        >
     <counter name="GPU Time Elapsed"
@@ -31070,6 +31211,7 @@
        symbol_name="Ext159"
        underscore_name="ext159"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="ad3cd014-8897-4613-8653-6d80c6eaff88"
        >
     <counter name="GPU Time Elapsed"
@@ -31271,6 +31413,7 @@
        symbol_name="Ext160"
        underscore_name="ext160"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="aa12de63-7d11-4acf-af96-be89807729f7"
        >
     <counter name="GPU Time Elapsed"
@@ -31474,6 +31617,7 @@
        symbol_name="Ext161"
        underscore_name="ext161"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="ac013132-7e0c-4143-bc34-ea6428ce3082"
        >
     <counter name="GPU Time Elapsed"
@@ -31675,6 +31819,7 @@
        symbol_name="Ext162"
        underscore_name="ext162"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="b9d8323a-7bb4-41b5-b99b-43ed99e23590"
        >
     <counter name="GPU Time Elapsed"
@@ -31878,6 +32023,7 @@
        symbol_name="Ext163"
        underscore_name="ext163"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="6ae2c19e-672c-4ad6-9d59-0a391af1af4f"
        >
     <counter name="GPU Time Elapsed"
@@ -32079,6 +32225,7 @@
        symbol_name="Ext164"
        underscore_name="ext164"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="c76b6b40-9d7f-48f6-b6da-595252c884f4"
        >
     <counter name="GPU Time Elapsed"
@@ -32282,6 +32429,7 @@
        symbol_name="Ext165"
        underscore_name="ext165"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="a85da4d8-d984-45f3-8dbe-c8678eac8aae"
        >
     <counter name="GPU Time Elapsed"
@@ -32483,6 +32631,7 @@
        symbol_name="Ext166"
        underscore_name="ext166"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="fbc7362e-4d05-451d-833e-f0ce5e7ad8e3"
        >
     <counter name="GPU Time Elapsed"
@@ -32686,6 +32835,7 @@
        symbol_name="Ext167"
        underscore_name="ext167"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="881454da-d271-41ba-9dfb-0cc354fb5aea"
        >
     <counter name="GPU Time Elapsed"
@@ -32887,6 +33037,7 @@
        symbol_name="Ext168"
        underscore_name="ext168"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="9f2b827b-01c6-4e82-b283-dfe91af30d88"
        >
     <counter name="GPU Time Elapsed"
@@ -33090,6 +33241,7 @@
        symbol_name="Ext169"
        underscore_name="ext169"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="c6b40da2-4783-45d7-8252-9a4f1f75faf4"
        >
     <counter name="GPU Time Elapsed"
@@ -33291,6 +33443,7 @@
        symbol_name="Ext170"
        underscore_name="ext170"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="b5883529-3595-412d-b40f-b7ade9cc3304"
        >
     <counter name="GPU Time Elapsed"
@@ -33494,6 +33647,7 @@
        symbol_name="Ext171"
        underscore_name="ext171"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="2455c20b-95bb-4e9f-8db2-597ba9447025"
        >
     <counter name="GPU Time Elapsed"
@@ -33871,6 +34025,7 @@
        symbol_name="Ext172"
        underscore_name="ext172"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="ec18cd0b-7caa-48d0-9a16-418ecbe1096e"
        >
     <counter name="GPU Time Elapsed"
@@ -34250,6 +34405,7 @@
        symbol_name="Ext173"
        underscore_name="ext173"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="3628b2de-d9f9-4db2-a74f-32a314e591c5"
        >
     <counter name="GPU Time Elapsed"
@@ -34472,6 +34628,7 @@
        symbol_name="Ext174"
        underscore_name="ext174"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="d35ecd39-0a9d-48f7-bf87-d3c318b8fadd"
        >
     <counter name="GPU Time Elapsed"
@@ -34694,6 +34851,7 @@
        symbol_name="Ext175"
        underscore_name="ext175"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="d0d0e9cc-494c-4b01-8a43-683aae5beaff"
        >
     <counter name="GPU Time Elapsed"
@@ -34911,6 +35069,7 @@
        symbol_name="Ext176"
        underscore_name="ext176"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="c5fde834-52c8-411b-854e-8d3197def109"
        >
     <counter name="GPU Time Elapsed"
@@ -35123,6 +35282,7 @@
        symbol_name="Ext177"
        underscore_name="ext177"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="55830ebd-062b-40e8-8d5c-e921429957ff"
        >
     <counter name="GPU Time Elapsed"
@@ -35347,6 +35507,7 @@
        symbol_name="Ext178"
        underscore_name="ext178"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="9603d88f-e5bf-47b4-85fd-fbbb68f42632"
        >
     <counter name="GPU Time Elapsed"
@@ -35571,6 +35732,7 @@
        symbol_name="Ext179"
        underscore_name="ext179"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="b05bd7bd-387f-4fd7-a1b4-06a1dab5bc14"
        >
     <counter name="GPU Time Elapsed"
@@ -35790,6 +35952,7 @@
        symbol_name="Ext180"
        underscore_name="ext180"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="49dc9023-be7b-4102-a4a2-d31b9a6b1ce4"
        >
     <counter name="GPU Time Elapsed"
@@ -36004,6 +36167,7 @@
        symbol_name="Ext181"
        underscore_name="ext181"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="871d8a6b-7c73-4cd7-a4ed-4bdb58d5b6ee"
        >
     <counter name="GPU Time Elapsed"
@@ -36183,6 +36347,7 @@
        symbol_name="Ext182"
        underscore_name="ext182"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="25a2f80d-147e-4363-a0cb-53584b7a837d"
        >
     <counter name="GPU Time Elapsed"
@@ -36364,6 +36529,7 @@
        symbol_name="Ext183"
        underscore_name="ext183"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="71863fcf-d57c-433b-858f-87f5f11ec3da"
        >
     <counter name="GPU Time Elapsed"
@@ -36585,6 +36751,7 @@
        symbol_name="Ext184"
        underscore_name="ext184"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="c29640d9-39eb-4a03-9043-2a54eb5a3112"
        >
     <counter name="GPU Time Elapsed"
@@ -36808,6 +36975,7 @@
        symbol_name="Ext185"
        underscore_name="ext185"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="00882747-d1dd-4ba5-9b72-96df25dad7bd"
        >
     <counter name="GPU Time Elapsed"
@@ -36998,6 +37166,7 @@
        symbol_name="Ext186"
        underscore_name="ext186"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="89aea44f-ffa6-43cc-9a9c-103b4930e103"
        >
     <counter name="GPU Time Elapsed"
@@ -37190,6 +37359,7 @@
        symbol_name="Ext188"
        underscore_name="ext188"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="11e92a4a-d605-499c-9159-e79797c230de"
        >
     <counter name="GPU Time Elapsed"
@@ -37380,6 +37550,7 @@
        symbol_name="Ext189"
        underscore_name="ext189"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="27c2ef51-6689-4ffc-acaa-3f46a8e834cf"
        >
     <counter name="GPU Time Elapsed"
@@ -37572,6 +37743,7 @@
        symbol_name="Ext190"
        underscore_name="ext190"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="1625df84-2f24-4aed-9ced-e652184c9949"
        >
     <counter name="GPU Time Elapsed"
@@ -37723,6 +37895,7 @@
        symbol_name="Ext191"
        underscore_name="ext191"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="d98e7947-ecee-46a9-b3ac-619d13d32b1a"
        >
     <counter name="GPU Time Elapsed"
@@ -37876,6 +38049,7 @@
        symbol_name="Ext192"
        underscore_name="ext192"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="ed973589-e13c-4115-a2b1-08bc443a4e8d"
        >
     <counter name="GPU Time Elapsed"
@@ -38154,6 +38328,7 @@
        symbol_name="Ext193"
        underscore_name="ext193"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="9bb6c40a-ec2c-4292-8ac8-d8b413abd301"
        >
     <counter name="GPU Time Elapsed"
@@ -38434,6 +38609,7 @@
        symbol_name="Ext195"
        underscore_name="ext195"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="9a911d6f-39b5-425d-aea3-15e49e6395fa"
        >
     <counter name="GPU Time Elapsed"
@@ -38716,6 +38892,7 @@
        symbol_name="Ext196"
        underscore_name="ext196"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="814b3516-d465-4faa-b89c-67c30c96a256"
        >
     <counter name="GPU Time Elapsed"
@@ -39000,6 +39177,7 @@
        symbol_name="Ext198"
        underscore_name="ext198"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="3663ed58-377d-40c3-9af0-913cbc5d954b"
        >
     <counter name="GPU Time Elapsed"
@@ -39181,6 +39359,7 @@
        symbol_name="Ext199"
        underscore_name="ext199"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="6ce22a01-9025-4afb-b3e9-652ce0c693b5"
        >
     <counter name="GPU Time Elapsed"
@@ -39366,6 +39545,7 @@
        symbol_name="Ext200"
        underscore_name="ext200"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="7f59bef3-f0f1-4856-b4f3-e64fa9913956"
        >
     <counter name="GPU Time Elapsed"
@@ -39549,6 +39729,7 @@
        symbol_name="Ext201"
        underscore_name="ext201"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="8982721e-16cb-42ec-92dd-eb049ae7a503"
        >
     <counter name="GPU Time Elapsed"
@@ -39736,6 +39917,7 @@
        symbol_name="Ext202"
        underscore_name="ext202"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="d86c1224-3af7-4df1-a44d-e4522f22b2ae"
        >
     <counter name="GPU Time Elapsed"
@@ -39836,6 +40018,7 @@
        symbol_name="Ext203"
        underscore_name="ext203"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="03090380-689d-481a-ace2-9725ea0c10d2"
        >
     <counter name="GPU Time Elapsed"
@@ -39936,6 +40119,7 @@
        symbol_name="Ext204"
        underscore_name="ext204"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="78a1b79a-a5fd-4fa0-b33d-2ec51404e3b9"
        >
     <counter name="GPU Time Elapsed"
@@ -40141,6 +40325,7 @@
        symbol_name="Ext205"
        underscore_name="ext205"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="b3c2bff1-e203-4c90-8719-66546c370005"
        >
     <counter name="GPU Time Elapsed"
@@ -40346,6 +40531,7 @@
        symbol_name="Ext206"
        underscore_name="ext206"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="a209e458-76a6-46fc-bb62-29850f38eb0d"
        >
     <counter name="GPU Time Elapsed"
@@ -40553,6 +40739,7 @@
        symbol_name="Ext207"
        underscore_name="ext207"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="06aea283-f183-4e96-85a5-3bb7193f06c7"
        >
     <counter name="GPU Time Elapsed"
@@ -40760,6 +40947,7 @@
        symbol_name="Ext212"
        underscore_name="ext212"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="0c6d24a9-2489-4fcd-a9f6-d44380417dee"
        >
     <counter name="GPU Time Elapsed"
@@ -40951,6 +41139,7 @@
        symbol_name="Ext213"
        underscore_name="ext213"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="39a43efe-ee39-4fa2-88c4-3dfc34a74f4f"
        >
     <counter name="GPU Time Elapsed"
@@ -41144,6 +41333,7 @@
        symbol_name="Ext214"
        underscore_name="ext214"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="f3ca645b-a2b3-496b-bf6d-f8f26b1faa86"
        >
     <counter name="GPU Time Elapsed"
@@ -41328,6 +41518,7 @@
        symbol_name="Ext215"
        underscore_name="ext215"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="947b168e-df39-4e92-a622-0884c81221b3"
        >
     <counter name="GPU Time Elapsed"
@@ -41514,6 +41705,7 @@
        symbol_name="Ext220"
        underscore_name="ext220"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="0722885e-4df8-4c98-8336-72b5e129e6be"
        >
     <counter name="GPU Time Elapsed"
@@ -41781,6 +41973,7 @@
        symbol_name="Ext225"
        underscore_name="ext225"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="db4a27f8-40a0-4cb5-aa3a-5368add92cd5"
        >
     <counter name="GPU Time Elapsed"
@@ -41915,6 +42108,7 @@
        symbol_name="Ext226"
        underscore_name="ext226"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="6b5736f5-a627-4cb6-9078-1c05137bc460"
        >
     <counter name="GPU Time Elapsed"
@@ -42051,6 +42245,7 @@
        symbol_name="Ext227"
        underscore_name="ext227"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="5e6f4959-c37c-4be0-bb4e-2f1c1aef2bb3"
        >
     <counter name="GPU Time Elapsed"
@@ -42185,6 +42380,7 @@
        symbol_name="Ext228"
        underscore_name="ext228"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="fe2d673e-8b2e-47d0-b9db-2c50e10ee53e"
        >
     <counter name="GPU Time Elapsed"
@@ -42321,6 +42517,7 @@
        symbol_name="Ext229"
        underscore_name="ext229"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="cb94a696-bfbe-4566-8225-c337f988600c"
        >
     <counter name="GPU Time Elapsed"
@@ -42461,6 +42658,7 @@
        symbol_name="Ext230"
        underscore_name="ext230"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="ec3032cb-df12-445c-9eb2-6b1031d2dc86"
        >
     <counter name="GPU Time Elapsed"
@@ -42603,6 +42801,7 @@
        symbol_name="Ext231"
        underscore_name="ext231"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="e5e22fbb-0ff4-44f6-a549-6ed41df0dd27"
        >
     <counter name="GPU Time Elapsed"
@@ -42736,6 +42935,7 @@
        symbol_name="Ext232"
        underscore_name="ext232"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="b6defb71-0fe8-400e-ae27-565ce9067082"
        >
     <counter name="GPU Time Elapsed"
@@ -42871,6 +43071,7 @@
        symbol_name="Ext236"
        underscore_name="ext236"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="98d5c3d9-bca6-4699-99e3-7b95a23025ce"
        >
     <counter name="GPU Time Elapsed"
@@ -43099,6 +43300,7 @@
        symbol_name="Ext237"
        underscore_name="ext237"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="4256db1d-9083-4497-9000-59bbcf9eee72"
        >
     <counter name="GPU Time Elapsed"
@@ -43399,6 +43601,7 @@
        symbol_name="Ext239"
        underscore_name="ext239"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="5ba2bf20-ca4e-4872-86fd-9026c9de8c93"
        >
     <counter name="GPU Time Elapsed"
@@ -43511,6 +43714,7 @@
        symbol_name="Ext240"
        underscore_name="ext240"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="fe8810c2-457b-47e0-a3b9-50cab24718b4"
        >
     <counter name="GPU Time Elapsed"
@@ -43623,6 +43827,7 @@
        symbol_name="Ext500"
        underscore_name="ext500"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="ee0cc3d0-9ac8-4608-aaca-b37fd9d18238"
        >
     <counter name="GPU Time Elapsed"
@@ -44036,6 +44241,7 @@
        symbol_name="Ext501"
        underscore_name="ext501"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="f6e20d5b-52be-4035-85c2-818a690bf601"
        >
     <counter name="GPU Time Elapsed"
@@ -44449,6 +44655,7 @@
        symbol_name="Ext502"
        underscore_name="ext502"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="d09cedef-e3e3-41b5-8ce8-ddc3933339ca"
        >
     <counter name="GPU Time Elapsed"
@@ -44862,6 +45069,7 @@
        symbol_name="Ext503"
        underscore_name="ext503"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="96067625-3663-4f9a-8b26-74e47ab1aff4"
        >
     <counter name="GPU Time Elapsed"
@@ -45275,6 +45483,7 @@
        symbol_name="Ext508"
        underscore_name="ext508"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="2bc8b90d-997c-4d62-b101-fe1aa74036e5"
        >
     <counter name="GPU Time Elapsed"
@@ -45324,7 +45533,7 @@
              data_type="uint64"
              units="bytes"
              semantic_type="throughput"
-             equation="B 2 READ 2 B 3 READ UMUL UADD 4 B 4 READ UMUL UADD 8 B 5 READ UMUL UADD 16 B 6 READ UMUL UADD 32 B 7 READ UMUL UADD 64 C 0 READ UMUL UADD"
+             equation="B 3 READ 2 C 7 READ UMUL UADD 4 C 6 READ UMUL UADD 8 C 5 READ UMUL UADD 16 C 4 READ UMUL UADD 32 C 3 READ UMUL UADD 64 C 2 READ UMUL UADD"
              availability="$GtSlice0XeCore0"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
@@ -45338,7 +45547,7 @@
              data_type="uint64"
              units="bytes"
              semantic_type="throughput"
-             equation="C 1 READ 2 C 2 READ UMUL UADD 4 C 3 READ UMUL UADD 8 C 4 READ UMUL UADD 16 C 5 READ UMUL UADD 32 C 6 READ UMUL UADD 64 C 7 READ UMUL UADD"
+             equation="B 2 READ 2 C 1 READ UMUL UADD 4 C 0 READ UMUL UADD 8 B 7 READ UMUL UADD 16 B 6 READ UMUL UADD 32 B 5 READ UMUL UADD 64 B 4 READ UMUL UADD"
              availability="$GtSlice0XeCore1"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
@@ -45351,19 +45560,20 @@
         <register type="NOA" address="0x00009888" value="0x180802B4" />
         <register type="NOA" address="0x00009888" value="0x182802B4" />
         <register type="NOA" address="0x00009888" value="0x04080010" />
-        <register type="NOA" address="0x00009888" value="0x0A080247" />
-        <register type="NOA" address="0x00009888" value="0x0C0802CA" />
-        <register type="NOA" address="0x00009888" value="0x0E08034C" />
-        <register type="NOA" address="0x00009888" value="0x1008000E" />
+        <register type="NOA" address="0x00009888" value="0x0A0801C0" />
+        <register type="NOA" address="0x00009888" value="0x1208030D" />
+        <register type="NOA" address="0x00009888" value="0x1408028B" />
+        <register type="NOA" address="0x00009888" value="0x16080209" />
         <register type="NOA" address="0x00009888" value="0x06080000" />
         <register type="NOA" address="0x00009888" value="0x00080000" />
         <register type="NOA" address="0x00009888" value="0x02080000" />
         <register type="NOA" address="0x00009888" value="0x04280010" />
-        <register type="NOA" address="0x00009888" value="0x102801C0" />
-        <register type="NOA" address="0x00009888" value="0x12280289" />
-        <register type="NOA" address="0x00009888" value="0x1428030B" />
-        <register type="NOA" address="0x00009888" value="0x1628038D" />
+        <register type="NOA" address="0x00009888" value="0x0A280007" />
+        <register type="NOA" address="0x00009888" value="0x0C28030D" />
+        <register type="NOA" address="0x00009888" value="0x0E28028B" />
+        <register type="NOA" address="0x00009888" value="0x10280209" />
         <register type="NOA" address="0x00009888" value="0x06280000" />
+        <register type="NOA" address="0x00009888" value="0x00280000" />
         <register type="NOA" address="0x00009888" value="0x02280000" />
         <register type="NOA" address="0x00009884" value="0x00000004" />
         <register type="NOA" address="0x00009888" value="0x00015550" />
@@ -45371,8 +45581,8 @@
         <register type="NOA" address="0x00009888" value="0x00045550" />
         <register type="NOA" address="0x00009888" value="0x02045555" />
         <register type="NOA" address="0x00009888" value="0x000BFFFC" />
-        <register type="NOA" address="0x00009888" value="0x0009AAA0" />
-        <register type="NOA" address="0x00009888" value="0x0209FFFE" />
+        <register type="NOA" address="0x00009888" value="0x0009FFB0" />
+        <register type="NOA" address="0x00009888" value="0x0209AAAF" />
         <register type="NOA" address="0x00009888" value="0x000AAAA0" />
         <register type="NOA" address="0x00009888" value="0x020AAAAA" />
         <register type="NOA" address="0x00009884" value="0x00000008" />
@@ -45415,6 +45625,7 @@
        symbol_name="Ext509"
        underscore_name="ext509"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="79252877-1dcd-4700-b4bd-58bce74b796d"
        >
     <counter name="GPU Time Elapsed"
@@ -45464,7 +45675,7 @@
              data_type="uint64"
              units="bytes"
              semantic_type="throughput"
-             equation="C 1 READ 2 C 2 READ UMUL UADD 4 C 3 READ UMUL UADD 8 C 4 READ UMUL UADD 16 C 5 READ UMUL UADD 32 C 6 READ UMUL UADD 64 C 7 READ UMUL UADD"
+             equation="C 7 READ 2 C 6 READ UMUL UADD 4 C 5 READ UMUL UADD 8 C 4 READ UMUL UADD 16 C 3 READ UMUL UADD 32 C 2 READ UMUL UADD 64 C 1 READ UMUL UADD"
              availability="$GtSlice0XeCore0"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
@@ -45478,7 +45689,7 @@
              data_type="uint64"
              units="bytes"
              semantic_type="throughput"
-             equation="B 2 READ 2 B 3 READ UMUL UADD 4 B 4 READ UMUL UADD 8 B 5 READ UMUL UADD 16 B 6 READ UMUL UADD 32 B 7 READ UMUL UADD 64 C 0 READ UMUL UADD"
+             equation="C 0 READ 2 B 7 READ UMUL UADD 4 B 6 READ UMUL UADD 8 B 5 READ UMUL UADD 16 B 4 READ UMUL UADD 32 B 3 READ UMUL UADD 64 B 2 READ UMUL UADD"
              availability="$GtSlice0XeCore1"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
@@ -45489,19 +45700,21 @@
         <register type="NOA" address="0x00000D04" value="0x00000200" />
         <register type="NOA" address="0x00009884" value="0x0000000C" />
         <register type="NOA" address="0x00009888" value="0x1C085400" />
+        <register type="NOA" address="0x00009888" value="0x1E080014" />
         <register type="NOA" address="0x00009888" value="0x1C285400" />
-        <register type="NOA" address="0x00009888" value="0x04080008" />
-        <register type="NOA" address="0x00009888" value="0x10080000" />
-        <register type="NOA" address="0x00009888" value="0x12080081" />
-        <register type="NOA" address="0x00009888" value="0x14080103" />
-        <register type="NOA" address="0x00009888" value="0x16080185" />
+        <register type="NOA" address="0x00009888" value="0x1E280014" />
+        <register type="NOA" address="0x00009888" value="0x04080098" />
+        <register type="NOA" address="0x00009888" value="0x10080140" />
+        <register type="NOA" address="0x00009888" value="0x120800C4" />
+        <register type="NOA" address="0x00009888" value="0x14080042" />
+        <register type="NOA" address="0x00009888" value="0x160803C0" />
         <register type="NOA" address="0x00009888" value="0x06080000" />
         <register type="NOA" address="0x00009888" value="0x02080000" />
-        <register type="NOA" address="0x00009888" value="0x04280008" />
-        <register type="NOA" address="0x00009888" value="0x0A280040" />
-        <register type="NOA" address="0x00009888" value="0x0C2800C2" />
-        <register type="NOA" address="0x00009888" value="0x0E280144" />
-        <register type="NOA" address="0x00009888" value="0x10280006" />
+        <register type="NOA" address="0x00009888" value="0x04280098" />
+        <register type="NOA" address="0x00009888" value="0x0A280105" />
+        <register type="NOA" address="0x00009888" value="0x0C280083" />
+        <register type="NOA" address="0x00009888" value="0x0E280001" />
+        <register type="NOA" address="0x00009888" value="0x1028000F" />
         <register type="NOA" address="0x00009888" value="0x06280000" />
         <register type="NOA" address="0x00009888" value="0x00280000" />
         <register type="NOA" address="0x00009888" value="0x02280000" />
@@ -45555,6 +45768,7 @@
        symbol_name="Ext510"
        underscore_name="ext510"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="68ac1770-b062-48cd-94f4-44c6ae16867a"
        >
     <counter name="GPU Time Elapsed"
@@ -45604,7 +45818,7 @@
              data_type="uint64"
              units="bytes"
              semantic_type="throughput"
-             equation="B 2 READ 2 C 7 READ UMUL UADD 4 C 6 READ UMUL UADD 8 C 5 READ UMUL UADD 16 C 4 READ UMUL UADD 32 C 3 READ UMUL UADD 64 C 2 READ UMUL UADD"
+             equation="B 3 READ 2 C 7 READ UMUL UADD 4 C 6 READ UMUL UADD 8 C 5 READ UMUL UADD 16 C 4 READ UMUL UADD 32 C 3 READ UMUL UADD 64 C 2 READ UMUL UADD"
              availability="$GtSlice0XeCore2"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
@@ -45618,7 +45832,7 @@
              data_type="uint64"
              units="bytes"
              semantic_type="throughput"
-             equation="C 1 READ 2 C 0 READ UMUL UADD 4 B 7 READ UMUL UADD 8 B 6 READ UMUL UADD 16 B 5 READ UMUL UADD 32 B 4 READ UMUL UADD 64 B 3 READ UMUL UADD"
+             equation="B 2 READ 2 C 1 READ UMUL UADD 4 C 0 READ UMUL UADD 8 B 7 READ UMUL UADD 16 B 6 READ UMUL UADD 32 B 5 READ UMUL UADD 64 B 4 READ UMUL UADD"
              availability="$GtSlice0XeCore3"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
@@ -45629,30 +45843,30 @@
         <register type="NOA" address="0x00000D04" value="0x00000200" />
         <register type="NOA" address="0x00009884" value="0x0000000C" />
         <register type="NOA" address="0x00009888" value="0x184802B4" />
-        <register type="NOA" address="0x00009888" value="0x18680295" />
+        <register type="NOA" address="0x00009888" value="0x186802B4" />
         <register type="NOA" address="0x00009888" value="0x04480010" />
-        <register type="NOA" address="0x00009888" value="0x0A480007" />
-        <register type="NOA" address="0x00009888" value="0x1248034E" />
-        <register type="NOA" address="0x00009888" value="0x144802CC" />
-        <register type="NOA" address="0x00009888" value="0x1648024A" />
+        <register type="NOA" address="0x00009888" value="0x0A4801C0" />
+        <register type="NOA" address="0x00009888" value="0x1248030D" />
+        <register type="NOA" address="0x00009888" value="0x1448028B" />
+        <register type="NOA" address="0x00009888" value="0x16480209" />
         <register type="NOA" address="0x00009888" value="0x06480000" />
         <register type="NOA" address="0x00009888" value="0x00480000" />
         <register type="NOA" address="0x00009888" value="0x02480000" />
         <register type="NOA" address="0x00009888" value="0x04680010" />
-        <register type="NOA" address="0x00009888" value="0x0A680180" />
-        <register type="NOA" address="0x00009888" value="0x0C680105" />
-        <register type="NOA" address="0x00009888" value="0x0E680083" />
-        <register type="NOA" address="0x00009888" value="0x106803C1" />
+        <register type="NOA" address="0x00009888" value="0x0A680007" />
+        <register type="NOA" address="0x00009888" value="0x0C68030D" />
+        <register type="NOA" address="0x00009888" value="0x0E68028B" />
+        <register type="NOA" address="0x00009888" value="0x10680209" />
         <register type="NOA" address="0x00009888" value="0x06680000" />
         <register type="NOA" address="0x00009888" value="0x00680000" />
         <register type="NOA" address="0x00009888" value="0x02680000" />
         <register type="NOA" address="0x00009884" value="0x00000004" />
-        <register type="NOA" address="0x00009888" value="0x00010030" />
+        <register type="NOA" address="0x00009888" value="0x000100C0" />
         <register type="NOA" address="0x00009888" value="0x0201FFF0" />
-        <register type="NOA" address="0x00009888" value="0x000A0020" />
+        <register type="NOA" address="0x00009888" value="0x000A0080" />
         <register type="NOA" address="0x00009888" value="0x020AAAA0" />
         <register type="NOA" address="0x00009884" value="0x00000008" />
-        <register type="NOA" address="0x00009888" value="0x0002FFE0" />
+        <register type="NOA" address="0x00009888" value="0x0002FFB0" />
         <register type="NOA" address="0x00009888" value="0x0202AAAF" />
         <register type="NOA" address="0x00009884" value="0x00000000" />
         <register type="NOA" address="0x00009888" value="0x0002FFFC" />
@@ -45661,7 +45875,7 @@
         <register type="NOA" address="0x00009888" value="0x0003AAA0" />
         <register type="NOA" address="0x00009888" value="0x0203AAAA" />
         <register type="NOA" address="0x00009888" value="0x56010000" />
-        <register type="NOA" address="0x00009888" value="0x58010400" />
+        <register type="NOA" address="0x00009888" value="0x58010002" />
         <register type="NOA" address="0x00009888" value="0x5A010020" />
         <register type="NOA" address="0x00009888" value="0x5C010402" />
         <register type="NOA" address="0x00009888" value="0x5E010020" />
@@ -45691,6 +45905,7 @@
        symbol_name="Ext511"
        underscore_name="ext511"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="443b8a84-7e77-4e9f-8a2a-56743897cba3"
        >
     <counter name="GPU Time Elapsed"
@@ -45740,7 +45955,7 @@
              data_type="uint64"
              units="bytes"
              semantic_type="throughput"
-             equation="B 2 READ 2 C 7 READ UMUL UADD 4 C 6 READ UMUL UADD 8 C 5 READ UMUL UADD 16 C 4 READ UMUL UADD 32 C 3 READ UMUL UADD 64 C 2 READ UMUL UADD"
+             equation="C 7 READ 2 C 6 READ UMUL UADD 4 C 5 READ UMUL UADD 8 C 4 READ UMUL UADD 16 C 3 READ UMUL UADD 32 C 2 READ UMUL UADD 64 C 1 READ UMUL UADD"
              availability="$GtSlice0XeCore2"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
@@ -45754,7 +45969,7 @@
              data_type="uint64"
              units="bytes"
              semantic_type="throughput"
-             equation="C 1 READ 2 C 0 READ UMUL UADD 4 B 7 READ UMUL UADD 8 B 6 READ UMUL UADD 16 B 5 READ UMUL UADD 32 B 4 READ UMUL UADD 64 B 3 READ UMUL UADD"
+             equation="C 0 READ 2 B 7 READ UMUL UADD 4 B 6 READ UMUL UADD 8 B 5 READ UMUL UADD 16 B 4 READ UMUL UADD 32 B 3 READ UMUL UADD 64 B 2 READ UMUL UADD"
              availability="$GtSlice0XeCore3"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
@@ -45765,31 +45980,30 @@
         <register type="NOA" address="0x00000D04" value="0x00000200" />
         <register type="NOA" address="0x00009884" value="0x0000000C" />
         <register type="NOA" address="0x00009888" value="0x1C485400" />
+        <register type="NOA" address="0x00009888" value="0x1E480014" />
         <register type="NOA" address="0x00009888" value="0x1C685400" />
-        <register type="NOA" address="0x00009888" value="0x04480008" />
-        <register type="NOA" address="0x00009888" value="0x0A480000" />
-        <register type="NOA" address="0x00009888" value="0x12480146" />
-        <register type="NOA" address="0x00009888" value="0x144800C4" />
-        <register type="NOA" address="0x00009888" value="0x16480042" />
+        <register type="NOA" address="0x00009888" value="0x1E680014" />
+        <register type="NOA" address="0x00009888" value="0x04480098" />
+        <register type="NOA" address="0x00009888" value="0x10480140" />
+        <register type="NOA" address="0x00009888" value="0x124800C4" />
+        <register type="NOA" address="0x00009888" value="0x14480042" />
+        <register type="NOA" address="0x00009888" value="0x164803C0" />
         <register type="NOA" address="0x00009888" value="0x06480000" />
-        <register type="NOA" address="0x00009888" value="0x00480000" />
         <register type="NOA" address="0x00009888" value="0x02480000" />
-        <register type="NOA" address="0x00009888" value="0x04680008" />
-        <register type="NOA" address="0x00009888" value="0x0A680180" />
-        <register type="NOA" address="0x00009888" value="0x0C680105" />
-        <register type="NOA" address="0x00009888" value="0x0E680083" />
-        <register type="NOA" address="0x00009888" value="0x10680001" />
+        <register type="NOA" address="0x00009888" value="0x04680098" />
+        <register type="NOA" address="0x00009888" value="0x0A680105" />
+        <register type="NOA" address="0x00009888" value="0x0C680083" />
+        <register type="NOA" address="0x00009888" value="0x0E680001" />
+        <register type="NOA" address="0x00009888" value="0x1068000F" />
         <register type="NOA" address="0x00009888" value="0x06680000" />
         <register type="NOA" address="0x00009888" value="0x00680000" />
         <register type="NOA" address="0x00009888" value="0x02680000" />
         <register type="NOA" address="0x00009884" value="0x00000004" />
-        <register type="NOA" address="0x00009888" value="0x00010030" />
-        <register type="NOA" address="0x00009888" value="0x0201FFF0" />
-        <register type="NOA" address="0x00009888" value="0x000A0020" />
-        <register type="NOA" address="0x00009888" value="0x020AAAA0" />
+        <register type="NOA" address="0x00009888" value="0x0201FFFC" />
+        <register type="NOA" address="0x00009888" value="0x020AAAA8" />
         <register type="NOA" address="0x00009884" value="0x00000008" />
-        <register type="NOA" address="0x00009888" value="0x0002FFE0" />
-        <register type="NOA" address="0x00009888" value="0x0202AAAF" />
+        <register type="NOA" address="0x00009888" value="0x0002FFF0" />
+        <register type="NOA" address="0x00009888" value="0x0202AAAB" />
         <register type="NOA" address="0x00009884" value="0x00000000" />
         <register type="NOA" address="0x00009888" value="0x0002FFFC" />
         <register type="NOA" address="0x00009888" value="0x00015550" />
@@ -45797,12 +46011,12 @@
         <register type="NOA" address="0x00009888" value="0x0003AAA0" />
         <register type="NOA" address="0x00009888" value="0x0203AAAA" />
         <register type="NOA" address="0x00009888" value="0x56010000" />
-        <register type="NOA" address="0x00009888" value="0x58010400" />
+        <register type="NOA" address="0x00009888" value="0x58010402" />
         <register type="NOA" address="0x00009888" value="0x5A010020" />
         <register type="NOA" address="0x00009888" value="0x5C010402" />
         <register type="NOA" address="0x00009888" value="0x5E010020" />
         <register type="NOA" address="0x00009888" value="0x06010000" />
-        <register type="NOA" address="0x00009888" value="0x60010402" />
+        <register type="NOA" address="0x00009888" value="0x60010002" />
         <register type="NOA" address="0x00009888" value="0x4E010000" />
         <register type="NOA" address="0x00009888" value="0x50010000" />
         <register type="NOA" address="0x00009888" value="0x52010000" />
@@ -45827,6 +46041,7 @@
        symbol_name="Ext512"
        underscore_name="ext512"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="68581669-8e57-4ff9-bb70-71a99f8454c8"
        >
     <counter name="GPU Time Elapsed"
@@ -45876,7 +46091,7 @@
              data_type="uint64"
              units="bytes"
              semantic_type="throughput"
-             equation="C 7 READ 2 C 6 READ UMUL UADD 4 C 5 READ UMUL UADD 8 C 4 READ UMUL UADD 16 C 3 READ UMUL UADD 32 C 2 READ UMUL UADD 64 C 1 READ UMUL UADD"
+             equation="B 2 READ 2 C 7 READ UMUL UADD 4 C 6 READ UMUL UADD 8 C 5 READ UMUL UADD 16 C 4 READ UMUL UADD 32 C 3 READ UMUL UADD 64 C 2 READ UMUL UADD"
              availability="$GtSlice1XeCore0"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
@@ -45890,7 +46105,7 @@
              data_type="uint64"
              units="bytes"
              semantic_type="throughput"
-             equation="C 0 READ 2 B 7 READ UMUL UADD 4 B 6 READ UMUL UADD 8 B 5 READ UMUL UADD 16 B 4 READ UMUL UADD 32 B 3 READ UMUL UADD 64 B 2 READ UMUL UADD"
+             equation="B 3 READ 2 C 1 READ UMUL UADD 4 C 0 READ UMUL UADD 8 B 7 READ UMUL UADD 16 B 6 READ UMUL UADD 32 B 5 READ UMUL UADD 64 B 4 READ UMUL UADD"
              availability="$GtSlice1XeCore1"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
@@ -45900,20 +46115,21 @@
     <register_config type="NOA">
         <register type="NOA" address="0x00000D04" value="0x00000200" />
         <register type="NOA" address="0x00009884" value="0x0000000C" />
-        <register type="NOA" address="0x00009888" value="0x18880295" />
-        <register type="NOA" address="0x00009888" value="0x18A80295" />
+        <register type="NOA" address="0x00009888" value="0x188802B4" />
+        <register type="NOA" address="0x00009888" value="0x18A802B4" />
         <register type="NOA" address="0x00009888" value="0x04880010" />
-        <register type="NOA" address="0x00009888" value="0x10880180" />
-        <register type="NOA" address="0x00009888" value="0x12880105" />
-        <register type="NOA" address="0x00009888" value="0x14880083" />
-        <register type="NOA" address="0x00009888" value="0x168803C1" />
+        <register type="NOA" address="0x00009888" value="0x0A880007" />
+        <register type="NOA" address="0x00009888" value="0x1288030D" />
+        <register type="NOA" address="0x00009888" value="0x1488028B" />
+        <register type="NOA" address="0x00009888" value="0x16880209" />
         <register type="NOA" address="0x00009888" value="0x06880000" />
+        <register type="NOA" address="0x00009888" value="0x00880000" />
         <register type="NOA" address="0x00009888" value="0x02880000" />
         <register type="NOA" address="0x00009888" value="0x04A80010" />
-        <register type="NOA" address="0x00009888" value="0x0AA80146" />
-        <register type="NOA" address="0x00009888" value="0x0CA800C4" />
-        <register type="NOA" address="0x00009888" value="0x0EA80042" />
-        <register type="NOA" address="0x00009888" value="0x10A8000F" />
+        <register type="NOA" address="0x00009888" value="0x0AA801C0" />
+        <register type="NOA" address="0x00009888" value="0x0CA8030D" />
+        <register type="NOA" address="0x00009888" value="0x0EA8028B" />
+        <register type="NOA" address="0x00009888" value="0x10A80209" />
         <register type="NOA" address="0x00009888" value="0x06A80000" />
         <register type="NOA" address="0x00009888" value="0x00A80000" />
         <register type="NOA" address="0x00009888" value="0x02A80000" />
@@ -45923,8 +46139,8 @@
         <register type="NOA" address="0x00009888" value="0x00245550" />
         <register type="NOA" address="0x00009888" value="0x02245555" />
         <register type="NOA" address="0x00009888" value="0x002BFFFC" />
-        <register type="NOA" address="0x00009888" value="0x0029FFF0" />
-        <register type="NOA" address="0x00009888" value="0x0229AAAB" />
+        <register type="NOA" address="0x00009888" value="0x0029FFE0" />
+        <register type="NOA" address="0x00009888" value="0x0229AAAF" />
         <register type="NOA" address="0x00009888" value="0x002AAAA0" />
         <register type="NOA" address="0x00009888" value="0x022AAAAA" />
         <register type="NOA" address="0x00009884" value="0x00000008" />
@@ -45969,6 +46185,7 @@
        symbol_name="Ext513"
        underscore_name="ext513"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="1b49d31f-4d7c-4dd7-ad31-030ccb59649e"
        >
     <counter name="GPU Time Elapsed"
@@ -46043,19 +46260,21 @@
         <register type="NOA" address="0x00000D04" value="0x00000200" />
         <register type="NOA" address="0x00009884" value="0x0000000C" />
         <register type="NOA" address="0x00009888" value="0x1C885400" />
+        <register type="NOA" address="0x00009888" value="0x1E880014" />
         <register type="NOA" address="0x00009888" value="0x1CA85400" />
-        <register type="NOA" address="0x00009888" value="0x04880008" />
-        <register type="NOA" address="0x00009888" value="0x10880180" />
-        <register type="NOA" address="0x00009888" value="0x12880105" />
-        <register type="NOA" address="0x00009888" value="0x14880083" />
-        <register type="NOA" address="0x00009888" value="0x16880001" />
+        <register type="NOA" address="0x00009888" value="0x1EA80014" />
+        <register type="NOA" address="0x00009888" value="0x04880098" />
+        <register type="NOA" address="0x00009888" value="0x10880140" />
+        <register type="NOA" address="0x00009888" value="0x128800C4" />
+        <register type="NOA" address="0x00009888" value="0x14880042" />
+        <register type="NOA" address="0x00009888" value="0x168803C0" />
         <register type="NOA" address="0x00009888" value="0x06880000" />
         <register type="NOA" address="0x00009888" value="0x02880000" />
-        <register type="NOA" address="0x00009888" value="0x04A80008" />
-        <register type="NOA" address="0x00009888" value="0x0AA80146" />
-        <register type="NOA" address="0x00009888" value="0x0CA800C4" />
-        <register type="NOA" address="0x00009888" value="0x0EA80042" />
-        <register type="NOA" address="0x00009888" value="0x10A80000" />
+        <register type="NOA" address="0x00009888" value="0x04A80098" />
+        <register type="NOA" address="0x00009888" value="0x0AA80105" />
+        <register type="NOA" address="0x00009888" value="0x0CA80083" />
+        <register type="NOA" address="0x00009888" value="0x0EA80001" />
+        <register type="NOA" address="0x00009888" value="0x10A8000F" />
         <register type="NOA" address="0x00009888" value="0x06A80000" />
         <register type="NOA" address="0x00009888" value="0x00A80000" />
         <register type="NOA" address="0x00009888" value="0x02A80000" />
@@ -46111,6 +46330,7 @@
        symbol_name="Ext514"
        underscore_name="ext514"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="1b0ce68b-c301-4d05-8659-85fad0825057"
        >
     <counter name="GPU Time Elapsed"
@@ -46160,7 +46380,7 @@
              data_type="uint64"
              units="bytes"
              semantic_type="throughput"
-             equation="C 7 READ 2 C 6 READ UMUL UADD 4 C 5 READ UMUL UADD 8 C 4 READ UMUL UADD 16 C 3 READ UMUL UADD 32 C 2 READ UMUL UADD 64 C 1 READ UMUL UADD"
+             equation="B 2 READ 2 C 7 READ UMUL UADD 4 C 6 READ UMUL UADD 8 C 5 READ UMUL UADD 16 C 4 READ UMUL UADD 32 C 3 READ UMUL UADD 64 C 2 READ UMUL UADD"
              availability="$GtSlice1XeCore2"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
@@ -46174,7 +46394,7 @@
              data_type="uint64"
              units="bytes"
              semantic_type="throughput"
-             equation="C 0 READ 2 B 7 READ UMUL UADD 4 B 6 READ UMUL UADD 8 B 5 READ UMUL UADD 16 B 4 READ UMUL UADD 32 B 3 READ UMUL UADD 64 B 2 READ UMUL UADD"
+             equation="B 3 READ 2 C 1 READ UMUL UADD 4 C 0 READ UMUL UADD 8 B 7 READ UMUL UADD 16 B 6 READ UMUL UADD 32 B 5 READ UMUL UADD 64 B 4 READ UMUL UADD"
              availability="$GtSlice1XeCore3"
              mdapi_group="GPU"
              mdapi_usage_flags="Frame Batch Draw"
@@ -46184,29 +46404,32 @@
     <register_config type="NOA">
         <register type="NOA" address="0x00000D04" value="0x00000200" />
         <register type="NOA" address="0x00009884" value="0x0000000C" />
-        <register type="NOA" address="0x00009888" value="0x18C80295" />
-        <register type="NOA" address="0x00009888" value="0x18E80295" />
+        <register type="NOA" address="0x00009888" value="0x18C802B4" />
+        <register type="NOA" address="0x00009888" value="0x18E802B4" />
         <register type="NOA" address="0x00009888" value="0x04C80010" />
-        <register type="NOA" address="0x00009888" value="0x10C80180" />
-        <register type="NOA" address="0x00009888" value="0x12C80105" />
-        <register type="NOA" address="0x00009888" value="0x14C80083" />
-        <register type="NOA" address="0x00009888" value="0x16C803C1" />
+        <register type="NOA" address="0x00009888" value="0x0AC80007" />
+        <register type="NOA" address="0x00009888" value="0x12C8030D" />
+        <register type="NOA" address="0x00009888" value="0x14C8028B" />
+        <register type="NOA" address="0x00009888" value="0x16C80209" />
         <register type="NOA" address="0x00009888" value="0x06C80000" />
+        <register type="NOA" address="0x00009888" value="0x00C80000" />
         <register type="NOA" address="0x00009888" value="0x02C80000" />
         <register type="NOA" address="0x00009888" value="0x04E80010" />
-        <register type="NOA" address="0x00009888" value="0x0AE80146" />
-        <register type="NOA" address="0x00009888" value="0x0CE800C4" />
-        <register type="NOA" address="0x00009888" value="0x0EE80042" />
-        <register type="NOA" address="0x00009888" value="0x10E8000F" />
+        <register type="NOA" address="0x00009888" value="0x0AE801C0" />
+        <register type="NOA" address="0x00009888" value="0x0CE8030D" />
+        <register type="NOA" address="0x00009888" value="0x0EE8028B" />
+        <register type="NOA" address="0x00009888" value="0x10E80209" />
         <register type="NOA" address="0x00009888" value="0x06E80000" />
         <register type="NOA" address="0x00009888" value="0x00E80000" />
         <register type="NOA" address="0x00009888" value="0x02E80000" />
         <register type="NOA" address="0x00009884" value="0x00000004" />
-        <register type="NOA" address="0x00009888" value="0x0221FFFC" />
-        <register type="NOA" address="0x00009888" value="0x022AAAA8" />
+        <register type="NOA" address="0x00009888" value="0x00210030" />
+        <register type="NOA" address="0x00009888" value="0x0221FFF0" />
+        <register type="NOA" address="0x00009888" value="0x002A0020" />
+        <register type="NOA" address="0x00009888" value="0x022AAAA0" />
         <register type="NOA" address="0x00009884" value="0x00000008" />
-        <register type="NOA" address="0x00009888" value="0x0082FFF0" />
-        <register type="NOA" address="0x00009888" value="0x0282AAAB" />
+        <register type="NOA" address="0x00009888" value="0x0082FFE0" />
+        <register type="NOA" address="0x00009888" value="0x0282AAAF" />
         <register type="NOA" address="0x00009884" value="0x00000000" />
         <register type="NOA" address="0x00009888" value="0x0005FFFC" />
         <register type="NOA" address="0x00009888" value="0x0002FFFC" />
@@ -46216,12 +46439,12 @@
         <register type="NOA" address="0x00009888" value="0x02035555" />
         <register type="NOA" address="0x00009888" value="0x0004FFFC" />
         <register type="NOA" address="0x00009888" value="0x56010000" />
-        <register type="NOA" address="0x00009888" value="0x58010402" />
+        <register type="NOA" address="0x00009888" value="0x58010400" />
         <register type="NOA" address="0x00009888" value="0x5A010020" />
         <register type="NOA" address="0x00009888" value="0x5C010402" />
         <register type="NOA" address="0x00009888" value="0x5E010020" />
         <register type="NOA" address="0x00009888" value="0x06010000" />
-        <register type="NOA" address="0x00009888" value="0x60010002" />
+        <register type="NOA" address="0x00009888" value="0x60010402" />
         <register type="NOA" address="0x00009888" value="0x4E010000" />
         <register type="NOA" address="0x00009888" value="0x50010000" />
         <register type="NOA" address="0x00009888" value="0x52010000" />
@@ -46246,6 +46469,7 @@
        symbol_name="Ext515"
        underscore_name="ext515"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="fde32e67-1a87-4946-bf96-c1ff68105749"
        >
     <counter name="GPU Time Elapsed"
@@ -46320,19 +46544,21 @@
         <register type="NOA" address="0x00000D04" value="0x00000200" />
         <register type="NOA" address="0x00009884" value="0x0000000C" />
         <register type="NOA" address="0x00009888" value="0x1CC85400" />
+        <register type="NOA" address="0x00009888" value="0x1EC80014" />
         <register type="NOA" address="0x00009888" value="0x1CE85400" />
-        <register type="NOA" address="0x00009888" value="0x04C80008" />
-        <register type="NOA" address="0x00009888" value="0x10C80180" />
-        <register type="NOA" address="0x00009888" value="0x12C80105" />
-        <register type="NOA" address="0x00009888" value="0x14C80083" />
-        <register type="NOA" address="0x00009888" value="0x16C80001" />
+        <register type="NOA" address="0x00009888" value="0x1EE80014" />
+        <register type="NOA" address="0x00009888" value="0x04C80098" />
+        <register type="NOA" address="0x00009888" value="0x10C80140" />
+        <register type="NOA" address="0x00009888" value="0x12C800C4" />
+        <register type="NOA" address="0x00009888" value="0x14C80042" />
+        <register type="NOA" address="0x00009888" value="0x16C803C0" />
         <register type="NOA" address="0x00009888" value="0x06C80000" />
         <register type="NOA" address="0x00009888" value="0x02C80000" />
-        <register type="NOA" address="0x00009888" value="0x04E80008" />
-        <register type="NOA" address="0x00009888" value="0x0AE80146" />
-        <register type="NOA" address="0x00009888" value="0x0CE800C4" />
-        <register type="NOA" address="0x00009888" value="0x0EE80042" />
-        <register type="NOA" address="0x00009888" value="0x10E80000" />
+        <register type="NOA" address="0x00009888" value="0x04E80098" />
+        <register type="NOA" address="0x00009888" value="0x0AE80105" />
+        <register type="NOA" address="0x00009888" value="0x0CE80083" />
+        <register type="NOA" address="0x00009888" value="0x0EE80001" />
+        <register type="NOA" address="0x00009888" value="0x10E8000F" />
         <register type="NOA" address="0x00009888" value="0x06E80000" />
         <register type="NOA" address="0x00009888" value="0x00E80000" />
         <register type="NOA" address="0x00009888" value="0x02E80000" />
@@ -46381,6 +46607,7 @@
        symbol_name="Ext516"
        underscore_name="ext516"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="bf950c5b-7250-47f4-aa59-d97b22db02ff"
        >
     <counter name="GPU Time Elapsed"
@@ -46519,6 +46746,7 @@
        symbol_name="Ext517"
        underscore_name="ext517"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="9027ff05-4348-4061-a434-0befaba7c379"
        >
     <counter name="GPU Time Elapsed"
@@ -46657,6 +46885,7 @@
        symbol_name="Ext518"
        underscore_name="ext518"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="6ad0dee9-17bf-4b54-8b70-e30afcc8710b"
        >
     <counter name="GPU Time Elapsed"
@@ -46795,6 +47024,7 @@
        symbol_name="Ext519"
        underscore_name="ext519"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="2c2ecec8-7f33-475c-9ca4-a7e89f949f58"
        >
     <counter name="GPU Time Elapsed"
@@ -46933,6 +47163,7 @@
        symbol_name="Ext520"
        underscore_name="ext520"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="d866e2a8-310e-4691-9edc-f7263b8d5c07"
        >
     <counter name="GPU Time Elapsed"
@@ -47066,6 +47297,7 @@
        symbol_name="Ext521"
        underscore_name="ext521"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="e5a95c15-d54f-4d4f-bbe2-533240392df3"
        >
     <counter name="GPU Time Elapsed"
@@ -47199,6 +47431,7 @@
        symbol_name="Ext522"
        underscore_name="ext522"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="bba76095-18aa-447d-9a79-00461a06f233"
        >
     <counter name="GPU Time Elapsed"
@@ -47327,6 +47560,7 @@
        symbol_name="Ext523"
        underscore_name="ext523"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="724a5073-2463-4f7f-aecb-7cdd90c831e1"
        >
     <counter name="GPU Time Elapsed"
@@ -47455,6 +47689,7 @@
        symbol_name="Ext524"
        underscore_name="ext524"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="3b94a07f-e4d8-4cf2-969e-ea19bb253a8c"
        >
     <counter name="GPU Time Elapsed"
@@ -47595,6 +47830,7 @@
        symbol_name="Ext525"
        underscore_name="ext525"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="f4399df4-e808-4a0a-85ff-0c66f9c9e8a4"
        >
     <counter name="GPU Time Elapsed"
@@ -47735,6 +47971,7 @@
        symbol_name="Ext526"
        underscore_name="ext526"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="f588aa78-c29a-4187-9818-480b12d5b076"
        >
     <counter name="GPU Time Elapsed"
@@ -47875,6 +48112,7 @@
        symbol_name="Ext527"
        underscore_name="ext527"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="c0a38cc9-f0e9-40f5-9c1e-a4d7eba30825"
        >
     <counter name="GPU Time Elapsed"
@@ -48015,6 +48253,7 @@
        symbol_name="Ext528"
        underscore_name="ext528"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="1cb1d3ff-ff5d-4c9b-84c9-89b9d235be36"
        >
     <counter name="GPU Time Elapsed"
@@ -48150,6 +48389,7 @@
        symbol_name="Ext529"
        underscore_name="ext529"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="4491913e-99ed-4420-9575-75ab7a82c45d"
        >
     <counter name="GPU Time Elapsed"
@@ -48285,6 +48525,7 @@
        symbol_name="Ext530"
        underscore_name="ext530"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="4fe2fe09-1ef2-45ff-87f5-e789f8405713"
        >
     <counter name="GPU Time Elapsed"
@@ -48415,6 +48656,7 @@
        symbol_name="Ext531"
        underscore_name="ext531"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="856f213d-954d-4b0a-be6c-307b41d39b18"
        >
     <counter name="GPU Time Elapsed"
@@ -48545,6 +48787,7 @@
        symbol_name="Ext540"
        underscore_name="ext540"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="03eb9c9b-72ee-4c7b-930b-6211dbb60503"
        >
     <counter name="GPU Time Elapsed"
@@ -48681,6 +48924,7 @@
        symbol_name="Ext541"
        underscore_name="ext541"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="e3bef1e9-f563-4927-9ce8-1be6e151448c"
        >
     <counter name="GPU Time Elapsed"
@@ -48817,6 +49061,7 @@
        symbol_name="Ext542"
        underscore_name="ext542"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="de587fdf-1740-4816-a5c0-08c1cb6b43eb"
        >
     <counter name="GPU Time Elapsed"
@@ -48948,6 +49193,7 @@
        symbol_name="Ext543"
        underscore_name="ext543"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="cea536f3-f7ef-449c-91fe-42c721e54b52"
        >
     <counter name="GPU Time Elapsed"
@@ -49074,6 +49320,7 @@
        symbol_name="Ext544"
        underscore_name="ext544"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="c3586bbc-f20b-4ffc-bd62-21ea68c161f4"
        >
     <counter name="GPU Time Elapsed"
@@ -49212,6 +49459,7 @@
        symbol_name="Ext545"
        underscore_name="ext545"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="f3d6345a-b760-4433-844e-e35204b44e09"
        >
     <counter name="GPU Time Elapsed"
@@ -49350,6 +49598,7 @@
        symbol_name="Ext546"
        underscore_name="ext546"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="f5448b6d-cb2a-4aad-804e-b1a285299582"
        >
     <counter name="GPU Time Elapsed"
@@ -49483,6 +49732,7 @@
        symbol_name="Ext547"
        underscore_name="ext547"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="7b8b6c53-abff-4570-b413-91cc843181d8"
        >
     <counter name="GPU Time Elapsed"
@@ -49611,6 +49861,7 @@
        symbol_name="Ext604"
        underscore_name="ext604"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="b83befed-d2db-4806-907c-3f952798e117"
        >
     <counter name="GPU Time Elapsed"
@@ -49996,6 +50247,7 @@
        symbol_name="Ext1000"
        underscore_name="ext1000"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="0d368afb-b8fd-425d-a704-9a45eaaaed3d"
        >
     <counter name="GPU Time Elapsed"
@@ -50342,6 +50594,7 @@
        symbol_name="Ext1001"
        underscore_name="ext1001"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="08bee982-b34c-49c1-bf0c-93c1949ffbe7"
        >
     <counter name="GPU Time Elapsed"
@@ -50745,6 +50998,7 @@
        symbol_name="Ext1002"
        underscore_name="ext1002"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="845617a9-5a17-4f1f-9a6f-61ff844065e4"
        >
     <counter name="GPU Time Elapsed"
@@ -51063,6 +51317,7 @@
        symbol_name="Ext1003"
        underscore_name="ext1003"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="24e3b1a8-b80e-4c8c-ab21-83640d78f896"
        >
     <counter name="GPU Time Elapsed"
@@ -51410,6 +51665,7 @@
        symbol_name="Ext1004"
        underscore_name="ext1004"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="974d6469-d51f-4e4a-a393-32033f9b562e"
        >
     <counter name="GPU Time Elapsed"
@@ -51757,6 +52013,7 @@
        symbol_name="Ext1005"
        underscore_name="ext1005"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="c172fb87-e53f-468d-893a-d8528684accc"
        >
     <counter name="GPU Time Elapsed"
@@ -52160,6 +52417,7 @@
        symbol_name="Ext1006"
        underscore_name="ext1006"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="f739508f-51b2-48df-839c-e92c14d14c64"
        >
     <counter name="GPU Time Elapsed"
@@ -52506,6 +52764,7 @@
        symbol_name="Ext1007"
        underscore_name="ext1007"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="926b1773-807e-4ee5-8561-30c9eb0a6344"
        >
     <counter name="GPU Time Elapsed"
@@ -52795,6 +53054,7 @@
        symbol_name="Ext1010"
        underscore_name="ext1010"
        mdapi_supported_apis="VK OGL OCL IO"
+       oa_format="256B_GENERIC_NOA16"
        hw_config_guid="82f69b49-772a-4169-bf9a-b1ef08e0823b"
        >
     <counter name="GPU Time Elapsed"
@@ -52914,4 +53174,656 @@
     </register_config>
   </set>
 
+  <set name="MediaSet1"
+       chipset="MTLGT3"
+       symbol_name="MediaSet1"
+       underscore_name="media_set1"
+       mdapi_supported_apis="IO"
+       oa_format="128B_MPEC8_NOA16"
+       hw_config_guid="4d9b2817-19b9-4461-a54b-dc9fdb7d69cb"
+       >
+    <counter name="GPU Time Elapsed"
+             symbol_name="GpuTime"
+             underscore_name="gpu_time"
+             description="GPU Time Elapsed"
+             data_type="uint64"
+             units="ns"
+             semantic_type="event"
+             equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Overview System Batch"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="GPU Core Clocks"
+             symbol_name="GpuCoreClocks"
+             underscore_name="gpu_core_clocks"
+             description="The total number of GPU core clocks elapsed during the measurement."
+             data_type="uint64"
+             units="cycles"
+             semantic_type="event"
+             equation="GPU_CLOCK 0 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="AVG GPU Core Frequency"
+             symbol_name="AvgGpuCoreFrequency"
+             underscore_name="avg_gpu_core_frequency"
+             description="Average GPU Core Frequency in the measurement."
+             data_type="uint64"
+             max_equation="$GpuMaxFrequency"
+             units="hz"
+             semantic_type="event"
+             equation="$GpuCoreClocks 1000000000 UMUL $GpuTime UDIV"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="VIDEO_DECODE_BOX0_READ_REQUEST"
+             symbol_name="VIDEO_DECODE_BOX0_READ_REQUEST"
+             underscore_name="video_decode_box0_read_request"
+             description="Number of VDBOX0 read requests"
+             data_type="uint64"
+             units="messages"
+             semantic_type="event"
+             equation="A 0 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="VIDEO_DECODE_BOX0_WRITE_REQUEST"
+             symbol_name="VIDEO_DECODE_BOX0_WRITE_REQUEST"
+             underscore_name="video_decode_box0_write_request"
+             description="Number of VDBOX0 write requests"
+             data_type="uint64"
+             units="messages"
+             semantic_type="event"
+             equation="A 1 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="VIDEO_DECODE_BOX1_READ_REQUEST"
+             symbol_name="VIDEO_DECODE_BOX1_READ_REQUEST"
+             underscore_name="video_decode_box1_read_request"
+             description="Number of VDBOX1 read requests"
+             data_type="uint64"
+             units="messages"
+             semantic_type="event"
+             equation="A 2 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="VIDEO_DECODE_BOX1_WRITE_REQUEST"
+             symbol_name="VIDEO_DECODE_BOX1_WRITE_REQUEST"
+             underscore_name="video_decode_box1_write_request"
+             description="Number of VDBOX1 write requests"
+             data_type="uint64"
+             units="messages"
+             semantic_type="event"
+             equation="A 3 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="VIDEO_ENHANCEMENT_BOX0_READ_REQUEST"
+             symbol_name="VIDEO_ENHANCEMENT_BOX0_READ_REQUEST"
+             underscore_name="video_enhancement_box0_read_request"
+             description="Number of VEBOX0 read requests"
+             data_type="uint64"
+             units="messages"
+             semantic_type="event"
+             equation="A 4 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="VIDEO_ENHANCEMENT_BOX0_WRITE_REQUEST"
+             symbol_name="VIDEO_ENHANCEMENT_BOX0_WRITE_REQUEST"
+             underscore_name="video_enhancement_box0_write_request"
+             description="Number of VEBOX0 write requests"
+             data_type="uint64"
+             units="messages"
+             semantic_type="event"
+             equation="A 5 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="VIDEO_ENHANCEMENT_BOX1_READ_REQUEST"
+             symbol_name="VIDEO_ENHANCEMENT_BOX1_READ_REQUEST"
+             underscore_name="video_enhancement_box1_read_request"
+             description="Number of VEBOX1 read requests"
+             data_type="uint64"
+             units="messages"
+             semantic_type="event"
+             equation="A 6 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="VIDEO_ENHANCEMENT_BOX1_WRITE_REQUEST"
+             symbol_name="VIDEO_ENHANCEMENT_BOX1_WRITE_REQUEST"
+             underscore_name="video_enhancement_box1_write_request"
+             description="Number of VEBOX1 write requests"
+             data_type="uint64"
+             units="messages"
+             semantic_type="event"
+             equation="A 7 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <register_config type="OA">
+        <register type="OA" address="0x00393200" value="0x00000201" />
+        <register type="OA" address="0x00393204" value="0x00000000" />
+        <register type="OA" address="0x00393208" value="0x00000202" />
+        <register type="OA" address="0x0039320C" value="0x00000000" />
+        <register type="OA" address="0x00393210" value="0x00000401" />
+        <register type="OA" address="0x00393214" value="0x00000000" />
+        <register type="OA" address="0x00393218" value="0x00000402" />
+        <register type="OA" address="0x0039321C" value="0x00000000" />
+        <register type="OA" address="0x00393220" value="0x00002201" />
+        <register type="OA" address="0x00393224" value="0x00000000" />
+        <register type="OA" address="0x00393228" value="0x00002202" />
+        <register type="OA" address="0x0039322C" value="0x00000000" />
+        <register type="OA" address="0x00393230" value="0x00002401" />
+        <register type="OA" address="0x00393234" value="0x00000000" />
+        <register type="OA" address="0x00393238" value="0x00002402" />
+        <register type="OA" address="0x0039323C" value="0x00000000" />
+        <register type="OA" address="0x00393034" value="0x00000000" />
+    </register_config>
+  </set>
+
+  <set name="MediaSet2"
+       chipset="MTLGT3"
+       symbol_name="MediaSet2"
+       underscore_name="media_set2"
+       mdapi_supported_apis="IO"
+       oa_format="128B_MPEC8_NOA16"
+       hw_config_guid="651a6694-0ac1-4bd5-a4a1-94bcf479d4f4"
+       >
+    <counter name="GPU Time Elapsed"
+             symbol_name="GpuTime"
+             underscore_name="gpu_time"
+             description="GPU Time Elapsed"
+             data_type="uint64"
+             units="ns"
+             semantic_type="event"
+             equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Overview System Batch"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="GPU Core Clocks"
+             symbol_name="GpuCoreClocks"
+             underscore_name="gpu_core_clocks"
+             description="The total number of GPU core clocks elapsed during the measurement."
+             data_type="uint64"
+             units="cycles"
+             semantic_type="event"
+             equation="GPU_CLOCK 0 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="AVG GPU Core Frequency"
+             symbol_name="AvgGpuCoreFrequency"
+             underscore_name="avg_gpu_core_frequency"
+             description="Average GPU Core Frequency in the measurement."
+             data_type="uint64"
+             max_equation="$GpuMaxFrequency"
+             units="hz"
+             semantic_type="event"
+             equation="$GpuCoreClocks 1000000000 UMUL $GpuTime UDIV"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="MEDIA_READ_REQUEST"
+             symbol_name="MEDIA_READ_REQUEST"
+             underscore_name="media_read_request"
+             description="Number of read requests from stand alone media "
+             data_type="uint64"
+             units="messages"
+             semantic_type="event"
+             equation="A 0 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="MEDIA_WRITE_REQUEST"
+             symbol_name="MEDIA_WRITE_REQUEST"
+             underscore_name="media_write_request"
+             description="Number of write requests from stand alone media "
+             data_type="uint64"
+             units="messages"
+             semantic_type="event"
+             equation="A 1 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="COMMAND PARSER VIDEO DECODE_ENGINE0 BUSY"
+             symbol_name="COMMAND_PARSER_VIDEO_DECODE_ENGINE0_BUSY"
+             underscore_name="command_parser_video_decode_engine0_busy"
+             description="Percentage of time in which there is a context loaded and active on the media VDBOX0"
+             data_type="float"
+             max_equation="100"
+             units="percent"
+             semantic_type="duration"
+             equation="A 2 READ 100 UMUL $GpuCoreClocks FDIV"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="COMMAND_PARSER_VIDEO_DECODE_ENGINE1_BUSY"
+             symbol_name="COMMAND_PARSER_VIDEO_DECODE_ENGINE1_BUSY"
+             underscore_name="command_parser_video_decode_engine1_busy"
+             description="Percentage of time in which there is a context loaded and active on the media VDBOX1"
+             data_type="float"
+             max_equation="100"
+             units="percent"
+             semantic_type="duration"
+             equation="A 3 READ 100 UMUL $GpuCoreClocks FDIV"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="COMMAND_PARSER_VIDEO_ENHANCEMENT_ENGINE0_BUSY"
+             symbol_name="COMMAND_PARSER_VIDEO_ENHANCEMENT_ENGINE0_BUSY"
+             underscore_name="command_parser_video_enhancement_engine0_busy"
+             description="Percentage of time in which there is a context loaded and active on the media VEBOX0"
+             data_type="float"
+             max_equation="100"
+             units="percent"
+             semantic_type="duration"
+             equation="A 4 READ 100 UMUL $GpuCoreClocks FDIV"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="COMMAND_PARSER_VIDEO_ENHANCEMENT_ENGINE1_BUSY"
+             symbol_name="COMMAND_PARSER_VIDEO_ENHANCEMENT_ENGINE1_BUSY"
+             underscore_name="command_parser_video_enhancement_engine1_busy"
+             description="Percentage of time in which there is a context loaded and active on the media VEBOX0"
+             data_type="float"
+             max_equation="100"
+             units="percent"
+             semantic_type="duration"
+             equation="A 5 READ 100 UMUL $GpuCoreClocks FDIV"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="COMMAND_PARSER_GRAPHICS_SECURITY_CONTROLLER_BUSY"
+             symbol_name="COMMAND_PARSER_GRAPHICS_SECURITY_CONTROLLER_BUSY"
+             underscore_name="command_parser_graphics_security_controller_busy"
+             description="Percentage of time in which Graphics Security Controller is active."
+             data_type="float"
+             max_equation="100"
+             units="percent"
+             semantic_type="duration"
+             equation="A 6 READ 100 UMUL $GpuCoreClocks FDIV"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <register_config type="OA">
+        <register type="OA" address="0x00393200" value="0x00000001" />
+        <register type="OA" address="0x00393204" value="0x00000000" />
+        <register type="OA" address="0x00393208" value="0x00000002" />
+        <register type="OA" address="0x0039320C" value="0x00000000" />
+        <register type="OA" address="0x00393210" value="0x00000200" />
+        <register type="OA" address="0x00393214" value="0x00000000" />
+        <register type="OA" address="0x00393218" value="0x00000400" />
+        <register type="OA" address="0x0039321C" value="0x00000000" />
+        <register type="OA" address="0x00393220" value="0x00002200" />
+        <register type="OA" address="0x00393224" value="0x00000000" />
+        <register type="OA" address="0x00393228" value="0x00002400" />
+        <register type="OA" address="0x0039322C" value="0x00000000" />
+        <register type="OA" address="0x00393230" value="0x00000003" />
+        <register type="OA" address="0x00393234" value="0x00000000" />
+        <register type="OA" address="0x00393034" value="0x00000000" />
+    </register_config>
+  </set>
+
+  <set name="TestOam"
+       chipset="MTLGT3"
+       symbol_name="TestOam"
+       underscore_name="test_oam"
+       mdapi_supported_apis="IO"
+       oa_format="128B_MPEC8_NOA16"
+       hw_config_guid="bac01106-5869-489c-a306-67303a434173"
+       >
+    <counter name="GPU Time Elapsed"
+             symbol_name="GpuTime"
+             underscore_name="gpu_time"
+             description="GPU Time Elapsed"
+             data_type="uint64"
+             units="ns"
+             semantic_type="event"
+             equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Overview System Batch"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="GPU Core Clocks"
+             symbol_name="GpuCoreClocks"
+             underscore_name="gpu_core_clocks"
+             description="The total number of GPU core clocks elapsed during the measurement."
+             data_type="uint64"
+             units="cycles"
+             semantic_type="event"
+             equation="GPU_CLOCK 0 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="AVG GPU Core Frequency"
+             symbol_name="AvgGpuCoreFrequency"
+             underscore_name="avg_gpu_core_frequency"
+             description="Average GPU Core Frequency in the measurement."
+             data_type="uint64"
+             max_equation="$GpuMaxFrequency"
+             units="hz"
+             semantic_type="event"
+             equation="$GpuCoreClocks 1000000000 UMUL $GpuTime UDIV"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="TestCounter0"
+             symbol_name="Counter0"
+             underscore_name="counter0"
+             description="HW test counter 0. Factor: 0.0"
+             data_type="uint64"
+             units="events"
+             semantic_type="event"
+             equation="B 0 READ"
+             mdapi_group="Test"
+             mdapi_usage_flags="Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="TestCounter1"
+             symbol_name="Counter1"
+             underscore_name="counter1"
+             description="HW test counter 1. Factor: 1.0"
+             data_type="uint64"
+             units="events"
+             semantic_type="event"
+             equation="B 1 READ"
+             mdapi_group="Test"
+             mdapi_usage_flags="Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="TestCounter2"
+             symbol_name="Counter2"
+             underscore_name="counter2"
+             description="HW test counter 2. Factor: 1.0"
+             data_type="uint64"
+             units="events"
+             semantic_type="event"
+             equation="B 2 READ"
+             mdapi_group="Test"
+             mdapi_usage_flags="Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="TestCounter3"
+             symbol_name="Counter3"
+             underscore_name="counter3"
+             description="HW test counter 3. Factor: 0.5"
+             data_type="uint64"
+             units="events"
+             semantic_type="event"
+             equation="B 3 READ"
+             mdapi_group="Test"
+             mdapi_usage_flags="Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="TestCounter4"
+             symbol_name="Counter4"
+             underscore_name="counter4"
+             description="HW test counter 4. Factor: 0.3333"
+             data_type="uint64"
+             units="events"
+             semantic_type="event"
+             equation="B 4 READ"
+             mdapi_group="Test"
+             mdapi_usage_flags="Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="TestCounter5"
+             symbol_name="Counter5"
+             underscore_name="counter5"
+             description="HW test counter 5. Factor: 0.3333"
+             data_type="uint64"
+             units="events"
+             semantic_type="event"
+             equation="B 5 READ"
+             mdapi_group="Test"
+             mdapi_usage_flags="Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="TestCounter6"
+             symbol_name="Counter6"
+             underscore_name="counter6"
+             description="HW test counter 6. Factor: 0.16666"
+             data_type="uint64"
+             units="events"
+             semantic_type="event"
+             equation="B 6 READ"
+             mdapi_group="Test"
+             mdapi_usage_flags="Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="TestCounter8"
+             symbol_name="Counter8"
+             underscore_name="counter8"
+             description="TestCounter8"
+             data_type="uint64"
+             units="events"
+             semantic_type="event"
+             equation="C 0 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="VIDEO_DECODE_BOX0_WRITE_REQUEST_VISA"
+             symbol_name="VIDEO_DECODE_BOX0_WRITE_REQUEST_VISA"
+             underscore_name="video_decode_box0_write_request_visa"
+             description="Number of VDBOX0 write requests"
+             data_type="uint64"
+             units="messages"
+             semantic_type="event"
+             equation="C 1 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="VIDEO_DECODE_BOX0_READ_REQUEST_VISA"
+             symbol_name="VIDEO_DECODE_BOX0_READ_REQUEST_VISA"
+             underscore_name="video_decode_box0_read_request_visa"
+             description="Number of VDBOX0 read requests"
+             data_type="uint64"
+             units="messages"
+             semantic_type="event"
+             equation="B 7 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Frame Batch Draw"
+             mdapi_supported_apis=""
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="VIDEO_DECODE_BOX0_READ_REQUEST_MPEC"
+             symbol_name="VIDEO_DECODE_BOX0_READ_REQUEST_MPEC"
+             underscore_name="video_decode_box0_read_request_mpec"
+             description="Number of VDBOX0 read requests"
+             data_type="uint64"
+             units="messages"
+             semantic_type="event"
+             equation="A 0 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <counter name="VIDEO_DECODE_BOX0_WRITE_REQUEST_MPEC"
+             symbol_name="VIDEO_DECODE_BOX0_WRITE_REQUEST_MPEC"
+             underscore_name="video_decode_box0_write_request_mpec"
+             description="Number of VDBOX0 write requests"
+             data_type="uint64"
+             units="messages"
+             semantic_type="event"
+             equation="A 1 READ"
+             mdapi_group="GPU"
+             mdapi_usage_flags="Tier1 Frame Batch Draw"
+             mdapi_supported_apis="IO"
+             mdapi_hw_unit_type="gpu"
+             />
+    <register_config type="NOA">
+        <register type="NOA" address="0x0038D114" value="0x00000003" />
+        <register type="NOA" address="0x0038D100" value="0x00000DE0" />
+        <register type="NOA" address="0x0038D104" value="0x00000001" />
+        <register type="NOA" address="0x0038D100" value="0x00000DE2" />
+        <register type="NOA" address="0x0038D104" value="0x00000001" />
+        <register type="NOA" address="0x0038D100" value="0x000001C0" />
+        <register type="NOA" address="0x0038D104" value="0x00000001" />
+        <register type="NOA" address="0x0038D100" value="0x000001C1" />
+        <register type="NOA" address="0x0038D104" value="0x00000809" />
+        <register type="NOA" address="0x0038D100" value="0x000001C3" />
+        <register type="NOA" address="0x0038D104" value="0x00800400" />
+        <register type="NOA" address="0x0038D100" value="0x000001C4" />
+        <register type="NOA" address="0x0038D104" value="0x00000000" />
+        <register type="NOA" address="0x0038D100" value="0x000001C5" />
+        <register type="NOA" address="0x0038D104" value="0x00000000" />
+        <register type="NOA" address="0x0038D100" value="0x00000360" />
+        <register type="NOA" address="0x0038D104" value="0x00000001" />
+        <register type="NOA" address="0x0038D100" value="0x00000361" />
+        <register type="NOA" address="0x0038D104" value="0x00001819" />
+        <register type="NOA" address="0x0038D100" value="0x00000362" />
+        <register type="NOA" address="0x0038D104" value="0x00001C1D" />
+        <register type="NOA" address="0x0038D100" value="0x00000363" />
+        <register type="NOA" address="0x0038D104" value="0x02402006" />
+        <register type="NOA" address="0x0038D100" value="0x00000364" />
+        <register type="NOA" address="0x0038D104" value="0x00000000" />
+        <register type="NOA" address="0x0038D100" value="0x00000365" />
+        <register type="NOA" address="0x0038D104" value="0x00000000" />
+        <register type="NOA" address="0x0038D100" value="0x000003A0" />
+        <register type="NOA" address="0x0038D104" value="0x00000001" />
+        <register type="NOA" address="0x0038D100" value="0x000003A1" />
+        <register type="NOA" address="0x0038D104" value="0x00001011" />
+        <register type="NOA" address="0x0038D100" value="0x000003BB" />
+        <register type="NOA" address="0x0038D104" value="0x00000001" />
+        <register type="NOA" address="0x0038D100" value="0x000003BC" />
+        <register type="NOA" address="0x0038D104" value="0x00000001" />
+        <register type="NOA" address="0x0038D100" value="0x000004E0" />
+        <register type="NOA" address="0x0038D104" value="0x00000001" />
+        <register type="NOA" address="0x0038D100" value="0x000004E1" />
+        <register type="NOA" address="0x0038D104" value="0x00001819" />
+        <register type="NOA" address="0x0038D100" value="0x000004E3" />
+        <register type="NOA" address="0x0038D104" value="0x00000400" />
+        <register type="NOA" address="0x0038D100" value="0x000004E4" />
+        <register type="NOA" address="0x0038D104" value="0x00000000" />
+        <register type="NOA" address="0x0038D100" value="0x000004E5" />
+        <register type="NOA" address="0x0038D104" value="0x00000000" />
+        <register type="NOA" address="0x0038D100" value="0x00000420" />
+        <register type="NOA" address="0x0038D104" value="0x00000001" />
+        <register type="NOA" address="0x0038D100" value="0x00000421" />
+        <register type="NOA" address="0x0038D104" value="0x00001A1B" />
+        <register type="NOA" address="0x0038D100" value="0x00000423" />
+        <register type="NOA" address="0x0038D104" value="0x00000400" />
+        <register type="NOA" address="0x0038D100" value="0x00000424" />
+        <register type="NOA" address="0x0038D104" value="0x00000000" />
+        <register type="NOA" address="0x0038D100" value="0x00000425" />
+        <register type="NOA" address="0x0038D104" value="0x00000000" />
+        <register type="NOA" address="0x0038D100" value="0x00000540" />
+        <register type="NOA" address="0x0038D104" value="0x00000001" />
+        <register type="NOA" address="0x0038D100" value="0x00000541" />
+        <register type="NOA" address="0x0038D104" value="0x00001415" />
+        <register type="NOA" address="0x0038D100" value="0x00000543" />
+        <register type="NOA" address="0x0038D104" value="0x00000400" />
+        <register type="NOA" address="0x0038D100" value="0x00000544" />
+        <register type="NOA" address="0x0038D104" value="0x00000000" />
+        <register type="NOA" address="0x0038D100" value="0x00000545" />
+        <register type="NOA" address="0x0038D104" value="0x00000000" />
+        <register type="NOA" address="0x0038D100" value="0x00000660" />
+        <register type="NOA" address="0x0038D104" value="0x00000001" />
+        <register type="NOA" address="0x0038D100" value="0x00000661" />
+        <register type="NOA" address="0x0038D104" value="0x00000001" />
+        <register type="NOA" address="0x0038D100" value="0x00000663" />
+        <register type="NOA" address="0x0038D104" value="0x00000C02" />
+        <register type="NOA" address="0x0038D100" value="0x00000664" />
+        <register type="NOA" address="0x0038D104" value="0x00000000" />
+        <register type="NOA" address="0x0038D100" value="0x00000665" />
+        <register type="NOA" address="0x0038D104" value="0x00000000" />
+        <register type="NOA" address="0x0038D100" value="0x00000669" />
+        <register type="NOA" address="0x0038D104" value="0x00000001" />
+        <register type="NOA" address="0x0038D100" value="0x0000066A" />
+        <register type="NOA" address="0x0038D104" value="0x00000015" />
+        <register type="NOA" address="0x0038D114" value="0x0000000B" />
+    </register_config>
+    <register_config type="OA">
+        <register type="OA" address="0x00393200" value="0x00000201" />
+        <register type="OA" address="0x00393204" value="0x00000000" />
+        <register type="OA" address="0x00393208" value="0x00000202" />
+        <register type="OA" address="0x0039320C" value="0x00000000" />
+        <register type="OA" address="0x00393000" value="0x00000000" />
+        <register type="OA" address="0x00393004" value="0xF0800000" />
+        <register type="OA" address="0x00393010" value="0x00000000" />
+        <register type="OA" address="0x00393014" value="0xF0800000" />
+        <register type="OA" address="0x00393020" value="0x00000000" />
+        <register type="OA" address="0x00393040" value="0x00000004" />
+        <register type="OA" address="0x00393044" value="0x0000FFFF" />
+        <register type="OA" address="0x00393048" value="0x00000003" />
+        <register type="OA" address="0x0039304C" value="0x0000FFFF" />
+        <register type="OA" address="0x00393050" value="0x00000007" />
+        <register type="OA" address="0x00393054" value="0x0000FFFF" />
+        <register type="OA" address="0x00393058" value="0x00100002" />
+        <register type="OA" address="0x0039305C" value="0x0000FFF7" />
+        <register type="OA" address="0x00393060" value="0x00100002" />
+        <register type="OA" address="0x00393064" value="0x0000FFCF" />
+        <register type="OA" address="0x00393068" value="0x00100082" />
+        <register type="OA" address="0x0039306C" value="0x0000FFEF" />
+        <register type="OA" address="0x00393070" value="0x001000C2" />
+        <register type="OA" address="0x00393074" value="0x0000FFE7" />
+        <register type="OA" address="0x00393078" value="0x00002002" />
+        <register type="OA" address="0x0039307C" value="0x0000F9FF" />
+        <register type="OA" address="0x00393034" value="0x00000000" />
+    </register_config>
+  </set>
+
 </metrics>
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 23/31] i915/perf: Add support for engine specific metrics
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
                   ` (21 preceding siblings ...)
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 22/31] lib/perf: Update MTL GT3 " Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 24/31] i915/perf: Run non-zero-reason on media engines as well Umesh Nerlige Ramappa
                   ` (9 subsequent siblings)
  32 siblings, 0 replies; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Metrics config is different for media vs render engines. Choose the metrics
configurations as per the engine used for the test.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 tests/i915/perf.c | 236 ++++++++++++++++++++++++++--------------------
 1 file changed, 136 insertions(+), 100 deletions(-)

diff --git a/tests/i915/perf.c b/tests/i915/perf.c
index 9c546cc1..15f9202d 100644
--- a/tests/i915/perf.c
+++ b/tests/i915/perf.c
@@ -278,7 +278,6 @@ static uint32_t num_perf_oa_groups;
 
 static uint64_t gt_max_freq_mhz = 0;
 static struct intel_perf *intel_perf = NULL;
-static struct intel_perf_metric_set *test_set = NULL;
 static bool *undefined_a_counters;
 static uint64_t oa_exp_1_millisec;
 
@@ -289,6 +288,10 @@ static void (*sanity_check_reports)(const uint32_t *oa_report0,
 				    const uint32_t *oa_report1,
 				    enum drm_i915_oa_format format);
 
+
+static struct intel_perf_metric_set *metric_set(const struct intel_execution_engine2 *e2);
+#define default_test_set metric_set(&default_e2)
+
 static void
 dump_report(const uint32_t *report, uint32_t size, const char *message) {
 	uint32_t i;
@@ -691,17 +694,7 @@ oar_unit_default_format(void)
 	if (IS_DG2(devid) || IS_METEORLAKE(devid))
 		return I915_OAR_FORMAT_A32u40_A4u32_B8_C8;
 
-	return test_set->perf_oa_format;
-}
-
-static int
-oa_unit_default_format(const struct intel_execution_engine2 *e)
-{
-	if (e->class == I915_ENGINE_CLASS_VIDEO ||
-	    e->class == I915_ENGINE_CLASS_VIDEO_ENHANCE)
-		return I915_OAM_FORMAT_MPEC8u32_B8_C8;
-
-	return test_set->perf_oa_format;
+	return default_test_set->perf_oa_format;
 }
 
 /*
@@ -1133,9 +1126,6 @@ gen8_sanity_check_test_oa_reports(const uint32_t *oa_report0,
 static bool
 init_sys_info(void)
 {
-	const char *test_set_name = NULL;
-	struct intel_perf_metric_set *metric_set_iter;
-
 	igt_assert_neq(devid, 0);
 
 	intel_perf = intel_perf_for_fd(drm_fd);
@@ -1152,38 +1142,17 @@ init_sys_info(void)
 	 * RenderBasic
 	 */
 	if (IS_HASWELL(devid)) {
-		test_set_name = "RenderBasic";
 		read_report_ticks = hsw_read_report_ticks;
 		sanity_check_reports = hsw_sanity_check_render_basic_reports;
 		undefined_a_counters = hsw_undefined_a_counters;
 	} else {
-		test_set_name = "TestOa";
 		read_report_ticks = gen8_read_report_ticks;
 		sanity_check_reports = gen8_sanity_check_test_oa_reports;
 		undefined_a_counters = gen8_undefined_a_counters;
 	}
 
-	igt_list_for_each_entry(metric_set_iter, &intel_perf->metric_sets, link) {
-		if (strcmp(metric_set_iter->symbol_name, test_set_name) == 0) {
-			test_set = metric_set_iter;
-			break;
-		}
-	}
-
-	if (!test_set)
-		return false;
-
-	igt_debug("%s metric set UUID = %s\n",
-		  test_set->symbol_name,
-		  test_set->hw_config_guid);
-
 	intel_perf_load_perf_configs(intel_perf, drm_fd);
 
-	if (test_set->perf_oa_metrics_set == 0) {
-		igt_debug("Unable to load configurations\n");
-		return false;
-	}
-
 	oa_exp_1_millisec = max_oa_exponent_for_period_lte(1000000);
 
 	return true;
@@ -1255,8 +1224,8 @@ test_system_wide_paranoid(void)
 			DRM_I915_PERF_PROP_SAMPLE_OA, true,
 
 			/* OA unit configuration */
-			DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-			DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+			DRM_I915_PERF_PROP_OA_METRICS_SET, default_test_set->perf_oa_metrics_set,
+			DRM_I915_PERF_PROP_OA_FORMAT, default_test_set->perf_oa_format,
 			DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
 		};
 		struct drm_i915_perf_open_param param = {
@@ -1281,8 +1250,8 @@ test_system_wide_paranoid(void)
 			DRM_I915_PERF_PROP_SAMPLE_OA, true,
 
 			/* OA unit configuration */
-			DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-			DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+			DRM_I915_PERF_PROP_OA_METRICS_SET, default_test_set->perf_oa_metrics_set,
+			DRM_I915_PERF_PROP_OA_FORMAT, default_test_set->perf_oa_format,
 			DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
 		};
 		struct drm_i915_perf_open_param param = {
@@ -1313,8 +1282,8 @@ test_invalid_open_flags(void)
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
 
 		/* OA unit configuration */
-		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+		DRM_I915_PERF_PROP_OA_METRICS_SET, default_test_set->perf_oa_metrics_set,
+		DRM_I915_PERF_PROP_OA_FORMAT, default_test_set->perf_oa_format,
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
 	};
 	struct drm_i915_perf_open_param param = {
@@ -1331,8 +1300,8 @@ test_invalid_class_instance(void)
 {
 	uint64_t properties[] = {
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
-		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+		DRM_I915_PERF_PROP_OA_METRICS_SET, default_test_set->perf_oa_metrics_set,
+		DRM_I915_PERF_PROP_OA_FORMAT, default_test_set->perf_oa_format,
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
 		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, 0,
 		DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, 0,
@@ -1375,7 +1344,7 @@ test_invalid_oa_metric_set_id(void)
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
 
 		/* OA unit configuration */
-		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+		DRM_I915_PERF_PROP_OA_FORMAT, default_test_set->perf_oa_format,
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
 		DRM_I915_PERF_PROP_OA_METRICS_SET, UINT64_MAX,
 	};
@@ -1392,7 +1361,7 @@ test_invalid_oa_metric_set_id(void)
 	do_ioctl_err(drm_fd, DRM_IOCTL_I915_PERF_OPEN, &param, EINVAL);
 
 	/* Check that we aren't just seeing false positives... */
-	properties[ARRAY_SIZE(properties) - 1] = test_set->perf_oa_metrics_set;
+	properties[ARRAY_SIZE(properties) - 1] = default_test_set->perf_oa_metrics_set;
 	stream_fd = __perf_open(drm_fd, &param, false);
 	__perf_close(stream_fd);
 
@@ -1409,7 +1378,7 @@ test_invalid_oa_format_id(void)
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
 
 		/* OA unit configuration */
-		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
+		DRM_I915_PERF_PROP_OA_METRICS_SET, default_test_set->perf_oa_metrics_set,
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
 		DRM_I915_PERF_PROP_OA_FORMAT, UINT64_MAX,
 	};
@@ -1426,7 +1395,7 @@ test_invalid_oa_format_id(void)
 	do_ioctl_err(drm_fd, DRM_IOCTL_I915_PERF_OPEN, &param, EINVAL);
 
 	/* Check that we aren't just seeing false positives... */
-	properties[ARRAY_SIZE(properties) - 1] = test_set->perf_oa_format;
+	properties[ARRAY_SIZE(properties) - 1] = default_test_set->perf_oa_format;
 	stream_fd = __perf_open(drm_fd, &param, false);
 	__perf_close(stream_fd);
 
@@ -1442,9 +1411,9 @@ test_missing_sample_flags(void)
 		/* No _PROP_SAMPLE_xyz flags */
 
 		/* OA unit configuration */
-		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
+		DRM_I915_PERF_PROP_OA_METRICS_SET, default_test_set->perf_oa_metrics_set,
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
-		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+		DRM_I915_PERF_PROP_OA_FORMAT, default_test_set->perf_oa_format,
 	};
 	struct drm_i915_perf_open_param param = {
 		.flags = I915_PERF_FLAG_FD_CLOEXEC,
@@ -1577,6 +1546,7 @@ open_and_read_2_oa_reports(int format_id,
 			   bool timer_only,
 			   const struct intel_execution_engine2 *e)
 {
+	struct intel_perf_metric_set *test_set = metric_set(e);
 	uint64_t properties[] = {
 		/* Include OA reports in samples */
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
@@ -1961,7 +1931,8 @@ static bool expected_report_timing_delta(uint32_t delta, uint32_t expected_delta
 static void
 test_oa_exponents(const struct intel_execution_engine2 *e)
 {
-	uint64_t fmt = oa_unit_default_format(e);
+	struct intel_perf_metric_set *test_set = metric_set(e);
+	uint64_t fmt = test_set->perf_oa_format;
 
 	load_helper_init();
 	load_helper_run(HIGH);
@@ -2107,8 +2078,8 @@ test_invalid_oa_exponent(void)
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
 
 		/* OA unit configuration */
-		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+		DRM_I915_PERF_PROP_OA_METRICS_SET, default_test_set->perf_oa_metrics_set,
+		DRM_I915_PERF_PROP_OA_FORMAT, default_test_set->perf_oa_format,
 		DRM_I915_PERF_PROP_OA_EXPONENT, 31, /* maximum exponent expected
 						       to be accepted */
 	};
@@ -2143,8 +2114,8 @@ test_low_oa_exponent_permissions(void)
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
 
 		/* OA unit configuration */
-		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+		DRM_I915_PERF_PROP_OA_METRICS_SET, default_test_set->perf_oa_metrics_set,
+		DRM_I915_PERF_PROP_OA_FORMAT, default_test_set->perf_oa_format,
 		DRM_I915_PERF_PROP_OA_EXPONENT, bad_exponent,
 	};
 	struct drm_i915_perf_open_param param = {
@@ -2206,8 +2177,8 @@ test_per_context_mode_unprivileged(void)
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
 
 		/* OA unit configuration */
-		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+		DRM_I915_PERF_PROP_OA_METRICS_SET, default_test_set->perf_oa_metrics_set,
+		DRM_I915_PERF_PROP_OA_FORMAT, default_test_set->perf_oa_format,
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
 	};
 	struct drm_i915_perf_open_param param = {
@@ -2302,10 +2273,11 @@ test_blocking(uint64_t requested_oa_period,
 
 	int64_t start, end;
 	int n = 0;
+	struct intel_perf_metric_set *test_set = metric_set(e);
 
 	ADD_PROPS(props, idx, SAMPLE_OA, true);
 	ADD_PROPS(props, idx, OA_METRICS_SET, test_set->perf_oa_metrics_set);
-	ADD_PROPS(props, idx, OA_FORMAT, oa_unit_default_format(e));
+	ADD_PROPS(props, idx, OA_FORMAT, test_set->perf_oa_format);
 	ADD_PROPS(props, idx, OA_EXPONENT, oa_exponent);
 
 	if (has_param_poll_period() && set_kernel_hrtimer)
@@ -2465,10 +2437,11 @@ test_polling(uint64_t requested_oa_period,
 	int min_iterations = (test_duration_ns / (oa_period + (kernel_hrtimer + kernel_hrtimer / 5)));
 	int64_t start, end;
 	int n = 0;
+	struct intel_perf_metric_set *test_set = metric_set(e);
 
 	ADD_PROPS(props, idx, SAMPLE_OA, true);
 	ADD_PROPS(props, idx, OA_METRICS_SET, test_set->perf_oa_metrics_set);
-	ADD_PROPS(props, idx, OA_FORMAT, oa_unit_default_format(e));
+	ADD_PROPS(props, idx, OA_FORMAT, test_set->perf_oa_format);
 	ADD_PROPS(props, idx, OA_EXPONENT, oa_exponent);
 
 	if (has_param_poll_period() && set_kernel_hrtimer)
@@ -2640,8 +2613,8 @@ static void test_polling_small_buf(void)
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
 
 		/* OA unit configuration */
-		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+		DRM_I915_PERF_PROP_OA_METRICS_SET, default_test_set->perf_oa_metrics_set,
+		DRM_I915_PERF_PROP_OA_FORMAT, default_test_set->perf_oa_format,
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
 	};
 	struct drm_i915_perf_open_param param = {
@@ -2653,7 +2626,7 @@ static void test_polling_small_buf(void)
 	};
 	uint32_t test_duration = 80 * 1000 * 1000;
 	int sample_size = (sizeof(struct drm_i915_perf_record_header) +
-			   get_oa_format(test_set->perf_oa_format).size);
+			   get_oa_format(default_test_set->perf_oa_format).size);
 	int n_expected_reports = test_duration / oa_exponent_to_ns(oa_exponent);
 	int n_expect_read_bytes = n_expected_reports * sample_size;
 	struct timespec ts = {};
@@ -2738,11 +2711,12 @@ static void
 gen12_test_oa_tlb_invalidate(const struct intel_execution_engine2 *e)
 {
 	int oa_exponent = max_oa_exponent_for_period_lte(30000000);
+	struct intel_perf_metric_set *test_set = metric_set(e);
 	uint64_t properties[] = {
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
 
 		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-		DRM_I915_PERF_PROP_OA_FORMAT, oa_unit_default_format(e),
+		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
 		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
 		DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, e->instance,
@@ -2785,7 +2759,8 @@ test_buffer_fill(const struct intel_execution_engine2 *e)
 	/* ~5 micro second period */
 	int oa_exponent = max_oa_exponent_for_period_lte(5000);
 	uint64_t oa_period = oa_exponent_to_ns(oa_exponent);
-	uint64_t fmt = oa_unit_default_format(e);
+	struct intel_perf_metric_set *test_set = metric_set(e);
+	uint64_t fmt = test_set->perf_oa_format;
 	uint64_t properties[] = {
 		/* Include OA reports in samples */
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
@@ -2942,8 +2917,8 @@ test_non_zero_reason(void)
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
 
 		/* OA unit configuration */
-		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+		DRM_I915_PERF_PROP_OA_METRICS_SET, default_test_set->perf_oa_metrics_set,
+		DRM_I915_PERF_PROP_OA_FORMAT, default_test_set->perf_oa_format,
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
 	};
 	struct drm_i915_perf_open_param param = {
@@ -2999,7 +2974,7 @@ test_non_zero_reason(void)
 
 			if (last_report) {
 				sanity_check_reports(last_report, report,
-						     test_set->perf_oa_format);
+						     default_test_set->perf_oa_format);
 			}
 			last_report = report;
 			break;
@@ -3021,7 +2996,8 @@ test_enable_disable(const struct intel_execution_engine2 *e)
 	/* ~5 micro second period */
 	int oa_exponent = max_oa_exponent_for_period_lte(5000);
 	uint64_t oa_period = oa_exponent_to_ns(oa_exponent);
-	uint64_t fmt = oa_unit_default_format(e);
+	struct intel_perf_metric_set *test_set = metric_set(e);
+	uint64_t fmt = test_set->perf_oa_format;
 	uint64_t properties[] = {
 		/* Include OA reports in samples */
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
@@ -3181,8 +3157,8 @@ test_short_reads(void)
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
 
 		/* OA unit configuration */
-		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+		DRM_I915_PERF_PROP_OA_METRICS_SET, default_test_set->perf_oa_metrics_set,
+		DRM_I915_PERF_PROP_OA_FORMAT, default_test_set->perf_oa_format,
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
 	};
 	struct drm_i915_perf_open_param param = {
@@ -3272,8 +3248,8 @@ test_non_sampling_read_error(void)
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
 
 		/* OA unit configuration */
-		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+		DRM_I915_PERF_PROP_OA_METRICS_SET, default_test_set->perf_oa_metrics_set,
+		DRM_I915_PERF_PROP_OA_FORMAT, default_test_set->perf_oa_format,
 
 		/* XXX: no sampling exponent */
 	};
@@ -3308,8 +3284,8 @@ test_disabled_read_error(void)
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
 
 		/* OA unit configuration */
-		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+		DRM_I915_PERF_PROP_OA_METRICS_SET, default_test_set->perf_oa_metrics_set,
+		DRM_I915_PERF_PROP_OA_FORMAT, default_test_set->perf_oa_format,
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
 	};
 	struct drm_i915_perf_open_param param = {
@@ -3335,7 +3311,7 @@ test_disabled_read_error(void)
 	param.flags &= ~I915_PERF_FLAG_DISABLED;
 	stream_fd = __perf_open(drm_fd, &param, false);
 
-	read_2_oa_reports(test_set->perf_oa_format,
+	read_2_oa_reports(default_test_set->perf_oa_format,
 			  oa_exponent,
 			  oa_report0,
 			  oa_report1,
@@ -3349,7 +3325,7 @@ test_disabled_read_error(void)
 
 	do_ioctl(stream_fd, I915_PERF_IOCTL_ENABLE, 0);
 
-	read_2_oa_reports(test_set->perf_oa_format,
+	read_2_oa_reports(default_test_set->perf_oa_format,
 			  oa_exponent,
 			  oa_report0,
 			  oa_report1,
@@ -3362,6 +3338,7 @@ static void
 gen12_test_mi_rpc(const struct intel_execution_engine2 *e)
 {
 	uint64_t fmt = oar_unit_default_format();
+	struct intel_perf_metric_set *test_set = metric_set(e);
 	uint64_t properties[] = {
 		/* On Gen12, MI RPC uses OAR. OAR is configured only for the
 		 * render context that wants to measure the performance. Hence a
@@ -3470,8 +3447,8 @@ test_mi_rpc(void)
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
 
 		/* OA unit configuration */
-		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+		DRM_I915_PERF_PROP_OA_METRICS_SET, default_test_set->perf_oa_metrics_set,
+		DRM_I915_PERF_PROP_OA_FORMAT, default_test_set->perf_oa_format,
 
 		/* Note: no OA exponent specified in this case */
 	};
@@ -3509,7 +3486,7 @@ test_mi_rpc(void)
 	report32 = buf->ptr;
 	dump_report(report32, 64, "mi-rpc");
 	igt_assert_eq(report32[0], 0xdeadbeef); /* report ID */
-	igt_assert(oa_timestamp(report32, test_set->perf_oa_format)); /* timestamp */
+	igt_assert(oa_timestamp(report32, default_test_set->perf_oa_format)); /* timestamp */
 
 	igt_assert_neq(report32[63], 0x80808080); /* end of report */
 	igt_assert_eq(report32[64], 0x80808080); /* after 256 byte report */
@@ -3573,8 +3550,8 @@ hsw_test_single_ctx_counters(void)
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
 
 		/* OA unit configuration */
-		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+		DRM_I915_PERF_PROP_OA_METRICS_SET, default_test_set->perf_oa_metrics_set,
+		DRM_I915_PERF_PROP_OA_FORMAT, default_test_set->perf_oa_format,
 
 		/* Note: no OA exponent specified in this case */
 	};
@@ -3719,7 +3696,7 @@ hsw_test_single_ctx_counters(void)
 		igt_assert_neq(report1_32[1], 0); /* timestamp */
 
 		print_reports(report0_32, report1_32,
-			      lookup_format(test_set->perf_oa_format));
+			      lookup_format(default_test_set->perf_oa_format));
 
 		/* A40 == N samples written to all render targets */
 		n_samples_written = report1_32[43] - report0_32[43];
@@ -3802,8 +3779,8 @@ gen8_test_single_ctx_render_target_writes_a_counter(void)
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
 
 		/* OA unit configuration */
-		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+		DRM_I915_PERF_PROP_OA_METRICS_SET, default_test_set->perf_oa_metrics_set,
+		DRM_I915_PERF_PROP_OA_FORMAT, default_test_set->perf_oa_format,
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
 
 		/* Note: no OA exponent specified in this case */
@@ -3813,7 +3790,7 @@ gen8_test_single_ctx_render_target_writes_a_counter(void)
 		.num_properties = ARRAY_SIZE(properties) / 2,
 		.properties_ptr = to_user_pointer(properties),
 	};
-	size_t format_size = get_oa_format(test_set->perf_oa_format).size;
+	size_t format_size = get_oa_format(default_test_set->perf_oa_format).size;
 	size_t sample_size = (sizeof(struct drm_i915_perf_record_header) +
 			      format_size);
 	int max_reports = MAX_OA_BUF_SIZE / format_size;
@@ -3848,7 +3825,7 @@ gen8_test_single_ctx_render_target_writes_a_counter(void)
 			int delta_delta;
 			int ret;
 			struct accumulator accumulator = {
-				.format = test_set->perf_oa_format
+				.format = default_test_set->perf_oa_format
 			};
 
 			bops = buf_ops_create(drm_fd);
@@ -4014,7 +3991,7 @@ gen8_test_single_ctx_render_target_writes_a_counter(void)
 				goto again;
 			}
 
-			len = i915_read_reports_until_timestamp(test_set->perf_oa_format,
+			len = i915_read_reports_until_timestamp(default_test_set->perf_oa_format,
 								buf, buf_size,
 								report0_32[1],
 								report1_32[1]);
@@ -4029,7 +4006,7 @@ gen8_test_single_ctx_render_target_writes_a_counter(void)
 				uint32_t reason;
 				const char *skip_reason = NULL, *report_reason = NULL;
 				struct accumulator laccumulator = {
-					.format = test_set->perf_oa_format
+					.format = default_test_set->perf_oa_format
 				};
 
 
@@ -4160,7 +4137,7 @@ gen8_test_single_ctx_render_target_writes_a_counter(void)
 				if (report == report1_32) {
 					igt_debug("Breaking on end of report\n");
 					print_reports(report0_32, report1_32,
-						      lookup_format(test_set->perf_oa_format));
+						      lookup_format(default_test_set->perf_oa_format));
 					break;
 				}
 			}
@@ -4215,6 +4192,7 @@ again:
 
 static void gen12_single_ctx_helper(const struct intel_execution_engine2 *e)
 {
+	struct intel_perf_metric_set *test_set = metric_set(e);
 	uint64_t fmt = oar_unit_default_format();
 	uint64_t properties[] = {
 		/* Have a random value here for the context id, but initialize
@@ -4560,8 +4538,8 @@ test_rc6_disable(void)
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
 
 		/* OA unit configuration */
-		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+		DRM_I915_PERF_PROP_OA_METRICS_SET, default_test_set->perf_oa_metrics_set,
+		DRM_I915_PERF_PROP_OA_FORMAT, default_test_set->perf_oa_format,
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
 	};
 	struct drm_i915_perf_open_param param = {
@@ -4603,6 +4581,8 @@ test_rc6_disable(void)
 static void
 test_stress_open_close(const struct intel_execution_engine2 *e)
 {
+	struct intel_perf_metric_set *test_set = metric_set(e);
+
 	load_helper_init();
 	load_helper_run(HIGH);
 
@@ -4616,7 +4596,7 @@ test_stress_open_close(const struct intel_execution_engine2 *e)
 
 			/* OA unit configuration */
 			DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-			DRM_I915_PERF_PROP_OA_FORMAT, oa_unit_default_format(e),
+			DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
 			DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
 			DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
 			DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, e->instance,
@@ -4704,6 +4684,7 @@ make_valid_reduced_sseu_config(struct drm_i915_gem_context_param_sseu default_ss
 static void
 test_global_sseu_config_invalid(const struct intel_execution_engine2 *e)
 {
+	struct intel_perf_metric_set *test_set = metric_set(e);
 	struct drm_i915_gem_context_param_sseu default_sseu;
 	struct drm_i915_gem_context_param_sseu sseu_param;
 	struct drm_i915_gem_context_param ctx_gp = {
@@ -4719,7 +4700,7 @@ test_global_sseu_config_invalid(const struct intel_execution_engine2 *e)
 
 		/* OA unit configuration */
 		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-		DRM_I915_PERF_PROP_OA_FORMAT, oa_unit_default_format(e),
+		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
 		DRM_I915_PERF_PROP_GLOBAL_SSEU, to_user_pointer(&sseu_param),
 		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
@@ -4793,6 +4774,7 @@ test_global_sseu_config_invalid(const struct intel_execution_engine2 *e)
 static void
 test_global_sseu_config(const struct intel_execution_engine2 *e)
 {
+	struct intel_perf_metric_set *test_set = metric_set(e);
 	struct drm_i915_gem_context_param_sseu default_sseu;
 	struct drm_i915_gem_context_param_sseu sseu_param;
 	struct drm_i915_gem_context_param ctx_gp = {
@@ -4808,7 +4790,7 @@ test_global_sseu_config(const struct intel_execution_engine2 *e)
 
 		/* OA unit configuration */
 		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-		DRM_I915_PERF_PROP_OA_FORMAT, oa_unit_default_format(e),
+		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
 		DRM_I915_PERF_PROP_GLOBAL_SSEU, to_user_pointer(&sseu_param),
 		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
@@ -5014,7 +4996,7 @@ test_create_destroy_userspace_config(void)
 
 		/* OA unit configuration */
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
-		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+		DRM_I915_PERF_PROP_OA_FORMAT, default_test_set->perf_oa_format,
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
 		DRM_I915_PERF_PROP_OA_METRICS_SET
 	};
@@ -5301,8 +5283,8 @@ test_i915_ref_count(void)
 	 * init_sys_info()...
 	 */
 	igt_require(init_sys_info());
-	properties[3] = test_set->perf_oa_metrics_set;
-	properties[5] = test_set->perf_oa_format;
+	properties[3] = default_test_set->perf_oa_metrics_set;
+	properties[5] = default_test_set->perf_oa_format;
 	properties[7] = oa_exp_1_millisec;
 
 	ref_count0 = read_i915_module_ref();
@@ -5323,7 +5305,7 @@ test_i915_ref_count(void)
 
 	igt_assert(ref_count0 > baseline);
 
-	read_2_oa_reports(test_set->perf_oa_format,
+	read_2_oa_reports(default_test_set->perf_oa_format,
 			  oa_exp_1_millisec,
 			  oa_report0,
 			  oa_report1,
@@ -5383,6 +5365,9 @@ struct perf_engine_group {
 	/* perf engines in a group */
 	int num_engines;
 	struct i915_engine_class_instance *ci;
+
+	int gt;
+	struct intel_perf_metric_set *test_set;
 };
 
 static struct drm_i915_query_engine_info *query_engine_info(int i915)
@@ -5399,6 +5384,49 @@ static struct drm_i915_query_engine_info *query_engine_info(int i915)
 	return qinfo;
 }
 
+static struct intel_perf_metric_set *metric_set(const struct intel_execution_engine2 *e2)
+{
+	const char *test_set_name = NULL;
+	struct intel_perf_metric_set *metric_set_iter;
+	struct intel_perf_metric_set *test_set = NULL;
+
+	if (IS_HASWELL(devid))
+		test_set_name = "RenderBasic";
+	else if (e2->class == I915_ENGINE_CLASS_RENDER)
+		test_set_name = "TestOa";
+	else if ((e2->class == I915_ENGINE_CLASS_VIDEO ||
+		  e2->class == I915_ENGINE_CLASS_VIDEO_ENHANCE) &&
+		 HAS_OAM(devid))
+		test_set_name = "MediaSet1";
+	else
+		igt_assert(!"reached");
+
+	igt_list_for_each_entry(metric_set_iter, &intel_perf->metric_sets, link) {
+		if (strcmp(metric_set_iter->symbol_name, test_set_name) == 0) {
+			test_set = metric_set_iter;
+			break;
+		}
+	}
+
+	igt_assert(test_set);
+
+	/*
+	 * configuration was loaded in init_sys_info() ->
+	 * intel_perf_load_perf_configs(), and test_set->perf_oa_metrics_set
+	 * should point to metric id returned by the config add ioctl. 0 is
+	 * invalid.
+	 */
+	igt_assert_neq_u64(test_set->perf_oa_metrics_set, 0);
+
+	igt_debug("engine %d:%d - %s metric set UUID = %s\n",
+		  e2->class,
+		  e2->instance,
+		  test_set->symbol_name,
+		  test_set->hw_config_guid);
+
+	return test_set;
+}
+
 static int compare_engine_oa_unit_id(const void *e1, const void *e2)
 {
 	const struct drm_i915_engine_info *_e1 = e1;
@@ -5574,8 +5602,8 @@ test_gt_exclusive_stream(const intel_ctx_t *ctx, bool exponent)
 {
 	uint64_t properties[] = {
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
-		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
-		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+		DRM_I915_PERF_PROP_OA_METRICS_SET, 0,
+		DRM_I915_PERF_PROP_OA_FORMAT, 0,
 		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, 0,
 		DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, 0,
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
@@ -5594,12 +5622,16 @@ test_gt_exclusive_stream(const intel_ctx_t *ctx, bool exponent)
 	for (i = 0; i < num_perf_oa_groups; i++) {
 		struct perf_engine_group *grp = &perf_oa_groups[i];
 		struct i915_engine_class_instance *ci = random_engine(grp);
+		struct intel_execution_engine2 *e2 = __ci_to_e2(ctx, ci);
+		struct intel_perf_metric_set *test_set = metric_set(e2);
 
 		if (!exponent) {
 			properties[0] = DRM_I915_PERF_PROP_CTX_HANDLE;
 			properties[1] = ctx->id;
 		}
 
+		properties[3] = test_set->perf_oa_metrics_set;
+		properties[5] = test_set->perf_oa_format;
 		properties[7] = ci->engine_class;
 		properties[9] = ci->engine_instance;
 		grp->perf_fd = igt_ioctl(drm_fd,
@@ -5617,6 +5649,8 @@ test_gt_exclusive_stream(const intel_ctx_t *ctx, bool exponent)
 
 		for (j = 0; j < grp->num_engines; j++) {
 			struct i915_engine_class_instance *ci = grp->ci + j;
+			struct intel_execution_engine2 *e2 = __ci_to_e2(ctx, ci);
+			struct intel_perf_metric_set *test_set = metric_set(e2);
 
 			/*
 			 * case 1:
@@ -5624,6 +5658,8 @@ test_gt_exclusive_stream(const intel_ctx_t *ctx, bool exponent)
 			 */
 			properties[0] = DRM_I915_PERF_PROP_SAMPLE_OA;
 			properties[1] = true;
+			properties[3] = test_set->perf_oa_metrics_set;
+			properties[5] = test_set->perf_oa_format;
 			properties[7] = ci->engine_class;
 			properties[9] = ci->engine_instance;
 			/* for SAMPLE OA use case, we must pass exponent */
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 24/31] i915/perf: Run non-zero-reason on media engines as well
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
                   ` (22 preceding siblings ...)
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 23/31] i915/perf: Add support for engine specific metrics Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-03-15 16:50   ` Kamil Konieczny
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 25/31] i915/perf: Make sanity check failures descriptive Umesh Nerlige Ramappa
                   ` (8 subsequent siblings)
  32 siblings, 1 reply; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Enable non-zero-reason test to run on media engines as well.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 tests/i915/perf.c | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/tests/i915/perf.c b/tests/i915/perf.c
index 15f9202d..2e902d74 100644
--- a/tests/i915/perf.c
+++ b/tests/i915/perf.c
@@ -2908,18 +2908,23 @@ test_buffer_fill(const struct intel_execution_engine2 *e)
 }
 
 static void
-test_non_zero_reason(void)
+test_non_zero_reason(const struct intel_execution_engine2 *e)
 {
 	/* ~20 micro second period */
 	int oa_exponent = max_oa_exponent_for_period_lte(20000);
+	struct intel_perf_metric_set *test_set = metric_set(e);
+	uint64_t fmt = test_set->perf_oa_format;
+	size_t report_size = get_oa_format(fmt).size;
 	uint64_t properties[] = {
 		/* Include OA reports in samples */
 		DRM_I915_PERF_PROP_SAMPLE_OA, true,
 
 		/* OA unit configuration */
-		DRM_I915_PERF_PROP_OA_METRICS_SET, default_test_set->perf_oa_metrics_set,
-		DRM_I915_PERF_PROP_OA_FORMAT, default_test_set->perf_oa_format,
+		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
+		DRM_I915_PERF_PROP_OA_FORMAT, fmt,
 		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
+		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
+		DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, e->instance,
 	};
 	struct drm_i915_perf_open_param param = {
 		.flags = I915_PERF_FLAG_FD_CLOEXEC,
@@ -2927,7 +2932,7 @@ test_non_zero_reason(void)
 		.properties_ptr = to_user_pointer(properties),
 	};
 	struct drm_i915_perf_record_header *header;
-	uint32_t buf_size = 3 * 65536 * (256 + sizeof(struct drm_i915_perf_record_header));
+	uint32_t buf_size = 3 * 65536 * (report_size + sizeof(struct drm_i915_perf_record_header));
 	uint8_t *buf = malloc(buf_size);
 	uint32_t total_len = 0, reports_lost;
 	const uint32_t *last_report;
@@ -2972,10 +2977,9 @@ test_non_zero_reason(void)
 
 			igt_assert_neq(reason, 0);
 
-			if (last_report) {
-				sanity_check_reports(last_report, report,
-						     default_test_set->perf_oa_format);
-			}
+			if (last_report)
+				sanity_check_reports(last_report, report, fmt);
+
 			last_report = report;
 			break;
 		}
@@ -5797,10 +5801,11 @@ igt_main
 			test_buffer_fill(e);
 
 	igt_describe("Test that reason field in OA reports is never 0 on Gen8+");
-	igt_subtest("non-zero-reason") {
+	igt_subtest_with_dynamic("non-zero-reason") {
 		/* Reason field is only available on Gen8+ */
 		igt_require(intel_gen(devid) >= 8);
-		test_non_zero_reason();
+		__for_random_engine_in_each_group(perf_oa_groups, ctx, e)
+			test_non_zero_reason(e);
 	}
 
 	igt_subtest("disabled-read-error")
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 25/31] i915/perf: Make sanity check failures descriptive
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
                   ` (23 preceding siblings ...)
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 24/31] i915/perf: Run non-zero-reason on media engines as well Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-03-15 16:47   ` Kamil Konieczny
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 26/31] lib/perf: Enable multi-tile support for perf library Umesh Nerlige Ramappa
                   ` (7 subsequent siblings)
  32 siblings, 1 reply; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Make the asserts in the sanity check descriptive.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 tests/i915/perf.c | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/tests/i915/perf.c b/tests/i915/perf.c
index 2e902d74..b50c86d1 100644
--- a/tests/i915/perf.c
+++ b/tests/i915/perf.c
@@ -1030,7 +1030,9 @@ gen8_sanity_check_test_oa_reports(const uint32_t *oa_report0,
 			continue;
 
 		igt_debug("A40_%d: delta = %"PRIu64"\n", j, delta);
-		igt_assert(delta <= max_delta);
+		igt_assert_f(delta <= max_delta,
+			     "A40_%d: delta = %"PRIu64", max_delta = %"PRIu64"\n",
+			     j, delta, max_delta);
 	}
 
 	for (int j = 0; j < format.n_a64; j++) {
@@ -1042,7 +1044,9 @@ gen8_sanity_check_test_oa_reports(const uint32_t *oa_report0,
 			continue;
 
 		igt_debug("A64_%d: delta = %"PRIu64"\n", format.first_a + j, delta);
-		igt_assert(delta <= max_delta);
+		igt_assert_f(delta <= max_delta,
+			     "A64_%d: delta = %"PRIu64", max_delta = %"PRIu64"\n",
+			     format.first_a + j, delta, max_delta);
 	}
 
 	for (int j = 0; j < format.n_a; j++) {
@@ -1057,7 +1061,9 @@ gen8_sanity_check_test_oa_reports(const uint32_t *oa_report0,
 			continue;
 
 		igt_debug("A%d: delta = %"PRIu32"\n", a_id, delta);
-		igt_assert(delta <= max_delta);
+		igt_assert_f(delta <= max_delta,
+			     "A%d: delta = %"PRIu32", max_delta = %"PRIu64"\n",
+			     a_id, delta, max_delta);
 	}
 
 	/* The TestOa metric set defines all B counters to be a
@@ -1119,7 +1125,9 @@ gen8_sanity_check_test_oa_reports(const uint32_t *oa_report0,
 
 		igt_debug("C%d: delta = %"PRIu32", max_delta=%"PRIu64"\n",
 			  j, delta, max_delta);
-		igt_assert(delta <= max_delta);
+		igt_assert_f(delta <= max_delta,
+			     "C%d: delta = %"PRIu32", max_delta = %"PRIu64"\n",
+			     j, delta, max_delta);
 	}
 }
 
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 26/31] lib/perf: Enable multi-tile support for perf library
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
                   ` (24 preceding siblings ...)
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 25/31] i915/perf: Make sanity check failures descriptive Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 27/31] lib/perf: Update MTL OA timestamp and EU thread config Umesh Nerlige Ramappa
                   ` (6 subsequent siblings)
  32 siblings, 0 replies; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Add class instance awareness to perf library.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 lib/i915/perf.c                      | 15 ++++--
 lib/i915/perf.h                      |  2 +-
 tests/core_hotunplug.c               |  2 +-
 tests/i915/perf.c                    |  2 +-
 tools/i915-perf/i915_perf_configs.c  |  2 +-
 tools/i915-perf/i915_perf_recorder.c | 72 ++++++++++++++++++++++++++--
 6 files changed, 81 insertions(+), 14 deletions(-)

diff --git a/lib/i915/perf.c b/lib/i915/perf.c
index 6c7a1925..d8624dc0 100644
--- a/lib/i915/perf.c
+++ b/lib/i915/perf.c
@@ -574,7 +574,7 @@ typedef enum {
 	RPS_MAX_ATTR,
 } intel_sysfs_attr_id;
 
-static const char *intel_sysfs_attr_name[2][RPS_MAX_ATTR] =
+static const char *intel_sysfs_attr_name[][RPS_MAX_ATTR] =
 {
 	{
 		"gt_min_freq_mhz",
@@ -584,20 +584,25 @@ static const char *intel_sysfs_attr_name[2][RPS_MAX_ATTR] =
 		"gt/gt0/rps_min_freq_mhz",
 		"gt/gt0/rps_max_freq_mhz",
 	},
+	{
+		"gt/gt1/rps_min_freq_mhz",
+		"gt/gt1/rps_max_freq_mhz",
+	},
 };
 
 static const char *
-intel_sysfs_attr_id_to_name(int sysfs_dirfd, intel_sysfs_attr_id id)
+intel_sysfs_attr_id_to_name(int sysfs_dirfd, intel_sysfs_attr_id id, int gt)
 {
 	assert(id < RPS_MAX_ATTR);
+	assert(gt < sizeof(intel_sysfs_attr_name) - 1);
 
 	return !faccessat(sysfs_dirfd, "gt", O_RDONLY, 0) ?
-		intel_sysfs_attr_name[1][id] :
+		intel_sysfs_attr_name[gt + 1][id] :
 		intel_sysfs_attr_name[0][id];
 }
 
 struct intel_perf *
-intel_perf_for_fd(int drm_fd)
+intel_perf_for_fd(int drm_fd, int gt)
 {
 	uint32_t device_id;
 	uint32_t device_revision;
@@ -612,7 +617,7 @@ intel_perf_for_fd(int drm_fd)
 		return NULL;
 
 #define read_sysfs_rps(fd, id, value) \
-	read_sysfs(fd, intel_sysfs_attr_id_to_name(fd, id), value)
+	read_sysfs(fd, intel_sysfs_attr_id_to_name(fd, id, gt), value)
 
 	if (!read_sysfs_rps(sysfs_dir_fd, RPS_MIN_FREQ_MHZ, &gt_min_freq) ||
 	    !read_sysfs_rps(sysfs_dir_fd, RPS_MAX_FREQ_MHZ, &gt_max_freq)) {
diff --git a/lib/i915/perf.h b/lib/i915/perf.h
index e6e60dc9..df5b6b96 100644
--- a/lib/i915/perf.h
+++ b/lib/i915/perf.h
@@ -316,7 +316,7 @@ intel_perf_devinfo_eu_available(const struct intel_perf_devinfo *devinfo,
 	return (devinfo->eu_masks[subslice_offset + eu / 8] & (1U << eu % 8)) != 0;
 }
 
-struct intel_perf *intel_perf_for_fd(int drm_fd);
+struct intel_perf *intel_perf_for_fd(int drm_fd, int gt);
 struct intel_perf *intel_perf_for_devinfo(uint32_t device_id,
 					  uint32_t revision,
 					  uint64_t timestamp_frequency,
diff --git a/tests/core_hotunplug.c b/tests/core_hotunplug.c
index ebb646b5..e79eb1ed 100644
--- a/tests/core_hotunplug.c
+++ b/tests/core_hotunplug.c
@@ -377,7 +377,7 @@ static bool local_i915_perf_healthcheck(int i915)
 {
 	struct intel_perf *intel_perf;
 
-	intel_perf = intel_perf_for_fd(i915);
+	intel_perf = intel_perf_for_fd(i915, 0);
 	if (intel_perf)
 		intel_perf_free(intel_perf);
 	return intel_perf;
diff --git a/tests/i915/perf.c b/tests/i915/perf.c
index b50c86d1..e1848360 100644
--- a/tests/i915/perf.c
+++ b/tests/i915/perf.c
@@ -1136,7 +1136,7 @@ init_sys_info(void)
 {
 	igt_assert_neq(devid, 0);
 
-	intel_perf = intel_perf_for_fd(drm_fd);
+	intel_perf = intel_perf_for_fd(drm_fd, 0);
 	igt_require(intel_perf);
 
 	igt_debug("n_eu_slices: %"PRIu64"\n", intel_perf->devinfo.n_eu_slices);
diff --git a/tools/i915-perf/i915_perf_configs.c b/tools/i915-perf/i915_perf_configs.c
index bce3bd0f..0db9a126 100644
--- a/tools/i915-perf/i915_perf_configs.c
+++ b/tools/i915-perf/i915_perf_configs.c
@@ -230,7 +230,7 @@ main(int argc, char *argv[])
 
 	fprintf(stdout, "Device graphics_ver=%i gt=%i\n", devinfo->graphics_ver, devinfo->gt);
 
-	perf = intel_perf_for_fd(drm_fd);
+	perf = intel_perf_for_fd(drm_fd, 0);
 	if (!perf) {
 		fprintf(stderr, "No perf data found.\n");
 		return EXIT_FAILURE;
diff --git a/tools/i915-perf/i915_perf_recorder.c b/tools/i915-perf/i915_perf_recorder.c
index d16f1546..ee8a288d 100644
--- a/tools/i915-perf/i915_perf_recorder.c
+++ b/tools/i915-perf/i915_perf_recorder.c
@@ -26,6 +26,7 @@
 #include <fcntl.h>
 #include <getopt.h>
 #include <inttypes.h>
+#include <limits.h>
 #include <poll.h>
 #include <signal.h>
 #include <stdbool.h>
@@ -408,6 +409,9 @@ struct recording_context {
 	int command_fifo_fd;
 
 	uint64_t poll_period;
+
+	struct i915_engine_class_instance engine;
+	int gt;
 };
 
 static int
@@ -449,6 +453,13 @@ perf_open(struct recording_context *ctx)
 		properties[p++] = ctx->poll_period;
 	}
 
+	if (ctx->engine.engine_class >= 0 && ctx->engine.engine_instance >= 0) {
+		properties[p++] = DRM_I915_PERF_PROP_OA_ENGINE_CLASS;
+		properties[p++] = ctx->engine.engine_class;
+		properties[p++] = DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE;
+		properties[p++] = ctx->engine.engine_instance;
+	}
+
 	memset(&param, 0, sizeof(param));
 	param.flags = 0;
 	param.flags |= I915_PERF_FLAG_FD_CLOEXEC | I915_PERF_FLAG_FD_NONBLOCK;
@@ -497,8 +508,8 @@ write_header(FILE *output, struct recording_context *ctx)
 		.gt_min_frequency = ctx->perf->devinfo.gt_min_freq,
 		.gt_max_frequency = ctx->perf->devinfo.gt_max_freq,
 		.oa_format = ctx->metric_set->perf_oa_format,
-		.engine_class = I915_ENGINE_CLASS_RENDER,
-		.engine_instance = 0,
+		.engine_class = ctx->engine.engine_class,
+		.engine_instance = ctx->engine.engine_instance,
 	};
 	struct drm_i915_perf_record_header header = {
 		.type = INTEL_PERF_RECORD_TYPE_DEVICE_INFO,
@@ -805,7 +816,9 @@ usage(const char *name)
 		"                                       Values: boot, mono, mono_raw (default = mono)\n"
 		"     --poll-period         -P <value>  Polling interval in microseconds used by a timer in the driver to query\n"
 		"                                       for OA reports periodically\n"
-		"                                       (default = 5000), Minimum = 100.\n",
+		"                                       (default = 5000), Minimum = 100.\n"
+		"     --engine-class        -e <value>  Engine class used for the OA capture.\n"
+		"     --engine-instance     -i <value>  Engine instance used for the OA capture.\n",
 		name);
 }
 
@@ -834,6 +847,33 @@ teardown_recording_context(struct recording_context *ctx)
 		close(ctx->drm_fd);
 }
 
+static int
+mtl_engine_to_gt(const struct i915_engine_class_instance *engine)
+{
+        switch (engine->engine_class) {
+        case I915_ENGINE_CLASS_RENDER:
+                return 0;
+        case I915_ENGINE_CLASS_VIDEO:
+        case I915_ENGINE_CLASS_VIDEO_ENHANCE:
+                return 1;
+        default:
+                return -1;
+        }
+}
+
+/* static mapping as in igt core library until a different way is available */
+static int
+engine_to_gt(struct recording_context *ctx)
+{
+	if (ctx->devinfo->is_meteorlake)
+		return mtl_engine_to_gt(&ctx->engine);
+	else if (ctx->engine.engine_class == I915_ENGINE_CLASS_RENDER &&
+		 ctx->engine.engine_instance == 0)
+		return 0;
+
+	return -1;
+}
+
 int
 main(int argc, char *argv[])
 {
@@ -849,6 +889,8 @@ main(int argc, char *argv[])
 		{"command-fifo",         required_argument, 0, 'f'},
 		{"cpu-clock",            required_argument, 0, 'k'},
 		{"poll-period",          required_argument, 0, 'P'},
+		{"engine-class",         required_argument, 0, 'e'},
+		{"engine-instance",      required_argument, 0, 'i'},
 		{0, 0, 0, 0}
 	};
 	const struct {
@@ -878,9 +920,10 @@ main(int argc, char *argv[])
 
 		/* 5 ms poll period */
 		.poll_period = 5 * 1000 * 1000,
+		.engine = { USHRT_MAX, USHRT_MAX },
 	};
 
-	while ((opt = getopt_long(argc, argv, "hc:d:p:m:Co:s:f:k:P:", long_options, NULL)) != -1) {
+	while ((opt = getopt_long(argc, argv, "hc:d:p:m:Co:s:f:k:P:e:i:", long_options, NULL)) != -1) {
 		switch (opt) {
 		case 'h':
 			usage(argv[0]);
@@ -931,6 +974,12 @@ main(int argc, char *argv[])
 		case 'P':
 			ctx.poll_period = MAX(100, atol(optarg)) * 1000;
 			break;
+		case 'e':
+			ctx.engine.engine_class = atoi(optarg);
+			break;
+		case 'i':
+			ctx.engine.engine_instance = atoi(optarg);
+			break;
 		default:
 			fprintf(stderr, "Internal error: "
 				"unexpected getopt value: %d\n", opt);
@@ -944,6 +993,12 @@ main(int argc, char *argv[])
 		return EXIT_SUCCESS;
 	}
 
+	if (ctx.engine.engine_class == USHRT_MAX ||
+	    ctx.engine.engine_instance == USHRT_MAX) {
+		ctx.engine.engine_class = I915_ENGINE_CLASS_RENDER;
+		ctx.engine.engine_instance = 0;
+	}
+
 	ctx.drm_fd = open_render_node(&ctx.devid, dev_node_id);
 	if (ctx.drm_fd < 0) {
 		fprintf(stderr, "Unable to open device.\n");
@@ -956,6 +1011,13 @@ main(int argc, char *argv[])
 		goto fail;
 	}
 
+	ctx.gt = engine_to_gt(&ctx);
+	if (ctx.gt < 0) {
+		fprintf(stderr, "Unsupported engine class:instance %d:%d.\n",
+			ctx.engine.engine_class, ctx.engine.engine_instance);
+		goto fail;
+	}
+
 	fprintf(stdout, "Device name=%s gen=%i gt=%i id=0x%x\n",
 		ctx.devinfo->codename, ctx.devinfo->graphics_ver, ctx.devinfo->gt, ctx.devid);
 
@@ -965,7 +1027,7 @@ main(int argc, char *argv[])
 		goto fail;
 	}
 
-	ctx.perf = intel_perf_for_fd(ctx.drm_fd);
+	ctx.perf = intel_perf_for_fd(ctx.drm_fd, ctx.gt);
 	if (!ctx.perf) {
 		fprintf(stderr, "No perf data found.\n");
 		goto fail;
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 27/31] lib/perf: Update MTL OA timestamp and EU thread config
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
                   ` (25 preceding siblings ...)
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 26/31] lib/perf: Enable multi-tile support for perf library Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 28/31] lib/perf: Add support for MPEC format Umesh Nerlige Ramappa
                   ` (5 subsequent siblings)
  32 siblings, 0 replies; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

MTL has configuration similar to DG2 for OA timestamp and threads per
EU. Update the same for MTL.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 lib/i915/perf.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/lib/i915/perf.c b/lib/i915/perf.c
index d8624dc0..24ef3819 100644
--- a/lib/i915/perf.c
+++ b/lib/i915/perf.c
@@ -432,6 +432,14 @@ intel_perf_for_devinfo(uint32_t device_id,
 		else
 			return unsupported_i915_perf_platform(perf);
 	} else if (devinfo->is_meteorlake) {
+		perf->devinfo.eu_threads_count = 8;
+		/* OA reports have the timestamp value shifted to the
+		 * right by 1 bits, it also means we cannot use the
+		 * top bit for comparison.
+		 */
+		perf->devinfo.oa_timestamp_shift = -1;
+		perf->devinfo.oa_timestamp_mask = 0x7fffffff;
+
 		if (is_mtl_gt2(&perf->devinfo))
 			intel_perf_load_metrics_mtlgt2(perf);
 		else if (is_mtl_gt3(&perf->devinfo))
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 28/31] lib/perf: Add support for MPEC format
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
                   ` (26 preceding siblings ...)
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 27/31] lib/perf: Update MTL OA timestamp and EU thread config Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 29/31] lib/perf: Adjust the GPU timestamp for new OA formats Umesh Nerlige Ramappa
                   ` (4 subsequent siblings)
  32 siblings, 0 replies; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Add support in perf library for MPEC formats.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 lib/i915/perf.c             | 38 +++++++++++++++++++++++++++++++++++++
 lib/i915/perf_data_reader.c | 14 +++++++++-----
 2 files changed, 47 insertions(+), 5 deletions(-)

diff --git a/lib/i915/perf.c b/lib/i915/perf.c
index 24ef3819..d736490b 100644
--- a/lib/i915/perf.c
+++ b/lib/i915/perf.c
@@ -915,6 +915,34 @@ void intel_perf_accumulate_reports(struct intel_perf_accumulator *acc,
 		for (i = 0; i < 61; i++)
 			accumulate_uint32(start + 3 + i, end + 3 + i, deltas + 1 + i);
 		break;
+
+	case I915_OAM_FORMAT_MPEC8u32_B8_C8: {
+		const uint64_t *start64 = (const uint64_t *)(record0 + 1);
+		const uint64_t *end64 = (const uint64_t *)(record1 + 1);
+
+		/* 64 bit timestamp */
+		if (perf->devinfo.oa_timestamp_shift >= 0)
+			deltas[idx++] += (end64[1] - start64[1]) << perf->devinfo.oa_timestamp_shift;
+		else
+			deltas[idx++] += (end64[1] - start64[1]) >> (-perf->devinfo.oa_timestamp_shift);
+
+		/* 64 bit clock */
+		deltas[idx++] = end64[3] - start64[3];
+
+		/* 8x 32bit MPEC counters */
+		for (i = 0; i < 8; i++)
+			accumulate_uint32(start + 8 + i, end + 8 + i, deltas + idx++);
+
+		/* 8x 32bit B counters */
+		for (i = 0; i < 8; i++)
+			accumulate_uint32(start + 16 + i, end + 16 + i, deltas + idx++);
+
+		/* 8x 32bit C counters */
+		for (i = 0; i < 8; i++)
+			accumulate_uint32(start + 24 + i, end + 24 + i, deltas + idx++);
+
+		break;
+		}
 	default:
 		assert(0);
 	}
@@ -926,6 +954,7 @@ uint64_t intel_perf_read_record_timestamp(const struct intel_perf *perf,
 					  const struct drm_i915_perf_record_header *record)
 {
        const uint32_t *report32 = (const uint32_t *)(record + 1);
+       const uint64_t *report64 = (const uint64_t *)(record + 1);
        uint64_t ts;
 
        switch (metric_set->perf_oa_format) {
@@ -935,6 +964,10 @@ uint64_t intel_perf_read_record_timestamp(const struct intel_perf *perf,
                ts = report32[1];
                break;
 
+       case I915_OAM_FORMAT_MPEC8u32_B8_C8:
+               ts = report64[1];
+               break;
+
        default:
                assert(0);
        }
@@ -952,6 +985,7 @@ uint64_t intel_perf_read_record_timestamp_raw(const struct intel_perf *perf,
 					  const struct drm_i915_perf_record_header *record)
 {
        const uint32_t *report32 = (const uint32_t *)(record + 1);
+       const uint64_t *report64 = (const uint64_t *)(record + 1);
        uint64_t ts;
 
        switch (metric_set->perf_oa_format) {
@@ -961,6 +995,10 @@ uint64_t intel_perf_read_record_timestamp_raw(const struct intel_perf *perf,
                ts = report32[1];
                break;
 
+       case I915_OAM_FORMAT_MPEC8u32_B8_C8:
+               ts = report64[1];
+               break;
+
        default:
                assert(0);
        }
diff --git a/lib/i915/perf_data_reader.c b/lib/i915/perf_data_reader.c
index 10e78e63..332f530e 100644
--- a/lib/i915/perf_data_reader.c
+++ b/lib/i915/perf_data_reader.c
@@ -58,11 +58,15 @@ oa_report_ctx_is_valid(const struct intel_perf_devinfo *devinfo,
 }
 
 static uint32_t
-oa_report_ctx_id(const struct intel_perf_devinfo *devinfo, const uint8_t *report)
+oa_report_ctx_id(struct intel_perf_data_reader *reader, const uint8_t *report)
 {
-	if (!oa_report_ctx_is_valid(devinfo, report))
+	if (!oa_report_ctx_is_valid(&reader->devinfo, report))
 		return 0xffffffff;
-	return ((const uint32_t *) report)[2];
+
+	if (reader->metric_set->perf_oa_format == I915_OAM_FORMAT_MPEC8u32_B8_C8)
+		return ((const uint32_t *) report)[4];
+	else
+		return ((const uint32_t *) report)[2];
 }
 
 static void
@@ -289,8 +293,8 @@ generate_cpu_events(struct intel_perf_data_reader *reader)
 		start_report = (const uint8_t *) (last_header + 1);
 		end_report = (const uint8_t *) (current_header + 1);
 
-		last_ctx_id = oa_report_ctx_id(&reader->devinfo, start_report);
-		current_ctx_id = oa_report_ctx_id(&reader->devinfo, end_report);
+		last_ctx_id = oa_report_ctx_id(reader, start_report);
+		current_ctx_id = oa_report_ctx_id(reader, end_report);
 
 		gpu_ts_start = intel_perf_read_record_timestamp(reader->perf,
 								reader->metric_set,
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 29/31] lib/perf: Adjust the GPU timestamp for new OA formats
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
                   ` (27 preceding siblings ...)
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 28/31] lib/perf: Add support for MPEC format Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 30/31] tools/perf: Choose the right card Umesh Nerlige Ramappa
                   ` (3 subsequent siblings)
  32 siblings, 0 replies; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

In some OA formats, gpu_ts is a 64 bit value and the right shift can
result in bit[31] being set. This throws off the correlation and the
timelines. Apply the mask on gpu_ts as well.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 lib/i915/perf_data_reader.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/lib/i915/perf_data_reader.c b/lib/i915/perf_data_reader.c
index 332f530e..2272ae2c 100644
--- a/lib/i915/perf_data_reader.c
+++ b/lib/i915/perf_data_reader.c
@@ -216,6 +216,12 @@ correlate_gpu_timestamp(struct intel_perf_data_reader *reader,
 	uint64_t mask = reader->perf->devinfo.oa_timestamp_mask;
 	int corr_idx = -1;
 
+	/* On some OA formats, gpu_ts is a 64 bit value and the shift can
+	 * result in bit[31] being set. This throws off the correlation and the
+	 * timelines. Apply the mask on gpu_ts as well.
+	 */
+	gpu_ts = gpu_ts & mask;
+
 	for (uint32_t i = 0; i < reader->n_correlation_chunks; i++) {
 		if (gpu_ts >= (reader->correlation_chunks[i].gpu_ts_begin & mask) &&
 		    gpu_ts <= (reader->correlation_chunks[i].gpu_ts_end & mask)) {
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 30/31] tools/perf: Choose the right card
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
                   ` (28 preceding siblings ...)
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 29/31] lib/perf: Adjust the GPU timestamp for new OA formats Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-02-16 19:39   ` Kamil Konieczny
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 31/31] lib/perf: Apply shift to raw timestamp as well Umesh Nerlige Ramappa
                   ` (2 subsequent siblings)
  32 siblings, 1 reply; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Choose the right dri card to open for perf recorder.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 tools/i915-perf/i915_perf_recorder.c | 18 ++++++++----------
 1 file changed, 8 insertions(+), 10 deletions(-)

diff --git a/tools/i915-perf/i915_perf_recorder.c b/tools/i915-perf/i915_perf_recorder.c
index ee8a288d..9337da12 100644
--- a/tools/i915-perf/i915_perf_recorder.c
+++ b/tools/i915-perf/i915_perf_recorder.c
@@ -241,10 +241,10 @@ read_device_param(const char *stem, int id, const char *param)
 }
 
 static int
-find_intel_render_node(void)
+find_intel_card_node(void)
 {
-	for (int i = 128; i < (128 + 16); i++) {
-		if (read_device_param("renderD", i, "vendor") == 0x8086)
+	for (int i = 0; i < 128; i++) {
+		if (read_device_param("card", i, "vendor") == 0x8086)
 			return i;
 	}
 
@@ -273,20 +273,18 @@ open_render_node(uint32_t *devid, int card)
 	char *name;
 	int ret;
 	int fd;
-	int render;
 
 	if (card < 0) {
-		render = find_intel_render_node();
-		if (render < 0)
+		card = find_intel_card_node();
+
+		if (card < 0)
 			return -1;
-	} else {
-		render = 128 + card;
 	}
 
-	ret = asprintf(&name, "/dev/dri/renderD%u", render);
+	ret = asprintf(&name, "/dev/dri/card%u", card);
 	assert(ret != -1);
 
-	*devid = read_device_param("renderD", render, "device");
+	*devid = read_device_param("card", card, "device");
 
 	fd = open(name, O_RDWR);
 	free(name);
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] [PATCH i-g-t 31/31] lib/perf: Apply shift to raw timestamp as well
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
                   ` (29 preceding siblings ...)
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 30/31] tools/perf: Choose the right card Umesh Nerlige Ramappa
@ 2023-02-15  0:46 ` Umesh Nerlige Ramappa
  2023-02-15  1:26 ` [igt-dev] ✓ Fi.CI.BAT: success for Enable OAM support in IGT and GPUvis (rev2) Patchwork
  2023-02-15 14:12 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  32 siblings, 0 replies; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-15  0:46 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Apply the OA timestamp shift to the raw timestamp as well.

Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
---
 lib/i915/perf.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/lib/i915/perf.c b/lib/i915/perf.c
index d736490b..ddadb53b 100644
--- a/lib/i915/perf.c
+++ b/lib/i915/perf.c
@@ -1003,6 +1003,11 @@ uint64_t intel_perf_read_record_timestamp_raw(const struct intel_perf *perf,
                assert(0);
        }
 
+       if (perf->devinfo.oa_timestamp_shift >= 0)
+	       ts <<= perf->devinfo.oa_timestamp_shift;
+       else
+	       ts >>= -perf->devinfo.oa_timestamp_shift;
+
        return ts;
 }
 
-- 
2.36.1

^ permalink raw reply related	[flat|nested] 73+ messages in thread

* [igt-dev] ✓ Fi.CI.BAT: success for Enable OAM support in IGT and GPUvis (rev2)
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
                   ` (30 preceding siblings ...)
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 31/31] lib/perf: Apply shift to raw timestamp as well Umesh Nerlige Ramappa
@ 2023-02-15  1:26 ` Patchwork
  2023-02-15 14:12 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork
  32 siblings, 0 replies; 73+ messages in thread
From: Patchwork @ 2023-02-15  1:26 UTC (permalink / raw)
  To: Umesh Nerlige Ramappa; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 3962 bytes --]

== Series Details ==

Series: Enable OAM support in IGT and GPUvis (rev2)
URL   : https://patchwork.freedesktop.org/series/114023/
State : success

== Summary ==

CI Bug Log - changes from CI_DRM_12739 -> IGTPW_8498
====================================================

Summary
-------

  **SUCCESS**

  No regressions found.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/index.html

Participating hosts (39 -> 37)
------------------------------

  Additional (1): bat-rpls-2 
  Missing    (3): fi-kbl-soraka bat-kbl-2 fi-snb-2520m 

Known issues
------------

  Here are the changes found in IGTPW_8498 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions:
    - fi-bsw-n3050:       [PASS][1] -> [FAIL][2] ([i915#6298])
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/fi-bsw-n3050/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/fi-bsw-n3050/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions.html

  
#### Possible fixes ####

  * igt@gem_exec_gttfill@basic:
    - fi-pnv-d510:        [FAIL][3] ([i915#7229]) -> [PASS][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/fi-pnv-d510/igt@gem_exec_gttfill@basic.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/fi-pnv-d510/igt@gem_exec_gttfill@basic.html

  * igt@i915_selftest@live@gt_heartbeat:
    - fi-apl-guc:         [DMESG-FAIL][5] ([i915#5334]) -> [PASS][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/fi-apl-guc/igt@i915_selftest@live@gt_heartbeat.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
  [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#4258]: https://gitlab.freedesktop.org/drm/intel/issues/4258
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
  [i915#6298]: https://gitlab.freedesktop.org/drm/intel/issues/6298
  [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
  [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
  [i915#7229]: https://gitlab.freedesktop.org/drm/intel/issues/7229
  [i915#7456]: https://gitlab.freedesktop.org/drm/intel/issues/7456
  [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#7931]: https://gitlab.freedesktop.org/drm/intel/issues/7931
  [i915#7996]: https://gitlab.freedesktop.org/drm/intel/issues/7996


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_7160 -> IGTPW_8498

  CI-20190529: 20190529
  CI_DRM_12739: 5fc904286af94038fbf2c7cda50ed871b70cf4e8 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8498: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/index.html
  IGT_7160: 45da871dd2684227e93a2fc002b87dfc58bd5fd9 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/index.html

[-- Attachment #2: Type: text/html, Size: 3336 bytes --]

^ permalink raw reply	[flat|nested] 73+ messages in thread

* [igt-dev] ✗ Fi.CI.IGT: failure for Enable OAM support in IGT and GPUvis (rev2)
  2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
                   ` (31 preceding siblings ...)
  2023-02-15  1:26 ` [igt-dev] ✓ Fi.CI.BAT: success for Enable OAM support in IGT and GPUvis (rev2) Patchwork
@ 2023-02-15 14:12 ` Patchwork
  32 siblings, 0 replies; 73+ messages in thread
From: Patchwork @ 2023-02-15 14:12 UTC (permalink / raw)
  To: Umesh Nerlige Ramappa; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 57845 bytes --]

== Series Details ==

Series: Enable OAM support in IGT and GPUvis (rev2)
URL   : https://patchwork.freedesktop.org/series/114023/
State : failure

== Summary ==

CI Bug Log - changes from CI_DRM_12739_full -> IGTPW_8498_full
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_8498_full absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_8498_full, please notify your bug team to allow them
  to document this new failure mode, which will reduce false positives in CI.

  External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/index.html

Participating hosts (11 -> 10)
------------------------------

  Missing    (1): shard-rkl0 

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_8498_full:

### IGT changes ###

#### Possible regressions ####

  * igt@gem_eio@in-flight-internal-1us:
    - shard-snb:          [PASS][1] -> [INCOMPLETE][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/shard-snb7/igt@gem_eio@in-flight-internal-1us.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-snb4/igt@gem_eio@in-flight-internal-1us.html

  * igt@gem_eio@in-flight-suspend:
    - shard-apl:          [PASS][3] -> [CRASH][4]
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/shard-apl1/igt@gem_eio@in-flight-suspend.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-apl4/igt@gem_eio@in-flight-suspend.html

  * igt@gem_mmap_gtt@fault-concurrent-y:
    - shard-snb:          [PASS][5] -> [ABORT][6]
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/shard-snb4/igt@gem_mmap_gtt@fault-concurrent-y.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-snb2/igt@gem_mmap_gtt@fault-concurrent-y.html

  * {igt@perf@enable-disable@0-rcs0} (NEW):
    - {shard-rkl}:        NOTRUN -> [INCOMPLETE][7] +1 similar issue
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-rkl-3/igt@perf@enable-disable@0-rcs0.html
    - {shard-dg1}:        NOTRUN -> [INCOMPLETE][8]
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-dg1-16/igt@perf@enable-disable@0-rcs0.html
    - shard-apl:          NOTRUN -> [INCOMPLETE][9] +1 similar issue
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-apl1/igt@perf@enable-disable@0-rcs0.html
    - {shard-tglu}:       NOTRUN -> [INCOMPLETE][10] +1 similar issue
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-tglu-1/igt@perf@enable-disable@0-rcs0.html
    - shard-glk:          NOTRUN -> [INCOMPLETE][11] +1 similar issue
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-glk5/igt@perf@enable-disable@0-rcs0.html

  * {igt@perf@gen12-gt-concurrent-oa-buffer-read} (NEW):
    - {shard-rkl}:        NOTRUN -> [SKIP][12] +5 similar issues
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-rkl-4/igt@perf@gen12-gt-concurrent-oa-buffer-read.html

  * {igt@perf@gen12-gt-exclusive-stream-ctx-handle} (NEW):
    - {shard-dg1}:        NOTRUN -> [SKIP][13] +2 similar issues
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-dg1-15/igt@perf@gen12-gt-exclusive-stream-ctx-handle.html

  * {igt@perf@gen12-gt-exclusive-stream-sample-oa} (NEW):
    - {shard-tglu-10}:    NOTRUN -> [SKIP][14] +1 similar issue
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-tglu-10/igt@perf@gen12-gt-exclusive-stream-sample-oa.html

  * {igt@perf@global-sseu-config-invalid@0-rcs0} (NEW):
    - {shard-tglu}:       NOTRUN -> [SKIP][15] +1 similar issue
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-tglu-6/igt@perf@global-sseu-config-invalid@0-rcs0.html

  * {igt@perf@non-zero-reason@0-rcs0} (NEW):
    - shard-glk:          NOTRUN -> [FAIL][16]
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-glk3/igt@perf@non-zero-reason@0-rcs0.html
    - {shard-rkl}:        NOTRUN -> [FAIL][17]
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-rkl-3/igt@perf@non-zero-reason@0-rcs0.html
    - {shard-dg1}:        NOTRUN -> [FAIL][18]
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-dg1-18/igt@perf@non-zero-reason@0-rcs0.html
    - shard-apl:          NOTRUN -> [FAIL][19]
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-apl2/igt@perf@non-zero-reason@0-rcs0.html
    - {shard-tglu-9}:     NOTRUN -> [FAIL][20]
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-tglu-9/igt@perf@non-zero-reason@0-rcs0.html

  
#### Suppressed ####

  The following results come from untrusted machines, tests, or statuses.
  They do not affect the overall result.

  * {igt@kms_plane_scaling@invalid-parameters}:
    - {shard-rkl}:        [SKIP][21] ([i915#8152]) -> [SKIP][22]
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/shard-rkl-2/igt@kms_plane_scaling@invalid-parameters.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-rkl-1/igt@kms_plane_scaling@invalid-parameters.html

  
New tests
---------

  New tests have been introduced between CI_DRM_12739_full and IGTPW_8498_full:

### New IGT tests (280) ###

  * igt@core_setmaster@master-drop-set-root:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@core_setmaster@master-drop-set-shared-fd:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@core_setmaster@master-drop-set-user:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@all-busy-check-all:
    - Statuses : 4 pass(s) 2 skip(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@all-busy-idle-check-all:
    - Statuses : 3 pass(s) 2 skip(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@basics:
    - Statuses : 4 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@busy:
    - Statuses : 2 skip(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@busy-check-all:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@busy-check-all@bcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@busy-check-all@rcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@busy-check-all@vcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@busy-check-all@vcs1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@busy-check-all@vecs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@busy-hang:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@busy-hang@bcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@busy-hang@rcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@busy-hang@vcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@busy-hang@vcs1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@busy-hang@vecs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@busy-idle:
    - Statuses : 2 skip(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@busy-idle-check-all:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@busy-idle-check-all@bcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@busy-idle-check-all@rcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@busy-idle-check-all@vcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@busy-idle-check-all@vcs1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@busy-idle-check-all@vecs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@busy-idle@bcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@busy-idle@rcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@busy-idle@vcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@busy-idle@vcs1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@busy-idle@vecs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@busy@bcs0:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@busy@rcs0:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@busy@vcs0:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@busy@vecs0:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@idle:
    - Statuses : 2 skip(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@idle@bcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@idle@rcs0:
    - Statuses : 1 fail(s) 3 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@idle@vcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@idle@vcs1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@idle@vecs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@isolation@bcs0:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@isolation@rcs0:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@isolation@vcs0:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@isolation@vecs0:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@most-busy-check-all:
    - Statuses : 2 skip(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@most-busy-check-all@bcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@most-busy-check-all@rcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@most-busy-check-all@vcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@most-busy-check-all@vcs1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@most-busy-check-all@vecs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@most-busy-idle-check-all:
    - Statuses :
    - Exec time: [None] s

  * igt@drm_fdinfo@most-busy-idle-check-all@bcs0:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@most-busy-idle-check-all@rcs0:
    - Statuses : 1 fail(s) 2 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@most-busy-idle-check-all@vcs0:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@drm_fdinfo@most-busy-idle-check-all@vecs0:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ccs@block-copy-inplace:
    - Statuses : 4 skip(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@clean:
    - Statuses :
    - Exec time: [None] s

  * igt@gem_ctx_isolation@clean@bcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@clean@rcs0:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@clean@vcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@clean@vcs1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@clean@vecs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@dirty-create:
    - Statuses :
    - Exec time: [None] s

  * igt@gem_ctx_isolation@dirty-create@bcs0:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@dirty-create@rcs0:
    - Statuses : 6 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@dirty-create@vcs0:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@dirty-create@vcs1:
    - Statuses : 2 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@dirty-create@vecs0:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@dirty-switch:
    - Statuses :
    - Exec time: [None] s

  * igt@gem_ctx_isolation@dirty-switch@bcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@dirty-switch@rcs0:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@dirty-switch@vcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@dirty-switch@vcs1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@dirty-switch@vecs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@nonpriv:
    - Statuses :
    - Exec time: [None] s

  * igt@gem_ctx_isolation@nonpriv-switch:
    - Statuses :
    - Exec time: [None] s

  * igt@gem_ctx_isolation@nonpriv-switch@bcs0:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@nonpriv-switch@rcs0:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@nonpriv-switch@vcs0:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@nonpriv-switch@vecs0:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@nonpriv@bcs0:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@nonpriv@rcs0:
    - Statuses : 3 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@nonpriv@vcs0:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@nonpriv@vecs0:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@preservation:
    - Statuses :
    - Exec time: [None] s

  * igt@gem_ctx_isolation@preservation-reset:
    - Statuses :
    - Exec time: [None] s

  * igt@gem_ctx_isolation@preservation-reset@bcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@preservation-reset@rcs0:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@preservation-reset@vcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@preservation-reset@vcs1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@preservation-reset@vecs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@preservation-s3:
    - Statuses :
    - Exec time: [None] s

  * igt@gem_ctx_isolation@preservation-s3@bcs0:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@preservation-s3@rcs0:
    - Statuses : 6 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@preservation-s3@vcs0:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@preservation-s3@vcs1:
    - Statuses : 2 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@preservation-s3@vecs0:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@preservation@bcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@preservation@rcs0:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@preservation@vcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@preservation@vcs1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_isolation@preservation@vecs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@exec-shared-gtt:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@exec-shared-gtt@bcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@exec-shared-gtt@rcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@exec-shared-gtt@vcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@exec-shared-gtt@vcs1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@exec-shared-gtt@vecs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@exec-single-timeline:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@exec-single-timeline@bcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@exec-single-timeline@rcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@exec-single-timeline@vcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@exec-single-timeline@vcs1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@exec-single-timeline@vecs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@q-in-order:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@q-in-order@bcs0:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@q-in-order@rcs0:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@q-in-order@vcs0:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@q-in-order@vcs1:
    - Statuses : 2 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@q-in-order@vecs0:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@q-independent:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@q-independent@bcs0:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@q-independent@rcs0:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@q-independent@vcs0:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@q-independent@vcs1:
    - Statuses : 2 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@q-independent@vecs0:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@q-out-order:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@q-out-order@bcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@q-out-order@rcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@q-out-order@vcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@q-out-order@vcs1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@q-out-order@vecs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@q-promotion:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@q-promotion@bcs0:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@q-promotion@rcs0:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@q-promotion@vcs0:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@q-promotion@vecs0:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@q-smoketest:
    - Statuses :
    - Exec time: [None] s

  * igt@gem_ctx_shared@q-smoketest@bcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@q-smoketest@rcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@q-smoketest@vcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@q-smoketest@vcs1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@gem_ctx_shared@q-smoketest@vecs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_exec_big@single:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@gem_exec_schedule@semaphore-power:
    - Statuses : 3 pass(s) 3 skip(s)
    - Exec time: [0.0] s

  * igt@gem_lmem_swapping@heavy-verify-multi-ccs@lmem0:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@gem_lmem_swapping@heavy-verify-random-ccs:
    - Statuses : 3 skip(s)
    - Exec time: [0.0] s

  * igt@gem_mmap@bad-offset:
    - Statuses : 5 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@gem_mmap@bad-size:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@gem_mmap@pf-nonblock:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_mmap_gtt@bad-object:
    - Statuses : 5 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@gem_mmap_gtt@pf-nonblock:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@gem_mmap_offset@oob-read:
    - Statuses : 6 pass(s)
    - Exec time: [0.0] s

  * igt@gem_mmap_wc@bad-object:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@gem_mmap_wc@bad-offset:
    - Statuses : 5 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@gem_mmap_wc@bad-size:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@gem_mmap_wc@pf-nonblock:
    - Statuses : 4 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@gem_render_copy@y-tiled-ccs-to-yf-tiled:
    - Statuses :
    - Exec time: [None] s

  * igt@gem_render_copy@yf-tiled:
    - Statuses :
    - Exec time: [None] s

  * igt@gem_render_copy@yf-tiled-ccs-to-linear:
    - Statuses :
    - Exec time: [None] s

  * igt@gem_render_copy@yf-tiled-ccs-to-x-tiled:
    - Statuses :
    - Exec time: [None] s

  * igt@gem_render_copy@yf-tiled-ccs-to-y-tiled:
    - Statuses :
    - Exec time: [None] s

  * igt@gem_render_copy@yf-tiled-ccs-to-yf-tiled:
    - Statuses :
    - Exec time: [None] s

  * igt@gem_watchdog@default-physical:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@gem_watchdog@default-virtual:
    - Statuses : 5 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@i915_pm_dc@dc9-dpms:
    - Statuses : 3 pass(s) 3 skip(s)
    - Exec time: [0.0] s

  * igt@i915_query@test-query-geometry-subslices:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-b-crc-primary-rotation-180-4_tiled_dg2_rc_ccs:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@kms_ccs@pipe-d-bad-pixel-format-4_tiled_dg2_rc_ccs:
    - Statuses : 4 skip(s)
    - Exec time: [0.0] s

  * igt@kms_frontbuffer_tracking@fbc-1p-indfb-fliptrack-mmap-gtt:
    - Statuses : 2 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@kms_frontbuffer_tracking@fbc-1p-shrfb-fliptrack-mmap-gtt:
    - Statuses : 3 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@kms_frontbuffer_tracking@fbc-2p-indfb-fliptrack-mmap-gtt:
    - Statuses : 1 pass(s) 4 skip(s)
    - Exec time: [0.0] s

  * igt@kms_frontbuffer_tracking@fbc-2p-shrfb-fliptrack-mmap-gtt:
    - Statuses : 1 pass(s) 3 skip(s)
    - Exec time: [0.0] s

  * igt@kms_frontbuffer_tracking@fbc-farfromfence-mmap-gtt:
    - Statuses : 4 pass(s) 2 skip(s)
    - Exec time: [0.0] s

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-indfb-fliptrack-mmap-gtt:
    - Statuses : 5 skip(s)
    - Exec time: [0.0] s

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-shrfb-fliptrack-mmap-gtt:
    - Statuses : 4 skip(s)
    - Exec time: [0.0] s

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-indfb-fliptrack-mmap-gtt:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-shrfb-fliptrack-mmap-gtt:
    - Statuses : 5 skip(s)
    - Exec time: [0.0] s

  * igt@kms_frontbuffer_tracking@fbcpsr-farfromfence-mmap-gtt:
    - Statuses : 5 skip(s)
    - Exec time: [0.0] s

  * igt@kms_frontbuffer_tracking@fbcpsr-tiling-4:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@kms_frontbuffer_tracking@psr-farfromfence-mmap-gtt:
    - Statuses : 4 skip(s)
    - Exec time: [0.0] s

  * igt@kms_lease@atomic_implicit_crtc:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@kms_lease@cursor_implicit_plane:
    - Statuses :
    - Exec time: [None] s

  * igt@kms_lease@page_flip_implicit_plane:
    - Statuses : 2 skip(s)
    - Exec time: [0.0] s

  * igt@kms_lease@setcrtc_implicit_plane:
    - Statuses :
    - Exec time: [None] s

  * igt@kms_psr_stress_test@flip-primary-invalidate-overlay:
    - Statuses : 5 skip(s)
    - Exec time: [0.0] s

  * igt@perf@blocking-parameterized:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@perf@blocking@0-rcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@perf@buffer-fill@0-rcs0:
    - Statuses : 4 incomplete(s)
    - Exec time: [0.0] s

  * igt@perf@enable-disable@0-rcs0:
    - Statuses : 5 incomplete(s)
    - Exec time: [0.0] s

  * igt@perf@gen12-gt-concurrent-oa-buffer-read:
    - Statuses : 5 skip(s)
    - Exec time: [0.0] s

  * igt@perf@gen12-gt-exclusive-stream-ctx-handle:
    - Statuses : 6 skip(s)
    - Exec time: [0.0] s

  * igt@perf@gen12-gt-exclusive-stream-sample-oa:
    - Statuses : 5 skip(s)
    - Exec time: [0.0] s

  * igt@perf@gen12-invalid-class-instance:
    - Statuses : 4 skip(s)
    - Exec time: [0.0] s

  * igt@perf@gen12-mi-rpc@rcs0:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@perf@gen12-oa-tlb-invalidate:
    - Statuses : 3 skip(s)
    - Exec time: [0.0] s

  * igt@perf@gen12-oa-tlb-invalidate@0-rcs0:
    - Statuses : 2 pass(s)
    - Exec time: [0.0] s

  * igt@perf@gen12-unprivileged-single-ctx-counters@rcs0:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@perf@global-sseu-config:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@perf@global-sseu-config-invalid:
    - Statuses : 1 skip(s)
    - Exec time: [0.0] s

  * igt@perf@global-sseu-config-invalid@0-rcs0:
    - Statuses : 5 skip(s)
    - Exec time: [0.0] s

  * igt@perf@global-sseu-config@0-rcs0:
    - Statuses : 4 skip(s)
    - Exec time: [0.0] s

  * igt@perf@non-zero-reason@0-rcs0:
    - Statuses : 5 fail(s)
    - Exec time: [0.0] s

  * igt@perf@oa-exponents@0-rcs0:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@perf@oa-formats@0-rcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@perf@polling-parameterized:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@perf@polling@0-rcs0:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@perf@stress-open-close@0-rcs0:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@prime_mmap@test_forked_cpu_write@test_forked_cpu_write-lmem0:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@sysfs_heartbeat_interval@idempotent:
    - Statuses :
    - Exec time: [None] s

  * igt@sysfs_heartbeat_interval@idempotent@bcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@sysfs_heartbeat_interval@idempotent@rcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@sysfs_heartbeat_interval@idempotent@vcs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@sysfs_heartbeat_interval@idempotent@vecs0:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  * igt@sysfs_heartbeat_interval@invalid:
    - Statuses :
    - Exec time: [None] s

  * igt@sysfs_heartbeat_interval@invalid@bcs0:
    - Statuses : 6 pass(s)
    - Exec time: [0.0] s

  * igt@sysfs_heartbeat_interval@invalid@rcs0:
    - Statuses : 6 pass(s)
    - Exec time: [0.0] s

  * igt@sysfs_heartbeat_interval@invalid@vcs0:
    - Statuses : 6 pass(s)
    - Exec time: [0.0] s

  * igt@sysfs_heartbeat_interval@invalid@vcs1:
    - Statuses : 2 pass(s)
    - Exec time: [0.0] s

  * igt@sysfs_heartbeat_interval@invalid@vecs0:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@sysfs_heartbeat_interval@mixed:
    - Statuses :
    - Exec time: [None] s

  * igt@sysfs_heartbeat_interval@mixed@bcs0:
    - Statuses : 5 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_heartbeat_interval@mixed@rcs0:
    - Statuses : 5 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_heartbeat_interval@mixed@vcs0:
    - Statuses : 5 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_heartbeat_interval@mixed@vcs1:
    - Statuses : 2 pass(s)
    - Exec time: [0.0] s

  * igt@sysfs_heartbeat_interval@mixed@vecs0:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@sysfs_heartbeat_interval@nopreempt:
    - Statuses :
    - Exec time: [None] s

  * igt@sysfs_heartbeat_interval@nopreempt@bcs0:
    - Statuses : 5 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_heartbeat_interval@nopreempt@rcs0:
    - Statuses : 5 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_heartbeat_interval@nopreempt@vcs0:
    - Statuses : 5 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_heartbeat_interval@nopreempt@vcs1:
    - Statuses : 2 pass(s)
    - Exec time: [0.0] s

  * igt@sysfs_heartbeat_interval@nopreempt@vecs0:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@sysfs_heartbeat_interval@precise:
    - Statuses :
    - Exec time: [None] s

  * igt@sysfs_heartbeat_interval@precise@bcs0:
    - Statuses : 1 fail(s) 4 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_heartbeat_interval@precise@rcs0:
    - Statuses : 1 fail(s) 4 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_heartbeat_interval@precise@vcs0:
    - Statuses : 1 fail(s) 4 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_heartbeat_interval@precise@vcs1:
    - Statuses : 1 fail(s) 1 pass(s)
    - Exec time: [0.0] s

  * igt@sysfs_heartbeat_interval@precise@vecs0:
    - Statuses : 1 fail(s) 4 pass(s)
    - Exec time: [0.0] s

  * igt@sysfs_preempt_timeout@idempotent:
    - Statuses :
    - Exec time: [None] s

  * igt@sysfs_preempt_timeout@idempotent@bcs0:
    - Statuses : 4 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_preempt_timeout@idempotent@rcs0:
    - Statuses : 4 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_preempt_timeout@idempotent@vcs0:
    - Statuses : 4 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_preempt_timeout@idempotent@vcs1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@sysfs_preempt_timeout@idempotent@vecs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@sysfs_preempt_timeout@invalid:
    - Statuses :
    - Exec time: [None] s

  * igt@sysfs_preempt_timeout@invalid@bcs0:
    - Statuses : 4 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_preempt_timeout@invalid@rcs0:
    - Statuses : 4 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_preempt_timeout@invalid@vcs0:
    - Statuses : 4 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_preempt_timeout@invalid@vcs1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@sysfs_preempt_timeout@invalid@vecs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@sysfs_preempt_timeout@timeout:
    - Statuses :
    - Exec time: [None] s

  * igt@sysfs_preempt_timeout@timeout@bcs0:
    - Statuses : 4 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_preempt_timeout@timeout@rcs0:
    - Statuses : 4 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_preempt_timeout@timeout@vcs0:
    - Statuses : 4 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_preempt_timeout@timeout@vcs1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@sysfs_preempt_timeout@timeout@vecs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@sysfs_timeslice_duration@duration:
    - Statuses :
    - Exec time: [None] s

  * igt@sysfs_timeslice_duration@duration@bcs0:
    - Statuses : 4 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_timeslice_duration@duration@rcs0:
    - Statuses : 4 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_timeslice_duration@duration@vcs0:
    - Statuses : 4 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_timeslice_duration@duration@vcs1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@sysfs_timeslice_duration@duration@vecs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@sysfs_timeslice_duration@idempotent:
    - Statuses :
    - Exec time: [None] s

  * igt@sysfs_timeslice_duration@idempotent@bcs0:
    - Statuses : 5 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_timeslice_duration@idempotent@rcs0:
    - Statuses : 5 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_timeslice_duration@idempotent@vcs0:
    - Statuses : 5 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_timeslice_duration@idempotent@vcs1:
    - Statuses : 2 pass(s)
    - Exec time: [0.0] s

  * igt@sysfs_timeslice_duration@idempotent@vecs0:
    - Statuses : 5 pass(s)
    - Exec time: [0.0] s

  * igt@sysfs_timeslice_duration@invalid:
    - Statuses :
    - Exec time: [None] s

  * igt@sysfs_timeslice_duration@invalid@bcs0:
    - Statuses : 4 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_timeslice_duration@invalid@rcs0:
    - Statuses : 4 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_timeslice_duration@invalid@vcs0:
    - Statuses : 4 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_timeslice_duration@invalid@vcs1:
    - Statuses : 1 pass(s)
    - Exec time: [0.0] s

  * igt@sysfs_timeslice_duration@invalid@vecs0:
    - Statuses : 4 pass(s)
    - Exec time: [0.0] s

  * igt@sysfs_timeslice_duration@timeout:
    - Statuses :
    - Exec time: [None] s

  * igt@sysfs_timeslice_duration@timeout@bcs0:
    - Statuses : 3 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_timeslice_duration@timeout@rcs0:
    - Statuses : 3 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_timeslice_duration@timeout@vcs0:
    - Statuses : 3 pass(s) 1 skip(s)
    - Exec time: [0.0] s

  * igt@sysfs_timeslice_duration@timeout@vecs0:
    - Statuses : 3 pass(s)
    - Exec time: [0.0] s

  

Known issues
------------

  Here are the changes found in IGTPW_8498_full that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@drm_fdinfo@busy-idle (NEW):
    - {shard-dg1}:        NOTRUN -> [SKIP][23] ([i915#5563]) +3 similar issues
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-dg1-15/igt@drm_fdinfo@busy-idle.html

  * igt@drm_fdinfo@idle@rcs0 (NEW):
    - {shard-rkl}:        [PASS][24] -> [FAIL][25] ([i915#7742]) +1 similar issue
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/shard-rkl-6/igt@drm_fdinfo@idle@rcs0.html
   [25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-rkl-3/igt@drm_fdinfo@idle@rcs0.html

  * igt@gem_exec_fair@basic-pace@vcs0:
    - shard-glk:          [PASS][26] -> [FAIL][27] ([i915#2842]) +3 similar issues
   [26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/shard-glk1/igt@gem_exec_fair@basic-pace@vcs0.html
   [27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-glk2/igt@gem_exec_fair@basic-pace@vcs0.html

  * igt@gem_mmap_gtt@bad-object (NEW):
    - {shard-dg1}:        NOTRUN -> [SKIP][28] ([i915#4077])
   [28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-dg1-15/igt@gem_mmap_gtt@bad-object.html

  * igt@gem_mmap_wc@pf-nonblock (NEW):
    - {shard-dg1}:        NOTRUN -> [SKIP][29] ([i915#4083])
   [29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-dg1-14/igt@gem_mmap_wc@pf-nonblock.html

  * igt@i915_query@test-query-geometry-subslices (NEW):
    - {shard-dg1}:        NOTRUN -> [SKIP][30] ([i915#5723])
   [30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-dg1-15/igt@i915_query@test-query-geometry-subslices.html
    - {shard-tglu-10}:    NOTRUN -> [SKIP][31] ([i915#5723])
   [31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-tglu-10/igt@i915_query@test-query-geometry-subslices.html

  * igt@kms_ccs@pipe-b-crc-primary-rotation-180-4_tiled_dg2_rc_ccs (NEW):
    - {shard-dg1}:        NOTRUN -> [SKIP][32] ([i915#3689] / [i915#6095])
   [32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-dg1-18/igt@kms_ccs@pipe-b-crc-primary-rotation-180-4_tiled_dg2_rc_ccs.html
    - {shard-tglu-9}:     NOTRUN -> [SKIP][33] ([i915#1845] / [i915#7651]) +1 similar issue
   [33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-tglu-9/igt@kms_ccs@pipe-b-crc-primary-rotation-180-4_tiled_dg2_rc_ccs.html

  * igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions:
    - shard-glk:          [PASS][34] -> [FAIL][35] ([i915#2346])
   [34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/shard-glk8/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions.html
   [35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-glk9/igt@kms_cursor_legacy@flip-vs-cursor@atomic-transitions.html

  * igt@kms_flip@flip-vs-expired-vblank-interruptible@c-hdmi-a1:
    - shard-glk:          [PASS][36] -> [FAIL][37] ([i915#79]) +1 similar issue
   [36]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/shard-glk1/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-hdmi-a1.html
   [37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-glk8/igt@kms_flip@flip-vs-expired-vblank-interruptible@c-hdmi-a1.html

  * igt@kms_frontbuffer_tracking@fbc-2p-indfb-fliptrack-mmap-gtt (NEW):
    - {shard-tglu}:       [SKIP][38] ([i915#1849]) -> [SKIP][39] ([fdo#109280])
   [38]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/shard-tglu-6/igt@kms_frontbuffer_tracking@fbc-2p-indfb-fliptrack-mmap-gtt.html
   [39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-tglu-7/igt@kms_frontbuffer_tracking@fbc-2p-indfb-fliptrack-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbc-2p-shrfb-fliptrack-mmap-gtt (NEW):
    - {shard-rkl}:        [SKIP][40] ([fdo#111825]) -> [SKIP][41] ([i915#1849] / [i915#4098])
   [40]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-2p-shrfb-fliptrack-mmap-gtt.html
   [41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-rkl-4/igt@kms_frontbuffer_tracking@fbc-2p-shrfb-fliptrack-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-1p-indfb-fliptrack-mmap-gtt (NEW):
    - {shard-dg1}:        NOTRUN -> [SKIP][42] ([i915#4833]) +2 similar issues
   [42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-dg1-12/igt@kms_frontbuffer_tracking@fbcpsr-1p-indfb-fliptrack-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-indfb-fliptrack-mmap-gtt (NEW):
    - {shard-tglu}:       NOTRUN -> [SKIP][43] ([i915#1849])
   [43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-tglu-6/igt@kms_frontbuffer_tracking@fbcpsr-2p-indfb-fliptrack-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-gtt:
    - shard-glk:          NOTRUN -> [SKIP][44] ([fdo#109271]) +9 similar issues
   [44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-glk8/igt@kms_frontbuffer_tracking@fbcpsr-2p-scndscrn-pri-indfb-draw-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-2p-shrfb-fliptrack-mmap-gtt (NEW):
    - {shard-tglu}:       NOTRUN -> [SKIP][45] ([fdo#109280])
   [45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-tglu-1/igt@kms_frontbuffer_tracking@fbcpsr-2p-shrfb-fliptrack-mmap-gtt.html

  * igt@kms_frontbuffer_tracking@fbcpsr-tiling-4 (NEW):
    - {shard-rkl}:        [SKIP][46] ([i915#5439]) -> [SKIP][47] ([i915#1849] / [i915#4098])
   [46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/shard-rkl-6/igt@kms_frontbuffer_tracking@fbcpsr-tiling-4.html
   [47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-rkl-3/igt@kms_frontbuffer_tracking@fbcpsr-tiling-4.html

  * igt@kms_frontbuffer_tracking@psr-farfromfence-mmap-gtt (NEW):
    - {shard-tglu}:       NOTRUN -> [SKIP][48] ([fdo#110189])
   [48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-tglu-3/igt@kms_frontbuffer_tracking@psr-farfromfence-mmap-gtt.html

  * igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5@pipe-a-hdmi-a-1:
    - shard-snb:          NOTRUN -> [SKIP][49] ([fdo#109271]) +27 similar issues
   [49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-snb1/igt@kms_plane_scaling@planes-upscale-factor-0-25-downscale-factor-0-5@pipe-a-hdmi-a-1.html

  * {igt@perf@gen12-invalid-class-instance} (NEW):
    - shard-apl:          NOTRUN -> [SKIP][50] ([fdo#109271]) +5 similar issues
   [50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-apl4/igt@perf@gen12-invalid-class-instance.html

  * igt@sysfs_heartbeat_interval@precise@rcs0 (NEW):
    - {shard-dg1}:        NOTRUN -> [FAIL][51] ([i915#1755]) +4 similar issues
   [51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-dg1-15/igt@sysfs_heartbeat_interval@precise@rcs0.html

  
#### Possible fixes ####

  * igt@drm_fdinfo@virtual-idle:
    - {shard-rkl}:        [FAIL][52] ([i915#7742]) -> [PASS][53]
   [52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/shard-rkl-3/igt@drm_fdinfo@virtual-idle.html
   [53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-rkl-5/igt@drm_fdinfo@virtual-idle.html

  * igt@drm_read@empty-nonblock:
    - {shard-rkl}:        [SKIP][54] ([i915#1845] / [i915#4098]) -> [PASS][55] +14 similar issues
   [54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/shard-rkl-2/igt@drm_read@empty-nonblock.html
   [55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-rkl-6/igt@drm_read@empty-nonblock.html

  * igt@gem_ctx_persistence@hang:
    - {shard-rkl}:        [SKIP][56] ([i915#6252]) -> [PASS][57]
   [56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/shard-rkl-5/igt@gem_ctx_persistence@hang.html
   [57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-rkl-4/igt@gem_ctx_persistence@hang.html

  * igt@gem_exec_fair@basic-deadline:
    - {shard-rkl}:        [FAIL][58] ([i915#2846]) -> [PASS][59]
   [58]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/shard-rkl-2/igt@gem_exec_fair@basic-deadline.html
   [59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-rkl-3/igt@gem_exec_fair@basic-deadline.html

  * igt@gem_exec_fair@basic-none-share@rcs0:
    - {shard-rkl}:        [FAIL][60] ([i915#2842]) -> [PASS][61]
   [60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/shard-rkl-6/igt@gem_exec_fair@basic-none-share@rcs0.html
   [61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-rkl-5/igt@gem_exec_fair@basic-none-share@rcs0.html

  * igt@gem_exec_fair@basic-pace-solo@rcs0:
    - shard-apl:          [FAIL][62] ([i915#2842]) -> [PASS][63]
   [62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/shard-apl1/igt@gem_exec_fair@basic-pace-solo@rcs0.html
   [63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-apl4/igt@gem_exec_fair@basic-pace-solo@rcs0.html

  * igt@gem_exec_fair@basic-throttle@rcs0:
    - shard-glk:          [FAIL][64] ([i915#2842]) -> [PASS][65] +1 similar issue
   [64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/shard-glk2/igt@gem_exec_fair@basic-throttle@rcs0.html
   [65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-glk5/igt@gem_exec_fair@basic-throttle@rcs0.html

  * igt@gem_exec_reloc@basic-write-read-active:
    - {shard-rkl}:        [SKIP][66] ([i915#3281]) -> [PASS][67] +6 similar issues
   [66]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/shard-rkl-3/igt@gem_exec_reloc@basic-write-read-active.html
   [67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-rkl-5/igt@gem_exec_reloc@basic-write-read-active.html

  * igt@gem_partial_pwrite_pread@writes-after-reads-snoop:
    - {shard-rkl}:        [SKIP][68] ([i915#3282]) -> [PASS][69] +1 similar issue
   [68]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/shard-rkl-4/igt@gem_partial_pwrite_pread@writes-after-reads-snoop.html
   [69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-rkl-5/igt@gem_partial_pwrite_pread@writes-after-reads-snoop.html

  * igt@gen9_exec_parse@bb-secure:
    - {shard-rkl}:        [SKIP][70] ([i915#2527]) -> [PASS][71]
   [70]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/shard-rkl-3/igt@gen9_exec_parse@bb-secure.html
   [71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-rkl-5/igt@gen9_exec_parse@bb-secure.html

  * igt@i915_pm_rpm@dpms-lpsp:
    - {shard-rkl}:        [SKIP][72] ([i915#1397]) -> [PASS][73] +1 similar issue
   [72]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/shard-rkl-5/igt@i915_pm_rpm@dpms-lpsp.html
   [73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-rkl-6/igt@i915_pm_rpm@dpms-lpsp.html

  * igt@i915_pm_sseu@full-enable:
    - {shard-rkl}:        [SKIP][74] ([i915#4387]) -> [PASS][75]
   [74]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/shard-rkl-2/igt@i915_pm_sseu@full-enable.html
   [75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-rkl-5/igt@i915_pm_sseu@full-enable.html

  * igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2:
    - shard-glk:          [FAIL][76] ([i915#79]) -> [PASS][77] +1 similar issue
   [76]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/shard-glk5/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2.html
   [77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-glk7/igt@kms_flip@2x-flip-vs-expired-vblank-interruptible@bc-hdmi-a1-hdmi-a2.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-cpu:
    - {shard-tglu}:       [SKIP][78] ([i915#1849]) -> [PASS][79]
   [78]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/shard-tglu-6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-cpu.html
   [79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-tglu-7/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-cpu.html

  * igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt:
    - {shard-rkl}:        [SKIP][80] ([i915#1849] / [i915#4098]) -> [PASS][81] +12 similar issues
   [80]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/shard-rkl-5/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt.html
   [81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-rkl-6/igt@kms_frontbuffer_tracking@fbc-1p-primscrn-spr-indfb-draw-mmap-gtt.html

  * igt@kms_plane@pixel-format@pipe-b-planes:
    - {shard-tglu}:       [SKIP][82] ([i915#1849] / [i915#3558]) -> [PASS][83] +1 similar issue
   [82]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/shard-tglu-6/igt@kms_plane@pixel-format@pipe-b-planes.html
   [83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-tglu-1/igt@kms_plane@pixel-format@pipe-b-planes.html

  * igt@kms_psr@sprite_mmap_gtt:
    - {shard-rkl}:        [SKIP][84] ([i915#1072]) -> [PASS][85] +1 similar issue
   [84]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/shard-rkl-2/igt@kms_psr@sprite_mmap_gtt.html
   [85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-rkl-6/igt@kms_psr@sprite_mmap_gtt.html

  * igt@kms_rotation_crc@bad-pixel-format:
    - {shard-tglu}:       [SKIP][86] ([i915#1845] / [i915#7651]) -> [PASS][87] +4 similar issues
   [86]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/shard-tglu-6/igt@kms_rotation_crc@bad-pixel-format.html
   [87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-tglu-2/igt@kms_rotation_crc@bad-pixel-format.html

  * igt@perf@polling-small-buf:
    - {shard-rkl}:        [FAIL][88] ([i915#1722]) -> [PASS][89]
   [88]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12739/shard-rkl-1/igt@perf@polling-small-buf.html
   [89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/shard-rkl-5/igt@perf@polling-small-buf.html

  
  {name}: This element is suppressed. This means it is ignored when computing
          the status of the difference (SUCCESS, WARNING, or FAILURE).

  [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
  [fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
  [fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
  [fdo#109279]: https://bugs.freedesktop.org/show_bug.cgi?id=109279
  [fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
  [fdo#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
  [fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
  [fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
  [fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
  [fdo#109307]: https://bugs.freedesktop.org/show_bug.cgi?id=109307
  [fdo#109308]: https://bugs.freedesktop.org/show_bug.cgi?id=109308
  [fdo#109313]: https://bugs.freedesktop.org/show_bug.cgi?id=109313
  [fdo#109314]: https://bugs.freedesktop.org/show_bug.cgi?id=109314
  [fdo#109315]: https://bugs.freedesktop.org/show_bug.cgi?id=109315
  [fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506
  [fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
  [fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
  [fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
  [fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
  [fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
  [fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
  [fdo#111644]: https://bugs.freedesktop.org/show_bug.cgi?id=111644
  [fdo#111656]: https://bugs.freedesktop.org/show_bug.cgi?id=111656
  [fdo#111825]: https://bugs.freedesktop.org/show_bug.cgi?id=111825
  [fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
  [fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054
  [fdo#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283
  [i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
  [i915#132]: https://gitlab.freedesktop.org/drm/intel/issues/132
  [i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
  [i915#1722]: https://gitlab.freedesktop.org/drm/intel/issues/1722
  [i915#1755]: https://gitlab.freedesktop.org/drm/intel/issues/1755
  [i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769
  [i915#1825]: https://gitlab.freedesktop.org/drm/intel/issues/1825
  [i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#1849]: https://gitlab.freedesktop.org/drm/intel/issues/1849
  [i915#1937]: https://gitlab.freedesktop.org/drm/intel/issues/1937
  [i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
  [i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
  [i915#2434]: https://gitlab.freedesktop.org/drm/intel/issues/2434
  [i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
  [i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
  [i915#2575]: https://gitlab.freedesktop.org/drm/intel/issues/2575
  [i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
  [i915#2587]: https://gitlab.freedesktop.org/drm/intel/issues/2587
  [i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
  [i915#2681]: https://gitlab.freedesktop.org/drm/intel/issues/2681
  [i915#2705]: https://gitlab.freedesktop.org/drm/intel/issues/2705
  [i915#280]: https://gitlab.freedesktop.org/drm/intel/issues/280
  [i915#284]: https://gitlab.freedesktop.org/drm/intel/issues/284
  [i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
  [i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846
  [i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
  [i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116
  [i915#315]: https://gitlab.freedesktop.org/drm/intel/issues/315
  [i915#3281]: https://gitlab.freedesktop.org/drm/intel/issues/3281
  [i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
  [i915#3291]: https://gitlab.freedesktop.org/drm/intel/issues/3291
  [i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
  [i915#3299]: https://gitlab.freedesktop.org/drm/intel/issues/3299
  [i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
  [i915#3318]: https://gitlab.freedesktop.org/drm/intel/issues/3318
  [i915#3359]: https://gitlab.freedesktop.org/drm/intel/issues/3359
  [i915#3361]: https://gitlab.freedesktop.org/drm/intel/issues/3361
  [i915#3458]: https://gitlab.freedesktop.org/drm/intel/issues/3458
  [i915#3528]: https://gitlab.freedesktop.org/drm/intel/issues/3528
  [i915#3539]: https://gitlab.freedesktop.org/drm/intel/issues/3539
  [i915#3546]: https://gitlab.freedesktop.org/drm/intel/issues/3546
  [i915#3547]: https://gitlab.freedesktop.org/drm/intel/issues/3547
  [i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
  [i915#3558]: https://gitlab.freedesktop.org/drm/intel/issues/3558
  [i915#3591]: https://gitlab.freedesktop.org/drm/intel/issues/3591
  [i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
  [i915#3638]: https://gitlab.freedesktop.org/drm/intel/issues/3638
  [i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
  [i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
  [i915#3734]: https://gitlab.freedesktop.org/drm/intel/issues/3734
  [i915#3742]: https://gitlab.freedesktop.org/drm/intel/issues/3742
  [i915#3825]: https://gitlab.freedesktop.org/drm/intel/issues/3825
  [i915#3840]: https://gitlab.freedesktop.org/drm/intel/issues/3840
  [i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
  [i915#3938]: https://gitlab.freedesktop.org/drm/intel/issues/3938
  [i915#3955]: https://gitlab.freedesktop.org/drm/intel/issues/3955
  [i915#4036]: https://gitlab.freedesktop.org/drm/intel/issues/4036
  [i915#404]: https://gitlab.freedesktop.org/drm/intel/issues/404
  [i915#4070]: https://gitlab.freedesktop.org/drm/intel/issues/4070
  [i915#4077]: https://gitlab.freedesktop.org/drm/intel/issues/4077
  [i915#4078]: https://gitlab.freedesktop.org/drm/intel/issues/4078
  [i915#4079]: https://gitlab.freedesktop.org/drm/intel/issues/4079
  [i915#4083]: https://gitlab.freedesktop.org/drm/intel/issues/4083
  [i915#4098]: https://gitlab.freedesktop.org/drm/intel/issues/4098
  [i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
  [i915#4212]: https://gitlab.freedesktop.org/drm/intel/issues/4212
  [i915#4213]: https://gitlab.freedesktop.org/drm/intel/issues/4213
  [i915#426]: https://gitlab.freedesktop.org/drm/intel/issues/426
  [i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
  [i915#4387]: https://gitlab.freedesktop.org/drm/intel/issues/4387
  [i915#4391]: https://gitlab.freedesktop.org/drm/intel/issues/4391
  [i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
  [i915#4538]: https://gitlab.freedesktop.org/drm/intel/issues/4538
  [i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
  [i915#4771]: https://gitlab.freedesktop.org/drm/intel/issues/4771
  [i915#4812]: https://gitlab.freedesktop.org/drm/intel/issues/4812
  [i915#4818]: https://gitlab.freedesktop.org/drm/intel/issues/4818
  [i915#4833]: https://gitlab.freedesktop.org/drm/intel/issues/4833
  [i915#4852]: https://gitlab.freedesktop.org/drm/intel/issues/4852
  [i915#4859]: https://gitlab.freedesktop.org/drm/intel/issues/4859
  [i915#4860]: https://gitlab.freedesktop.org/drm/intel/issues/4860
  [i915#4873]: https://gitlab.freedesktop.org/drm/intel/issues/4873
  [i915#4879]: https://gitlab.freedesktop.org/drm/intel/issues/4879
  [i915#4880]: https://gitlab.freedesktop.org/drm/intel/issues/4880
  [i915#4885]: https://gitlab.freedesktop.org/drm/intel/issues/4885
  [i915#4958]: https://gitlab.freedesktop.org/drm/intel/issues/4958
  [i915#5122]: https://gitlab.freedesktop.org/drm/intel/issues/5122
  [i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
  [i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
  [i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
  [i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288
  [i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
  [i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
  [i915#533]: https://gitlab.freedesktop.org/drm/intel/issues/533
  [i915#5431]: https://gitlab.freedesktop.org/drm/intel/issues/5431
  [i915#5439]: https://gitlab.freedesktop.org/drm/intel/issues/5439
  [i915#5563]: https://gitlab.freedesktop.org/drm/intel/issues/5563
  [i915#5723]: https://gitlab.freedesktop.org/drm/intel/issues/5723
  [i915#5784]: https://gitlab.freedesktop.org/drm/intel/issues/5784
  [i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
  [i915#6227]: https://gitlab.freedesktop.org/drm/intel/issues/6227
  [i915#6230]: https://gitlab.freedesktop.org/drm/intel/issues/6230
  [i915#6245]: https://gitlab.freedesktop.org/drm/intel/issues/6245
  [i915#6248]: https://gitlab.freedesktop.org/drm/intel/issues/6248
  [i915#6252]: https://gitlab.freedesktop.org/drm/intel/issues/6252
  [i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301
  [i915#6335]: https://gitlab.freedesktop.org/drm/intel/issues/6335
  [i915#6355]: https://gitlab.freedesktop.org/drm/intel/issues/6355
  [i915#6403]: https://gitlab.freedesktop.org/drm/intel/issues/6403
  [i915#6433]: https://gitlab.freedesktop.org/drm/intel/issues/6433
  [i915#6497]: https://gitlab.freedesktop.org/drm/intel/issues/6497
  [i915#6524]: https://gitlab.freedesktop.org/drm/intel/issues/6524
  [i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
  [i915#6621]: https://gitlab.freedesktop.org/drm/intel/issues/6621
  [i915#6768]: https://gitlab.freedesktop.org/drm/intel/issues/6768
  [i915#6944]: https://gitlab.freedesktop.org/drm/intel/issues/6944
  [i915#6946]: https://gitlab.freedesktop.org/drm/intel/issues/6946
  [i915#6953]: https://gitlab.freedesktop.org/drm/intel/issues/6953
  [i915#7116]: https://gitlab.freedesktop.org/drm/intel/issues/7116
  [i915#7118]: https://gitlab.freedesktop.org/drm/intel/issues/7118
  [i915#7128]: https://gitlab.freedesktop.org/drm/intel/issues/7128
  [i915#7294]: https://gitlab.freedesktop.org/drm/intel/issues/7294
  [i915#7561]: https://gitlab.freedesktop.org/drm/intel/issues/7561
  [i915#7651]: https://gitlab.freedesktop.org/drm/intel/issues/7651
  [i915#7697]: https://gitlab.freedesktop.org/drm/intel/issues/7697
  [i915#7701]: https://gitlab.freedesktop.org/drm/intel/issues/7701
  [i915#7707]: https://gitlab.freedesktop.org/drm/intel/issues/7707
  [i915#7711]: https://gitlab.freedesktop.org/drm/intel/issues/7711
  [i915#7742]: https://gitlab.freedesktop.org/drm/intel/issues/7742
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
  [i915#8152]: https://gitlab.freedesktop.org/drm/intel/issues/8152
  [i915#8155]: https://gitlab.freedesktop.org/drm/intel/issues/8155


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_7160 -> IGTPW_8498

  CI-20190529: 20190529
  CI_DRM_12739: 5fc904286af94038fbf2c7cda50ed871b70cf4e8 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_8498: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/index.html
  IGT_7160: 45da871dd2684227e93a2fc002b87dfc58bd5fd9 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_8498/index.html

[-- Attachment #2: Type: text/html, Size: 60952 bytes --]

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 30/31] tools/perf: Choose the right card
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 30/31] tools/perf: Choose the right card Umesh Nerlige Ramappa
@ 2023-02-16 19:39   ` Kamil Konieczny
  2023-02-16 21:27     ` Umesh Nerlige Ramappa
  0 siblings, 1 reply; 73+ messages in thread
From: Kamil Konieczny @ 2023-02-16 19:39 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Hi Umesh,

On 2023-02-14 at 16:46:47 -0800, Umesh Nerlige Ramappa wrote:
> Choose the right dri card to open for perf recorder.
> 
> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
> ---
>  tools/i915-perf/i915_perf_recorder.c | 18 ++++++++----------
>  1 file changed, 8 insertions(+), 10 deletions(-)
> 
> diff --git a/tools/i915-perf/i915_perf_recorder.c b/tools/i915-perf/i915_perf_recorder.c
> index ee8a288d..9337da12 100644
> --- a/tools/i915-perf/i915_perf_recorder.c
> +++ b/tools/i915-perf/i915_perf_recorder.c
> @@ -241,10 +241,10 @@ read_device_param(const char *stem, int id, const char *param)
>  }
>  
>  static int
> -find_intel_render_node(void)
> +find_intel_card_node(void)
>  {
> -	for (int i = 128; i < (128 + 16); i++) {
> -		if (read_device_param("renderD", i, "vendor") == 0x8086)
> +	for (int i = 0; i < 128; i++) {
> +		if (read_device_param("card", i, "vendor") == 0x8086)

These looks like a fix. Btw why do we stick to first card only ?
May you instroduce params for a tool and use N-th card ?
Is OA useable for only one card at a moment ?

Regards,
Kamil

>  			return i;
>  	}
>  
> @@ -273,20 +273,18 @@ open_render_node(uint32_t *devid, int card)
>  	char *name;
>  	int ret;
>  	int fd;
> -	int render;
>  
>  	if (card < 0) {
> -		render = find_intel_render_node();
> -		if (render < 0)
> +		card = find_intel_card_node();
> +
> +		if (card < 0)
>  			return -1;
> -	} else {
> -		render = 128 + card;
>  	}
>  
> -	ret = asprintf(&name, "/dev/dri/renderD%u", render);
> +	ret = asprintf(&name, "/dev/dri/card%u", card);
>  	assert(ret != -1);
>  
> -	*devid = read_device_param("renderD", render, "device");
> +	*devid = read_device_param("card", card, "device");
>  
>  	fd = open(name, O_RDWR);
>  	free(name);
> -- 
> 2.36.1
> 

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 30/31] tools/perf: Choose the right card
  2023-02-16 19:39   ` Kamil Konieczny
@ 2023-02-16 21:27     ` Umesh Nerlige Ramappa
  2023-03-03  1:17       ` Umesh Nerlige Ramappa
  0 siblings, 1 reply; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-02-16 21:27 UTC (permalink / raw)
  To: Kamil Konieczny, igt-dev, Lionel G Landwerlin

On Thu, Feb 16, 2023 at 08:39:12PM +0100, Kamil Konieczny wrote:
>Hi Umesh,
>
>On 2023-02-14 at 16:46:47 -0800, Umesh Nerlige Ramappa wrote:
>> Choose the right dri card to open for perf recorder.
>>
>> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
>> ---
>>  tools/i915-perf/i915_perf_recorder.c | 18 ++++++++----------
>>  1 file changed, 8 insertions(+), 10 deletions(-)
>>
>> diff --git a/tools/i915-perf/i915_perf_recorder.c b/tools/i915-perf/i915_perf_recorder.c
>> index ee8a288d..9337da12 100644
>> --- a/tools/i915-perf/i915_perf_recorder.c
>> +++ b/tools/i915-perf/i915_perf_recorder.c
>> @@ -241,10 +241,10 @@ read_device_param(const char *stem, int id, const char *param)
>>  }
>>
>>  static int
>> -find_intel_render_node(void)
>> +find_intel_card_node(void)
>>  {
>> -	for (int i = 128; i < (128 + 16); i++) {
>> -		if (read_device_param("renderD", i, "vendor") == 0x8086)
>> +	for (int i = 0; i < 128; i++) {
>> +		if (read_device_param("card", i, "vendor") == 0x8086)
>
>These looks like a fix. Btw why do we stick to first card only ?
>May you instroduce params for a tool and use N-th card ?
>Is OA useable for only one card at a moment ?

That's a bug. The tool already supports cards/device, but I don't seem 
to be passing the device/card number to find_intel_card_node().

I think I have lost track of the original patch (not authored by me), so 
I am missing a few changes. Will fix this.

Thanks,
Umesh
>
>Regards,
>Kamil
>
>>  			return i;
>>  	}
>>
>> @@ -273,20 +273,18 @@ open_render_node(uint32_t *devid, int card)
>>  	char *name;
>>  	int ret;
>>  	int fd;
>> -	int render;
>>
>>  	if (card < 0) {
>> -		render = find_intel_render_node();
>> -		if (render < 0)
>> +		card = find_intel_card_node();
>> +
>> +		if (card < 0)
>>  			return -1;
>> -	} else {
>> -		render = 128 + card;
>>  	}
>>
>> -	ret = asprintf(&name, "/dev/dri/renderD%u", render);
>> +	ret = asprintf(&name, "/dev/dri/card%u", card);
>>  	assert(ret != -1);
>>
>> -	*devid = read_device_param("renderD", render, "device");
>> +	*devid = read_device_param("card", card, "device");
>>
>>  	fd = open(name, O_RDWR);
>>  	free(name);
>> --
>> 2.36.1
>>

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 18/31] lib/perf" Set missing metric unit for some counters
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 18/31] lib/perf" Set missing metric unit for some counters Umesh Nerlige Ramappa
@ 2023-02-24 13:22   ` Kamil Konieczny
  2023-03-15  4:44   ` Dixit, Ashutosh
  1 sibling, 0 replies; 73+ messages in thread
From: Kamil Konieczny @ 2023-02-24 13:22 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Hi Umesh,

please replace '"' with ':' in Subject: line,

[PATCH i-g-t 18/31] lib/perf" Set missing metric unit
--------------------------- ^

Regards,
Kamil

On 2023-02-14 at 16:46:35 -0800, Umesh Nerlige Ramappa wrote:
> Some counters do not have units specified, so use 'number' as the unit.
> 
> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
> ---
>  lib/i915/perf-configs/mdapi-xml-convert.py | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/i915/perf-configs/mdapi-xml-convert.py b/lib/i915/perf-configs/mdapi-xml-convert.py
> index 3b7d0663..eee12ad5 100755
> --- a/lib/i915/perf-configs/mdapi-xml-convert.py
> +++ b/lib/i915/perf-configs/mdapi-xml-convert.py
> @@ -819,9 +819,14 @@ for arg in args.xml:
>              # XXX Not sure why EU metrics tend to just be bundled under 'gpu'
>              counter.set('mdapi_hw_unit_type', mdapi_counter.get('HWUnitType').lower())
>  
> +            # Some counters do not have MetricUnits, treat them as number.
> +            if mdapi_counter.get('MetricUnits') == None:
> +                units = "number"
> +            else:
> +                units = mdapi_counter.get('MetricUnits').lower()
> +
>              # There are counters representing cycle counts that have a semantic
>              # type of 'duration' which doesn't seem to make sense...
> -            units = mdapi_counter.get('MetricUnits').lower()
>              if units == "cycles":
>                  semantic_type = "event"
>              else:
> -- 
> 2.36.1
> 

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 30/31] tools/perf: Choose the right card
  2023-02-16 21:27     ` Umesh Nerlige Ramappa
@ 2023-03-03  1:17       ` Umesh Nerlige Ramappa
  0 siblings, 0 replies; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-03-03  1:17 UTC (permalink / raw)
  To: Kamil Konieczny, igt-dev, Lionel G Landwerlin

On Thu, Feb 16, 2023 at 01:27:00PM -0800, Umesh Nerlige Ramappa wrote:
>On Thu, Feb 16, 2023 at 08:39:12PM +0100, Kamil Konieczny wrote:
>>Hi Umesh,
>>
>>On 2023-02-14 at 16:46:47 -0800, Umesh Nerlige Ramappa wrote:
>>>Choose the right dri card to open for perf recorder.
>>>
>>>Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
>>>---
>>> tools/i915-perf/i915_perf_recorder.c | 18 ++++++++----------
>>> 1 file changed, 8 insertions(+), 10 deletions(-)
>>>
>>>diff --git a/tools/i915-perf/i915_perf_recorder.c b/tools/i915-perf/i915_perf_recorder.c
>>>index ee8a288d..9337da12 100644
>>>--- a/tools/i915-perf/i915_perf_recorder.c
>>>+++ b/tools/i915-perf/i915_perf_recorder.c
>>>@@ -241,10 +241,10 @@ read_device_param(const char *stem, int id, const char *param)
>>> }
>>>
>>> static int
>>>-find_intel_render_node(void)
>>>+find_intel_card_node(void)
>>> {
>>>-	for (int i = 128; i < (128 + 16); i++) {
>>>-		if (read_device_param("renderD", i, "vendor") == 0x8086)
>>>+	for (int i = 0; i < 128; i++) {
>>>+		if (read_device_param("card", i, "vendor") == 0x8086)
>>
>>These looks like a fix. Btw why do we stick to first card only ?
>>May you instroduce params for a tool and use N-th card ?
>>Is OA useable for only one card at a moment ?
>
>That's a bug. The tool already supports cards/device, but I don't seem 
>to be passing the device/card number to find_intel_card_node().
>
>I think I have lost track of the original patch (not authored by me), 
>so I am missing a few changes. Will fix this.

Hmm, Looking at it again, it's not a bug. This function is only called 
if the user of the tool does not pass the card/device parameter (card < 
0 below).  It picks what's available.  If the user passes the device 
number, then the specific card is opened for streaming perf reports.

Umesh
>
>Thanks,
>Umesh
>>
>>Regards,
>>Kamil
>>
>>> 			return i;
>>> 	}
>>>
>>>@@ -273,20 +273,18 @@ open_render_node(uint32_t *devid, int card)
>>> 	char *name;
>>> 	int ret;
>>> 	int fd;
>>>-	int render;
>>>
>>> 	if (card < 0) {
>>>-		render = find_intel_render_node();
>>>-		if (render < 0)
>>>+		card = find_intel_card_node();
>>>+
>>>+		if (card < 0)
>>> 			return -1;
>>>-	} else {
>>>-		render = 128 + card;
>>> 	}
>>>
>>>-	ret = asprintf(&name, "/dev/dri/renderD%u", render);
>>>+	ret = asprintf(&name, "/dev/dri/card%u", card);
>>> 	assert(ret != -1);
>>>
>>>-	*devid = read_device_param("renderD", render, "device");
>>>+	*devid = read_device_param("card", card, "device");
>>>
>>> 	fd = open(name, O_RDWR);
>>> 	free(name);
>>>--
>>>2.36.1
>>>

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 01/31] i915/perf: Add support for 64-bit OA formats
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 01/31] i915/perf: Add support for 64-bit OA formats Umesh Nerlige Ramappa
@ 2023-03-04  2:55   ` Dixit, Ashutosh
  0 siblings, 0 replies; 73+ messages in thread
From: Dixit, Ashutosh @ 2023-03-04  2:55 UTC (permalink / raw)
  To: Umesh Nerlige Ramappa; +Cc: igt-dev, Lionel G Landwerlin

On Tue, 14 Feb 2023 16:46:18 -0800, Umesh Nerlige Ramappa wrote:
>
> Newer gen12 platforms introduced 64 bit OA formats that are used by MTL.
> Add support to parse reports for 64 bit counters.

Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 02/31] i915/perf: Define a default engine for OA
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 02/31] i915/perf: Define a default engine for OA Umesh Nerlige Ramappa
@ 2023-03-04  3:05   ` Dixit, Ashutosh
  0 siblings, 0 replies; 73+ messages in thread
From: Dixit, Ashutosh @ 2023-03-04  3:05 UTC (permalink / raw)
  To: Umesh Nerlige Ramappa; +Cc: igt-dev, Lionel G Landwerlin

On Tue, 14 Feb 2023 16:46:19 -0800, Umesh Nerlige Ramappa wrote:
>
> Use a helper to set the default engine for use with OA.

... for setting default ci in perf properties.

Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>x

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 03/31] i915/perf: Use default engine for sseu tests
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 03/31] i915/perf: Use default engine for sseu tests Umesh Nerlige Ramappa
@ 2023-03-04  3:08   ` Dixit, Ashutosh
  0 siblings, 0 replies; 73+ messages in thread
From: Dixit, Ashutosh @ 2023-03-04  3:08 UTC (permalink / raw)
  To: Umesh Nerlige Ramappa; +Cc: igt-dev, Lionel G Landwerlin

On Tue, 14 Feb 2023 16:46:20 -0800, Umesh Nerlige Ramappa wrote:
>
> Explicitly pass the default engine for the sseu tests.

Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 04/31] i915/perf: Ensure rcs0 is present for gen12-mi-rpc
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 04/31] i915/perf: Ensure rcs0 is present for gen12-mi-rpc Umesh Nerlige Ramappa
@ 2023-03-04  3:26   ` Dixit, Ashutosh
  0 siblings, 0 replies; 73+ messages in thread
From: Dixit, Ashutosh @ 2023-03-04  3:26 UTC (permalink / raw)
  To: Umesh Nerlige Ramappa; +Cc: igt-dev, Lionel G Landwerlin

On Tue, 14 Feb 2023 16:46:21 -0800, Umesh Nerlige Ramappa wrote:
>
> Make sure rcs0 is present for gen12-mi-rpc.

Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 05/31] i915/perf: Use ARRAY_SIZE for buffer-fill test
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 05/31] i915/perf: Use ARRAY_SIZE for buffer-fill test Umesh Nerlige Ramappa
@ 2023-03-04  3:28   ` Dixit, Ashutosh
  0 siblings, 0 replies; 73+ messages in thread
From: Dixit, Ashutosh @ 2023-03-04  3:28 UTC (permalink / raw)
  To: Umesh Nerlige Ramappa; +Cc: igt-dev, Lionel G Landwerlin

On Tue, 14 Feb 2023 16:46:22 -0800, Umesh Nerlige Ramappa wrote:
>
> A prior patch changed the way size of properties is calculated. It
> missed one test. Replace the sizeof with ARRAY_SIZE for buffer-fill
> test.

Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 06/31] i915/perf: Add class:instance support to OA tests
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 06/31] i915/perf: Add class:instance support to OA tests Umesh Nerlige Ramappa
@ 2023-03-04  3:38   ` Dixit, Ashutosh
  0 siblings, 0 replies; 73+ messages in thread
From: Dixit, Ashutosh @ 2023-03-04  3:38 UTC (permalink / raw)
  To: Umesh Nerlige Ramappa; +Cc: igt-dev, Lionel G Landwerlin

On Tue, 14 Feb 2023 16:46:23 -0800, Umesh Nerlige Ramappa wrote:
>
> Add test to verify class:instance interface to perf OA.
>
> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
> ---
>  include/drm-uapi/i915_drm.h | 20 +++++++++++++++
>  tests/i915/perf.c           | 49 +++++++++++++++++++++++++++++++++++++
>  2 files changed, 69 insertions(+)
>
> diff --git a/include/drm-uapi/i915_drm.h b/include/drm-uapi/i915_drm.h
> index b71acfba..5fab3066 100644
> --- a/include/drm-uapi/i915_drm.h
> +++ b/include/drm-uapi/i915_drm.h
> @@ -2627,6 +2627,26 @@ enum drm_i915_perf_property_id {
>	 */
>	DRM_I915_PERF_PROP_POLL_OA_PERIOD,
>
> +	/**
> +	 * In platforms with multiple OA buffers, the engine class instance must
> +	 * be passed to open a stream to a OA unit corresponding to the engine.
> +	 * Multiple engines may be mapped to the same OA unit.
> +	 *
> +	 * In addition to the class:instance, if a gem context is also passed, then
> +	 * 1) the report headers of OA reports from other engines are squashed.
> +	 * 2) OAR is enabled for the class:instance
> +	 *
> +	 * This property is available in perf revision 6.
> +	 */
> +	DRM_I915_PERF_PROP_OA_ENGINE_CLASS,
> +
> +	/**
> +	 * This parameter specifies the engine instance.
> +	 *
> +	 * This property is available in perf revision 6.
> +	 */
> +	DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE,
> +

This file cannot be modified, it must be sync'd with the
kernel. Temporarily add these as #defines or enum with the correct values
to lib/i915/i915_drm_local.h.

With the above, this is:

Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 07/31] i915/perf: Enable tests to run on specific engines
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 07/31] i915/perf: Enable tests to run on specific engines Umesh Nerlige Ramappa
@ 2023-03-06 22:19   ` Dixit, Ashutosh
  0 siblings, 0 replies; 73+ messages in thread
From: Dixit, Ashutosh @ 2023-03-06 22:19 UTC (permalink / raw)
  To: Umesh Nerlige Ramappa; +Cc: igt-dev, Lionel G Landwerlin

On Tue, 14 Feb 2023 16:46:24 -0800, Umesh Nerlige Ramappa wrote:
>
> @@ -5115,22 +5234,15 @@ test_sysctl_defaults(void)
>	igt_assert_eq(max_freq, 100000);
>  }
>
> -static int i915_perf_revision(int fd)
> -{
> -	drm_i915_getparam_t gp;
> -	int value = 1, ret;
> +#define __for_each_perf_enabled_engine(fd__, e__) \
> +	for_each_physical_engine(fd__, e__) \
> +		if (perf_supports_engine(e__)) \

Some tests are using for_each_if() in this case (and the one below) but
it's identical so:

Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>

> +			igt_dynamic_f("%s", e__->name)
>
> -	gp.param = I915_PARAM_PERF_REVISION;
> -	gp.value = &value;
> -	ret = igt_ioctl(drm_fd, DRM_IOCTL_I915_GETPARAM, &gp);
> -	if (ret == -1) {
> -		/* If the param is missing, consider version 1. */
> -		igt_assert_eq(errno, EINVAL);
> -		return 1;
> -	}
> -
> -	return value;
> -}
> +#define __for_each_render_engine(fd__, e__) \
> +	for_each_physical_engine(fd__, e__) \
> +		if (e__->class == I915_ENGINE_CLASS_RENDER) \
> +			igt_dynamic_f("%s", e__->name)
>

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 08/31] i915/perf: Treat ticks as 64 bit
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 08/31] i915/perf: Treat ticks as 64 bit Umesh Nerlige Ramappa
@ 2023-03-06 23:13   ` Dixit, Ashutosh
  2023-03-09 22:55     ` Umesh Nerlige Ramappa
  2023-03-09 23:00   ` Dixit, Ashutosh
  1 sibling, 1 reply; 73+ messages in thread
From: Dixit, Ashutosh @ 2023-03-06 23:13 UTC (permalink / raw)
  To: Umesh Nerlige Ramappa; +Cc: igt-dev, Lionel G Landwerlin

On Tue, 14 Feb 2023 16:46:25 -0800, Umesh Nerlige Ramappa wrote:
>

Hi Umesh,

> To support 64 bit OA report headers, treat all ticks as 64 bits.
>
> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
> ---
>  tests/i915/perf.c | 79 ++++++++++++++++++++++++++++++++---------------
>  1 file changed, 54 insertions(+), 25 deletions(-)
>
> diff --git a/tests/i915/perf.c b/tests/i915/perf.c
> index bd3cdb6a..4c7b4e49 100644
> --- a/tests/i915/perf.c
> +++ b/tests/i915/perf.c
> @@ -125,6 +125,7 @@ struct oa_format {
>	int c_off;
>	int n_c;
>	int oa_type;
> +	bool report_hdr_64bit;
>  };
>
>  static struct oa_format hsw_oa_formats[I915_OA_FORMAT_MAX] = {
> @@ -244,7 +245,7 @@ static bool *undefined_a_counters;
>  static uint64_t oa_exp_1_millisec;
>
>  static igt_render_copyfunc_t render_copy = NULL;
> -static uint32_t (*read_report_ticks)(const uint32_t *report,
> +static uint64_t (*read_report_ticks)(const uint32_t *report,
>				     enum drm_i915_oa_format format);
>  static void (*sanity_check_reports)(const uint32_t *oa_report0,
>				    const uint32_t *oa_report1,
> @@ -438,7 +439,7 @@ sysfs_read(enum i915_attr_id id)
>   * C2 corresponds to a clock counter for the Haswell render basic metric set
>   * but it's not included in all of the formats.
>   */
> -static uint32_t
> +static uint64_t
>  hsw_read_report_ticks(const uint32_t *report, enum drm_i915_oa_format format)
>  {
>	uint32_t *c = (uint32_t *)(((uint8_t *)report) + get_oa_format(format).c_off);
> @@ -448,10 +449,41 @@ hsw_read_report_ticks(const uint32_t *report, enum drm_i915_oa_format format)
>	return c[2];
>  }
>
> -static uint32_t
> +static uint64_t
>  gen8_read_report_ticks(const uint32_t *report, enum drm_i915_oa_format format)
>  {
> -	return report[3];
> +
> +	struct oa_format fmt = get_oa_format(format);
> +
> +	return fmt.report_hdr_64bit ? *(uint64_t *)&report[6] : report[3];
> +}
> +
> +/*
> + * t0 is a value sampled before t1. width is number of bits used to represent
> + * t0/t1. Normally t1 is greater than t0. In cases where t1 < t0 use this
> + * helper. Since the size of t1/t0 is already 64 bits, no special handling is
> + * needed for width = 64.
> + */
> +static uint64_t
> +elapsed_delta(uint64_t t1, uint64_t t0, uint32_t width)
> +{
> +	uint32_t max_bits = sizeof(t1) * 8;
> +
> +	igt_assert(width <= max_bits);
> +
> +	if (t1 < t0 && width != max_bits)
> +		return ((1ULL << width) - t0) + t1;
> +
> +	return t1 - t0;

OK, this looks fine due to 2's complement arithmentic.

> +}
> +
> +static uint64_t
> +oa_tick_delta(const uint32_t *report1,
> +	      const uint32_t *report0,
> +	      enum drm_i915_oa_format format)
> +{
> +	return elapsed_delta(read_report_ticks(report1, format),
> +			     read_report_ticks(report0, format), 32);

Why are ticks always considered 32 bits? For 64 bit report headers aren't
ticks 64 bits?

Also, sorry my ignorance, what is the difference between timestamps and
ticks (both are present in the report headers)?

Thanks.
--
Ashutosh

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 09/31] i915/perf: Treat timestamp as 64 bit value
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 09/31] i915/perf: Treat timestamp as 64 bit value Umesh Nerlige Ramappa
@ 2023-03-07 12:53   ` Kamil Konieczny
  0 siblings, 0 replies; 73+ messages in thread
From: Kamil Konieczny @ 2023-03-07 12:53 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Hi,

On 2023-02-14 at 16:46:26 -0800, Umesh Nerlige Ramappa wrote:
> New OA formats in MTL have 64 bit OA report header. Update the timestamp
> in the tests to be dafault 64 bit.
--------------------- ^
default

Rest lgtm,

Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>

+cc Ashutosh

btw please use checkpatch.pl from linux kernel, is can point to
some trivial problems like spaces/tabs or misspelled words (imho
line too long may be ignored).

Regards,
Kamil

> 
> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
> ---
>  tests/i915/perf.c | 156 +++++++++++++++++++++++++++-------------------
>  1 file changed, 93 insertions(+), 63 deletions(-)
> 
> diff --git a/tests/i915/perf.c b/tests/i915/perf.c
> index 4c7b4e49..c3c5663b 100644
> --- a/tests/i915/perf.c
> +++ b/tests/i915/perf.c
> @@ -552,9 +552,28 @@ cs_timebase_scale(uint32_t u32_delta)
>  }
>  
>  static uint64_t
> -timebase_scale(uint32_t u32_delta)
> +oa_timestamp(const uint32_t *report, enum drm_i915_oa_format format)
>  {
> -	return ((uint64_t)u32_delta * NSEC_PER_SEC) / intel_perf->devinfo.timestamp_frequency;
> +	struct oa_format fmt = get_oa_format(format);
> +
> +	return fmt.report_hdr_64bit ? *(uint64_t *)&report[2] : report[1];
> +}
> +
> +static uint64_t
> +oa_timestamp_delta(const uint32_t *report1,
> +		   const uint32_t *report0,
> +		   enum drm_i915_oa_format format)
> +{
> +	uint32_t width = intel_graphics_ver(devid) >= IP_VER(12, 55) ? 56 : 32;
> +
> +	return elapsed_delta(oa_timestamp(report1, format),
> +			     oa_timestamp(report0, format), width);
> +}
> +
> +static uint64_t
> +timebase_scale(uint64_t delta)
> +{
> +	return (delta * NSEC_PER_SEC) / intel_perf->devinfo.timestamp_frequency;
>  }
>  
>  /* Returns: the largest OA exponent that will still result in a sampling period
> @@ -563,7 +582,7 @@ timebase_scale(uint32_t u32_delta)
>  static int
>  max_oa_exponent_for_period_lte(uint64_t period)
>  {
> -	/* NB: timebase_scale() takes a uint32_t and an exponent of 30
> +	/* NB: timebase_scale() takes a uint64_t and an exponent of 30
>  	 * would already represent a period of ~3 minutes so there's
>  	 * really no need to consider higher exponents.
>  	 */
> @@ -712,12 +731,14 @@ hsw_sanity_check_render_basic_reports(const uint32_t *oa_report0,
>  				      const uint32_t *oa_report1,
>  				      enum drm_i915_oa_format fmt)
>  {
> -	uint32_t time_delta = timebase_scale(oa_report1[1] - oa_report0[1]);
> +	uint64_t time_delta = timebase_scale(oa_timestamp_delta(oa_report1,
> +								oa_report0,
> +								fmt));
>  	uint64_t clock_delta;
>  	uint64_t max_delta;
>  	struct oa_format format = get_oa_format(fmt);
>  
> -	igt_assert_neq(time_delta, 0);
> +	igt_assert_neq_u64(time_delta, 0);
>  
>  	/* As a special case we have to consider that on Haswell we
>  	 * can't explicitly derive a clock delta for all OA report
> @@ -726,8 +747,7 @@ hsw_sanity_check_render_basic_reports(const uint32_t *oa_report0,
>  	if (format.n_c == 0) {
>  		/* Assume running at max freq for sake of
>  		 * below sanity check on counters... */
> -		clock_delta = (gt_max_freq_mhz *
> -			       (uint64_t)time_delta) / 1000;
> +		clock_delta = (gt_max_freq_mhz * time_delta) / 1000;
>  	} else {
>  		uint64_t freq;
>  
> @@ -871,7 +891,8 @@ accumulate_reports(struct accumulator *accumulator,
>  
>  	if (intel_gen(devid) >= 8) {
>  		/* timestamp */
> -		accumulate_uint32(4, start, end, deltas + idx++);
> +		deltas[idx] += oa_timestamp_delta(end, start, accumulator->format);
> +		idx++;
>  
>  		/* clock cycles */
>  		deltas[idx] += oa_tick_delta(end, start, accumulator->format);
> @@ -947,7 +968,9 @@ gen8_sanity_check_test_oa_reports(const uint32_t *oa_report0,
>  				  enum drm_i915_oa_format fmt)
>  {
>  	struct oa_format format = get_oa_format(fmt);
> -	uint32_t time_delta = timebase_scale(oa_report1[1] - oa_report0[1]);
> +	uint64_t time_delta = timebase_scale(oa_timestamp_delta(oa_report1,
> +								oa_report0,
> +								fmt));
>  	uint64_t clock_delta = oa_tick_delta(oa_report1, oa_report0, fmt);
>  	uint64_t max_delta;
>  	uint64_t freq;
> @@ -1135,11 +1158,11 @@ static int
>  i915_read_reports_until_timestamp(enum drm_i915_oa_format oa_format,
>  				  uint8_t *buf,
>  				  uint32_t max_size,
> -				  uint32_t start_timestamp,
> -				  uint32_t end_timestamp)
> +				  uint64_t start_timestamp,
> +				  uint64_t end_timestamp)
>  {
>  	size_t format_size = get_oa_format(oa_format).size;
> -	uint32_t last_seen_timestamp = start_timestamp;
> +	uint64_t last_seen_timestamp = start_timestamp;
>  	int total_len = 0;
>  
>  	while (last_seen_timestamp < end_timestamp) {
> @@ -1148,7 +1171,7 @@ i915_read_reports_until_timestamp(enum drm_i915_oa_format oa_format,
>  		/* Running out of space. */
>  		if ((max_size - total_len) < format_size) {
>  			igt_warn("run out of space before reaching "
> -				 "end timestamp (%u/%u)\n",
> +				 "end timestamp (%"PRIu64"/%"PRIu64")\n",
>  				 last_seen_timestamp, end_timestamp);
>  			return -1;
>  		}
> @@ -1177,7 +1200,7 @@ i915_read_reports_until_timestamp(enum drm_i915_oa_format oa_format,
>  			uint32_t *report = (uint32_t *) (header + 1);
>  
>  			if (header->type == DRM_I915_PERF_RECORD_SAMPLE)
> -				last_seen_timestamp = report[1];
> +				last_seen_timestamp = oa_timestamp(report, oa_format);
>  
>  			offset += header->size;
>  		}
> @@ -1483,11 +1506,11 @@ read_2_oa_reports(int format_id,
>  			report = (const void *)(header + 1);
>  			dump_report(report, format_size / 4, "oa-formats");
>  
> -			igt_debug("read report: reason = %x, timestamp = %x, exponent mask=%x\n",
> -				  report[0], report[1], exponent_mask);
> +			igt_debug("read report: reason = %x, timestamp = %"PRIx64", exponent mask=%x\n",
> +				  report[0], oa_timestamp(report, format_id), exponent_mask);
>  
>  			/* Don't expect zero for timestamps */
> -			igt_assert_neq(report[1], 0);
> +			igt_assert_neq_u64(oa_timestamp(report, format_id), 0);
>  
>  			if (timer_only) {
>  				if (!oa_report_is_periodic(exponent, report)) {
> @@ -1551,9 +1574,11 @@ static void
>  print_reports(uint32_t *oa_report0, uint32_t *oa_report1, int fmt)
>  {
>  	struct oa_format format = get_oa_format(fmt);
> +	uint64_t ts0 = oa_timestamp(oa_report0, fmt);
> +	uint64_t ts1 = oa_timestamp(oa_report1, fmt);
>  
> -	igt_debug("TIMESTAMP: 1st = %"PRIu32", 2nd = %"PRIu32", delta = %"PRIu32"\n",
> -		  oa_report0[1], oa_report1[1], oa_report1[1] - oa_report0[1]);
> +	igt_debug("TIMESTAMP: 1st = %"PRIu64", 2nd = %"PRIu64", delta = %"PRIu64"\n",
> +		  ts0, ts1, ts1 - ts0);
>  
>  	if (IS_HASWELL(devid) && format.n_c == 0) {
>  		igt_debug("CLOCK = N/A\n");
> @@ -1658,7 +1683,7 @@ print_report(uint32_t *report, int fmt)
>  {
>  	struct oa_format format = get_oa_format(fmt);
>  
> -	igt_debug("TIMESTAMP: %"PRIu32"\n", report[1]);
> +	igt_debug("TIMESTAMP: %"PRIu64"\n", oa_timestamp(report, fmt));
>  
>  	if (IS_HASWELL(devid) && format.n_c == 0) {
>  		igt_debug("CLOCK = N/A\n");
> @@ -1887,6 +1912,8 @@ static bool expected_report_timing_delta(uint32_t delta, uint32_t expected_delta
>  static void
>  test_oa_exponents(const struct intel_execution_engine2 *e)
>  {
> +	uint64_t fmt = test_set->perf_oa_format;
> +
>  	load_helper_init();
>  	load_helper_run(HIGH);
>  
> @@ -1901,7 +1928,7 @@ test_oa_exponents(const struct intel_execution_engine2 *e)
>  
>  			/* OA unit configuration */
>  			DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
> -			DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
> +			DRM_I915_PERF_PROP_OA_FORMAT, fmt,
>  			DRM_I915_PERF_PROP_OA_EXPONENT, exponent,
>  			DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
>  			DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, e->instance,
> @@ -1914,7 +1941,7 @@ test_oa_exponents(const struct intel_execution_engine2 *e)
>  			.properties_ptr = to_user_pointer(properties),
>  		};
>  		uint64_t expected_timestamp_delta = 2ULL << exponent;
> -		size_t format_size = get_oa_format(test_set->perf_oa_format).size;
> +		size_t format_size = get_oa_format(fmt).size;
>  		size_t sample_size = (sizeof(struct drm_i915_perf_record_header) +
>  				      format_size);
>  		int max_reports = MAX_OA_BUF_SIZE / format_size;
> @@ -1978,15 +2005,16 @@ test_oa_exponents(const struct intel_execution_engine2 *e)
>  
>  		__perf_close(stream_fd);
>  
> -		igt_debug("report%04i ts=%08x hw_id=0x%08x\n", 0,
> -			  timer_reports[0].report[1],
> +		igt_debug("report%04i ts=%"PRIx64" hw_id=0x%08x\n", 0,
> +			  oa_timestamp(timer_reports[0].report, fmt),
>  			  oa_report_get_ctx_id(timer_reports[0].report));
>  		for (int i = 1; i < n_timer_reports; i++) {
> -			uint32_t delta =
> -				timer_reports[i].report[1] - timer_reports[i - 1].report[1];
> +			uint64_t delta = oa_timestamp_delta(timer_reports[i].report,
> +							    timer_reports[i - 1].report,
> +							    fmt);
>  
> -			igt_debug("report%04i ts=%08x hw_id=0x%08x delta=%u %s\n", i,
> -				  timer_reports[i].report[1],
> +			igt_debug("report%04i ts=%"PRIx64" hw_id=0x%08x delta=%"PRIu64" %s\n", i,
> +				  oa_timestamp(timer_reports[i].report, fmt),
>  				  oa_report_get_ctx_id(timer_reports[i].report),
>  				  delta, expected_report_timing_delta(delta,
>  								      expected_timestamp_delta) ? "" : "******");
> @@ -2705,13 +2733,14 @@ test_buffer_fill(const struct intel_execution_engine2 *e)
>  	/* ~5 micro second period */
>  	int oa_exponent = max_oa_exponent_for_period_lte(5000);
>  	uint64_t oa_period = oa_exponent_to_ns(oa_exponent);
> +	uint64_t fmt = test_set->perf_oa_format;
>  	uint64_t properties[] = {
>  		/* Include OA reports in samples */
>  		DRM_I915_PERF_PROP_SAMPLE_OA, true,
>  
>  		/* OA unit configuration */
>  		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
> -		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
> +		DRM_I915_PERF_PROP_OA_FORMAT, fmt,
>  		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
>  		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
>  		DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, e->instance,
> @@ -2728,7 +2757,7 @@ test_buffer_fill(const struct intel_execution_engine2 *e)
>  	uint8_t *buf = malloc(buf_size);
>  	int len;
>  	size_t oa_buf_size = MAX_OA_BUF_SIZE;
> -	size_t report_size = get_oa_format(test_set->perf_oa_format).size;
> +	size_t report_size = get_oa_format(fmt).size;
>  	int n_full_oa_reports = oa_buf_size / report_size;
>  	uint64_t fill_duration = n_full_oa_reports * oa_period;
>  
> @@ -2803,17 +2832,17 @@ test_buffer_fill(const struct intel_execution_engine2 *e)
>  					igt_debug("report loss, trying again\n");
>  					break;
>  				case DRM_I915_PERF_RECORD_SAMPLE:
> -					igt_debug(" > report ts=%u"
> -						  " ts_delta_last_periodic=%8u is_timer=%i ctx_id=%8x nb_periodic=%u\n",
> -						  report[1],
> -						  n_periodic_reports > 0 ? report[1] - last_periodic_report[1] : 0,
> +					igt_debug(" > report ts=%"PRIu64""
> +						  " ts_delta_last_periodic=%"PRIu64" is_timer=%i ctx_id=%8x nb_periodic=%u\n",
> +						  oa_timestamp(report, fmt),
> +						  n_periodic_reports > 0 ?  oa_timestamp_delta(report, last_periodic_report, fmt) : 0,
>  						  oa_report_is_periodic(oa_exponent, report),
>  						  oa_report_get_ctx_id(report),
>  						  n_periodic_reports);
>  
>  					if (first_timestamp == 0)
> -						first_timestamp = report[1];
> -					last_timestamp = report[1];
> +						first_timestamp = oa_timestamp(report, fmt);
> +					last_timestamp = oa_timestamp(report, fmt);
>  
>  					if (((last_timestamp - first_timestamp) * oa_period) < (fill_duration / 2))
>  						break;
> @@ -2940,13 +2969,14 @@ test_enable_disable(const struct intel_execution_engine2 *e)
>  	/* ~5 micro second period */
>  	int oa_exponent = max_oa_exponent_for_period_lte(5000);
>  	uint64_t oa_period = oa_exponent_to_ns(oa_exponent);
> +	uint64_t fmt = test_set->perf_oa_format;
>  	uint64_t properties[] = {
>  		/* Include OA reports in samples */
>  		DRM_I915_PERF_PROP_SAMPLE_OA, true,
>  
>  		/* OA unit configuration */
>  		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
> -		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
> +		DRM_I915_PERF_PROP_OA_FORMAT, fmt,
>  		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
>  		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
>  		DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, e->instance,
> @@ -2962,7 +2992,7 @@ test_enable_disable(const struct intel_execution_engine2 *e)
>  	int buf_size = 65536 * (256 + sizeof(struct drm_i915_perf_record_header));
>  	uint8_t *buf = malloc(buf_size);
>  	size_t oa_buf_size = MAX_OA_BUF_SIZE;
> -	size_t report_size = get_oa_format(test_set->perf_oa_format).size;
> +	size_t report_size = get_oa_format(fmt).size;
>  	int n_full_oa_reports = oa_buf_size / report_size;
>  	uint64_t fill_duration = n_full_oa_reports * oa_period;
>  
> @@ -2975,7 +3005,7 @@ test_enable_disable(const struct intel_execution_engine2 *e)
>  		int len;
>  		uint32_t n_periodic_reports;
>  		struct drm_i915_perf_record_header *header;
> -		uint32_t first_timestamp = 0, last_timestamp = 0;
> +		uint64_t first_timestamp = 0, last_timestamp = 0;
>  		uint32_t last_periodic_report[64];
>  
>  		/* Giving enough time for an overflow might help catch whether
> @@ -3022,15 +3052,15 @@ test_enable_disable(const struct intel_execution_engine2 *e)
>  					break;
>  				case DRM_I915_PERF_RECORD_SAMPLE:
>  					if (first_timestamp == 0)
> -						first_timestamp = report[1];
> -					last_timestamp = report[1];
> +						first_timestamp = oa_timestamp(report, fmt);
> +					last_timestamp = oa_timestamp(report, fmt);
>  
> -					igt_debug(" > report ts=%8x"
> -						  " ts_delta_last_periodic=%s%8u"
> +					igt_debug(" > report ts=%"PRIx64""
> +						  " ts_delta_last_periodic=%s%"PRIu64""
>  						  " is_timer=%i ctx_id=0x%8x\n",
> -						  report[1],
> +						  oa_timestamp(report, fmt),
>  						  oa_report_is_periodic(oa_exponent, report) ? " " : "*",
> -						  n_periodic_reports > 0 ? (report[1] - last_periodic_report[1]) : 0,
> +						  n_periodic_reports > 0 ?  oa_timestamp_delta(report, last_periodic_report, fmt) : 0,
>  						  oa_report_is_periodic(oa_exponent, report),
>  						  oa_report_get_ctx_id(report));
>  
> @@ -3060,7 +3090,7 @@ test_enable_disable(const struct intel_execution_engine2 *e)
>  
>  		do_ioctl(stream_fd, I915_PERF_IOCTL_DISABLE, 0);
>  
> -		igt_debug("first ts = %u, last ts = %u\n", first_timestamp, last_timestamp);
> +		igt_debug("first ts = %lu, last ts = %lu\n", first_timestamp, last_timestamp);
>  
>  		igt_debug("%f < %zu < %f\n",
>  			  report_size * n_full_oa_reports * 0.45,
> @@ -3366,7 +3396,7 @@ gen12_test_mi_rpc(const struct intel_execution_engine2 *e)
>  	 * size amount of data was written.
>  	 */
>  	igt_assert_eq(report32[0], REPORT_ID);
> -	igt_assert_neq(report32[1], 0);
> +	igt_assert(oa_timestamp(report32, test_set->perf_oa_format));
>  	igt_assert_neq(report32[format.b_off >> 2], 0x80808080);
>  	igt_assert_eq(report32[format_size_32], 0x80808080);
>  
> @@ -3427,7 +3457,7 @@ test_mi_rpc(void)
>  	report32 = buf->ptr;
>  	dump_report(report32, 64, "mi-rpc");
>  	igt_assert_eq(report32[0], 0xdeadbeef); /* report ID */
> -	igt_assert_neq(report32[1], 0); /* timestamp */
> +	igt_assert(oa_timestamp(report32, test_set->perf_oa_format)); /* timestamp */
>  
>  	igt_assert_neq(report32[63], 0x80808080); /* end of report */
>  	igt_assert_eq(report32[64], 0x80808080); /* after 256 byte report */
> @@ -4166,9 +4196,9 @@ static void gen12_single_ctx_helper(const struct intel_execution_engine2 *e)
>  	uint32_t context0_id, context1_id;
>  	uint32_t *report0_32, *report1_32, *report2_32, *report3_32;
>  	uint64_t timestamp0_64, timestamp1_64;
> -	uint32_t delta_ts64, delta_oa32;
> +	uint64_t delta_ts64, delta_oa32;
>  	uint64_t delta_ts64_ns, delta_oa32_ns;
> -	uint32_t delta_delta;
> +	uint64_t delta_delta;
>  	int width = 800;
>  	int height = 600;
>  #define INVALID_CTX_ID 0xffffffff
> @@ -4323,14 +4353,14 @@ static void gen12_single_ctx_helper(const struct intel_execution_engine2 *e)
>  	 */
>  	report0_32 = dst_buf->ptr;
>  	igt_assert_eq(report0_32[0], 0xdeadbeef);
> -	igt_assert_neq(report0_32[1], 0);
> +	igt_assert(oa_timestamp(report0_32, fmt));
>  	ctx0_id = report0_32[2];
>  	igt_debug("MI_RPC(start) CTX ID: %u\n", ctx0_id);
>  	dump_report(report0_32, 64, "report0_32");
>  
>  	report1_32 = report0_32 + 64;
>  	igt_assert_eq(report1_32[0], 0xbeefbeef);
> -	igt_assert_neq(report1_32[1], 0);
> +	igt_assert(oa_timestamp(report1_32, fmt));
>  	ctx1_id = report1_32[2];
>  	igt_debug("CTX ID1: %u\n", ctx1_id);
>  	dump_report(report1_32, 64, "report1_32");
> @@ -4338,7 +4368,7 @@ static void gen12_single_ctx_helper(const struct intel_execution_engine2 *e)
>  	/* Verify that counters in context1 are all zeroes */
>  	report2_32 = report0_32 + 128;
>  	igt_assert_eq(report2_32[0], 0x00c0ffee);
> -	igt_assert_neq(report2_32[1], 0);
> +	igt_assert(oa_timestamp(report2_32, fmt));
>  	dump_report(report2_32, 64, "report2_32");
>  	igt_assert_eq(0, memcmp(&report2_32[4],
>  				(uint8_t *) dst_buf->ptr + 2048,
> @@ -4346,7 +4376,7 @@ static void gen12_single_ctx_helper(const struct intel_execution_engine2 *e)
>  
>  	report3_32 = report0_32 + 192;
>  	igt_assert_eq(report3_32[0], 0x01c0ffee);
> -	igt_assert_neq(report3_32[1], 0);
> +	igt_assert(oa_timestamp(report3_32, fmt));
>  	dump_report(report3_32, 64, "report3_32");
>  	igt_assert_eq(0, memcmp(&report3_32[4],
>  				(uint8_t *) dst_buf->ptr + 2048,
> @@ -4360,8 +4390,8 @@ static void gen12_single_ctx_helper(const struct intel_execution_engine2 *e)
>  			accumulator.deltas[2 + 21],
>  			accumulator.deltas[2 + 26]);
>  
> -	igt_debug("oa_timestamp32 0 = %u\n", report0_32[1]);
> -	igt_debug("oa_timestamp32 1 = %u\n", report1_32[1]);
> +	igt_debug("oa_timestamp32 0 = %"PRIu64"\n", oa_timestamp(report0_32, fmt));
> +	igt_debug("oa_timestamp32 1 = %"PRIu64"\n", oa_timestamp(report1_32, fmt));
>  	igt_debug("ctx_id 0 = %u\n", report0_32[2]);
>  	igt_debug("ctx_id 1 = %u\n", report1_32[2]);
>  
> @@ -4376,23 +4406,23 @@ static void gen12_single_ctx_helper(const struct intel_execution_engine2 *e)
>  	igt_debug("ts_timestamp64 1 = %"PRIu64"\n", timestamp1_64);
>  
>  	delta_ts64 = timestamp1_64 - timestamp0_64;
> -	delta_oa32 = report1_32[1] - report0_32[1];
> +	delta_oa32 = oa_timestamp_delta(report1_32, report0_32, fmt);
>  
>  	/* Sanity check that we can pass the delta to timebase_scale */
> -	igt_assert(delta_ts64 < UINT32_MAX);
>  	delta_oa32_ns = timebase_scale(delta_oa32);
>  	delta_ts64_ns = cs_timebase_scale(delta_ts64);
>  
> -	igt_debug("oa32 delta = %u, = %uns\n",
> -			delta_oa32, (unsigned)delta_oa32_ns);
> -	igt_debug("ts64 delta = %u, = %uns\n",
> -			delta_ts64, (unsigned)delta_ts64_ns);
> +	igt_debug("oa32 delta = %"PRIu64", = %"PRIu64"ns\n",
> +			delta_oa32, delta_oa32_ns);
> +	igt_debug("ts64 delta = %"PRIu64", = %"PRIu64"ns\n",
> +			delta_ts64, delta_ts64_ns);
>  
>  	delta_delta = delta_ts64_ns > delta_oa32_ns ?
>  		      (delta_ts64_ns - delta_oa32_ns) :
>  		      (delta_oa32_ns - delta_ts64_ns);
>  	if (delta_delta > 500) {
> -		igt_debug("delta_delta exceeds margin, skipping..\n");
> +		igt_debug("delta_delta = %"PRIu64". exceeds margin, skipping..\n",
> +			  delta_delta);
>  		exit(EAGAIN);
>  	}
>  
> -- 
> 2.36.1
> 

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 11/31] i915/perf: Move OA format array from stack to heap
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 11/31] i915/perf: Move OA format array from stack to heap Umesh Nerlige Ramappa
@ 2023-03-07 13:32   ` Kamil Konieczny
  0 siblings, 0 replies; 73+ messages in thread
From: Kamil Konieczny @ 2023-03-07 13:32 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Hi Umesh,

On 2023-02-14 at 16:46:28 -0800, Umesh Nerlige Ramappa wrote:
> The OA format size will change based on the specific format used in some
> of the tests. In preparation for that, allocated the space required for
> the format on heap.
> 
> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
> ---
>  tests/i915/perf.c | 48 ++++++++++++++++++++++++-----------------------
>  1 file changed, 25 insertions(+), 23 deletions(-)
> 
> diff --git a/tests/i915/perf.c b/tests/i915/perf.c
> index e9613dc9..add41f7d 100644
> --- a/tests/i915/perf.c
> +++ b/tests/i915/perf.c
> @@ -1950,9 +1950,9 @@ test_oa_exponents(const struct intel_execution_engine2 *e)
>  		uint8_t *buf = calloc(1, buf_size);
>  		int ret, n_timer_reports = 0;
>  		uint32_t matches = 0;
> -		struct {
> -			uint32_t report[64];
> -		} timer_reports[30];
> +#define NUM_TIMER_REPORTS 30
> +		uint32_t *reports = malloc(NUM_TIMER_REPORTS * format_size);

I assume that format_size is size in bytes.

> +		uint32_t *timer_reports = reports;
>  
>  		igt_debug("testing OA exponent %d,"
>  			  " expected ts delta = %"PRIu64" (%"PRIu64"ns/%.2fus/%.2fms)\n",
> @@ -1963,7 +1963,7 @@ test_oa_exponents(const struct intel_execution_engine2 *e)
>  
>  		stream_fd = __perf_open(drm_fd, &param, true /* prevent_pm */);
>  
> -		while (n_timer_reports < ARRAY_SIZE(timer_reports)) {
> +		while (n_timer_reports < NUM_TIMER_REPORTS) {
>  			struct drm_i915_perf_record_header *header;
>  
>  			while ((ret = read(stream_fd, buf, buf_size)) < 0 &&
> @@ -1976,7 +1976,7 @@ test_oa_exponents(const struct intel_execution_engine2 *e)
>  			igt_assert(ret > 0);
>  
>  			for (int offset = 0;
> -			     offset < ret && n_timer_reports < ARRAY_SIZE(timer_reports);
> +			     offset < ret && n_timer_reports < NUM_TIMER_REPORTS;
>  			     offset += header->size) {
>  				uint32_t *report;
>  
> @@ -1998,25 +1998,25 @@ test_oa_exponents(const struct intel_execution_engine2 *e)
>  				if (!oa_report_is_periodic(exponent, report))
>  					continue;
>  
> -				memcpy(timer_reports[n_timer_reports].report, report,
> -				       sizeof(timer_reports[n_timer_reports].report));
> +				memcpy(timer_reports, report, format_size);
>  				n_timer_reports++;
> +				timer_reports += (format_size / 4);
--------------------------------------------------------------- ^
imho better: / sizeof(*timer_reports)

				timer_reports += (format_size / sizeof(*timer_reports));

With or without this,
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
 
>  			}
>  		}
>  
>  		__perf_close(stream_fd);
>  
>  		igt_debug("report%04i ts=%"PRIx64" hw_id=0x%08x\n", 0,
> -			  oa_timestamp(timer_reports[0].report, fmt),
> -			  oa_report_get_ctx_id(timer_reports[0].report));
> +			  oa_timestamp(&reports[0], fmt),
> +			  oa_report_get_ctx_id(&reports[0]));
>  		for (int i = 1; i < n_timer_reports; i++) {
> -			uint64_t delta = oa_timestamp_delta(timer_reports[i].report,
> -							    timer_reports[i - 1].report,
> +			uint64_t delta = oa_timestamp_delta(&reports[i],
> +							    &reports[i - 1],
>  							    fmt);
>  
>  			igt_debug("report%04i ts=%"PRIx64" hw_id=0x%08x delta=%"PRIu64" %s\n", i,
> -				  oa_timestamp(timer_reports[i].report, fmt),
> -				  oa_report_get_ctx_id(timer_reports[i].report),
> +				  oa_timestamp(&reports[i], fmt),
> +				  oa_report_get_ctx_id(&reports[i]),
>  				  delta, expected_report_timing_delta(delta,
>  								      expected_timestamp_delta) ? "" : "******");
>  
> @@ -2033,6 +2033,8 @@ test_oa_exponents(const struct intel_execution_engine2 *e)
>  		 * etc...
>  		 */
>  		igt_assert_lte(n_timer_reports / 2, matches);
> +
> +		free(reports);
>  	}
>  
>  	load_helper_stop();
> @@ -2754,13 +2756,14 @@ test_buffer_fill(const struct intel_execution_engine2 *e)
>  		.properties_ptr = to_user_pointer(properties),
>  	};
>  	struct drm_i915_perf_record_header *header;
> -	int buf_size = 65536 * (256 + sizeof(struct drm_i915_perf_record_header));
> +	size_t report_size = get_oa_format(fmt).size;
> +	int buf_size = 65536 * (report_size + sizeof(struct drm_i915_perf_record_header));
>  	uint8_t *buf = malloc(buf_size);
>  	int len;
>  	size_t oa_buf_size = MAX_OA_BUF_SIZE;
> -	size_t report_size = get_oa_format(fmt).size;
>  	int n_full_oa_reports = oa_buf_size / report_size;
>  	uint64_t fill_duration = n_full_oa_reports * oa_period;
> +	uint32_t *last_periodic_report = malloc(report_size / 4);
>  
>  	igt_assert(fill_duration < 1000000000);
>  
> @@ -2770,7 +2773,6 @@ test_buffer_fill(const struct intel_execution_engine2 *e)
>  		bool overflow_seen;
>  		uint32_t n_periodic_reports;
>  		uint32_t first_timestamp = 0, last_timestamp = 0;
> -		uint32_t last_periodic_report[64];
>  
>  		do_ioctl(stream_fd, I915_PERF_IOCTL_ENABLE, 0);
>  
> @@ -2849,8 +2851,7 @@ test_buffer_fill(const struct intel_execution_engine2 *e)
>  						break;
>  
>  					if (oa_report_is_periodic(oa_exponent, report)) {
> -						memcpy(last_periodic_report, report,
> -						       sizeof(last_periodic_report));
> +						memcpy(last_periodic_report, report, report_size);
>  						n_periodic_reports++;
>  					}
>  					break;
> @@ -2876,6 +2877,7 @@ test_buffer_fill(const struct intel_execution_engine2 *e)
>  			   report_size * n_full_oa_reports * 0.55);
>  	}
>  
> +	free(last_periodic_report);
>  	free(buf);
>  
>  	__perf_close(stream_fd);
> @@ -2990,12 +2992,13 @@ test_enable_disable(const struct intel_execution_engine2 *e)
>  				  (ARRAY_SIZE(properties) / 2) - 2,
>  		.properties_ptr = to_user_pointer(properties),
>  	};
> -	int buf_size = 65536 * (256 + sizeof(struct drm_i915_perf_record_header));
> +	size_t report_size = get_oa_format(fmt).size;
> +	int buf_size = 65536 * (report_size + sizeof(struct drm_i915_perf_record_header));
>  	uint8_t *buf = malloc(buf_size);
>  	size_t oa_buf_size = MAX_OA_BUF_SIZE;
> -	size_t report_size = get_oa_format(fmt).size;
>  	int n_full_oa_reports = oa_buf_size / report_size;
>  	uint64_t fill_duration = n_full_oa_reports * oa_period;
> +	uint32_t *last_periodic_report = malloc(report_size / 4);
>  
>  	load_helper_init();
>  	load_helper_run(HIGH);
> @@ -3007,7 +3010,6 @@ test_enable_disable(const struct intel_execution_engine2 *e)
>  		uint32_t n_periodic_reports;
>  		struct drm_i915_perf_record_header *header;
>  		uint64_t first_timestamp = 0, last_timestamp = 0;
> -		uint32_t last_periodic_report[64];
>  
>  		/* Giving enough time for an overflow might help catch whether
>  		 * the OA unit has been enabled even if the driver might at
> @@ -3069,8 +3071,7 @@ test_enable_disable(const struct intel_execution_engine2 *e)
>  						break;
>  
>  					if (oa_report_is_periodic(oa_exponent, report)) {
> -						memcpy(last_periodic_report, report,
> -						       sizeof(last_periodic_report));
> +						memcpy(last_periodic_report, report, report_size);
>  
>  						/* We want to measure only the
>  						 * periodic reports, ctx-switch
> @@ -3113,6 +3114,7 @@ test_enable_disable(const struct intel_execution_engine2 *e)
>  		igt_assert_eq(errno, EIO);
>  	}
>  
> +	free(last_periodic_report);
>  	free(buf);
>  
>  	__perf_close(stream_fd);
> -- 
> 2.36.1
> 

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 10/31] i915/perf: Add OAM format type
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 10/31] i915/perf: Add OAM format type Umesh Nerlige Ramappa
@ 2023-03-07 13:45   ` Kamil Konieczny
  2023-03-09 22:39     ` Umesh Nerlige Ramappa
  0 siblings, 1 reply; 73+ messages in thread
From: Kamil Konieczny @ 2023-03-07 13:45 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Hi Umesh,

On 2023-02-14 at 16:46:27 -0800, Umesh Nerlige Ramappa wrote:
> Don't check for B and C counters sanity for OAM formats.

Please improve description here, like:

Add new OAM format, where OAM stands for ObservAbility of Media.
Also while at it, don't check for B and C counters sanity for
OAM formats.

Note: it is my guess what OAM means so please correct me, btw
by media do we mean video (image) stream ?
It would also help if you write why you don't check that counters
here or maybe in code comment before if condition.

> 
> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
> ---
>  tests/i915/perf.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/i915/perf.c b/tests/i915/perf.c
> index c3c5663b..e9613dc9 100644
> --- a/tests/i915/perf.c
> +++ b/tests/i915/perf.c
> @@ -104,6 +104,7 @@ struct accumulator {

It would be nice if you could add here description of the meaning
of OAG, OAR and OAM.

With improved comments you can add:
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>

Regards,
Kamil

>  enum {
>  	OAG,
>  	OAR,
> +	OAM,
>  
>  	MAX_OA_TYPE,
>  };
> @@ -1035,7 +1036,7 @@ gen8_sanity_check_test_oa_reports(const uint32_t *oa_report0,
>  	/* The TestOa metric set defines all B counters to be a
>  	 * multiple of the gpu clock
>  	 */
> -	if (format.n_b) {
> +	if (format.n_b && (format.oa_type == OAG || format.oa_type == OAR)) {
>  		if (clock_delta > 0) {
>  			b = rpt1_b[0] - rpt0_b[0];
>  			igt_debug("B0: delta = %"PRIu32"\n", b);
> -- 
> 2.36.1
> 

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 12/31] i915/perf: Use a helper for OA format
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 12/31] i915/perf: Use a helper for OA format Umesh Nerlige Ramappa
@ 2023-03-07 13:49   ` Kamil Konieczny
  0 siblings, 0 replies; 73+ messages in thread
From: Kamil Konieczny @ 2023-03-07 13:49 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

On 2023-02-14 at 16:46:29 -0800, Umesh Nerlige Ramappa wrote:
> Refactor and use a helper for OA format
> 
> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>

Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>

> ---
>  tests/i915/perf.c | 24 +++++++++++++++---------
>  1 file changed, 15 insertions(+), 9 deletions(-)
> 
> diff --git a/tests/i915/perf.c b/tests/i915/perf.c
> index add41f7d..90c78929 100644
> --- a/tests/i915/perf.c
> +++ b/tests/i915/perf.c
> @@ -670,6 +670,12 @@ oar_unit_default_format(void)
>  	return test_set->perf_oa_format;
>  }
>  
> +static int
> +oa_unit_default_format(void)
> +{
> +	return test_set->perf_oa_format;
> +}
> +
>  /*
>   * Temporary wrapper to distinguish mappings on !llc platforms,
>   * where it seems cache over GEM_MMAP_OFFSET is not flushed before execution.
> @@ -1913,7 +1919,7 @@ static bool expected_report_timing_delta(uint32_t delta, uint32_t expected_delta
>  static void
>  test_oa_exponents(const struct intel_execution_engine2 *e)
>  {
> -	uint64_t fmt = test_set->perf_oa_format;
> +	uint64_t fmt = oa_unit_default_format();
>  
>  	load_helper_init();
>  	load_helper_run(HIGH);
> @@ -2256,7 +2262,7 @@ test_blocking(uint64_t requested_oa_period,
>  
>  	ADD_PROPS(props, idx, SAMPLE_OA, true);
>  	ADD_PROPS(props, idx, OA_METRICS_SET, test_set->perf_oa_metrics_set);
> -	ADD_PROPS(props, idx, OA_FORMAT, test_set->perf_oa_format);
> +	ADD_PROPS(props, idx, OA_FORMAT, oa_unit_default_format());
>  	ADD_PROPS(props, idx, OA_EXPONENT, oa_exponent);
>  
>  	if (has_param_poll_period() && set_kernel_hrtimer)
> @@ -2419,7 +2425,7 @@ test_polling(uint64_t requested_oa_period,
>  
>  	ADD_PROPS(props, idx, SAMPLE_OA, true);
>  	ADD_PROPS(props, idx, OA_METRICS_SET, test_set->perf_oa_metrics_set);
> -	ADD_PROPS(props, idx, OA_FORMAT, test_set->perf_oa_format);
> +	ADD_PROPS(props, idx, OA_FORMAT, oa_unit_default_format());
>  	ADD_PROPS(props, idx, OA_EXPONENT, oa_exponent);
>  
>  	if (has_param_poll_period() && set_kernel_hrtimer)
> @@ -2693,7 +2699,7 @@ gen12_test_oa_tlb_invalidate(const struct intel_execution_engine2 *e)
>  		DRM_I915_PERF_PROP_SAMPLE_OA, true,
>  
>  		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
> -		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
> +		DRM_I915_PERF_PROP_OA_FORMAT, oa_unit_default_format(),
>  		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
>  		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
>  		DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, e->instance,
> @@ -2736,7 +2742,7 @@ test_buffer_fill(const struct intel_execution_engine2 *e)
>  	/* ~5 micro second period */
>  	int oa_exponent = max_oa_exponent_for_period_lte(5000);
>  	uint64_t oa_period = oa_exponent_to_ns(oa_exponent);
> -	uint64_t fmt = test_set->perf_oa_format;
> +	uint64_t fmt = oa_unit_default_format();
>  	uint64_t properties[] = {
>  		/* Include OA reports in samples */
>  		DRM_I915_PERF_PROP_SAMPLE_OA, true,
> @@ -2972,7 +2978,7 @@ test_enable_disable(const struct intel_execution_engine2 *e)
>  	/* ~5 micro second period */
>  	int oa_exponent = max_oa_exponent_for_period_lte(5000);
>  	uint64_t oa_period = oa_exponent_to_ns(oa_exponent);
> -	uint64_t fmt = test_set->perf_oa_format;
> +	uint64_t fmt = oa_unit_default_format();
>  	uint64_t properties[] = {
>  		/* Include OA reports in samples */
>  		DRM_I915_PERF_PROP_SAMPLE_OA, true,
> @@ -4567,7 +4573,7 @@ test_stress_open_close(const struct intel_execution_engine2 *e)
>  
>  			/* OA unit configuration */
>  			DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
> -			DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
> +			DRM_I915_PERF_PROP_OA_FORMAT, oa_unit_default_format(),
>  			DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
>  			DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
>  			DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, e->instance,
> @@ -4670,7 +4676,7 @@ test_global_sseu_config_invalid(const struct intel_execution_engine2 *e)
>  
>  		/* OA unit configuration */
>  		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
> -		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
> +		DRM_I915_PERF_PROP_OA_FORMAT, oa_unit_default_format(),
>  		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
>  		DRM_I915_PERF_PROP_GLOBAL_SSEU, to_user_pointer(&sseu_param),
>  		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
> @@ -4759,7 +4765,7 @@ test_global_sseu_config(const struct intel_execution_engine2 *e)
>  
>  		/* OA unit configuration */
>  		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
> -		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
> +		DRM_I915_PERF_PROP_OA_FORMAT, oa_unit_default_format(),
>  		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
>  		DRM_I915_PERF_PROP_GLOBAL_SSEU, to_user_pointer(&sseu_param),
>  		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
> -- 
> 2.36.1
> 

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 13/31] i915/perf: Add support for oa perf groups
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 13/31] i915/perf: Add support for oa perf groups Umesh Nerlige Ramappa
@ 2023-03-07 14:09   ` Kamil Konieczny
  0 siblings, 0 replies; 73+ messages in thread
From: Kamil Konieczny @ 2023-03-07 14:09 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

On 2023-02-14 at 16:46:30 -0800, Umesh Nerlige Ramappa wrote:
> With multiple OA buffers, we need a way to group engines per OA buffer.
> Add support for oa perf groups for tests
> 
> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>

Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>

> ---
>  tests/i915/perf.c | 169 ++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 169 insertions(+)
> 
> diff --git a/tests/i915/perf.c b/tests/i915/perf.c
> index 90c78929..727eaf4e 100644
> --- a/tests/i915/perf.c
> +++ b/tests/i915/perf.c
> @@ -39,6 +39,7 @@
>  #include <math.h>
>  
>  #include "i915/gem.h"
> +#include "i915/gem_engine_topology.h"
>  #include "i915/perf.h"
>  #include "igt.h"
>  #include "igt_perf.h"
> @@ -238,6 +239,8 @@ static int pm_fd = -1;
>  static int stream_fd = -1;
>  static uint32_t devid;
>  static struct intel_execution_engine2 default_e2;
> +static struct perf_engine_group *perf_oa_groups;
> +static uint32_t num_perf_oa_groups;
>  
>  static uint64_t gt_max_freq_mhz = 0;
>  static struct intel_perf *intel_perf = NULL;
> @@ -5312,6 +5315,167 @@ test_sysctl_defaults(void)
>  		if (e__->class == I915_ENGINE_CLASS_RENDER) \
>  			igt_dynamic_f("%s", e__->name)
>  
> +struct perf_engine_group {
> +	/* exclusive perf fd per engine group */
> +	int perf_fd;
> +
> +	/* gem context id passed to perf */
> +	uint32_t ctx_id;
> +	uint32_t oa_unit_id;
> +
> +	/* perf engines in a group */
> +	int num_engines;
> +	struct i915_engine_class_instance *ci;
> +};
> +
> +static struct drm_i915_query_engine_info *query_engine_info(int i915)
> +{
> +	struct drm_i915_query_engine_info *qinfo;
> +
> +#define QUERY_SIZE (0x4000)
> +	qinfo = malloc(QUERY_SIZE);
> +	igt_assert(qinfo);
> +	memset(qinfo, 0, QUERY_SIZE);
> +	igt_assert(!__gem_query_engines(i915, qinfo, QUERY_SIZE));
> +#undef QUERY_SIZE
> +
> +	return qinfo;
> +}
> +
> +static int compare_engine_oa_unit_id(const void *e1, const void *e2)
> +{
> +	const struct drm_i915_engine_info *_e1 = e1;
> +	const struct drm_i915_engine_info *_e2 = e2;
> +
> +	return (int)_e1->rsvd0 - (int)_e2->rsvd0;
> +}
> +
> +static struct perf_engine_group *default_engine_group(uint32_t *num_groups)
> +{
> +	struct perf_engine_group *groups = malloc(sizeof(*groups));
> +
> +	igt_debug("using default engine group\n");
> +
> +	groups->perf_fd = -1,
> +	groups->ctx_id = 0xffffffff,
> +	groups->oa_unit_id = 0,
> +	groups->num_engines = 1,
> +
> +	groups->ci = malloc(sizeof(*groups->ci));
> +	groups->ci->engine_class = default_e2.class;
> +	groups->ci->engine_instance = default_e2.instance;
> +
> +	*num_groups = 1;
> +
> +	return groups;
> +}
> +
> +/* Until oa_unit_id is exposed from uapi, work around it */
> +static void populate_mtl_oa_unit_ids(struct drm_i915_query_engine_info *qinfo)
> +{
> +	struct i915_engine_class_instance ci;
> +	int i;
> +
> +	for (i = 0; i < qinfo->num_engines; i++) {
> +		ci = qinfo->engines[i].engine;
> +
> +		switch (ci.engine_class) {
> +		case I915_ENGINE_CLASS_RENDER:
> +			qinfo->engines[i].rsvd0 = 0;
> +			break;
> +
> +		case I915_ENGINE_CLASS_VIDEO:
> +		case I915_ENGINE_CLASS_VIDEO_ENHANCE:
> +			qinfo->engines[i].rsvd0 = 1;
> +			break;
> +
> +		default:
> +			qinfo->engines[i].rsvd0 = UINT32_MAX;
> +			break;
> +		}
> +
> +		igt_debug("class:instance = %d:%d, id = %d\n",
> +			  ci.engine_class, ci.engine_instance,
> +			  qinfo->engines[i].rsvd0);
> +	}
> +}
> +
> +static struct perf_engine_group *get_engine_groups(int i915, uint32_t *num_groups)
> +{
> +	struct drm_i915_query_engine_info *qinfo;
> +	struct perf_engine_group *groups = NULL;
> +	uint32_t id = UINT32_MAX, num_grps = 0, i = 0, j;
> +
> +	qinfo = query_engine_info(i915);
> +	if (!qinfo)
> +		return default_engine_group(num_groups);
> +	igt_assert(qinfo->num_engines);
> +
> +	/* Currently only meteorlake is supported with engine groups */
> +	if (IS_METEORLAKE(devid)) {
> +		populate_mtl_oa_unit_ids(qinfo);
> +	} else {
> +		free(qinfo);
> +		return default_engine_group(num_groups);
> +	}
> +
> +	/* sort so that engines with same oa id are together */
> +	qsort(qinfo->engines, qinfo->num_engines, sizeof(qinfo->engines[0]),
> +	      compare_engine_oa_unit_id);
> +
> +	/* create groups */
> +	for (i = 0; i < qinfo->num_engines; i++) {
> +		struct i915_engine_class_instance ci = qinfo->engines[i].engine;
> +
> +		igt_debug("class:instance = %d:%d, id = %d\n",
> +			  ci.engine_class, ci.engine_instance,
> +			  qinfo->engines[i].rsvd0);
> +
> +		if (qinfo->engines[i].rsvd0 == UINT32_MAX)
> +			continue;
> +
> +		if (qinfo->engines[i].rsvd0 != id) {
> +			id = qinfo->engines[i].rsvd0;
> +			groups = realloc(groups, ++num_grps * sizeof(*groups));
> +			j = num_grps - 1;
> +			groups[j].perf_fd = -1;
> +			groups[j].ctx_id = 0xffffffff;
> +			groups[j].oa_unit_id = id;
> +			groups[j].num_engines = 0;
> +			/* alloc max engines, trim later */
> +			groups[j].ci = malloc(qinfo->num_engines * sizeof(ci));
> +		}
> +		groups[j].ci[groups[j].num_engines++] = ci;
> +	}
> +
> +	igt_assert(num_grps);
> +
> +	/* trim engines */
> +	for (i = 0; i < num_grps; i++) {
> +		struct i915_engine_class_instance *ci = groups[i].ci;
> +
> +		ci = realloc(ci, groups[i].num_engines * sizeof(*ci));
> +		groups[i].ci = ci;
> +	}
> +
> +	*num_groups = num_grps;
> +
> +	free(qinfo);
> +
> +	return groups;
> +}
> +
> +static void put_engine_groups(struct perf_engine_group *groups,
> +			      unsigned int num_groups)
> +{
> +	int i;
> +
> +	for (i = 0; i < num_groups; i++)
> +		free(groups[i].ci);
> +
> +	free(groups);
> +}
> +
>  static bool has_class_instance(int i915, uint16_t class, uint16_t instance)
>  {
>  	int fd;
> @@ -5382,6 +5546,8 @@ igt_main
>  		write_u64_file("/proc/sys/dev/i915/oa_max_sample_rate", 100000);
>  
>  		gt_max_freq_mhz = sysfs_read(RPS_RP0_FREQ_MHZ);
> +		perf_oa_groups = get_engine_groups(drm_fd, &num_perf_oa_groups);
> +		igt_assert(perf_oa_groups && num_perf_oa_groups);
>  
>  		if (has_class_instance(drm_fd, I915_ENGINE_CLASS_RENDER, 0))
>  			render_copy = igt_get_render_copyfunc(devid);
> @@ -5604,6 +5770,9 @@ igt_main
>  		if (intel_perf)
>  			intel_perf_free(intel_perf);
>  
> +		if (perf_oa_groups)
> +			put_engine_groups(perf_oa_groups, num_perf_oa_groups);
> +
>  		intel_ctx_destroy(drm_fd, ctx);
>  		close(drm_fd);
>  	}
> -- 
> 2.36.1
> 

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 10/31] i915/perf: Add OAM format type
  2023-03-07 13:45   ` Kamil Konieczny
@ 2023-03-09 22:39     ` Umesh Nerlige Ramappa
  0 siblings, 0 replies; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-03-09 22:39 UTC (permalink / raw)
  To: Kamil Konieczny, igt-dev, Lionel G Landwerlin, Ashutosh Dixit

On Tue, Mar 07, 2023 at 02:45:06PM +0100, Kamil Konieczny wrote:
>Hi Umesh,
>
>On 2023-02-14 at 16:46:27 -0800, Umesh Nerlige Ramappa wrote:
>> Don't check for B and C counters sanity for OAM formats.
>
>Please improve description here, like:
>
>Add new OAM format, where OAM stands for ObservAbility of Media.
>Also while at it, don't check for B and C counters sanity for
>OAM formats.
>
>Note: it is my guess what OAM means so please correct me, btw
>by media do we mean video (image) stream ?

Correct, OA reports for media engines - vcs/vecs.
>It would also help if you write why you don't check that counters
>here or maybe in code comment before if condition.
>
>>
>> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
>> ---
>>  tests/i915/perf.c | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/tests/i915/perf.c b/tests/i915/perf.c
>> index c3c5663b..e9613dc9 100644
>> --- a/tests/i915/perf.c
>> +++ b/tests/i915/perf.c
>> @@ -104,6 +104,7 @@ struct accumulator {
>
>It would be nice if you could add here description of the meaning
>of OAG, OAR and OAM.

Will add the comments,

Thanks,
Umesh
>
>With improved comments you can add:
>Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
>
>Regards,
>Kamil
>
>>  enum {
>>  	OAG,
>>  	OAR,
>> +	OAM,
>>
>>  	MAX_OA_TYPE,
>>  };
>> @@ -1035,7 +1036,7 @@ gen8_sanity_check_test_oa_reports(const uint32_t *oa_report0,
>>  	/* The TestOa metric set defines all B counters to be a
>>  	 * multiple of the gpu clock
>>  	 */
>> -	if (format.n_b) {
>> +	if (format.n_b && (format.oa_type == OAG || format.oa_type == OAR)) {
>>  		if (clock_delta > 0) {
>>  			b = rpt1_b[0] - rpt0_b[0];
>>  			igt_debug("B0: delta = %"PRIu32"\n", b);
>> --
>> 2.36.1
>>

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 08/31] i915/perf: Treat ticks as 64 bit
  2023-03-06 23:13   ` Dixit, Ashutosh
@ 2023-03-09 22:55     ` Umesh Nerlige Ramappa
  0 siblings, 0 replies; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-03-09 22:55 UTC (permalink / raw)
  To: Dixit, Ashutosh; +Cc: igt-dev, Lionel G Landwerlin

On Mon, Mar 06, 2023 at 03:13:00PM -0800, Dixit, Ashutosh wrote:
>On Tue, 14 Feb 2023 16:46:25 -0800, Umesh Nerlige Ramappa wrote:
>>
>
>Hi Umesh,
>
>> To support 64 bit OA report headers, treat all ticks as 64 bits.
>>
>> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
>> ---
>>  tests/i915/perf.c | 79 ++++++++++++++++++++++++++++++++---------------
>>  1 file changed, 54 insertions(+), 25 deletions(-)
>>
>> diff --git a/tests/i915/perf.c b/tests/i915/perf.c
>> index bd3cdb6a..4c7b4e49 100644
>> --- a/tests/i915/perf.c
>> +++ b/tests/i915/perf.c
>> @@ -125,6 +125,7 @@ struct oa_format {
>>	int c_off;
>>	int n_c;
>>	int oa_type;
>> +	bool report_hdr_64bit;
>>  };
>>
>>  static struct oa_format hsw_oa_formats[I915_OA_FORMAT_MAX] = {
>> @@ -244,7 +245,7 @@ static bool *undefined_a_counters;
>>  static uint64_t oa_exp_1_millisec;
>>
>>  static igt_render_copyfunc_t render_copy = NULL;
>> -static uint32_t (*read_report_ticks)(const uint32_t *report,
>> +static uint64_t (*read_report_ticks)(const uint32_t *report,
>>				     enum drm_i915_oa_format format);
>>  static void (*sanity_check_reports)(const uint32_t *oa_report0,
>>				    const uint32_t *oa_report1,
>> @@ -438,7 +439,7 @@ sysfs_read(enum i915_attr_id id)
>>   * C2 corresponds to a clock counter for the Haswell render basic metric set
>>   * but it's not included in all of the formats.
>>   */
>> -static uint32_t
>> +static uint64_t
>>  hsw_read_report_ticks(const uint32_t *report, enum drm_i915_oa_format format)
>>  {
>>	uint32_t *c = (uint32_t *)(((uint8_t *)report) + get_oa_format(format).c_off);
>> @@ -448,10 +449,41 @@ hsw_read_report_ticks(const uint32_t *report, enum drm_i915_oa_format format)
>>	return c[2];
>>  }
>>
>> -static uint32_t
>> +static uint64_t
>>  gen8_read_report_ticks(const uint32_t *report, enum drm_i915_oa_format format)
>>  {
>> -	return report[3];
>> +
>> +	struct oa_format fmt = get_oa_format(format);
>> +
>> +	return fmt.report_hdr_64bit ? *(uint64_t *)&report[6] : report[3];
>> +}
>> +
>> +/*
>> + * t0 is a value sampled before t1. width is number of bits used to represent
>> + * t0/t1. Normally t1 is greater than t0. In cases where t1 < t0 use this
>> + * helper. Since the size of t1/t0 is already 64 bits, no special handling is
>> + * needed for width = 64.
>> + */
>> +static uint64_t
>> +elapsed_delta(uint64_t t1, uint64_t t0, uint32_t width)
>> +{
>> +	uint32_t max_bits = sizeof(t1) * 8;
>> +
>> +	igt_assert(width <= max_bits);
>> +
>> +	if (t1 < t0 && width != max_bits)
>> +		return ((1ULL << width) - t0) + t1;
>> +
>> +	return t1 - t0;
>
>OK, this looks fine due to 2's complement arithmentic.
>
>> +}
>> +
>> +static uint64_t
>> +oa_tick_delta(const uint32_t *report1,
>> +	      const uint32_t *report0,
>> +	      enum drm_i915_oa_format format)
>> +{
>> +	return elapsed_delta(read_report_ticks(report1, format),
>> +			     read_report_ticks(report0, format), 32);
>
>Why are ticks always considered 32 bits? For 64 bit report headers aren't
>ticks 64 bits?

The report headers have space for 64 bits, but the upper 32 bits have 
not been defined in the header definition.
>
>Also, sorry my ignorance, what is the difference between timestamps and
>ticks (both are present in the report headers)?

I believe the ticks will vary with gt frequency (and spec says this 
value can be used to normalize the counters), whereas the timestamp 
provides a fixed elapsed time based on the cs/oa timestamp frequency 
(19.2 MHz or something fixed per platform).

Thanks,
Umesh
>
>Thanks.
>--
>Ashutosh

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 08/31] i915/perf: Treat ticks as 64 bit
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 08/31] i915/perf: Treat ticks as 64 bit Umesh Nerlige Ramappa
  2023-03-06 23:13   ` Dixit, Ashutosh
@ 2023-03-09 23:00   ` Dixit, Ashutosh
  1 sibling, 0 replies; 73+ messages in thread
From: Dixit, Ashutosh @ 2023-03-09 23:00 UTC (permalink / raw)
  To: Umesh Nerlige Ramappa; +Cc: igt-dev, Lionel G Landwerlin

On Tue, 14 Feb 2023 16:46:25 -0800, Umesh Nerlige Ramappa wrote:
>
> To support 64 bit OA report headers, treat all ticks as 64 bits.

Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 14/31] i915/perf: Test concurrent access to OA in different groups
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 14/31] i915/perf: Test concurrent access to OA in different groups Umesh Nerlige Ramappa
@ 2023-03-13 15:04   ` Kamil Konieczny
  2023-03-14 23:17   ` Dixit, Ashutosh
  1 sibling, 0 replies; 73+ messages in thread
From: Kamil Konieczny @ 2023-03-13 15:04 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Hi Umesh,

On 2023-02-14 at 16:46:31 -0800, Umesh Nerlige Ramappa wrote:
> With multiple OA buffers, verify that the perf interface allows
> concurrent access to the OA buffers in different groups.
> 
> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
> ---
>  tests/i915/perf.c | 135 ++++++++++++++++++++++++++++++++++++++++++++--
>  1 file changed, 131 insertions(+), 4 deletions(-)
> 
> diff --git a/tests/i915/perf.c b/tests/i915/perf.c
> index 727eaf4e..9c926fd2 100644
> --- a/tests/i915/perf.c
> +++ b/tests/i915/perf.c
> @@ -2248,6 +2248,7 @@ test_blocking(uint64_t requested_oa_period,
>  
>  	int max_iterations = (test_duration_ns / oa_period) + 2;
>  	int n_extra_iterations = 0;
> +	int perf_fd;
>  
>  	/* It's a bit tricky to put a lower limit here, but we expect a
>  	 * relatively low latency for seeing reports, while we don't currently
> @@ -2281,7 +2282,7 @@ test_blocking(uint64_t requested_oa_period,
>  	param.num_properties = (idx - props) / 2;
>  	param.properties_ptr = to_user_pointer(props);
>  
> -	stream_fd = __perf_open(drm_fd, &param, true /* prevent_pm */);
> +	perf_fd = __perf_open(drm_fd, &param, true /* prevent_pm */);

What field in param choose different GT here ?

>  
>  	times(&start_times);
>  
> @@ -2313,14 +2314,14 @@ test_blocking(uint64_t requested_oa_period,
>  	 * the error delta.
>  	 */
>  	start = get_time();
> -	do_ioctl(stream_fd, I915_PERF_IOCTL_ENABLE, 0);
> +	do_ioctl(perf_fd, I915_PERF_IOCTL_ENABLE, 0);
>  	for (/* nop */; ((end = get_time()) - start) < test_duration_ns; /* nop */) {
>  		struct drm_i915_perf_record_header *header;
>  		bool timer_report_read = false;
>  		bool non_timer_report_read = false;
>  		int ret;
>  
> -		while ((ret = read(stream_fd, buf, sizeof(buf))) < 0 &&
> +		while ((ret = read(perf_fd, buf, sizeof(buf))) < 0 &&
>  		       errno == EINTR)
>  			;
>  
> @@ -2388,7 +2389,7 @@ test_blocking(uint64_t requested_oa_period,
>  	if (!set_kernel_hrtimer)
>  		igt_assert(kernel_ns <= (test_duration_ns / 100ull));
>  
> -	__perf_close(stream_fd);
> +	__perf_close(perf_fd);
>  }
>  
>  static void
> @@ -5476,6 +5477,14 @@ static void put_engine_groups(struct perf_engine_group *groups,
>  	free(groups);
>  }
>  
> +static struct i915_engine_class_instance *
> +random_engine(struct perf_engine_group *group)
> +{
> +	srandom(time(NULL));
------- ^
It is enough to call this once. Put this in fixture or test and
print int value used so you can eventually repeat test.

> +
> +	return &group->ci[random() % group->num_engines];
> +}
> +
>  static bool has_class_instance(int i915, uint16_t class, uint16_t instance)
>  {
>  	int fd;
> @@ -5498,6 +5507,112 @@ static void set_default_engine(const intel_ctx_t *ctx)
>  			default_e2 = *e;
>  }
>  
> +/*
> + * Test if OA buffer streams can be independently opened on each gt. Once a user
> + * opens a stream, that gt is exclusive to the user, other users get -EBUSY on
> + * trying to open a stream. Note that OA metrics are global to the gt and can
> + * get clobbered if we try to support concurrency.
> + */
> +static void
> +test_gt_exclusive_stream(const intel_ctx_t *ctx, bool exponent)
> +{
> +	uint64_t properties[] = {
> +		DRM_I915_PERF_PROP_SAMPLE_OA, true,
> +		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
> +		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
> +		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, 0,
> +		DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, 0,
> +		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
> +	};
> +	struct drm_i915_perf_open_param param = {
> +		.flags = I915_PERF_FLAG_FD_CLOEXEC,
> +		/* for gem_context use case, we do no pass exponent */
> +		.num_properties = exponent ?
> +				  ARRAY_SIZE(properties) / 2 - 1:
> +				  ARRAY_SIZE(properties) / 2,
> +		.properties_ptr = to_user_pointer(properties),
> +	};
> +	uint32_t i, j;
> +
> +	/* for each group, open one random perf stream with sample OA */
> +	for (i = 0; i < num_perf_oa_groups; i++) {
> +		struct perf_engine_group *grp = &perf_oa_groups[i];
> +		struct i915_engine_class_instance *ci = random_engine(grp);
> +
> +		if (!exponent) {
> +			properties[0] = DRM_I915_PERF_PROP_CTX_HANDLE;
> +			properties[1] = ctx->id;
> +		}
> +
> +		properties[7] = ci->engine_class;
> +		properties[9] = ci->engine_instance;
> +		grp->perf_fd = igt_ioctl(drm_fd,
> +					 DRM_IOCTL_I915_PERF_OPEN,
> +					 &param);
> +		igt_assert(grp->perf_fd >= 0);

Maybe add here printing i (with igt_assert_f()) ?

> +		igt_debug("opened OA buffer with c:i %d:%d\n",
> +			  ci->engine_class, ci->engine_instance);
> +	}
> +
> +	/* for each group make sure no other streams can be opened */
> +	for (i = 0; i < num_perf_oa_groups; i++) {
> +		struct perf_engine_group *grp = &perf_oa_groups[i];
> +		int err;
> +
> +		for (j = 0; j < grp->num_engines; j++) {
> +			struct i915_engine_class_instance *ci = grp->ci + j;
> +
> +			/*
> +			 * case 1:
> +			 * concurrent access to OAG should fail
> +			 */
> +			properties[0] = DRM_I915_PERF_PROP_SAMPLE_OA;
> +			properties[1] = true;
> +			properties[7] = ci->engine_class;
> +			properties[9] = ci->engine_instance;
> +			/* for SAMPLE OA use case, we must pass exponent */
> +			param.num_properties = ARRAY_SIZE(properties) / 2;
> +			do_ioctl_err(drm_fd, DRM_IOCTL_I915_PERF_OPEN, &param,
> +				     EBUSY);
> +			igt_debug("try OA buffer with c:i %d:%d\n",
> +				  ci->engine_class, ci->engine_instance);

Print this before assert.

> +
> +			/*
> +			 * case 2:
> +			 * concurrent access to non-OAG unit should fail
> +			 */
> +			properties[0] = DRM_I915_PERF_PROP_CTX_HANDLE;
> +			properties[1] = gem_context_create(drm_fd);
> +			/* for gem_context use case, we do no pass exponent */
> +			param.num_properties = ARRAY_SIZE(properties) / 2 - 1;
> +			errno = 0;
> +			err = igt_ioctl(drm_fd, DRM_IOCTL_I915_PERF_OPEN, &param);
> +			igt_assert(err < 0);
> +			igt_assert(errno == EBUSY || errno == ENODEV);
> +			igt_debug("try OA ci unit with c:i %d:%d\n",
> +				  ci->engine_class, ci->engine_instance);

Print this before assert(err < 0).

> +			gem_context_destroy(drm_fd, properties[1]);

Same here, do this before assert (maybe save errno before).

> +		}
> +
> +		if (grp->perf_fd >= 0)
> +			close(grp->perf_fd);
> +	}
> +}
> +
> +static void
> +test_gt_concurrent_oa_buffer_read(void)
> +{
> +	igt_fork(child, num_perf_oa_groups) {
> +		struct intel_execution_engine2 e;
> +
> +		e.class = perf_oa_groups[child].ci->engine_class;
> +		e.instance = perf_oa_groups[child].ci->engine_instance;
> +
> +		test_blocking(40 * 1000 * 1000, false, 5 * 1000 * 1000, &e);
> +	}
> +	igt_waitchildren();
> +}
> +
>  igt_main
>  {
>  	const intel_ctx_t *ctx;
> @@ -5723,6 +5838,18 @@ igt_main
>  		igt_describe("Verify invalid class instance");
>  		igt_subtest("gen12-invalid-class-instance")
>  			test_invalid_class_instance();
> +
> +		igt_describe("Verify exclusivity of perf streams with sample oa option");
> +		igt_subtest("gen12-gt-exclusive-stream-sample-oa")
> +			test_gt_exclusive_stream(ctx, true);
> +
> +		igt_describe("Verify exclusivity of perf streams with ctx handle");
> +		igt_subtest("gen12-gt-exclusive-stream-ctx-handle")
> +			test_gt_exclusive_stream(ctx, false);
> +
> +		igt_describe("Verify concurrent reads from OA buffers in different gts");
---------------------------------------------------------------------------------- ^
GTs or better GPUs

Regards,
Kamil

> +		igt_subtest("gen12-gt-concurrent-oa-buffer-read")
> +			test_gt_concurrent_oa_buffer_read();
>  	}
>  
>  	igt_subtest("rc6-disable")
> -- 
> 2.36.1
> 

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 15/31] i915/perf: Add OAM support
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 15/31] i915/perf: Add OAM support Umesh Nerlige Ramappa
@ 2023-03-13 15:21   ` Kamil Konieczny
  2023-03-15  0:38     ` Dixit, Ashutosh
  2023-03-15 21:52   ` Dixit, Ashutosh
  1 sibling, 1 reply; 73+ messages in thread
From: Kamil Konieczny @ 2023-03-13 15:21 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Hi Umesh,

On 2023-02-14 at 16:46:32 -0800, Umesh Nerlige Ramappa wrote:
> Add OAM formats and support for media engines in perf tests
> 
> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
> ---
>  include/drm-uapi/i915_drm.h |   4 ++
>  lib/intel_chipset.h         |   3 +
>  lib/intel_device_info.c     |   1 +
>  tests/i915/perf.c           | 138 +++++++++++++++++++++++++-----------
>  4 files changed, 105 insertions(+), 41 deletions(-)
> 
> diff --git a/include/drm-uapi/i915_drm.h b/include/drm-uapi/i915_drm.h
> index 5fab3066..ab244346 100644
> --- a/include/drm-uapi/i915_drm.h
> +++ b/include/drm-uapi/i915_drm.h
> @@ -2545,6 +2545,10 @@ enum drm_i915_oa_format {
>  	I915_OAR_FORMAT_A32u40_A4u32_B8_C8,
>  	I915_OA_FORMAT_A24u40_A14u32_B8_C8,
>  
> +	/* MTL OAM */
> +	I915_OAM_FORMAT_MPEC8u64_B8_C8,
> +	I915_OAM_FORMAT_MPEC8u32_B8_C8,
> +
>  	I915_OA_FORMAT_MAX	    /* non-ABI */
>  };
>  

I would prefer to have drm-uapi changes in separate patch.

> diff --git a/lib/intel_chipset.h b/lib/intel_chipset.h
> index c9762ae6..c2c8998d 100644
> --- a/lib/intel_chipset.h
> +++ b/lib/intel_chipset.h
> @@ -45,6 +45,7 @@ struct intel_device_info {
>  	unsigned gt; /* 0 if unknown */
>  	bool has_4tile : 1;
>  	bool has_flatccs : 1;
> +	bool has_oam : 1;
>  	bool is_mobile : 1;
>  	bool is_whitney : 1;
>  	bool is_almador : 1;
> @@ -231,4 +232,6 @@ void intel_check_pch(void);
>  
>  #define HAS_FLATCCS(devid)	(intel_get_device_info(devid)->has_flatccs)
>  
> +#define HAS_OAM(devid)		(intel_get_device_info(devid)->has_oam)
> +
>  #endif /* _INTEL_CHIPSET_H */
> diff --git a/lib/intel_device_info.c b/lib/intel_device_info.c
> index 12b81d48..0b11dfce 100644
> --- a/lib/intel_device_info.c
> +++ b/lib/intel_device_info.c
> @@ -472,6 +472,7 @@ static const struct intel_device_info intel_meteorlake_info = {
>  	.graphics_rel = 70,
>  	.display_ver = 14,
>  	.has_4tile = true,
> +	.has_oam = true,
>  	.is_meteorlake = true,
>  	.codename = "meteorlake",
>  	.cmds_info = &gen12_mtl_cmds_info,

imho here also lib changes for lib/intel_device_info should be
in separate patch, they can be merged separatly before.

> diff --git a/tests/i915/perf.c b/tests/i915/perf.c
> index 9c926fd2..9c546cc1 100644
> --- a/tests/i915/perf.c
> +++ b/tests/i915/perf.c
> @@ -212,6 +212,40 @@ static struct oa_format dg2_oa_formats[I915_OA_FORMAT_MAX] = {
>  		.c_off = 224, .n_c = 8, .oa_type = OAG, },
>  };
>  
> +static struct oa_format mtl_oa_formats[I915_OA_FORMAT_MAX] = {
> +	[I915_OAR_FORMAT_A32u40_A4u32_B8_C8] = {
> +		"A32u40_A4u32_B8_C8", .size = 256,
> +		.a40_high_off = 160, .a40_low_off = 16, .n_a40 = 32,
> +		.a_off = 144, .n_a = 4, .first_a = 32,
> +		.b_off = 192, .n_b = 8,
> +		.c_off = 224, .n_c = 8, .oa_type = OAR, },
> +	/* This format has A36 and A37 interleaved with high bytes of some A
> +	 * counters, so we will accumulate only subset of counters.
> +	 */
> +	[I915_OA_FORMAT_A24u40_A14u32_B8_C8] = {
> +		"A24u40_A14u32_B8_C8", .size = 256,
> +		/* u40: A4 - A23 */
> +		.a40_high_off = 160, .a40_low_off = 16, .n_a40 = 20, .first_a40 = 4,
> +		/* u32: A0 - A3 */
> +		.a_off = 16, .n_a = 4,
> +		.b_off = 192, .n_b = 8,
> +		.c_off = 224, .n_c = 8, .oa_type = OAG, },
> +
> +	/* Treat MPEC countes as A counters for now */
> +	[I915_OAM_FORMAT_MPEC8u64_B8_C8] = {
> +		"MPEC8u64_B8_C8", .size = 192,
> +		.a64_off = 32, .n_a64 = 8,
> +		.b_off = 96, .n_b = 8,
> +		.c_off = 128, .n_c = 8, .oa_type = OAM,
> +		.report_hdr_64bit = true, },
> +	[I915_OAM_FORMAT_MPEC8u32_B8_C8] = {
> +		"MPEC8u32_B8_C8", .size = 128,
> +		.a_off = 32, .n_a = 8,
> +		.b_off = 64, .n_b = 8,
> +		.c_off = 96, .n_c = 8, .oa_type = OAM,
> +		.report_hdr_64bit = true, },
> +};
> +
>  static bool hsw_undefined_a_counters[45] = {
>  	[4] = true,
>  	[6] = true,
> @@ -273,8 +307,10 @@ get_oa_format(enum drm_i915_oa_format format)
>  {
>  	if (IS_HASWELL(devid))
>  		return hsw_oa_formats[format];
> -	else if (IS_DG2(devid) || IS_METEORLAKE(devid))
> +	else if (IS_DG2(devid))
>  		return dg2_oa_formats[format];
> +	else if (IS_METEORLAKE(devid))
> +		return mtl_oa_formats[format];

After some recent discussion it is prefered to have order
from new ones to oldest one.

>  	else if (IS_GEN12(devid))
>  		return gen12_oa_formats[format];
>  	else
> @@ -356,21 +392,6 @@ static int i915_perf_revision(int fd)
>  	return value;
>  }
>  
> -/*
> - * perf_supports_engine is used in the for loop that iterates over engines and
> - * determines if perf test can be run on a particular engine. For perf revisions
> - * below 10, we only need to run the test once, so we return true only for rcs0.
> - * Note that the test itself ignores the class instance parameters if they are
> - * not supported by the perf interface. This enables us to use a single for-loop
> - * construct to run the same test on all platforms and all perf revisions.
> - */
> -static bool
> -perf_supports_engine(const struct intel_execution_engine2 *e)
> -{
> -	return e->class == I915_ENGINE_CLASS_RENDER &&
> -	       e->instance == 0;
> -}
> -
>  static bool
>  has_param_class_instance(void)
>  {
> @@ -674,8 +695,12 @@ oar_unit_default_format(void)
>  }
>  
>  static int
> -oa_unit_default_format(void)
> +oa_unit_default_format(const struct intel_execution_engine2 *e)
>  {
> +	if (e->class == I915_ENGINE_CLASS_VIDEO ||
> +	    e->class == I915_ENGINE_CLASS_VIDEO_ENHANCE)
> +		return I915_OAM_FORMAT_MPEC8u32_B8_C8;
> +
>  	return test_set->perf_oa_format;
>  }
>  
> @@ -1752,6 +1777,20 @@ print_report(uint32_t *report, int fmt)
>  }
>  #endif
>  
> +static bool
> +oa_unit_supports_engine(int oa_unit, const struct intel_execution_engine2 *e)
> +{
> +	switch (oa_unit) {
> +	case OAM:
> +		return e->class == I915_ENGINE_CLASS_VIDEO ||
> +		       e->class == I915_ENGINE_CLASS_VIDEO_ENHANCE;
> +	case OAG:
> +		return e->class == I915_ENGINE_CLASS_RENDER;
> +	}
> +
> +	return false;
> +}
> +
>  static void
>  test_oa_formats(const struct intel_execution_engine2 *e)
>  {
> @@ -1763,7 +1802,7 @@ test_oa_formats(const struct intel_execution_engine2 *e)
>  		if (!format.name) /* sparse, indexed by ID */
>  			continue;
>  
> -		if (format.oa_type != OAG) /* sparse, indexed by ID */
> +		if (!oa_unit_supports_engine(format.oa_type, e))
>  			continue;
>  
>  		igt_debug("Checking OA format %s\n", format.name);
> @@ -1922,7 +1961,7 @@ static bool expected_report_timing_delta(uint32_t delta, uint32_t expected_delta
>  static void
>  test_oa_exponents(const struct intel_execution_engine2 *e)
>  {
> -	uint64_t fmt = oa_unit_default_format();
> +	uint64_t fmt = oa_unit_default_format(e);
>  
>  	load_helper_init();
>  	load_helper_run(HIGH);
> @@ -2266,7 +2305,7 @@ test_blocking(uint64_t requested_oa_period,
>  
>  	ADD_PROPS(props, idx, SAMPLE_OA, true);
>  	ADD_PROPS(props, idx, OA_METRICS_SET, test_set->perf_oa_metrics_set);
> -	ADD_PROPS(props, idx, OA_FORMAT, oa_unit_default_format());
> +	ADD_PROPS(props, idx, OA_FORMAT, oa_unit_default_format(e));
>  	ADD_PROPS(props, idx, OA_EXPONENT, oa_exponent);
>  
>  	if (has_param_poll_period() && set_kernel_hrtimer)
> @@ -2429,7 +2468,7 @@ test_polling(uint64_t requested_oa_period,
>  
>  	ADD_PROPS(props, idx, SAMPLE_OA, true);
>  	ADD_PROPS(props, idx, OA_METRICS_SET, test_set->perf_oa_metrics_set);
> -	ADD_PROPS(props, idx, OA_FORMAT, oa_unit_default_format());
> +	ADD_PROPS(props, idx, OA_FORMAT, oa_unit_default_format(e));
>  	ADD_PROPS(props, idx, OA_EXPONENT, oa_exponent);
>  
>  	if (has_param_poll_period() && set_kernel_hrtimer)
> @@ -2703,7 +2742,7 @@ gen12_test_oa_tlb_invalidate(const struct intel_execution_engine2 *e)
>  		DRM_I915_PERF_PROP_SAMPLE_OA, true,
>  
>  		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
> -		DRM_I915_PERF_PROP_OA_FORMAT, oa_unit_default_format(),
> +		DRM_I915_PERF_PROP_OA_FORMAT, oa_unit_default_format(e),
>  		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
>  		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
>  		DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, e->instance,
> @@ -2746,7 +2785,7 @@ test_buffer_fill(const struct intel_execution_engine2 *e)
>  	/* ~5 micro second period */
>  	int oa_exponent = max_oa_exponent_for_period_lte(5000);
>  	uint64_t oa_period = oa_exponent_to_ns(oa_exponent);
> -	uint64_t fmt = oa_unit_default_format();
> +	uint64_t fmt = oa_unit_default_format(e);
>  	uint64_t properties[] = {
>  		/* Include OA reports in samples */
>  		DRM_I915_PERF_PROP_SAMPLE_OA, true,
> @@ -2982,7 +3021,7 @@ test_enable_disable(const struct intel_execution_engine2 *e)
>  	/* ~5 micro second period */
>  	int oa_exponent = max_oa_exponent_for_period_lte(5000);
>  	uint64_t oa_period = oa_exponent_to_ns(oa_exponent);
> -	uint64_t fmt = oa_unit_default_format();
> +	uint64_t fmt = oa_unit_default_format(e);
>  	uint64_t properties[] = {
>  		/* Include OA reports in samples */
>  		DRM_I915_PERF_PROP_SAMPLE_OA, true,
> @@ -4577,7 +4616,7 @@ test_stress_open_close(const struct intel_execution_engine2 *e)
>  
>  			/* OA unit configuration */
>  			DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
> -			DRM_I915_PERF_PROP_OA_FORMAT, oa_unit_default_format(),
> +			DRM_I915_PERF_PROP_OA_FORMAT, oa_unit_default_format(e),
>  			DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
>  			DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
>  			DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, e->instance,
> @@ -4680,7 +4719,7 @@ test_global_sseu_config_invalid(const struct intel_execution_engine2 *e)
>  
>  		/* OA unit configuration */
>  		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
> -		DRM_I915_PERF_PROP_OA_FORMAT, oa_unit_default_format(),
> +		DRM_I915_PERF_PROP_OA_FORMAT, oa_unit_default_format(e),
>  		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
>  		DRM_I915_PERF_PROP_GLOBAL_SSEU, to_user_pointer(&sseu_param),
>  		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
> @@ -4769,7 +4808,7 @@ test_global_sseu_config(const struct intel_execution_engine2 *e)
>  
>  		/* OA unit configuration */
>  		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
> -		DRM_I915_PERF_PROP_OA_FORMAT, oa_unit_default_format(),
> +		DRM_I915_PERF_PROP_OA_FORMAT, oa_unit_default_format(e),
>  		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
>  		DRM_I915_PERF_PROP_GLOBAL_SSEU, to_user_pointer(&sseu_param),
>  		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
> @@ -5306,10 +5345,27 @@ test_sysctl_defaults(void)
>  	igt_assert_eq(max_freq, 100000);
>  }
>  
> -#define __for_each_perf_enabled_engine(fd__, e__) \
> -	for_each_physical_engine(fd__, e__) \
> -		if (perf_supports_engine(e__)) \
> -			igt_dynamic_f("%s", e__->name)
> +static struct intel_execution_engine2 *
> +__ci_to_e2(const intel_ctx_t *ctx, struct i915_engine_class_instance *ci)
> +{
> +	static struct intel_execution_engine2 e2;

e2 is on stack, see below, so it should be *e2

> +	struct intel_execution_engine2 *e;
> +
> +	for_each_ctx_engine(drm_fd, ctx, e) {
> +		if (e->class == ci->engine_class && e->instance == ci->engine_instance) {
> +			e2 = *e;
> +			break;
> +		}
> +	}
> +
> +	return &e2;
--------------- ^
imho you should allocate memory for this and return NULL when
not found.

> +}
> +
> +#define __for_random_engine_in_each_group(groups_, ctx_, e_) \
> +	for (int i_ = 0; \
> +	     i_ < num_perf_oa_groups && !!(e_ = __ci_to_e2(ctx_, random_engine(&groups_[i_]))); \
> +	     i_++) \
> +		igt_dynamic_f("%d-%s", i_, e_->name)
>  
>  #define __for_each_render_engine(fd__, e__) \
>  	for_each_physical_engine(fd__, e__) \
> @@ -5684,7 +5740,7 @@ igt_main
>  		test_missing_sample_flags();
>  
>  	igt_subtest_with_dynamic("oa-formats")
> -		__for_each_perf_enabled_engine(drm_fd, e)
> +		__for_random_engine_in_each_group(perf_oa_groups, ctx, e)
>  			test_oa_formats(e);

Do you free 'e' before exit from test ?

Regards,
Kamil

>  
>  	igt_subtest("invalid-oa-exponent")
> @@ -5692,7 +5748,7 @@ igt_main
>  	igt_subtest("low-oa-exponent-permissions")
>  		test_low_oa_exponent_permissions();
>  	igt_subtest_with_dynamic("oa-exponents")
> -		__for_each_perf_enabled_engine(drm_fd, e)
> +		__for_random_engine_in_each_group(perf_oa_groups, ctx, e)
>  			test_oa_exponents(e);
>  
>  	igt_subtest("per-context-mode-unprivileged") {
> @@ -5701,7 +5757,7 @@ igt_main
>  	}
>  
>  	igt_subtest_with_dynamic("buffer-fill")
> -		__for_each_perf_enabled_engine(drm_fd, e)
> +		__for_random_engine_in_each_group(perf_oa_groups, ctx, e)
>  			test_buffer_fill(e);
>  
>  	igt_describe("Test that reason field in OA reports is never 0 on Gen8+");
> @@ -5717,12 +5773,12 @@ igt_main
>  		test_non_sampling_read_error();
>  
>  	igt_subtest_with_dynamic("enable-disable")
> -		__for_each_perf_enabled_engine(drm_fd, e)
> +		__for_random_engine_in_each_group(perf_oa_groups, ctx, e)
>  			test_enable_disable(e);
>  
>  	igt_describe("Test blocking read with default hrtimer frequency");
>  	igt_subtest_with_dynamic("blocking") {
> -		__for_each_perf_enabled_engine(drm_fd, e)
> +		__for_random_engine_in_each_group(perf_oa_groups, ctx, e)
>  			test_blocking(40 * 1000 * 1000 /* 40ms oa period */,
>  				      false /* set_kernel_hrtimer */,
>  				      5 * 1000 * 1000 /* default 5ms/200Hz hrtimer */,
> @@ -5750,7 +5806,7 @@ igt_main
>  
>  	igt_describe("Test polled read with default hrtimer frequency");
>  	igt_subtest_with_dynamic("polling") {
> -		__for_each_perf_enabled_engine(drm_fd, e)
> +		__for_random_engine_in_each_group(perf_oa_groups, ctx, e)
>  			test_polling(40 * 1000 * 1000 /* 40ms oa period */,
>  				     false /* set_kernel_hrtimer */,
>  				     5 * 1000 * 1000 /* default 5ms/200Hz hrtimer */,
> @@ -5820,7 +5876,7 @@ igt_main
>  
>  		igt_describe("Test OA TLB invalidate");
>  		igt_subtest_with_dynamic("gen12-oa-tlb-invalidate")
> -			__for_each_perf_enabled_engine(drm_fd, e)
> +			__for_random_engine_in_each_group(perf_oa_groups, ctx, e)
>  				gen12_test_oa_tlb_invalidate(e);
>  
>  		igt_describe("Measure performance for a specific context using OAR in Gen 12");
> @@ -5857,7 +5913,7 @@ igt_main
>  
>  	igt_describe("Stress tests opening & closing the i915-perf stream in a busy loop");
>  	igt_subtest_with_dynamic("stress-open-close")
> -		__for_each_perf_enabled_engine(drm_fd, e)
> +		__for_random_engine_in_each_group(perf_oa_groups, ctx, e)
>  			test_stress_open_close(e);
>  
>  	igt_subtest_group {
> @@ -5868,12 +5924,12 @@ igt_main
>  
>  		igt_describe("Verify invalid SSEU opening parameters");
>  		igt_subtest_with_dynamic("global-sseu-config-invalid")
> -			__for_each_perf_enabled_engine(drm_fd, e)
> +			__for_random_engine_in_each_group(perf_oa_groups, ctx, e)
>  				test_global_sseu_config_invalid(e);
>  
>  		igt_describe("Verify specifying SSEU opening parameters");
>  		igt_subtest_with_dynamic("global-sseu-config")
> -			__for_each_perf_enabled_engine(drm_fd, e)
> +			__for_random_engine_in_each_group(perf_oa_groups, ctx, e)
>  				test_global_sseu_config(e);
>  	}
>  
> -- 
> 2.36.1
> 

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 16/31] lib/perf: Make chipsets aware of oa formats
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 16/31] lib/perf: Make chipsets aware of oa formats Umesh Nerlige Ramappa
@ 2023-03-13 15:49   ` Kamil Konieczny
  0 siblings, 0 replies; 73+ messages in thread
From: Kamil Konieczny @ 2023-03-13 15:49 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Hi Umesh,

please improve subject:
lib/perf: Make chipsets aware of oa formats
--- ^ -------- ^

Add i915 to it:
lib/i915/perf: 

and change description to not mention specific structure name,
like

Prepare to read different oa formats

With that
Acked-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>

Regards,
Kamil

On 2023-02-14 at 16:46:33 -0800, Umesh Nerlige Ramappa wrote:
> Make chipsets aware of oa formats to allow addition of different formats
> per chipset.
> 
> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
> ---
>  lib/i915/perf-configs/mdapi-xml-convert.py | 98 +++++++++++++---------
>  1 file changed, 58 insertions(+), 40 deletions(-)
> 
> diff --git a/lib/i915/perf-configs/mdapi-xml-convert.py b/lib/i915/perf-configs/mdapi-xml-convert.py
> index b20b104d..5c784643 100755
> --- a/lib/i915/perf-configs/mdapi-xml-convert.py
> +++ b/lib/i915/perf-configs/mdapi-xml-convert.py
> @@ -133,24 +133,39 @@ xehpsdv_chipset_params = {
>      }
>  }
>  
> +# There is no ReportType field in most Metrics XML files, Use 256B_GENERIC_NOA16
> +# to denote the generic 256 byte format that is used by most chipsets
> +hsw_chipset_oa_formats = {
> +    '256B_GENERIC_NOA16': hsw_chipset_params,
> +}
> +
> +gen8_11_chipset_oa_formats = {
> +    '256B_GENERIC_NOA16': gen8_11_chipset_params,
> +}
> +
> +xehpsdv_chipset_oa_formats = {
> +    '256B_GENERIC_NOA16': xehpsdv_chipset_params,
> +}
> +
> +

Two newlines ?

>  chipsets = {
> -    'HSW': hsw_chipset_params,
> -    'BDW': gen8_11_chipset_params,
> -    'CHV': gen8_11_chipset_params,
> -    'SKL': gen8_11_chipset_params,
> -    'BXT': gen8_11_chipset_params,
> -    'KBL': gen8_11_chipset_params,
> -    'GLK': gen8_11_chipset_params,
> -    'CFL': gen8_11_chipset_params,
> -    'CNL': gen8_11_chipset_params,
> -    'ICL': gen8_11_chipset_params,
> -    'EHL': gen8_11_chipset_params,
> -    'TGL': gen8_11_chipset_params,
> -    'RKL': gen8_11_chipset_params,
> -    'DG1': gen8_11_chipset_params,
> -    'ADL': gen8_11_chipset_params,
> -    'ACM': xehpsdv_chipset_params,
> -    'MTL': xehpsdv_chipset_params,
> +    'HSW': hsw_chipset_oa_formats,
> +    'BDW': gen8_11_chipset_oa_formats,
> +    'CHV': gen8_11_chipset_oa_formats,
> +    'SKL': gen8_11_chipset_oa_formats,
> +    'BXT': gen8_11_chipset_oa_formats,
> +    'KBL': gen8_11_chipset_oa_formats,
> +    'GLK': gen8_11_chipset_oa_formats,
> +    'CFL': gen8_11_chipset_oa_formats,
> +    'CNL': gen8_11_chipset_oa_formats,
> +    'ICL': gen8_11_chipset_oa_formats,
> +    'EHL': gen8_11_chipset_oa_formats,
> +    'TGL': gen8_11_chipset_oa_formats,
> +    'RKL': gen8_11_chipset_oa_formats,
> +    'DG1': gen8_11_chipset_oa_formats,
> +    'ADL': gen8_11_chipset_oa_formats,
> +    'ACM': xehpsdv_chipset_oa_formats,
> +    'MTL': xehpsdv_chipset_oa_formats,
>  }
>  
>  xehp_plus = ( 'ACM', 'MTL' )
> @@ -180,14 +195,14 @@ def underscore(name):
>  def print_err(*args):
>      sys.stderr.write(' '.join(map(str,args)) + '\n')
>  
> -def read_value(chipset, offset):
> -    if offset in chipsets[chipset]['register_offsets']:
> -        return chipsets[chipset]['register_offsets'][offset]
> +def read_value(chipset, offset, oa_format):
> +    if offset in chipsets[chipset][oa_format]['register_offsets']:
> +        return chipsets[chipset][oa_format]['register_offsets'][offset]
>      print_err("Unknown offset register at offset {0}".format(offset))
>      assert 0
>  
>  
> -def read_token_to_rpn_read(chipset, token, raw_offsets):
> +def read_token_to_rpn_read(chipset, token, raw_offsets, oa_format):
>      width, offset_str = token.split('@')
>  
>      # For Broadwell the raw read notation was extended for 40 bit
> @@ -200,10 +215,10 @@ def read_token_to_rpn_read(chipset, token, raw_offsets):
>  
>      if raw_offsets:
>          # Location in the HW reports
> -        a_offset = chipsets[chipset]['a_offset']
> -        b_offset = chipsets[chipset]['b_offset']
> -        c_offset = chipsets[chipset]['c_offset']
> -        report_size = chipsets[chipset]['oa_report_size']
> +        a_offset = chipsets[chipset][oa_format]['a_offset']
> +        b_offset = chipsets[chipset][oa_format]['b_offset']
> +        c_offset = chipsets[chipset][oa_format]['c_offset']
> +        report_size = chipsets[chipset][oa_format]['oa_report_size']
>  
>          if offset < a_offset:
>              if offset == 4:
> @@ -228,7 +243,7 @@ def read_token_to_rpn_read(chipset, token, raw_offsets):
>          elif offset < report_size:
>              return "C " + str(int((offset - c_offset) / 4)) + " READ"
>          else:
> -            return "{0} READ".format(read_value(chipset, offset))
> +            return "{0} READ".format(read_value(chipset, offset, oa_format))
>      else:
>          # Location in the accumulated deltas
>          idx = int(offset / 8)
> @@ -245,7 +260,7 @@ def read_token_to_rpn_read(chipset, token, raw_offsets):
>              elif idx < 62:
>                  return "C " + str(idx - 54) + " READ"
>              else:
> -                return "{0} READ".format(read_value(chipset, offset))
> +                return "{0} READ".format(read_value(chipset, offset, oa_format))
>          elif chipset in xehp_plus:
>              # For XEHPSDV the array of accumulated counters is
>              # assumed to start with a GPU_TIME then GPU_CLOCK,
> @@ -262,7 +277,7 @@ def read_token_to_rpn_read(chipset, token, raw_offsets):
>              elif idx < 56:
>                  return "C " + str(idx - 48) + " READ"
>              else:
> -                return "{0} READ".format(read_value(chipset, offset))
> +                return "{0} READ".format(read_value(chipset, offset, oa_format))
>          else:
>              # For Gen8+ the array of accumulated counters is
>              # assumed to start with a GPU_TIME then GPU_CLOCK,
> @@ -279,11 +294,11 @@ def read_token_to_rpn_read(chipset, token, raw_offsets):
>              elif idx < 54:
>                  return "C " + str(idx - 46) + " READ"
>              else:
> -                return "{0} READ".format(read_value(chipset, offset))
> +                return "{0} READ".format(read_value(chipset, offset, oa_format))
>  
>      assert 0
>  
> -def replace_read_tokens_with_rpn_read_ops(chipset, equation, raw_offsets):
> +def replace_read_tokens_with_rpn_read_ops(chipset, oa_format, equation, raw_offsets):
>      # MDAPI MetricSet equations use tokens like 'dw@0xff' for reading raw
>      # values from snapshots, but this doesn't seem convenient for a few
>      # reasons:
> @@ -307,7 +322,7 @@ def replace_read_tokens_with_rpn_read_ops(chipset, equation, raw_offsets):
>  
>      for token in tokens:
>          if '@' in token:
> -            read_exp = read_token_to_rpn_read(chipset, token, raw_offsets)
> +            read_exp = read_token_to_rpn_read(chipset, token, raw_offsets, oa_format)
>              equation = equation + " " + read_exp
>          else:
>              equation = equation + " " + token
> @@ -425,14 +440,14 @@ def fixup_equation(equation):
>  # double check that there's never any variations between repeated
>  # configs
>  #
> -def filter_single_config_registers_of_type(mdapi_metric_set, type):
> +def filter_single_config_registers_of_type(mdapi_metric_set, type, oa_format):
>      regs = []
>      for mdapi_reg_config in mdapi_metric_set.findall("RegConfigStart"):
>          tmp_regs = []
>          for mdapi_reg in mdapi_reg_config.findall("Register"):
>              reg = (int(mdapi_reg.get('offset'),16), int(mdapi_reg.get('value'),16))
>  
> -            if reg[0] in chipsets[chipset]['config_reg_blacklist']:
> +            if reg[0] in chipsets[chipset][oa_format]['config_reg_blacklist']:
>                  continue
>  
>              if mdapi_reg.get('type') == type:
> @@ -472,7 +487,7 @@ def get_mux_id_group(id_groups, id):
>  
>  
>  
> -def process_mux_configs(mdapi_set):
> +def process_mux_configs(mdapi_set, oa_format):
>      allow_missing_id = True
>  
>      mux_config_id_groups = []
> @@ -483,7 +498,7 @@ def process_mux_configs(mdapi_set):
>          for mdapi_reg in mdapi_reg_config.findall("Register"):
>              address = int(mdapi_reg.get('offset'), 16)
>  
> -            if address in chipsets[chipset]['config_reg_blacklist']:
> +            if address in chipsets[chipset][oa_format]['config_reg_blacklist']:
>                  continue
>  
>              reg_type = mdapi_reg.get('type')
> @@ -613,6 +628,7 @@ for arg in args.xml:
>          if "OGL" not in apis and "OCL" not in apis and "MEDIA" not in apis:
>              continue
>  
> +        oa_format = '256B_GENERIC_NOA16'
>          set_symbol_name = oa_registry.Registry.sanitize_symbol_name(mdapi_set.get('SymbolName'))
>  
>          if set_symbol_name in sets:
> @@ -668,7 +684,7 @@ for arg in args.xml:
>          # to deal with. (At least we got the handling of the Broadwell
>          # ComputeExtended example wrong and it took several email exchanges and
>          # a conference call to confirm how to interpret this case)
> -        mux_configs = process_mux_configs(mdapi_set)
> +        mux_configs = process_mux_configs(mdapi_set, oa_format)
>  
>          # Unlike for MUX registers, we only expect one set of FLEX/OA
>          # registers per metric set (even though they are sometimes duplicated
> @@ -680,8 +696,8 @@ for arg in args.xml:
>          # need some adapting to support multiple OA/FLEX configs with different
>          # availability expressions)
>          #
> -        flex_regs = filter_single_config_registers_of_type(mdapi_set, "FLEX")
> -        oa_regs = filter_single_config_registers_of_type(mdapi_set, "OA")
> +        flex_regs = filter_single_config_registers_of_type(mdapi_set, "FLEX", oa_format)
> +        oa_regs = filter_single_config_registers_of_type(mdapi_set, "OA", oa_format)
>  
>  
>          # Note: we ignore Perfmon registers
> @@ -877,6 +893,7 @@ for arg in args.xml:
>                      raw_read_eq = None
>                  else:
>                      raw_read_eq = replace_read_tokens_with_rpn_read_ops(chipset,
> +                                                                        oa_format,
>                                                                          raw_read_eq,
>                                                                          True) #raw offsets
>  
> @@ -886,6 +903,7 @@ for arg in args.xml:
>                      delta_read_eq = None
>                  else:
>                      delta_read_eq = replace_read_tokens_with_rpn_read_ops(chipset,
> +                                                                          oa_format,
>                                                                            delta_read_eq,
>                                                                            False) #delta offsets
>  
> @@ -1070,8 +1088,8 @@ for set in metrics.findall(".//set"):
>          for reg in config.findall("register"):
>              addr = int(reg.get('address'), 16)
>  
> -            if 'registers' in chipsets[chipset] and addr in chipsets[chipset]['registers']:
> -                reg_info = chipsets[chipset]['registers'][addr]
> +            if 'registers' in chipsets[chipset][oa_format] and addr in chipsets[chipset][oa_format]['registers']:
> +                reg_info = chipsets[chipset][oa_format]['registers'][addr]
>                  comment = ' <!--' + reg_info['name'] + ' -->'
>              else:
>                  comment = ''
> -- 
> 2.36.1
> 

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 17/31] i915/perf: Choose OAM format for media metrics
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 17/31] i915/perf: Choose OAM format for media metrics Umesh Nerlige Ramappa
@ 2023-03-13 15:52   ` Kamil Konieczny
  0 siblings, 0 replies; 73+ messages in thread
From: Kamil Konieczny @ 2023-03-13 15:52 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Hi Umesh,

add 'lib/' before i915 in subject.

With that
Acked-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>

Regards,
Kamil

On 2023-02-14 at 16:46:34 -0800, Umesh Nerlige Ramappa wrote:
> If the metric set has OAM format defined, update the generated metrics
> accordingly.
> 
> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
> ---
>  lib/i915/perf-configs/codegen.py              |  4 +++
>  lib/i915/perf-configs/mdapi-xml-convert.py    |  1 +
>  .../perf-configs/perf-metricset-codegen.py    | 36 ++++++++++++-------
>  3 files changed, 29 insertions(+), 12 deletions(-)
> 
> diff --git a/lib/i915/perf-configs/codegen.py b/lib/i915/perf-configs/codegen.py
> index 755142cc..020e76ef 100644
> --- a/lib/i915/perf-configs/codegen.py
> +++ b/lib/i915/perf-configs/codegen.py
> @@ -117,6 +117,10 @@ class Set:
>      def underscore_name(self):
>          return self.xml.get('underscore_name')
>  
> +    @property
> +    def oa_format(self):
> +        return self.xml.get('oa_format')
> +
>      def findall(self, path):
>          return self.xml.findall(path)
>  
> diff --git a/lib/i915/perf-configs/mdapi-xml-convert.py b/lib/i915/perf-configs/mdapi-xml-convert.py
> index 5c784643..3b7d0663 100755
> --- a/lib/i915/perf-configs/mdapi-xml-convert.py
> +++ b/lib/i915/perf-configs/mdapi-xml-convert.py
> @@ -659,6 +659,7 @@ for arg in args.xml:
>          set.set('symbol_name', set_symbol_name)
>          set.set('underscore_name', underscore(mdapi_set.get('SymbolName')))
>          set.set('mdapi_supported_apis', strip_dx_apis(mdapi_set.get('SupportedAPI')))
> +        set.set('oa_format', oa_format)
>  
>  
>          # Look at the hardware register config before looking at the counters.
> diff --git a/lib/i915/perf-configs/perf-metricset-codegen.py b/lib/i915/perf-configs/perf-metricset-codegen.py
> index 08351309..8b2c5d7b 100644
> --- a/lib/i915/perf-configs/perf-metricset-codegen.py
> +++ b/lib/i915/perf-configs/perf-metricset-codegen.py
> @@ -128,18 +128,30 @@ def generate_metric_sets(args, gen):
>  
>              """))
>          elif gen.chipset.startswith("acm") or gen.chipset.startswith("mtl"):
> -            c(textwrap.dedent("""\
> -                metric_set->perf_oa_format = I915_OA_FORMAT_A24u40_A14u32_B8_C8;
> -
> -                metric_set->perf_raw_size = 256;
> -                metric_set->gpu_time_offset = 0;
> -                metric_set->gpu_clock_offset = 1;
> -                metric_set->a_offset = 2;
> -                metric_set->b_offset = metric_set->a_offset + 38;
> -                metric_set->c_offset = metric_set->b_offset + 8;
> -                metric_set->perfcnt_offset = metric_set->c_offset + 8;
> -
> -            """))
> +            if set.oa_format == "128B_MPEC8_NOA16":
> +                c(textwrap.dedent("""\
> +                    metric_set->perf_oa_format = I915_OAM_FORMAT_MPEC8u32_B8_C8;
> +
> +                    metric_set->perf_raw_size = 128;
> +                    metric_set->gpu_time_offset = 0;
> +                    metric_set->gpu_clock_offset = 1;
> +                    metric_set->a_offset = 2;
> +                    metric_set->b_offset = metric_set->a_offset + 8;
> +                    metric_set->c_offset = metric_set->b_offset + 8;
> +                    metric_set->perfcnt_offset = metric_set->c_offset + 8;
> +                """))
> +            else:
> +                c(textwrap.dedent("""\
> +                    metric_set->perf_oa_format = I915_OA_FORMAT_A24u40_A14u32_B8_C8;
> +
> +                    metric_set->perf_raw_size = 256;
> +                    metric_set->gpu_time_offset = 0;
> +                    metric_set->gpu_clock_offset = 1;
> +                    metric_set->a_offset = 2;
> +                    metric_set->b_offset = metric_set->a_offset + 38;
> +                    metric_set->c_offset = metric_set->b_offset + 8;
> +                    metric_set->perfcnt_offset = metric_set->c_offset + 8;
> +                """))
>          else:
>              c(textwrap.dedent("""\
>                  metric_set->perf_oa_format = I915_OA_FORMAT_A32u40_A4u32_B8_C8;
> -- 
> 2.36.1
> 

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 19/31] lib/perf: Add MTL to supprted HW in oa guid registry
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 19/31] lib/perf: Add MTL to supprted HW in oa guid registry Umesh Nerlige Ramappa
@ 2023-03-13 15:55   ` Kamil Konieczny
  2023-03-13 15:57   ` Kamil Konieczny
  1 sibling, 0 replies; 73+ messages in thread
From: Kamil Konieczny @ 2023-03-13 15:55 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Hi Umesh,

why 'oa' in small letters ? imho you should follow
convention and write it in capitals, 'OA guid registry'.

Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>

Regards,
Kamil

On 2023-02-14 at 16:46:36 -0800, Umesh Nerlige Ramappa wrote:
> Add MTL to supprted HW in oa guid registry
> 
> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
> ---
>  lib/i915/perf-configs/oa_guid_registry.py | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/i915/perf-configs/oa_guid_registry.py b/lib/i915/perf-configs/oa_guid_registry.py
> index 50076e95..f520f817 100644
> --- a/lib/i915/perf-configs/oa_guid_registry.py
> +++ b/lib/i915/perf-configs/oa_guid_registry.py
> @@ -100,7 +100,8 @@ class Registry:
>                             'RKL',
>                             'DG1',
>                             'ACM',
> -                           'PVC' )
> +                           'PVC',
> +                           'MTL', )
>          if name in known_chipsets:
>              return name
>  
> -- 
> 2.36.1
> 

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 19/31] lib/perf: Add MTL to supprted HW in oa guid registry
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 19/31] lib/perf: Add MTL to supprted HW in oa guid registry Umesh Nerlige Ramappa
  2023-03-13 15:55   ` Kamil Konieczny
@ 2023-03-13 15:57   ` Kamil Konieczny
  1 sibling, 0 replies; 73+ messages in thread
From: Kamil Konieczny @ 2023-03-13 15:57 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Hi Umesh, few more nits in subject:

lib/perf: Add MTL to supprted HW in oa guid registry
--- ^ ------------------ ^ -------- ^
lib/i915/perf:

s/supprted/supported/
s/oa/OA/

Regards,
Kamil

On 2023-02-14 at 16:46:36 -0800, Umesh Nerlige Ramappa wrote:
> Add MTL to supprted HW in oa guid registry
> 
> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
> ---
>  lib/i915/perf-configs/oa_guid_registry.py | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/lib/i915/perf-configs/oa_guid_registry.py b/lib/i915/perf-configs/oa_guid_registry.py
> index 50076e95..f520f817 100644
> --- a/lib/i915/perf-configs/oa_guid_registry.py
> +++ b/lib/i915/perf-configs/oa_guid_registry.py
> @@ -100,7 +100,8 @@ class Registry:
>                             'RKL',
>                             'DG1',
>                             'ACM',
> -                           'PVC' )
> +                           'PVC',
> +                           'MTL', )
>          if name in known_chipsets:
>              return name
>  
> -- 
> 2.36.1
> 

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 20/31] lib/perf: Add support for OAM format in codegen
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 20/31] lib/perf: Add support for OAM format in codegen Umesh Nerlige Ramappa
@ 2023-03-13 16:04   ` Kamil Konieczny
  0 siblings, 0 replies; 73+ messages in thread
From: Kamil Konieczny @ 2023-03-13 16:04 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

On 2023-02-14 at 16:46:37 -0800, Umesh Nerlige Ramappa wrote:
> Include OAM samedia format for MTL.
------------- ^
imho it would help if you write full name here, is it
sample media ?

Acked-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>

Regards,
Kamil

> 
> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
> ---
>  lib/i915/perf-configs/mdapi-xml-convert.py | 118 +++++++++++++++++++--
>  1 file changed, 112 insertions(+), 6 deletions(-)
> 
> diff --git a/lib/i915/perf-configs/mdapi-xml-convert.py b/lib/i915/perf-configs/mdapi-xml-convert.py
> index eee12ad5..ba0b7ba4 100755
> --- a/lib/i915/perf-configs/mdapi-xml-convert.py
> +++ b/lib/i915/perf-configs/mdapi-xml-convert.py
> @@ -135,6 +135,36 @@ xehpsdv_chipset_params = {
>  
>  # There is no ReportType field in most Metrics XML files, Use 256B_GENERIC_NOA16
>  # to denote the generic 256 byte format that is used by most chipsets
> +# Just treat the MPEC counter names as A counters here. If a format has both A
> +# and MPEC counters, then we need to change this.
> +mtl_chipset_oam_samedia_ll_params = {
> +    'a_offset': 32,
> +    'b_offset': 96,
> +    'c_offset': 128,
> +    'oa_report_size': 192,
> +    'config_reg_blacklist': {
> +        0x2364, # OACTXID
> +    },
> +    'register_offsets': {
> +        0x1b0: 'PERFCNT 0',
> +        0x1b8: 'PERFCNT 1',
> +    }
> +}
> +
> +mtl_chipset_oam_samedia_params = {
> +    'a_offset': 32,
> +    'b_offset': 64,
> +    'c_offset': 96,
> +    'oa_report_size': 128,
> +    'config_reg_blacklist': {
> +        0x2364, # OACTXID
> +    },
> +    'register_offsets': {
> +        0x1b0: 'PERFCNT 0',
> +        0x1b8: 'PERFCNT 1',
> +    }
> +}
> +
>  hsw_chipset_oa_formats = {
>      '256B_GENERIC_NOA16': hsw_chipset_params,
>  }
> @@ -147,6 +177,11 @@ xehpsdv_chipset_oa_formats = {
>      '256B_GENERIC_NOA16': xehpsdv_chipset_params,
>  }
>  
> +mtl_chipset_oa_formats = {
> +    '256B_GENERIC_NOA16': xehpsdv_chipset_params,
> +    '192B_MPEC8LL_NOA16': mtl_chipset_oam_samedia_ll_params,
> +    '128B_MPEC8_NOA16': mtl_chipset_oam_samedia_params,
> +}
>  
>  chipsets = {
>      'HSW': hsw_chipset_oa_formats,
> @@ -165,7 +200,7 @@ chipsets = {
>      'DG1': gen8_11_chipset_oa_formats,
>      'ADL': gen8_11_chipset_oa_formats,
>      'ACM': xehpsdv_chipset_oa_formats,
> -    'MTL': xehpsdv_chipset_oa_formats,
> +    'MTL': mtl_chipset_oa_formats,
>  }
>  
>  xehp_plus = ( 'ACM', 'MTL' )
> @@ -202,7 +237,62 @@ def read_value(chipset, offset, oa_format):
>      assert 0
>  
>  
> -def read_token_to_rpn_read(chipset, token, raw_offsets, oa_format):
> +def read_token_to_rpn_read_oam(chipset, token, raw_offsets, oa_format):
> +    width, offset_str = token.split('@')
> +    offset = int(offset_str, 16)
> +
> +    if width == 'qw':
> +        den = 8
> +    else:
> +        den = 4
> +
> +    if raw_offsets:
> +        # Location in the HW reports
> +        a_offset = chipsets[chipset][oa_format]['a_offset']
> +        b_offset = chipsets[chipset][oa_format]['b_offset']
> +        c_offset = chipsets[chipset][oa_format]['c_offset']
> +        report_size = chipsets[chipset][oa_format]['oa_report_size']
> +
> +        if offset < a_offset:
> +            if offset == 8:
> +                return "GPU_TIME 0 READ"
> +            elif offset == 24:
> +                return "GPU_CLOCK 0 READ"
> +            else:
> +                assert 0
> +        elif offset < b_offset:
> +            a_cnt_offset = int((offset - a_offset) / den)
> +            return "A " + str(a_cnt_offset) + " READ"
> +        elif offset < c_offset:
> +            return "B " + str(int((offset - b_offset) / den)) + " READ"
> +        elif offset < report_size:
> +            return "C " + str(int((offset - c_offset) / den)) + " READ"
> +        else:
> +            return "{0} READ".format(read_value(chipset, offset, oa_format))
> +    else:
> +        # Location in the accumulated deltas
> +        idx = int(offset / 8)
> +        if chipset in xehp_plus:
> +            # For XEHPSDV the array of accumulated counters is
> +            # assumed to start with a GPU_TIME then GPU_CLOCK,
> +            # then 38 A counters, then 8 B counters and finally
> +            # 8 C counters.
> +            if idx == 0:
> +                return "GPU_TIME 0 READ"
> +            elif idx == 1:
> +                return "GPU_CLOCK 0 READ"
> +            elif idx < 40:
> +                return "A " + str(idx - 2) + " READ"
> +            elif idx < 48:
> +                return "B " + str(idx - 40) + " READ"
> +            elif idx < 56:
> +                return "C " + str(idx - 48) + " READ"
> +            else:
> +                return "{0} READ".format(read_value(chipset, offset, oa_format))
> +
> +    assert 0
> +
> +def read_token_to_rpn_read_oag(chipset, token, raw_offsets, oa_format):
>      width, offset_str = token.split('@')
>  
>      # For Broadwell the raw read notation was extended for 40 bit
> @@ -298,6 +388,16 @@ def read_token_to_rpn_read(chipset, token, raw_offsets, oa_format):
>  
>      assert 0
>  
> +
> +def read_token_to_rpn_read(chipset, token, raw_offsets, oa_format):
> +    if oa_format == '256B_GENERIC_NOA16':
> +        return read_token_to_rpn_read_oag(chipset, token, raw_offsets, oa_format)
> +
> +    if oa_format in ['192B_MPEC8LL_NOA16', '128B_MPEC8_NOA16']:
> +        return read_token_to_rpn_read_oam(chipset, token, raw_offsets, oa_format)
> +
> +    assert 0
> +
>  def replace_read_tokens_with_rpn_read_ops(chipset, oa_format, equation, raw_offsets):
>      # MDAPI MetricSet equations use tokens like 'dw@0xff' for reading raw
>      # values from snapshots, but this doesn't seem convenient for a few
> @@ -625,10 +725,13 @@ for arg in args.xml:
>      for mdapi_set in mdapi.findall(".//MetricSet"):
>  
>          apis = mdapi_set.get('SupportedAPI')
> -        if "OGL" not in apis and "OCL" not in apis and "MEDIA" not in apis:
> +        if "OGL" not in apis and "OCL" not in apis and "MEDIA" not in apis and "IO" not in apis:
>              continue
>  
>          oa_format = '256B_GENERIC_NOA16'
> +        if mdapi_set.get('ReportType') in chipsets[chipset]:
> +            oa_format = mdapi_set.get('ReportType')
> +
>          set_symbol_name = oa_registry.Registry.sanitize_symbol_name(mdapi_set.get('SymbolName'))
>  
>          if set_symbol_name in sets:
> @@ -647,7 +750,7 @@ for arg in args.xml:
>          if set_symbol_name in set_blacklist:
>              continue
>  
> -        if mdapi_set.get('SnapshotReportSize') != '256':
> +        if mdapi_set.get('SnapshotReportSize') != str(chipsets[chipset][oa_format]['oa_report_size']):
>              print_err("WARNING: skipping metric set '{0}', report size {1} invalid".format(set_symbol_name, mdapi_set.get('SnapshotReportSize')))
>              continue
>  
> @@ -880,8 +983,11 @@ for arg in args.xml:
>              # XXX: As a special case, we override the raw and delta report
>              # equations for the GpuTime counters, which seem inconsistent
>              if mdapi_counter.get('SymbolName') == "GpuTime":
> -                mdapi_counter.set('SnapshotReportReadEquation', "dw@0x04 1000000000 UMUL $GpuTimestampFrequency UDIV")
>                  mdapi_counter.set('DeltaReportReadEquation', "qw@0x0 1000000000 UMUL $GpuTimestampFrequency UDIV")
> +                if chipset == 'MTL' and oa_format != '256B_GENERIC_NOA16':
> +                    mdapi_counter.set('SnapshotReportReadEquation', "qw@0x08 1000000000 UMUL $GpuTimestampFrequency UDIV")
> +                else:
> +                    mdapi_counter.set('SnapshotReportReadEquation', "dw@0x04 1000000000 UMUL $GpuTimestampFrequency UDIV")
>  
>              availability = fixup_equation(mdapi_counter.get('AvailabilityEquation'))
>              if availability == "":
> @@ -919,7 +1025,7 @@ for arg in args.xml:
>                            "(" + mdapi_counter.get('ShortName') + ")" + "\"")
>                  # Media metric counters currently have no delta equation even
>                  # though they have normalization equations that reference $Self
> -                if "MEDIA" in apis:
> +                if "MEDIA" in apis or "IO" in apis:
>                      print_err("WARNING: -> Treating inconsistent media metric's 'raw' equation as a 'delta report' equation, but results should be double checked!")
>                      delta_read_eq = raw_read_eq
>                  else:
> -- 
> 2.36.1
> 

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 21/31] lib/perf: Update MTL GT2 metrics for OAM
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 21/31] lib/perf: Update MTL GT2 metrics for OAM Umesh Nerlige Ramappa
@ 2023-03-13 16:09   ` Kamil Konieczny
  0 siblings, 0 replies; 73+ messages in thread
From: Kamil Konieczny @ 2023-03-13 16:09 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Hi Umesh,

there are changes below which looks like a fix,
so maybe they should be sended separatly ?

You decide,
Acked-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>

On 2023-02-14 at 16:46:38 -0800, Umesh Nerlige Ramappa wrote:
> Add OAM metrics configurations and update MTL GT2 metrics.
> 
> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
> ---
>  lib/i915/perf-configs/guids.xml     |   13 +-
>  lib/i915/perf-configs/oa-mtlgt2.xml | 1014 ++++++++++++++++++++++++---
>  2 files changed, 919 insertions(+), 108 deletions(-)
> 
> diff --git a/lib/i915/perf-configs/guids.xml b/lib/i915/perf-configs/guids.xml
> index cc0dc916..0b96aa91 100644
> --- a/lib/i915/perf-configs/guids.xml
> +++ b/lib/i915/perf-configs/guids.xml
> @@ -2357,7 +2357,7 @@
>      <guid config_hash="321ffd18a528dd67798e8a8476f632fe" mdapi_config_hash="7984537ffe8ca547d3583a56edf26bbd" id="fc82db3d-d6a7-413a-8349-b31f02251d2f" chipset="mtlgt2" name="Ext1" />
>      <guid config_hash="28f18aeeb865c4bf1d8d82d77f571085" mdapi_config_hash="bba07ef452c6a67f0a8ff04fa9b4d93d" id="3479a81d-9017-4930-af0c-14f7fabadb38" chipset="mtlgt2" name="Ext4" />
>      <guid config_hash="0955d0036c6b2b4afe94cb4d8115c577" mdapi_config_hash="38688d5ff152f82f150d9c569caf2351" id="e4701256-cd06-48f7-a005-d4d1f9e895c1" chipset="mtlgt2" name="Ext5" />
> -    <guid config_hash="d93bc60082d0b69a8f0d430732d63f94" mdapi_config_hash="dc7a66d4de8f704f44b50c10b9dff1de" id="3e47d0e8-5414-4496-8746-37e36fefc777" chipset="mtlgt2" name="Ext7" />
> +    <guid config_hash="dcdb3b48b18515e0a0f7d2179c89bda6" mdapi_config_hash="a4f1512b26ca4c3ed1d8d818cfedcd65" id="3e47d0e8-5414-4496-8746-37e36fefc777" chipset="mtlgt2" name="Ext7" />
>      <guid config_hash="3de00cb5cc6f1598d624b9d4c2d072cf" mdapi_config_hash="0237dfeb5d300cab42cc36a64552ebe7" id="5aa36c1f-c6da-45ab-ab21-397d9a4b6a06" chipset="mtlgt2" name="Ext8" />
>      <guid config_hash="f66aff20b452fc6746f6f345aa996b63" mdapi_config_hash="14b2a444cc752fd4946c11906f5a7486" id="1df59d79-16d8-471c-b3da-f0f62862f89e" chipset="mtlgt2" name="Ext10" />
>      <guid config_hash="f27eef4bd1b25e14f598ff04fe69a511" mdapi_config_hash="1f4b2bf31f456235f289cf7eba5039c2" id="d05d3d84-ba16-41b5-b825-5a3d2aaabbfc" chipset="mtlgt2" name="Ext11" />
> @@ -2463,10 +2463,10 @@
>      <guid config_hash="a68a66449827d355064d3db9473b4df5" mdapi_config_hash="129fbcf33c8f25a6c15935e5aeaef3b4" id="8e09a7a1-b0e8-464a-a28d-90250f64ec9e" chipset="mtlgt2" name="Ext501" />
>      <guid config_hash="b66b6fe10d453212eb1bd501ae6a29bd" mdapi_config_hash="17c05f7a6933e3fcf7669b142bb55705" id="57a19b6a-1b7d-4337-a9c9-710c56c46f84" chipset="mtlgt2" name="Ext502" />
>      <guid config_hash="610d0cdc34fe0442b0c8e6277703f21a" mdapi_config_hash="32ce7dfe4ea7f5e79c69cc04d41d3f01" id="394b21ab-311c-47a5-9b10-88159f5ac999" chipset="mtlgt2" name="Ext503" />
> -    <guid config_hash="92ba0e22539647cf0eb2bc7f10cd4cf8" mdapi_config_hash="41e11d55b96e18999fad3efe5f8bf16a" id="143440a0-d7e2-4f41-8372-8fdca1ecc2a8" chipset="mtlgt2" name="Ext508" />
> -    <guid config_hash="e36ab792e7756ea6ea71e387c873dfdd" mdapi_config_hash="18af689ecd1d15e707c0192ea02f5824" id="7c5d3f41-b690-44b2-8352-00215ac94bae" chipset="mtlgt2" name="Ext509" />
> -    <guid config_hash="25febf37102198080c0e680e94beaced" mdapi_config_hash="bb8ff9dfe34ad6197c7540e7ddee356b" id="02f43996-feff-4e13-a8fd-eea9de2f13fc" chipset="mtlgt2" name="Ext510" />
> -    <guid config_hash="29bcf55f5b34e961768cd5cbbd828532" mdapi_config_hash="670a9e1fd79cd9610418c85d13df3436" id="2cbd327c-40e2-452b-a9fc-c7787869a352" chipset="mtlgt2" name="Ext511" />
> +    <guid config_hash="3c81d715dab552c96a708e5561cddf32" mdapi_config_hash="2ef3813b66f81eda0cb04dbe437234d8" id="143440a0-d7e2-4f41-8372-8fdca1ecc2a8" chipset="mtlgt2" name="Ext508" />
> +    <guid config_hash="15984b5fb58b51a666ece004db6ae774" mdapi_config_hash="26232e447ea7dcf0c3a97e4353250a53" id="7c5d3f41-b690-44b2-8352-00215ac94bae" chipset="mtlgt2" name="Ext509" />
> +    <guid config_hash="d44c98ea5ef5bff89e9ceb275d0da118" mdapi_config_hash="a8071d6fc9bd3959731ab78598f80294" id="02f43996-feff-4e13-a8fd-eea9de2f13fc" chipset="mtlgt2" name="Ext510" />
> +    <guid config_hash="df750e7700406492d3bcd261c4af73e6" mdapi_config_hash="c2e0e09a27bb2ad5f80b0766ab56b37b" id="2cbd327c-40e2-452b-a9fc-c7787869a352" chipset="mtlgt2" name="Ext511" />
>      <guid config_hash="6d9b68c2c4b89d9a952160fe503ac6a6" mdapi_config_hash="4508de639c858687559dd85a870d624f" id="3a9dba68-9402-48b0-a8ec-28e4e4a534de" chipset="mtlgt2" name="Ext516" />
>      <guid config_hash="039124a8e61c2e323aace525da916ab0" mdapi_config_hash="ac8b6cf6d21ba83fe04789064b2caa97" id="ea503506-9afa-42dc-b85b-1237dce6e8af" chipset="mtlgt2" name="Ext517" />
>      <guid config_hash="589d2f86e9b14cf16b9c8c33e473d1e4" mdapi_config_hash="1184ac825d3d0cba18e7ca501e515fc9" id="5056524c-12e3-4ba6-8788-eb934f284753" chipset="mtlgt2" name="Ext518" />
> @@ -2740,4 +2740,7 @@
>      <guid config_hash="e7efe91c7aeb591043358c1b5e3c019d" mdapi_config_hash="94ecec147a25de742814fbb01fd4e9c3" id="f739508f-51b2-48df-839c-e92c14d14c64" chipset="mtlgt3" name="Ext1006" />
>      <guid config_hash="a96fb9e9d0949e6cc372ef445fded872" mdapi_config_hash="7fb3e6405e4b54b8566589aa79cd960e" id="926b1773-807e-4ee5-8561-30c9eb0a6344" chipset="mtlgt3" name="Ext1007" />
>      <guid config_hash="310dddcb04d1088a3865f698d758cbc2" mdapi_config_hash="c6a3be7d49b5697074021ca673a39a57" id="82f69b49-772a-4169-bf9a-b1ef08e0823b" chipset="mtlgt3" name="Ext1010" />
> +    <guid config_hash="482cebdeeb78bb56e67b42d24644c8db" mdapi_config_hash="11e33e01a371bf15e59b9786f4fe1050" id="de84260e-32ac-4863-ba4f-998a685174a2" chipset="mtlgt2" name="MediaSet1" />
> +    <guid config_hash="5bfab887a79b99cf34a606dcca5f4f8a" mdapi_config_hash="1c238e39e5c73eefd870cef2fb7a18af" id="b9d5c6d5-39f2-4069-b343-e7a886353b89" chipset="mtlgt2" name="MediaSet2" />
> +    <guid config_hash="44bcb438bea8b46b57779739bebfbd69" mdapi_config_hash="fbbd97d1f3b60c17eae57bbd3c42e7fe" id="a1700053-56bc-4b7e-87b9-e29b07a08f62" chipset="mtlgt2" name="TestOam" />
>  </guids>
> diff --git a/lib/i915/perf-configs/oa-mtlgt2.xml b/lib/i915/perf-configs/oa-mtlgt2.xml
> index 0155145b..33ba70d0 100644
> --- a/lib/i915/perf-configs/oa-mtlgt2.xml
> +++ b/lib/i915/perf-configs/oa-mtlgt2.xml
> @@ -1,10 +1,11 @@
>  <?xml version="1.0"?>
> -<metrics version="1669276337" merge_md5="">
> +<metrics version="1675300099" merge_md5="">
>    <set name="Render Metrics Basic"
>         chipset="MTLGT2"
>         symbol_name="RenderBasic"
>         underscore_name="render_basic"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="232e858b-7116-44e8-a4be-856c59026650"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -565,6 +566,7 @@
>         symbol_name="ComputeBasic"
>         underscore_name="compute_basic"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="fea2b2b7-a072-41c5-9092-2d7c48bb56c6"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -1118,6 +1120,7 @@
>         symbol_name="AsyncCompute"
>         underscore_name="async_compute"
>         mdapi_supported_apis="OGL OCL MEDIA IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="011e5c80-c877-46fd-90ff-fd0bb29cb5ec"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -1460,6 +1463,7 @@
>         symbol_name="XveActivity"
>         underscore_name="xve_activity"
>         mdapi_supported_apis="OGL OGL4 OCL MEDIA IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="5f430543-ba1e-487c-b217-90570cfb85f9"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -1758,6 +1762,7 @@
>         symbol_name="GpuBusyness"
>         underscore_name="gpu_busyness"
>         mdapi_supported_apis="VK OGL OCL MEDIA IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="3cb64fed-0f61-4e41-a754-b9c5b4892f77"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -2017,6 +2022,7 @@
>         symbol_name="HDCAndSF"
>         underscore_name="hdc_and_sf"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="27d6eda4-aabc-4203-8848-aef69658ae74"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -2298,6 +2304,7 @@
>         symbol_name="L3"
>         underscore_name="l3"
>         mdapi_supported_apis="VK OGL OCL MEDIA IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="50b898ad-44ae-4d02-ba5b-a7d2a024a480"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -2537,6 +2544,7 @@
>         symbol_name="RasterizerAndPixelBackend1"
>         underscore_name="rasterizer_and_pixel_backend1"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="29adb364-f161-40cb-929d-c14036447c4f"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -2729,6 +2737,7 @@
>         symbol_name="RasterizerAndPixelBackend2"
>         underscore_name="rasterizer_and_pixel_backend2"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="787c682f-68be-4a64-b998-77d8a30b4ea6"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -2927,6 +2936,7 @@
>         symbol_name="RenderPipeProfile"
>         underscore_name="render_pipe_profile"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="1269ddfd-22a6-47ca-9a1a-dc37b8c38490"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -3321,6 +3331,7 @@
>         symbol_name="Sampler"
>         underscore_name="sampler"
>         mdapi_supported_apis="VK OGL OCL MEDIA IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="3c304c3b-9ada-4d92-9b54-34ec4e70aea6"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -3584,6 +3595,7 @@
>         symbol_name="TDL1"
>         underscore_name="tdl1"
>         mdapi_supported_apis="VK OGL OCL MEDIA IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="616fc1b0-53bb-4411-93b0-b34ab2b0bfb8"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -3928,6 +3940,7 @@
>         symbol_name="TDL2"
>         underscore_name="tdl2"
>         mdapi_supported_apis="VK OGL OCL MEDIA IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="952fa513-550e-49bc-a355-22fadbea5455"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -4288,6 +4301,7 @@
>         symbol_name="TestOa"
>         underscore_name="test_oa"
>         mdapi_supported_apis="VK OGL OCL MEDIA IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="d0ed8afd-ad64-4774-8788-1a15f4ab7829"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -4512,6 +4526,7 @@
>         symbol_name="Ext1"
>         underscore_name="ext1"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="fc82db3d-d6a7-413a-8349-b31f02251d2f"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -4820,6 +4835,7 @@
>         symbol_name="Ext4"
>         underscore_name="ext4"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="3479a81d-9017-4930-af0c-14f7fabadb38"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -5041,6 +5057,7 @@
>         symbol_name="Ext5"
>         underscore_name="ext5"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="e4701256-cd06-48f7-a005-d4d1f9e895c1"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -5330,6 +5347,7 @@
>         symbol_name="Ext7"
>         underscore_name="ext7"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="3e47d0e8-5414-4496-8746-37e36fefc777"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -5379,7 +5397,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="C 7 READ"
> +             equation="B 4 READ"

This looks like a fix (change in registry name and number).

Regards,
Kamil

>               availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
>               mdapi_group="GTI/L3"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -5393,7 +5411,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="C 6 READ"
> +             equation="B 5 READ"
>               availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
>               mdapi_group="GTI/L3"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -5407,7 +5425,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="C 5 READ"
> +             equation="B 6 READ"
>               availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
>               mdapi_group="GTI/L3"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -5421,7 +5439,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="C 4 READ"
> +             equation="B 7 READ"
>               availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
>               mdapi_group="GTI/L3"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -5435,7 +5453,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="C 3 READ"
> +             equation="C 7 READ"
>               availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
>               mdapi_group="GTI/L3"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -5449,7 +5467,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="C 2 READ"
> +             equation="C 6 READ"
>               availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
>               mdapi_group="GTI/L3"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -5463,7 +5481,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="C 1 READ"
> +             equation="C 5 READ"
>               availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
>               mdapi_group="GTI/L3"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -5477,7 +5495,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="C 0 READ"
> +             equation="C 4 READ"
>               availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
>               mdapi_group="GTI/L3"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -5492,7 +5510,7 @@
>               max_equation="100"
>               units="percent"
>               semantic_type="duration"
> -             equation="B 7 READ 100 UMUL $GpuCoreClocks FDIV"
> +             equation="C 0 READ 100 UMUL $GpuCoreClocks FDIV"
>               availability="$GtSlice0XeCore0"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -5507,7 +5525,7 @@
>               max_equation="100"
>               units="percent"
>               semantic_type="duration"
> -             equation="B 6 READ 100 UMUL $GpuCoreClocks FDIV"
> +             equation="C 1 READ 100 UMUL $GpuCoreClocks FDIV"
>               availability="$GtSlice0XeCore1"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -5522,7 +5540,7 @@
>               max_equation="100"
>               units="percent"
>               semantic_type="duration"
> -             equation="B 5 READ 100 UMUL $GpuCoreClocks FDIV"
> +             equation="C 2 READ 100 UMUL $GpuCoreClocks FDIV"
>               availability="$GtSlice0XeCore2"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -5537,7 +5555,7 @@
>               max_equation="100"
>               units="percent"
>               semantic_type="duration"
> -             equation="B 4 READ 100 UMUL $GpuCoreClocks FDIV"
> +             equation="C 3 READ 100 UMUL $GpuCoreClocks FDIV"
>               availability="$GtSlice0XeCore3"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -5548,83 +5566,86 @@
>          <register type="NOA" address="0x00000D04" value="0x00000200" />
>          <register type="NOA" address="0x00009884" value="0x00000008" />
>          <register type="NOA" address="0x00009888" value="0x18030004" />
> -        <register type="NOA" address="0x00009888" value="0x00023000" />
> -        <register type="NOA" address="0x00009888" value="0x0A030D00" />
> +        <register type="NOA" address="0x00009888" value="0x0202000C" />
> +        <register type="NOA" address="0x00009888" value="0x0C030034" />
>          <register type="NOA" address="0x00009888" value="0x04030000" />
> -        <register type="NOA" address="0x00009888" value="0x00030000" />
> -        <register type="NOA" address="0x00009888" value="0x00049000" />
> -        <register type="NOA" address="0x00009888" value="0x00083000" />
> +        <register type="NOA" address="0x00009888" value="0x02030000" />
> +        <register type="NOA" address="0x00009888" value="0x02040006" />
> +        <register type="NOA" address="0x00009888" value="0x0208000C" />
>          <register type="NOA" address="0x00009884" value="0x00000009" />
>          <register type="NOA" address="0x00009888" value="0x18030004" />
> -        <register type="NOA" address="0x00009888" value="0x0A030034" />
> +        <register type="NOA" address="0x00009888" value="0x0C030D00" />
>          <register type="NOA" address="0x00009888" value="0x04030000" />
> -        <register type="NOA" address="0x00009888" value="0x00030000" />
> -        <register type="NOA" address="0x00009888" value="0x00042000" />
> +        <register type="NOA" address="0x00009888" value="0x02030000" />
> +        <register type="NOA" address="0x00009888" value="0x02040008" />
>          <register type="NOA" address="0x00009884" value="0x0000000A" />
>          <register type="NOA" address="0x00009888" value="0x18030004" />
> -        <register type="NOA" address="0x00009888" value="0x00020300" />
> -        <register type="NOA" address="0x00009888" value="0x08030D00" />
> +        <register type="NOA" address="0x00009888" value="0x020200C0" />
> +        <register type="NOA" address="0x00009888" value="0x0E030034" />
>          <register type="NOA" address="0x00009888" value="0x04030000" />
> -        <register type="NOA" address="0x00009888" value="0x00030000" />
> -        <register type="NOA" address="0x00009888" value="0x00040900" />
> -        <register type="NOA" address="0x00009888" value="0x00080300" />
> +        <register type="NOA" address="0x00009888" value="0x02030000" />
> +        <register type="NOA" address="0x00009888" value="0x02040060" />
> +        <register type="NOA" address="0x00009888" value="0x020800C0" />
>          <register type="NOA" address="0x00009884" value="0x0000000B" />
>          <register type="NOA" address="0x00009888" value="0x18030004" />
> -        <register type="NOA" address="0x00009888" value="0x08030034" />
> +        <register type="NOA" address="0x00009888" value="0x0E030D00" />
>          <register type="NOA" address="0x00009888" value="0x04030000" />
> -        <register type="NOA" address="0x00009888" value="0x00030000" />
> -        <register type="NOA" address="0x00009888" value="0x00040200" />
> +        <register type="NOA" address="0x00009888" value="0x02030000" />
> +        <register type="NOA" address="0x00009888" value="0x02040080" />
>          <register type="NOA" address="0x00009884" value="0x00000004" />
>          <register type="NOA" address="0x00009888" value="0x04010000" />
>          <register type="NOA" address="0x00009888" value="0x0C010000" />
>          <register type="NOA" address="0x00009888" value="0x04410000" />
>          <register type="NOA" address="0x00009888" value="0x0C410000" />
>          <register type="NOA" address="0x00009888" value="0x04810000" />
> -        <register type="NOA" address="0x00009888" value="0x0C810040" />
> +        <register type="NOA" address="0x00009888" value="0x0C810000" />
>          <register type="NOA" address="0x00009888" value="0x04C10000" />
> -        <register type="NOA" address="0x00009888" value="0x0CC10001" />
> -        <register type="NOA" address="0x00009888" value="0x00010004" />
> -        <register type="NOA" address="0x00009888" value="0x0E010040" />
> -        <register type="NOA" address="0x00009888" value="0x12010380" />
> +        <register type="NOA" address="0x00009888" value="0x0CC10000" />
> +        <register type="NOA" address="0x00009888" value="0x00010040" />
> +        <register type="NOA" address="0x00009888" value="0x08010006" />
> +        <register type="NOA" address="0x00009888" value="0x12010200" />
>          <register type="NOA" address="0x00009888" value="0x02010000" />
> -        <register type="NOA" address="0x00009888" value="0x00410004" />
> -        <register type="NOA" address="0x00009888" value="0x0E410001" />
> -        <register type="NOA" address="0x00009888" value="0x1241000E" />
> +        <register type="NOA" address="0x00009888" value="0x00410040" />
> +        <register type="NOA" address="0x00009888" value="0x08410180" />
> +        <register type="NOA" address="0x00009888" value="0x12410008" />
>          <register type="NOA" address="0x00009888" value="0x02410000" />
> -        <register type="NOA" address="0x00009888" value="0x00810004" />
> -        <register type="NOA" address="0x00009888" value="0x10810380" />
> +        <register type="NOA" address="0x00009888" value="0x00810040" />
> +        <register type="NOA" address="0x00009888" value="0x0A810006" />
> +        <register type="NOA" address="0x00009888" value="0x10810200" />
>          <register type="NOA" address="0x00009888" value="0x02810000" />
> -        <register type="NOA" address="0x00009888" value="0x00C10004" />
> -        <register type="NOA" address="0x00009888" value="0x10C1000E" />
> +        <register type="NOA" address="0x00009888" value="0x00C10040" />
> +        <register type="NOA" address="0x00009888" value="0x0AC10180" />
> +        <register type="NOA" address="0x00009888" value="0x10C10008" />
>          <register type="NOA" address="0x00009888" value="0x02C10000" />
>          <register type="NOA" address="0x00009884" value="0x00000000" />
> -        <register type="NOA" address="0x00009888" value="0x00124400" />
> -        <register type="NOA" address="0x00009888" value="0x00130A00" />
> -        <register type="NOA" address="0x00009888" value="0x0213BABA" />
> -        <register type="NOA" address="0x00009888" value="0x00140500" />
> -        <register type="NOA" address="0x00009888" value="0x02144949" />
> -        <register type="NOA" address="0x00009888" value="0x00150500" />
> -        <register type="NOA" address="0x00009888" value="0x02158383" />
> -        <register type="NOA" address="0x00009888" value="0x00160500" />
> -        <register type="NOA" address="0x00009888" value="0x02165555" />
> -        <register type="NOA" address="0x00009888" value="0x00170A00" />
> -        <register type="NOA" address="0x00009888" value="0x000CFF30" />
> -        <register type="NOA" address="0x00009888" value="0x000EFF30" />
> -        <register type="NOA" address="0x00009888" value="0x000D0A00" />
> -        <register type="NOA" address="0x00009888" value="0x021A2020" />
> -        <register type="NOA" address="0x00009888" value="0x001B2200" />
> -        <register type="NOA" address="0x00009888" value="0x00060A00" />
> -        <register type="NOA" address="0x00009888" value="0x0206AAAA" />
> -        <register type="NOA" address="0x00009888" value="0x0001FA00" />
> -        <register type="NOA" address="0x00009888" value="0x0201AAAA" />
> +        <register type="NOA" address="0x00009888" value="0x00124020" />
> +        <register type="NOA" address="0x00009888" value="0x0013AE00" />
> +        <register type="NOA" address="0x00009888" value="0x0213BAA0" />
> +        <register type="NOA" address="0x00009888" value="0x00146100" />
> +        <register type="NOA" address="0x00009888" value="0x02144950" />
> +        <register type="NOA" address="0x00009888" value="0x0015C200" />
> +        <register type="NOA" address="0x00009888" value="0x02158350" />
> +        <register type="NOA" address="0x00009888" value="0x00165500" />
> +        <register type="NOA" address="0x00009888" value="0x02165550" />
> +        <register type="NOA" address="0x00009888" value="0x021700A0" />
> +        <register type="NOA" address="0x00009888" value="0x000CFCF0" />
> +        <register type="NOA" address="0x00009888" value="0x000EFCF0" />
> +        <register type="NOA" address="0x00009888" value="0x020D00A0" />
> +        <register type="NOA" address="0x00009888" value="0x001A0800" />
> +        <register type="NOA" address="0x00009888" value="0x021A2000" />
> +        <register type="NOA" address="0x00009888" value="0x001B2040" />
> +        <register type="NOA" address="0x00009888" value="0x0006AA00" />
> +        <register type="NOA" address="0x00009888" value="0x0206AAA0" />
> +        <register type="NOA" address="0x00009888" value="0x0001AA00" />
> +        <register type="NOA" address="0x00009888" value="0x0201AAAF" />
>          <register type="NOA" address="0x00009888" value="0x5A010000" />
> -        <register type="NOA" address="0x00009888" value="0x5C010600" />
> -        <register type="NOA" address="0x00009888" value="0x5E010290" />
> -        <register type="NOA" address="0x00009888" value="0x60010E01" />
> +        <register type="NOA" address="0x00009888" value="0x5C010E07" />
> +        <register type="NOA" address="0x00009888" value="0x5E010070" />
> +        <register type="NOA" address="0x00009888" value="0x60010227" />
>          <register type="NOA" address="0x00009888" value="0x06010000" />
> -        <register type="NOA" address="0x00009888" value="0x62010070" />
> +        <register type="NOA" address="0x00009888" value="0x62010090" />
>          <register type="NOA" address="0x00009888" value="0x4E010000" />
> -        <register type="NOA" address="0x00009888" value="0x50010E07" />
> +        <register type="NOA" address="0x00009888" value="0x50010003" />
>          <register type="NOA" address="0x00009888" value="0x52010070" />
>          <register type="NOA" address="0x00009888" value="0x54010E07" />
>          <register type="NOA" address="0x00009888" value="0x56010070" />
> @@ -5648,6 +5669,7 @@
>         symbol_name="Ext8"
>         underscore_name="ext8"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="5aa36c1f-c6da-45ab-ab21-397d9a4b6a06"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -5867,6 +5889,7 @@
>         symbol_name="Ext10"
>         underscore_name="ext10"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="1df59d79-16d8-471c-b3da-f0f62862f89e"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -6156,6 +6179,7 @@
>         symbol_name="Ext11"
>         underscore_name="ext11"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="d05d3d84-ba16-41b5-b825-5a3d2aaabbfc"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -6375,6 +6399,7 @@
>         symbol_name="Ext12"
>         underscore_name="ext12"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="a49e7038-1e78-4b49-bc55-e7e7d04e4074"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -6600,6 +6625,7 @@
>         symbol_name="Ext13"
>         underscore_name="ext13"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="10f4cba5-2db8-46a9-a211-391dca810ea0"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -6841,6 +6867,7 @@
>         symbol_name="Ext14"
>         underscore_name="ext14"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="36c1995a-e670-4c2a-ab94-74b9e7360fb2"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -7090,6 +7117,7 @@
>         symbol_name="Ext17"
>         underscore_name="ext17"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="a04168f6-637e-44af-a1b6-e5f005708df4"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -7200,7 +7228,7 @@
>               max_equation="100"
>               units="percent"
>               semantic_type="duration"
> -             equation="B 7 READ B 6 READ FADD 4 FDIV 100 UMUL $GpuCoreClocks FDIV"
> +             equation="B 7 READ B 6 READ FADD 2 FDIV 100 UMUL $GpuCoreClocks FDIV"
>               availability="$GtSlice0XeCore0"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -7215,7 +7243,7 @@
>               max_equation="100"
>               units="percent"
>               semantic_type="duration"
> -             equation="B 5 READ B 4 READ FADD 4 FDIV 100 UMUL $GpuCoreClocks FDIV"
> +             equation="B 5 READ B 4 READ FADD 2 FDIV 100 UMUL $GpuCoreClocks FDIV"
>               availability="$GtSlice0XeCore1"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -7230,7 +7258,7 @@
>               max_equation="100"
>               units="percent"
>               semantic_type="duration"
> -             equation="B 3 READ B 2 READ FADD 4 FDIV 100 UMUL $GpuCoreClocks FDIV"
> +             equation="B 3 READ B 2 READ FADD 2 FDIV 100 UMUL $GpuCoreClocks FDIV"
>               availability="$GtSlice0XeCore2"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -7245,7 +7273,7 @@
>               max_equation="100"
>               units="percent"
>               semantic_type="duration"
> -             equation="B 1 READ B 0 READ FADD 4 FDIV 100 UMUL $GpuCoreClocks FDIV"
> +             equation="B 1 READ B 0 READ FADD 2 FDIV 100 UMUL $GpuCoreClocks FDIV"
>               availability="$GtSlice0XeCore3"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -7360,6 +7388,7 @@
>         symbol_name="Ext21"
>         underscore_name="ext21"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="0486a0e0-3522-4689-bdf9-623603f8e3c6"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -7622,6 +7651,7 @@
>         symbol_name="Ext23"
>         underscore_name="ext23"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="b30ba7fb-fe8f-4e81-b271-3d6f52edc257"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -7821,6 +7851,7 @@
>         symbol_name="Ext28"
>         underscore_name="ext28"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="053ca218-0961-4bb2-b689-9fe2cb090fdc"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -8083,6 +8114,7 @@
>         symbol_name="Ext31"
>         underscore_name="ext31"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="7a4a45f1-e844-460b-8800-91b62eb47124"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -8282,6 +8314,7 @@
>         symbol_name="Ext35"
>         underscore_name="ext35"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="fd99f6f4-d418-4d86-800b-52998df4eb00"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -8481,6 +8514,7 @@
>         symbol_name="Ext39"
>         underscore_name="ext39"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="10f4436b-83c7-4e38-867d-82144311e412"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -8684,6 +8718,7 @@
>         symbol_name="Ext43"
>         underscore_name="ext43"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="ab8c937a-a24c-4b7b-94d2-7cdf4cf3829f"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -8858,6 +8893,7 @@
>         symbol_name="Ext45"
>         underscore_name="ext45"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="aa3ac820-b824-4681-94ff-3425eee63648"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -9048,6 +9084,7 @@
>         symbol_name="Ext51"
>         underscore_name="ext51"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="3a093546-2929-4b79-87f4-97df02c1fe8e"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -9223,6 +9260,7 @@
>         symbol_name="Ext53"
>         underscore_name="ext53"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="2ccdac56-9683-4eb5-89fd-7d42e77c117f"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -9422,6 +9460,7 @@
>         symbol_name="Ext57"
>         underscore_name="ext57"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="d297b1e3-fc04-45a7-a5c5-f92ab4357eb2"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -9621,6 +9660,7 @@
>         symbol_name="Ext61"
>         underscore_name="ext61"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="bc372334-fe31-452e-843a-515328c75fd2"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -9824,6 +9864,7 @@
>         symbol_name="Ext65"
>         underscore_name="ext65"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="8a5ca732-17d3-4336-a33c-292a7f625237"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -9966,6 +10007,7 @@
>         symbol_name="Ext66"
>         underscore_name="ext66"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="2e72f570-378b-4672-a615-374c1a3d524c"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -10124,6 +10166,7 @@
>         symbol_name="Ext73"
>         underscore_name="ext73"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="8f63bf05-fccb-45c2-89c1-cf1226c4fb80"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -10259,6 +10302,7 @@
>         symbol_name="Ext74"
>         underscore_name="ext74"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="2e5b5a64-580f-4cfc-ac3b-e6ccc55a1260"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -10410,6 +10454,7 @@
>         symbol_name="Ext77"
>         underscore_name="ext77"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="1e7215b8-72b7-460b-99d1-9be3984e9f6c"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -10599,6 +10644,7 @@
>         symbol_name="Ext79"
>         underscore_name="ext79"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="a1a1cc95-7466-461d-a3a4-a04818bb5d74"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -10744,6 +10790,7 @@
>         symbol_name="Ext80"
>         underscore_name="ext80"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="06d62e44-cf58-4e35-a8cf-c76ee2b4fd7f"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -10905,6 +10952,7 @@
>         symbol_name="Ext83"
>         underscore_name="ext83"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="428a93d8-3475-4efc-960e-3402b062d8f0"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -11138,6 +11186,7 @@
>         symbol_name="Ext85"
>         underscore_name="ext85"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="e6db7a16-f214-4cd0-91e9-94d8036c20ee"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -11397,6 +11446,7 @@
>         symbol_name="Ext87"
>         underscore_name="ext87"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="b96d78d7-c0c8-4941-9f28-e746f36627e4"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -11586,6 +11636,7 @@
>         symbol_name="Ext91"
>         underscore_name="ext91"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="55e5926a-364e-45f0-bbcd-69375ac61391"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -11775,6 +11826,7 @@
>         symbol_name="Ext93"
>         underscore_name="ext93"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="a06cf71c-ad14-49b8-8a22-b367118514bb"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -11920,6 +11972,7 @@
>         symbol_name="Ext94"
>         underscore_name="ext94"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="a05152f2-80f2-47cc-add7-70f4664b58e8"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -12081,6 +12134,7 @@
>         symbol_name="Ext97"
>         underscore_name="ext97"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="39f8d4d2-b28d-40a3-b545-a57865d7714e"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -12249,6 +12303,7 @@
>         symbol_name="Ext98"
>         underscore_name="ext98"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="ee9377fe-2623-4588-8ffc-517e34c2eb75"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -12436,6 +12491,7 @@
>         symbol_name="Ext100"
>         underscore_name="ext100"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="b5533650-f6f1-4f66-ad40-6b4aba600102"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -12708,6 +12764,7 @@
>         symbol_name="Ext101"
>         underscore_name="ext101"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="136839ab-66a3-42ac-bca4-1cfca1d3088e"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -12947,6 +13004,7 @@
>         symbol_name="Ext102"
>         underscore_name="ext102"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="bd8e9b37-35b3-4a94-8ff7-bbad7d67642c"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -13174,6 +13232,7 @@
>         symbol_name="Ext104"
>         underscore_name="ext104"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="576a210f-b921-46dc-9af7-7f34eb1d368e"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -13350,6 +13409,7 @@
>         symbol_name="Ext105"
>         underscore_name="ext105"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="96b32930-859d-4fa8-8d81-4d26a160f0e8"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -13537,6 +13597,7 @@
>         symbol_name="Ext106"
>         underscore_name="ext106"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="bbe4bf0d-03a3-482a-869c-1c6e71d52dac"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -13706,6 +13767,7 @@
>         symbol_name="Ext107"
>         underscore_name="ext107"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="02eafe17-886d-4559-b18d-c661fd6914c0"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -13886,6 +13948,7 @@
>         symbol_name="Ext113"
>         underscore_name="ext113"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="8cb51ae4-6d00-44d5-9d24-29521022f02b"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -14220,6 +14283,7 @@
>         symbol_name="Ext116"
>         underscore_name="ext116"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="c50c1328-01a4-44a4-bc10-cea109a86100"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -14411,6 +14475,7 @@
>         symbol_name="Ext118"
>         underscore_name="ext118"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="3ac7b553-9dd8-4588-be88-8a50d4aa8497"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -14656,6 +14721,7 @@
>         symbol_name="Ext120"
>         underscore_name="ext120"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="39bbba4c-b77d-424a-9156-ede3d325df25"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -14849,6 +14915,7 @@
>         symbol_name="Ext122"
>         underscore_name="ext122"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="1c2b42f8-2763-4c20-85d9-5a5bd7381eb8"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -15089,6 +15156,7 @@
>         symbol_name="Ext123"
>         underscore_name="ext123"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="80240cbe-83d5-44dd-a03a-c498a6928be5"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -15274,6 +15342,7 @@
>         symbol_name="Ext124"
>         underscore_name="ext124"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="f8d36c8e-4129-4962-afce-7917f98e9b2d"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -15515,6 +15584,7 @@
>         symbol_name="Ext126"
>         underscore_name="ext126"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="08670eec-8015-4c40-b900-d47b9824ec83"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -15734,6 +15804,7 @@
>         symbol_name="Ext128"
>         underscore_name="ext128"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="7d149ad7-90bd-4201-8791-2e8c1c4359e8"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -15882,6 +15953,7 @@
>         symbol_name="Ext130"
>         underscore_name="ext130"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="52597b67-dea9-411c-845e-c7f7befa744e"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -16003,6 +16075,7 @@
>         symbol_name="Ext131"
>         underscore_name="ext131"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="56b5eb77-117c-4392-a4ed-6a809598c28f"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -16136,6 +16209,7 @@
>         symbol_name="Ext134"
>         underscore_name="ext134"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="d4f5b1c3-553d-46f6-abb8-8535ee5e4c90"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -16241,6 +16315,7 @@
>         symbol_name="Ext135"
>         underscore_name="ext135"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="2aa7d46b-8b53-4693-9e5b-1245dc85cb90"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -16358,6 +16433,7 @@
>         symbol_name="Ext138"
>         underscore_name="ext138"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="18d95a38-b79c-42ac-a1c1-f6f3ef5ee213"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -16463,6 +16539,7 @@
>         symbol_name="Ext139"
>         underscore_name="ext139"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="7869d90b-8a61-40c5-b705-91ce55b64cd8"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -16580,6 +16657,7 @@
>         symbol_name="Ext142"
>         underscore_name="ext142"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="c9f005ff-957d-471f-b6d3-98ebfd423f88"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -16685,6 +16763,7 @@
>         symbol_name="Ext143"
>         underscore_name="ext143"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="bf8f687e-d93f-439a-904e-14758015b273"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -16802,6 +16881,7 @@
>         symbol_name="Ext146"
>         underscore_name="ext146"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="38cb3c8a-b6b1-46e9-b18e-331afd4faad6"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -16907,6 +16987,7 @@
>         symbol_name="Ext147"
>         underscore_name="ext147"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="f0624b43-b429-4be9-9cef-1a9c966b9bf5"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -17024,6 +17105,7 @@
>         symbol_name="Ext150"
>         underscore_name="ext150"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="9be51bc5-540f-4a51-80b9-a6e8f849107c"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -17127,6 +17209,7 @@
>         symbol_name="Ext151"
>         underscore_name="ext151"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="5303f1e7-b41b-4f48-a638-02293743f84d"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -17242,6 +17325,7 @@
>         symbol_name="Ext154"
>         underscore_name="ext154"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="269bfd75-1e50-4717-959c-f72de6c5e37e"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -17427,6 +17511,7 @@
>         symbol_name="Ext155"
>         underscore_name="ext155"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="77c2e8f4-297f-46ed-95a9-370e21e131c6"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -17563,6 +17648,7 @@
>         symbol_name="Ext156"
>         underscore_name="ext156"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="dea81dd8-3792-4245-9ce3-4591a6ff2d31"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -17698,6 +17784,7 @@
>         symbol_name="Ext158"
>         underscore_name="ext158"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="0f6dfbfe-33f8-4910-996a-8b639c57066f"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -17873,6 +17960,7 @@
>         symbol_name="Ext159"
>         underscore_name="ext159"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="7b4a0c8f-f35d-49e2-b1a7-243740c4d888"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -18076,6 +18164,7 @@
>         symbol_name="Ext161"
>         underscore_name="ext161"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="bf4c98bf-1930-408b-87ad-2674e6e617c0"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -18279,6 +18368,7 @@
>         symbol_name="Ext163"
>         underscore_name="ext163"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="2826204b-5835-4b64-840f-133d1ca5b03a"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -18482,6 +18572,7 @@
>         symbol_name="Ext165"
>         underscore_name="ext165"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="b9e7193e-99b9-4e9f-9738-de7144ea3b39"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -18685,6 +18776,7 @@
>         symbol_name="Ext167"
>         underscore_name="ext167"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="4797cea4-4618-42c1-aa36-0f8210b42a47"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -18888,6 +18980,7 @@
>         symbol_name="Ext169"
>         underscore_name="ext169"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="daeb4a53-f0ba-4bec-9462-8025cc17ca8b"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -19091,6 +19184,7 @@
>         symbol_name="Ext171"
>         underscore_name="ext171"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="2aeaff8e-ce08-49f1-aacf-c9631dc3c756"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -19474,6 +19568,7 @@
>         symbol_name="Ext173"
>         underscore_name="ext173"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="5005db3a-31a9-498c-8153-bf47147473b1"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -19675,6 +19770,7 @@
>         symbol_name="Ext174"
>         underscore_name="ext174"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="3e2a351c-3f4f-461a-a6cf-64f099b83fc5"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -19883,6 +19979,7 @@
>         symbol_name="Ext175"
>         underscore_name="ext175"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="14c17f9b-021b-41e5-a4f0-ab8daaad56a4"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -20100,6 +20197,7 @@
>         symbol_name="Ext176"
>         underscore_name="ext176"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="a258d429-a165-4fed-bbcb-c743a09dd68f"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -20324,6 +20422,7 @@
>         symbol_name="Ext177"
>         underscore_name="ext177"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="986b3512-df42-4300-a3fb-3a0d5835b5dc"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -20546,6 +20645,7 @@
>         symbol_name="Ext181"
>         underscore_name="ext181"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="29b4890b-203f-44d7-a007-270354d414ed"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -20715,6 +20815,7 @@
>         symbol_name="Ext184"
>         underscore_name="ext184"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="87ec0ca0-a406-4ddb-9fb9-60beed37e12a"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -20914,6 +21015,7 @@
>         symbol_name="Ext188"
>         underscore_name="ext188"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="11c77c80-498e-4cad-9e2d-565a52fd3578"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -21113,6 +21215,7 @@
>         symbol_name="Ext190"
>         underscore_name="ext190"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="123714d3-5d52-49de-91eb-0c909557d221"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -21272,6 +21375,7 @@
>         symbol_name="Ext192"
>         underscore_name="ext192"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="d2741830-1ee3-42ab-b578-2b9c31a69c1c"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -21546,6 +21650,7 @@
>         symbol_name="Ext195"
>         underscore_name="ext195"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="d41508b5-921c-4033-a2f0-8a88aad4e718"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -21827,6 +21932,7 @@
>         symbol_name="Ext200"
>         underscore_name="ext200"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="73a53c50-0922-4d77-87d9-13b18d368e4e"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -22022,6 +22128,7 @@
>         symbol_name="Ext201"
>         underscore_name="ext201"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="32b9a4f4-b1f0-478f-8998-d86e5c5c458f"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -22221,6 +22328,7 @@
>         symbol_name="Ext202"
>         underscore_name="ext202"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="e1606d82-b67b-4fd8-9b07-a769dd6e6581"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -22322,6 +22430,7 @@
>         symbol_name="Ext203"
>         underscore_name="ext203"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="16647b5e-c9e4-4201-afc2-cb47a9f3f4d2"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -22423,6 +22532,7 @@
>         symbol_name="Ext204"
>         underscore_name="ext204"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="639a17e1-f339-49ab-9884-6b9a91a5a0c8"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -22622,6 +22732,7 @@
>         symbol_name="Ext205"
>         underscore_name="ext205"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="7420acf6-1809-41e3-b5d1-49455c60aa66"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -22821,6 +22932,7 @@
>         symbol_name="Ext212"
>         underscore_name="ext212"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="015d134a-1b6e-4969-b972-b904c1d0cc85"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -22998,6 +23110,7 @@
>         symbol_name="Ext214"
>         underscore_name="ext214"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="191eb41b-6180-4cf9-b3fb-048bf4da8b94"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -23191,6 +23304,7 @@
>         symbol_name="Ext220"
>         underscore_name="ext220"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="840ad20c-c8ba-4dd5-bc42-674987d6ec79"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -23366,6 +23480,7 @@
>         symbol_name="Ext225"
>         underscore_name="ext225"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="a8bfddc1-d469-45d6-8790-7d8c649ada41"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -23496,6 +23611,7 @@
>         symbol_name="Ext227"
>         underscore_name="ext227"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="325e5e9b-a055-4c22-8997-98d546a31afe"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -23626,6 +23742,7 @@
>         symbol_name="Ext229"
>         underscore_name="ext229"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="94537bb4-60fd-45fe-b172-29ed90c9abac"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -23759,6 +23876,7 @@
>         symbol_name="Ext231"
>         underscore_name="ext231"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="7fceb68b-57e6-480d-81d1-991d8d6f7c4d"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -23908,6 +24026,7 @@
>         symbol_name="Ext237"
>         underscore_name="ext237"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="ad62dc60-987b-415e-9f7d-6976fbe82dac"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -24061,6 +24180,7 @@
>         symbol_name="Ext238"
>         underscore_name="ext238"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="e630dd77-cf9e-4deb-8f52-57506b306b63"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -24248,6 +24368,7 @@
>         symbol_name="Ext239"
>         underscore_name="ext239"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="6dfee12d-6bfc-434a-8873-bc076a47d80b"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -24361,6 +24482,7 @@
>         symbol_name="Ext240"
>         underscore_name="ext240"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="5edd0480-7a46-49f7-8709-7f737d0cc42a"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -24474,6 +24596,7 @@
>         symbol_name="Ext500"
>         underscore_name="ext500"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="a7cd6b7e-e8ee-4853-b2d3-269bf3ed73c7"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -24724,6 +24847,7 @@
>         symbol_name="Ext501"
>         underscore_name="ext501"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="8e09a7a1-b0e8-464a-a28d-90250f64ec9e"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -24974,6 +25098,7 @@
>         symbol_name="Ext502"
>         underscore_name="ext502"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="57a19b6a-1b7d-4337-a9c9-710c56c46f84"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -25224,6 +25349,7 @@
>         symbol_name="Ext503"
>         underscore_name="ext503"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="394b21ab-311c-47a5-9b10-88159f5ac999"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -25474,6 +25600,7 @@
>         symbol_name="Ext508"
>         underscore_name="ext508"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="143440a0-d7e2-4f41-8372-8fdca1ecc2a8"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -25553,10 +25680,10 @@
>          <register type="NOA" address="0x00009888" value="0x00045550" />
>          <register type="NOA" address="0x00009888" value="0x02045555" />
>          <register type="NOA" address="0x00009888" value="0x04080010" />
> -        <register type="NOA" address="0x00009888" value="0x10080180" />
> -        <register type="NOA" address="0x00009888" value="0x12080105" />
> -        <register type="NOA" address="0x00009888" value="0x14080083" />
> -        <register type="NOA" address="0x00009888" value="0x160803C1" />
> +        <register type="NOA" address="0x00009888" value="0x10080140" />
> +        <register type="NOA" address="0x00009888" value="0x120800C4" />
> +        <register type="NOA" address="0x00009888" value="0x14080042" />
> +        <register type="NOA" address="0x00009888" value="0x160803C0" />
>          <register type="NOA" address="0x00009888" value="0x08080000" />
>          <register type="NOA" address="0x00009888" value="0x0008FFF0" />
>          <register type="NOA" address="0x00009888" value="0x02080003" />
> @@ -25567,9 +25694,9 @@
>          <register type="NOA" address="0x00009888" value="0x00045550" />
>          <register type="NOA" address="0x00009888" value="0x02040001" />
>          <register type="NOA" address="0x00009888" value="0x04080010" />
> -        <register type="NOA" address="0x00009888" value="0x0A080146" />
> -        <register type="NOA" address="0x00009888" value="0x0C0800C4" />
> -        <register type="NOA" address="0x00009888" value="0x0E080042" />
> +        <register type="NOA" address="0x00009888" value="0x0A080105" />
> +        <register type="NOA" address="0x00009888" value="0x0C080083" />
> +        <register type="NOA" address="0x00009888" value="0x0E080001" />
>          <register type="NOA" address="0x00009888" value="0x1008000F" />
>          <register type="NOA" address="0x00009888" value="0x08080000" />
>          <register type="NOA" address="0x00009888" value="0x00080000" />
> @@ -25609,6 +25736,7 @@
>         symbol_name="Ext509"
>         underscore_name="ext509"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="7c5d3f41-b690-44b2-8352-00215ac94bae"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -25683,29 +25811,31 @@
>          <register type="NOA" address="0x00000D04" value="0x00000200" />
>          <register type="NOA" address="0x00009884" value="0x00000008" />
>          <register type="NOA" address="0x00009888" value="0x1C085400" />
> +        <register type="NOA" address="0x00009888" value="0x1E080014" />
>          <register type="NOA" address="0x00009888" value="0x0002FFF0" />
>          <register type="NOA" address="0x00009888" value="0x0202FFFF" />
>          <register type="NOA" address="0x00009888" value="0x00045550" />
>          <register type="NOA" address="0x00009888" value="0x02045555" />
> -        <register type="NOA" address="0x00009888" value="0x04080008" />
> -        <register type="NOA" address="0x00009888" value="0x10080180" />
> -        <register type="NOA" address="0x00009888" value="0x12080105" />
> -        <register type="NOA" address="0x00009888" value="0x14080083" />
> -        <register type="NOA" address="0x00009888" value="0x16080001" />
> +        <register type="NOA" address="0x00009888" value="0x04080098" />
> +        <register type="NOA" address="0x00009888" value="0x10080140" />
> +        <register type="NOA" address="0x00009888" value="0x120800C4" />
> +        <register type="NOA" address="0x00009888" value="0x14080042" />
> +        <register type="NOA" address="0x00009888" value="0x160803C0" />
>          <register type="NOA" address="0x00009888" value="0x08080000" />
>          <register type="NOA" address="0x00009888" value="0x0008FFF0" />
>          <register type="NOA" address="0x00009888" value="0x02080003" />
>          <register type="NOA" address="0x00009884" value="0x00000009" />
>          <register type="NOA" address="0x00009888" value="0x1C085400" />
> +        <register type="NOA" address="0x00009888" value="0x1E080014" />
>          <register type="NOA" address="0x00009888" value="0x0002FFF0" />
>          <register type="NOA" address="0x00009888" value="0x02020003" />
>          <register type="NOA" address="0x00009888" value="0x00045550" />
>          <register type="NOA" address="0x00009888" value="0x02040001" />
> -        <register type="NOA" address="0x00009888" value="0x04080008" />
> -        <register type="NOA" address="0x00009888" value="0x0A080146" />
> -        <register type="NOA" address="0x00009888" value="0x0C0800C4" />
> -        <register type="NOA" address="0x00009888" value="0x0E080042" />
> -        <register type="NOA" address="0x00009888" value="0x10080000" />
> +        <register type="NOA" address="0x00009888" value="0x04080098" />
> +        <register type="NOA" address="0x00009888" value="0x0A080105" />
> +        <register type="NOA" address="0x00009888" value="0x0C080083" />
> +        <register type="NOA" address="0x00009888" value="0x0E080001" />
> +        <register type="NOA" address="0x00009888" value="0x1008000F" />
>          <register type="NOA" address="0x00009888" value="0x08080000" />
>          <register type="NOA" address="0x00009888" value="0x00080000" />
>          <register type="NOA" address="0x00009888" value="0x02080000" />
> @@ -25744,6 +25874,7 @@
>         symbol_name="Ext510"
>         underscore_name="ext510"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="02f43996-feff-4e13-a8fd-eea9de2f13fc"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -25823,10 +25954,10 @@
>          <register type="NOA" address="0x00009888" value="0x00045550" />
>          <register type="NOA" address="0x00009888" value="0x02045555" />
>          <register type="NOA" address="0x00009888" value="0x04080010" />
> -        <register type="NOA" address="0x00009888" value="0x10080180" />
> -        <register type="NOA" address="0x00009888" value="0x12080105" />
> -        <register type="NOA" address="0x00009888" value="0x14080083" />
> -        <register type="NOA" address="0x00009888" value="0x160803C1" />
> +        <register type="NOA" address="0x00009888" value="0x10080140" />
> +        <register type="NOA" address="0x00009888" value="0x120800C4" />
> +        <register type="NOA" address="0x00009888" value="0x14080042" />
> +        <register type="NOA" address="0x00009888" value="0x160803C0" />
>          <register type="NOA" address="0x00009888" value="0x08080000" />
>          <register type="NOA" address="0x00009888" value="0x0008FFF0" />
>          <register type="NOA" address="0x00009888" value="0x02080003" />
> @@ -25837,9 +25968,9 @@
>          <register type="NOA" address="0x00009888" value="0x00045550" />
>          <register type="NOA" address="0x00009888" value="0x02040001" />
>          <register type="NOA" address="0x00009888" value="0x04080010" />
> -        <register type="NOA" address="0x00009888" value="0x0A080146" />
> -        <register type="NOA" address="0x00009888" value="0x0C0800C4" />
> -        <register type="NOA" address="0x00009888" value="0x0E080042" />
> +        <register type="NOA" address="0x00009888" value="0x0A080105" />
> +        <register type="NOA" address="0x00009888" value="0x0C080083" />
> +        <register type="NOA" address="0x00009888" value="0x0E080001" />
>          <register type="NOA" address="0x00009888" value="0x1008000F" />
>          <register type="NOA" address="0x00009888" value="0x08080000" />
>          <register type="NOA" address="0x00009888" value="0x00080000" />
> @@ -25895,6 +26026,7 @@
>         symbol_name="Ext511"
>         underscore_name="ext511"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="2cbd327c-40e2-452b-a9fc-c7787869a352"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -25969,29 +26101,31 @@
>          <register type="NOA" address="0x00000D04" value="0x00000200" />
>          <register type="NOA" address="0x00009884" value="0x0000000A" />
>          <register type="NOA" address="0x00009888" value="0x1C085400" />
> +        <register type="NOA" address="0x00009888" value="0x1E080014" />
>          <register type="NOA" address="0x00009888" value="0x0002FFF0" />
>          <register type="NOA" address="0x00009888" value="0x0202FFFF" />
>          <register type="NOA" address="0x00009888" value="0x00045550" />
>          <register type="NOA" address="0x00009888" value="0x02045555" />
> -        <register type="NOA" address="0x00009888" value="0x04080008" />
> -        <register type="NOA" address="0x00009888" value="0x10080180" />
> -        <register type="NOA" address="0x00009888" value="0x12080105" />
> -        <register type="NOA" address="0x00009888" value="0x14080083" />
> -        <register type="NOA" address="0x00009888" value="0x16080001" />
> +        <register type="NOA" address="0x00009888" value="0x04080098" />
> +        <register type="NOA" address="0x00009888" value="0x10080140" />
> +        <register type="NOA" address="0x00009888" value="0x120800C4" />
> +        <register type="NOA" address="0x00009888" value="0x14080042" />
> +        <register type="NOA" address="0x00009888" value="0x160803C0" />
>          <register type="NOA" address="0x00009888" value="0x08080000" />
>          <register type="NOA" address="0x00009888" value="0x0008FFF0" />
>          <register type="NOA" address="0x00009888" value="0x02080003" />
>          <register type="NOA" address="0x00009884" value="0x0000000B" />
>          <register type="NOA" address="0x00009888" value="0x1C085400" />
> +        <register type="NOA" address="0x00009888" value="0x1E080014" />
>          <register type="NOA" address="0x00009888" value="0x0002FFF0" />
>          <register type="NOA" address="0x00009888" value="0x02020003" />
>          <register type="NOA" address="0x00009888" value="0x00045550" />
>          <register type="NOA" address="0x00009888" value="0x02040001" />
> -        <register type="NOA" address="0x00009888" value="0x04080008" />
> -        <register type="NOA" address="0x00009888" value="0x0A080146" />
> -        <register type="NOA" address="0x00009888" value="0x0C0800C4" />
> -        <register type="NOA" address="0x00009888" value="0x0E080042" />
> -        <register type="NOA" address="0x00009888" value="0x10080000" />
> +        <register type="NOA" address="0x00009888" value="0x04080098" />
> +        <register type="NOA" address="0x00009888" value="0x0A080105" />
> +        <register type="NOA" address="0x00009888" value="0x0C080083" />
> +        <register type="NOA" address="0x00009888" value="0x0E080001" />
> +        <register type="NOA" address="0x00009888" value="0x1008000F" />
>          <register type="NOA" address="0x00009888" value="0x08080000" />
>          <register type="NOA" address="0x00009888" value="0x00080000" />
>          <register type="NOA" address="0x00009888" value="0x02080000" />
> @@ -26046,6 +26180,7 @@
>         symbol_name="Ext516"
>         underscore_name="ext516"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="3a9dba68-9402-48b0-a8ec-28e4e4a534de"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -26171,6 +26306,7 @@
>         symbol_name="Ext517"
>         underscore_name="ext517"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="ea503506-9afa-42dc-b85b-1237dce6e8af"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -26296,6 +26432,7 @@
>         symbol_name="Ext518"
>         underscore_name="ext518"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="5056524c-12e3-4ba6-8788-eb934f284753"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -26428,6 +26565,7 @@
>         symbol_name="Ext519"
>         underscore_name="ext519"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="13f8665d-c5aa-47b4-ae3e-af80dd134e1b"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -26560,6 +26698,7 @@
>         symbol_name="Ext520"
>         underscore_name="ext520"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="4d5b4699-5a6a-4a85-81e1-3ad75d735476"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -26701,6 +26840,7 @@
>         symbol_name="Ext521"
>         underscore_name="ext521"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="f9cc9e2c-c517-49a1-b27c-f81b08b411fc"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -26842,6 +26982,7 @@
>         symbol_name="Ext522"
>         underscore_name="ext522"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="f5fe71de-58e0-4fba-a75a-111906d8fb5b"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -26990,6 +27131,7 @@
>         symbol_name="Ext523"
>         underscore_name="ext523"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="46d82207-1235-45ea-a0e6-f71fa55a3380"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -27138,6 +27280,7 @@
>         symbol_name="Ext540"
>         underscore_name="ext540"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="0ea54a28-5052-4c2a-a18a-8cc17383a072"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -27263,6 +27406,7 @@
>         symbol_name="Ext541"
>         underscore_name="ext541"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="9cd9ba1c-3c59-483d-9ce3-136c8898f09d"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -27395,6 +27539,7 @@
>         symbol_name="Ext542"
>         underscore_name="ext542"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="ab29d0d9-3388-4316-af23-932aeef1ed23"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -27536,6 +27681,7 @@
>         symbol_name="Ext543"
>         underscore_name="ext543"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="16bf4ba3-2204-4d52-8f5e-d49ef8f571bb"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -27684,6 +27830,7 @@
>         symbol_name="Ext604"
>         underscore_name="ext604"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="66331aff-0aaf-41e7-ad18-fa61060d3af6"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -27923,6 +28070,7 @@
>         symbol_name="Ext1000"
>         underscore_name="ext1000"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="2d24479d-6766-4632-8d2b-f440c9bf53c7"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -28269,6 +28417,7 @@
>         symbol_name="Ext1001"
>         underscore_name="ext1001"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="15aa1ce0-6750-4566-8b2b-6d71a6ac4039"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -28672,6 +28821,7 @@
>         symbol_name="Ext1002"
>         underscore_name="ext1002"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="23131267-15c5-47bc-bcb3-4c05fc452e0e"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -28990,6 +29140,7 @@
>         symbol_name="Ext1003"
>         underscore_name="ext1003"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="605d1ee1-c160-46ee-9e31-6daf3885401c"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -29337,6 +29488,7 @@
>         symbol_name="Ext1004"
>         underscore_name="ext1004"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="40f4dcae-3ed1-4f3e-bddf-dbb87bc4279b"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -29684,6 +29836,7 @@
>         symbol_name="Ext1005"
>         underscore_name="ext1005"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="099da490-3594-4baa-98af-cea30d4d6c15"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -30087,6 +30240,7 @@
>         symbol_name="Ext1006"
>         underscore_name="ext1006"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="ab298da4-5917-4592-bbe0-1c21dedf000b"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -30433,6 +30587,7 @@
>         symbol_name="Ext1007"
>         underscore_name="ext1007"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="1b429688-49f8-48f2-8a06-18ba5c6a2b52"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -30722,6 +30877,7 @@
>         symbol_name="Ext1010"
>         underscore_name="ext1010"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="a4717f34-1c8b-40d8-a022-abbcf03cc6e5"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -30841,4 +30997,656 @@
>      </register_config>
>    </set>
>  
> +  <set name="MediaSet1"
> +       chipset="MTLGT2"
> +       symbol_name="MediaSet1"
> +       underscore_name="media_set1"
> +       mdapi_supported_apis="IO"
> +       oa_format="128B_MPEC8_NOA16"
> +       hw_config_guid="de84260e-32ac-4863-ba4f-998a685174a2"
> +       >
> +    <counter name="GPU Time Elapsed"
> +             symbol_name="GpuTime"
> +             underscore_name="gpu_time"
> +             description="GPU Time Elapsed"
> +             data_type="uint64"
> +             units="ns"
> +             semantic_type="event"
> +             equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Overview System Batch"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="GPU Core Clocks"
> +             symbol_name="GpuCoreClocks"
> +             underscore_name="gpu_core_clocks"
> +             description="The total number of GPU core clocks elapsed during the measurement."
> +             data_type="uint64"
> +             units="cycles"
> +             semantic_type="event"
> +             equation="GPU_CLOCK 0 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="AVG GPU Core Frequency"
> +             symbol_name="AvgGpuCoreFrequency"
> +             underscore_name="avg_gpu_core_frequency"
> +             description="Average GPU Core Frequency in the measurement."
> +             data_type="uint64"
> +             max_equation="$GpuMaxFrequency"
> +             units="hz"
> +             semantic_type="event"
> +             equation="$GpuCoreClocks 1000000000 UMUL $GpuTime UDIV"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="VIDEO_DECODE_BOX0_READ_REQUEST"
> +             symbol_name="VIDEO_DECODE_BOX0_READ_REQUEST"
> +             underscore_name="video_decode_box0_read_request"
> +             description="Number of VDBOX0 read requests"
> +             data_type="uint64"
> +             units="messages"
> +             semantic_type="event"
> +             equation="A 0 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="VIDEO_DECODE_BOX0_WRITE_REQUEST"
> +             symbol_name="VIDEO_DECODE_BOX0_WRITE_REQUEST"
> +             underscore_name="video_decode_box0_write_request"
> +             description="Number of VDBOX0 write requests"
> +             data_type="uint64"
> +             units="messages"
> +             semantic_type="event"
> +             equation="A 1 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="VIDEO_DECODE_BOX1_READ_REQUEST"
> +             symbol_name="VIDEO_DECODE_BOX1_READ_REQUEST"
> +             underscore_name="video_decode_box1_read_request"
> +             description="Number of VDBOX1 read requests"
> +             data_type="uint64"
> +             units="messages"
> +             semantic_type="event"
> +             equation="A 2 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="VIDEO_DECODE_BOX1_WRITE_REQUEST"
> +             symbol_name="VIDEO_DECODE_BOX1_WRITE_REQUEST"
> +             underscore_name="video_decode_box1_write_request"
> +             description="Number of VDBOX1 write requests"
> +             data_type="uint64"
> +             units="messages"
> +             semantic_type="event"
> +             equation="A 3 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="VIDEO_ENHANCEMENT_BOX0_READ_REQUEST"
> +             symbol_name="VIDEO_ENHANCEMENT_BOX0_READ_REQUEST"
> +             underscore_name="video_enhancement_box0_read_request"
> +             description="Number of VEBOX0 read requests"
> +             data_type="uint64"
> +             units="messages"
> +             semantic_type="event"
> +             equation="A 4 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="VIDEO_ENHANCEMENT_BOX0_WRITE_REQUEST"
> +             symbol_name="VIDEO_ENHANCEMENT_BOX0_WRITE_REQUEST"
> +             underscore_name="video_enhancement_box0_write_request"
> +             description="Number of VEBOX0 write requests"
> +             data_type="uint64"
> +             units="messages"
> +             semantic_type="event"
> +             equation="A 5 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="VIDEO_ENHANCEMENT_BOX1_READ_REQUEST"
> +             symbol_name="VIDEO_ENHANCEMENT_BOX1_READ_REQUEST"
> +             underscore_name="video_enhancement_box1_read_request"
> +             description="Number of VEBOX1 read requests"
> +             data_type="uint64"
> +             units="messages"
> +             semantic_type="event"
> +             equation="A 6 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="VIDEO_ENHANCEMENT_BOX1_WRITE_REQUEST"
> +             symbol_name="VIDEO_ENHANCEMENT_BOX1_WRITE_REQUEST"
> +             underscore_name="video_enhancement_box1_write_request"
> +             description="Number of VEBOX1 write requests"
> +             data_type="uint64"
> +             units="messages"
> +             semantic_type="event"
> +             equation="A 7 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <register_config type="OA">
> +        <register type="OA" address="0x00393200" value="0x00000201" />
> +        <register type="OA" address="0x00393204" value="0x00000000" />
> +        <register type="OA" address="0x00393208" value="0x00000202" />
> +        <register type="OA" address="0x0039320C" value="0x00000000" />
> +        <register type="OA" address="0x00393210" value="0x00000401" />
> +        <register type="OA" address="0x00393214" value="0x00000000" />
> +        <register type="OA" address="0x00393218" value="0x00000402" />
> +        <register type="OA" address="0x0039321C" value="0x00000000" />
> +        <register type="OA" address="0x00393220" value="0x00002201" />
> +        <register type="OA" address="0x00393224" value="0x00000000" />
> +        <register type="OA" address="0x00393228" value="0x00002202" />
> +        <register type="OA" address="0x0039322C" value="0x00000000" />
> +        <register type="OA" address="0x00393230" value="0x00002401" />
> +        <register type="OA" address="0x00393234" value="0x00000000" />
> +        <register type="OA" address="0x00393238" value="0x00002402" />
> +        <register type="OA" address="0x0039323C" value="0x00000000" />
> +        <register type="OA" address="0x00393034" value="0x00000000" />
> +    </register_config>
> +  </set>
> +
> +  <set name="MediaSet2"
> +       chipset="MTLGT2"
> +       symbol_name="MediaSet2"
> +       underscore_name="media_set2"
> +       mdapi_supported_apis="IO"
> +       oa_format="128B_MPEC8_NOA16"
> +       hw_config_guid="b9d5c6d5-39f2-4069-b343-e7a886353b89"
> +       >
> +    <counter name="GPU Time Elapsed"
> +             symbol_name="GpuTime"
> +             underscore_name="gpu_time"
> +             description="GPU Time Elapsed"
> +             data_type="uint64"
> +             units="ns"
> +             semantic_type="event"
> +             equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Overview System Batch"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="GPU Core Clocks"
> +             symbol_name="GpuCoreClocks"
> +             underscore_name="gpu_core_clocks"
> +             description="The total number of GPU core clocks elapsed during the measurement."
> +             data_type="uint64"
> +             units="cycles"
> +             semantic_type="event"
> +             equation="GPU_CLOCK 0 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="AVG GPU Core Frequency"
> +             symbol_name="AvgGpuCoreFrequency"
> +             underscore_name="avg_gpu_core_frequency"
> +             description="Average GPU Core Frequency in the measurement."
> +             data_type="uint64"
> +             max_equation="$GpuMaxFrequency"
> +             units="hz"
> +             semantic_type="event"
> +             equation="$GpuCoreClocks 1000000000 UMUL $GpuTime UDIV"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="MEDIA_READ_REQUEST"
> +             symbol_name="MEDIA_READ_REQUEST"
> +             underscore_name="media_read_request"
> +             description="Number of read requests from stand alone media "
> +             data_type="uint64"
> +             units="messages"
> +             semantic_type="event"
> +             equation="A 0 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="MEDIA_WRITE_REQUEST"
> +             symbol_name="MEDIA_WRITE_REQUEST"
> +             underscore_name="media_write_request"
> +             description="Number of write requests from stand alone media "
> +             data_type="uint64"
> +             units="messages"
> +             semantic_type="event"
> +             equation="A 1 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="COMMAND PARSER VIDEO DECODE_ENGINE0 BUSY"
> +             symbol_name="COMMAND_PARSER_VIDEO_DECODE_ENGINE0_BUSY"
> +             underscore_name="command_parser_video_decode_engine0_busy"
> +             description="Percentage of time in which there is a context loaded and active on the media VDBOX0"
> +             data_type="float"
> +             max_equation="100"
> +             units="percent"
> +             semantic_type="duration"
> +             equation="A 2 READ 100 UMUL $GpuCoreClocks FDIV"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="COMMAND_PARSER_VIDEO_DECODE_ENGINE1_BUSY"
> +             symbol_name="COMMAND_PARSER_VIDEO_DECODE_ENGINE1_BUSY"
> +             underscore_name="command_parser_video_decode_engine1_busy"
> +             description="Percentage of time in which there is a context loaded and active on the media VDBOX1"
> +             data_type="float"
> +             max_equation="100"
> +             units="percent"
> +             semantic_type="duration"
> +             equation="A 3 READ 100 UMUL $GpuCoreClocks FDIV"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="COMMAND_PARSER_VIDEO_ENHANCEMENT_ENGINE0_BUSY"
> +             symbol_name="COMMAND_PARSER_VIDEO_ENHANCEMENT_ENGINE0_BUSY"
> +             underscore_name="command_parser_video_enhancement_engine0_busy"
> +             description="Percentage of time in which there is a context loaded and active on the media VEBOX0"
> +             data_type="float"
> +             max_equation="100"
> +             units="percent"
> +             semantic_type="duration"
> +             equation="A 4 READ 100 UMUL $GpuCoreClocks FDIV"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="COMMAND_PARSER_VIDEO_ENHANCEMENT_ENGINE1_BUSY"
> +             symbol_name="COMMAND_PARSER_VIDEO_ENHANCEMENT_ENGINE1_BUSY"
> +             underscore_name="command_parser_video_enhancement_engine1_busy"
> +             description="Percentage of time in which there is a context loaded and active on the media VEBOX0"
> +             data_type="float"
> +             max_equation="100"
> +             units="percent"
> +             semantic_type="duration"
> +             equation="A 5 READ 100 UMUL $GpuCoreClocks FDIV"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="COMMAND_PARSER_GRAPHICS_SECURITY_CONTROLLER_BUSY"
> +             symbol_name="COMMAND_PARSER_GRAPHICS_SECURITY_CONTROLLER_BUSY"
> +             underscore_name="command_parser_graphics_security_controller_busy"
> +             description="Percentage of time in which Graphics Security Controller is active."
> +             data_type="float"
> +             max_equation="100"
> +             units="percent"
> +             semantic_type="duration"
> +             equation="A 6 READ 100 UMUL $GpuCoreClocks FDIV"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <register_config type="OA">
> +        <register type="OA" address="0x00393200" value="0x00000001" />
> +        <register type="OA" address="0x00393204" value="0x00000000" />
> +        <register type="OA" address="0x00393208" value="0x00000002" />
> +        <register type="OA" address="0x0039320C" value="0x00000000" />
> +        <register type="OA" address="0x00393210" value="0x00000200" />
> +        <register type="OA" address="0x00393214" value="0x00000000" />
> +        <register type="OA" address="0x00393218" value="0x00000400" />
> +        <register type="OA" address="0x0039321C" value="0x00000000" />
> +        <register type="OA" address="0x00393220" value="0x00002200" />
> +        <register type="OA" address="0x00393224" value="0x00000000" />
> +        <register type="OA" address="0x00393228" value="0x00002400" />
> +        <register type="OA" address="0x0039322C" value="0x00000000" />
> +        <register type="OA" address="0x00393230" value="0x00000003" />
> +        <register type="OA" address="0x00393234" value="0x00000000" />
> +        <register type="OA" address="0x00393034" value="0x00000000" />
> +    </register_config>
> +  </set>
> +
> +  <set name="TestOam"
> +       chipset="MTLGT2"
> +       symbol_name="TestOam"
> +       underscore_name="test_oam"
> +       mdapi_supported_apis="IO"
> +       oa_format="128B_MPEC8_NOA16"
> +       hw_config_guid="a1700053-56bc-4b7e-87b9-e29b07a08f62"
> +       >
> +    <counter name="GPU Time Elapsed"
> +             symbol_name="GpuTime"
> +             underscore_name="gpu_time"
> +             description="GPU Time Elapsed"
> +             data_type="uint64"
> +             units="ns"
> +             semantic_type="event"
> +             equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Overview System Batch"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="GPU Core Clocks"
> +             symbol_name="GpuCoreClocks"
> +             underscore_name="gpu_core_clocks"
> +             description="The total number of GPU core clocks elapsed during the measurement."
> +             data_type="uint64"
> +             units="cycles"
> +             semantic_type="event"
> +             equation="GPU_CLOCK 0 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="AVG GPU Core Frequency"
> +             symbol_name="AvgGpuCoreFrequency"
> +             underscore_name="avg_gpu_core_frequency"
> +             description="Average GPU Core Frequency in the measurement."
> +             data_type="uint64"
> +             max_equation="$GpuMaxFrequency"
> +             units="hz"
> +             semantic_type="event"
> +             equation="$GpuCoreClocks 1000000000 UMUL $GpuTime UDIV"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="TestCounter0"
> +             symbol_name="Counter0"
> +             underscore_name="counter0"
> +             description="HW test counter 0. Factor: 0.0"
> +             data_type="uint64"
> +             units="events"
> +             semantic_type="event"
> +             equation="B 0 READ"
> +             mdapi_group="Test"
> +             mdapi_usage_flags="Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="TestCounter1"
> +             symbol_name="Counter1"
> +             underscore_name="counter1"
> +             description="HW test counter 1. Factor: 1.0"
> +             data_type="uint64"
> +             units="events"
> +             semantic_type="event"
> +             equation="B 1 READ"
> +             mdapi_group="Test"
> +             mdapi_usage_flags="Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="TestCounter2"
> +             symbol_name="Counter2"
> +             underscore_name="counter2"
> +             description="HW test counter 2. Factor: 1.0"
> +             data_type="uint64"
> +             units="events"
> +             semantic_type="event"
> +             equation="B 2 READ"
> +             mdapi_group="Test"
> +             mdapi_usage_flags="Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="TestCounter3"
> +             symbol_name="Counter3"
> +             underscore_name="counter3"
> +             description="HW test counter 3. Factor: 0.5"
> +             data_type="uint64"
> +             units="events"
> +             semantic_type="event"
> +             equation="B 3 READ"
> +             mdapi_group="Test"
> +             mdapi_usage_flags="Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="TestCounter4"
> +             symbol_name="Counter4"
> +             underscore_name="counter4"
> +             description="HW test counter 4. Factor: 0.3333"
> +             data_type="uint64"
> +             units="events"
> +             semantic_type="event"
> +             equation="B 4 READ"
> +             mdapi_group="Test"
> +             mdapi_usage_flags="Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="TestCounter5"
> +             symbol_name="Counter5"
> +             underscore_name="counter5"
> +             description="HW test counter 5. Factor: 0.3333"
> +             data_type="uint64"
> +             units="events"
> +             semantic_type="event"
> +             equation="B 5 READ"
> +             mdapi_group="Test"
> +             mdapi_usage_flags="Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="TestCounter6"
> +             symbol_name="Counter6"
> +             underscore_name="counter6"
> +             description="HW test counter 6. Factor: 0.16666"
> +             data_type="uint64"
> +             units="events"
> +             semantic_type="event"
> +             equation="B 6 READ"
> +             mdapi_group="Test"
> +             mdapi_usage_flags="Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="TestCounter8"
> +             symbol_name="Counter8"
> +             underscore_name="counter8"
> +             description="TestCounter8"
> +             data_type="uint64"
> +             units="events"
> +             semantic_type="event"
> +             equation="C 0 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="VIDEO_DECODE_BOX0_WRITE_REQUEST_VISA"
> +             symbol_name="VIDEO_DECODE_BOX0_WRITE_REQUEST_VISA"
> +             underscore_name="video_decode_box0_write_request_visa"
> +             description="Number of VDBOX0 write requests"
> +             data_type="uint64"
> +             units="messages"
> +             semantic_type="event"
> +             equation="C 1 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="VIDEO_DECODE_BOX0_READ_REQUEST_VISA"
> +             symbol_name="VIDEO_DECODE_BOX0_READ_REQUEST_VISA"
> +             underscore_name="video_decode_box0_read_request_visa"
> +             description="Number of VDBOX0 read requests"
> +             data_type="uint64"
> +             units="messages"
> +             semantic_type="event"
> +             equation="B 7 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="VIDEO_DECODE_BOX0_READ_REQUEST_MPEC"
> +             symbol_name="VIDEO_DECODE_BOX0_READ_REQUEST_MPEC"
> +             underscore_name="video_decode_box0_read_request_mpec"
> +             description="Number of VDBOX0 read requests"
> +             data_type="uint64"
> +             units="messages"
> +             semantic_type="event"
> +             equation="A 0 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="VIDEO_DECODE_BOX0_WRITE_REQUEST_MPEC"
> +             symbol_name="VIDEO_DECODE_BOX0_WRITE_REQUEST_MPEC"
> +             underscore_name="video_decode_box0_write_request_mpec"
> +             description="Number of VDBOX0 write requests"
> +             data_type="uint64"
> +             units="messages"
> +             semantic_type="event"
> +             equation="A 1 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <register_config type="NOA">
> +        <register type="NOA" address="0x0038D114" value="0x00000003" />
> +        <register type="NOA" address="0x0038D100" value="0x00000DE0" />
> +        <register type="NOA" address="0x0038D104" value="0x00000001" />
> +        <register type="NOA" address="0x0038D100" value="0x00000DE2" />
> +        <register type="NOA" address="0x0038D104" value="0x00000001" />
> +        <register type="NOA" address="0x0038D100" value="0x000001C0" />
> +        <register type="NOA" address="0x0038D104" value="0x00000001" />
> +        <register type="NOA" address="0x0038D100" value="0x000001C1" />
> +        <register type="NOA" address="0x0038D104" value="0x00000809" />
> +        <register type="NOA" address="0x0038D100" value="0x000001C3" />
> +        <register type="NOA" address="0x0038D104" value="0x00800400" />
> +        <register type="NOA" address="0x0038D100" value="0x000001C4" />
> +        <register type="NOA" address="0x0038D104" value="0x00000000" />
> +        <register type="NOA" address="0x0038D100" value="0x000001C5" />
> +        <register type="NOA" address="0x0038D104" value="0x00000000" />
> +        <register type="NOA" address="0x0038D100" value="0x00000360" />
> +        <register type="NOA" address="0x0038D104" value="0x00000001" />
> +        <register type="NOA" address="0x0038D100" value="0x00000361" />
> +        <register type="NOA" address="0x0038D104" value="0x00001819" />
> +        <register type="NOA" address="0x0038D100" value="0x00000362" />
> +        <register type="NOA" address="0x0038D104" value="0x00001C1D" />
> +        <register type="NOA" address="0x0038D100" value="0x00000363" />
> +        <register type="NOA" address="0x0038D104" value="0x02402006" />
> +        <register type="NOA" address="0x0038D100" value="0x00000364" />
> +        <register type="NOA" address="0x0038D104" value="0x00000000" />
> +        <register type="NOA" address="0x0038D100" value="0x00000365" />
> +        <register type="NOA" address="0x0038D104" value="0x00000000" />
> +        <register type="NOA" address="0x0038D100" value="0x000003A0" />
> +        <register type="NOA" address="0x0038D104" value="0x00000001" />
> +        <register type="NOA" address="0x0038D100" value="0x000003A1" />
> +        <register type="NOA" address="0x0038D104" value="0x00001011" />
> +        <register type="NOA" address="0x0038D100" value="0x000003BB" />
> +        <register type="NOA" address="0x0038D104" value="0x00000001" />
> +        <register type="NOA" address="0x0038D100" value="0x000003BC" />
> +        <register type="NOA" address="0x0038D104" value="0x00000001" />
> +        <register type="NOA" address="0x0038D100" value="0x000004E0" />
> +        <register type="NOA" address="0x0038D104" value="0x00000001" />
> +        <register type="NOA" address="0x0038D100" value="0x000004E1" />
> +        <register type="NOA" address="0x0038D104" value="0x00001819" />
> +        <register type="NOA" address="0x0038D100" value="0x000004E3" />
> +        <register type="NOA" address="0x0038D104" value="0x00000400" />
> +        <register type="NOA" address="0x0038D100" value="0x000004E4" />
> +        <register type="NOA" address="0x0038D104" value="0x00000000" />
> +        <register type="NOA" address="0x0038D100" value="0x000004E5" />
> +        <register type="NOA" address="0x0038D104" value="0x00000000" />
> +        <register type="NOA" address="0x0038D100" value="0x00000420" />
> +        <register type="NOA" address="0x0038D104" value="0x00000001" />
> +        <register type="NOA" address="0x0038D100" value="0x00000421" />
> +        <register type="NOA" address="0x0038D104" value="0x00001A1B" />
> +        <register type="NOA" address="0x0038D100" value="0x00000423" />
> +        <register type="NOA" address="0x0038D104" value="0x00000400" />
> +        <register type="NOA" address="0x0038D100" value="0x00000424" />
> +        <register type="NOA" address="0x0038D104" value="0x00000000" />
> +        <register type="NOA" address="0x0038D100" value="0x00000425" />
> +        <register type="NOA" address="0x0038D104" value="0x00000000" />
> +        <register type="NOA" address="0x0038D100" value="0x00000540" />
> +        <register type="NOA" address="0x0038D104" value="0x00000001" />
> +        <register type="NOA" address="0x0038D100" value="0x00000541" />
> +        <register type="NOA" address="0x0038D104" value="0x00001415" />
> +        <register type="NOA" address="0x0038D100" value="0x00000543" />
> +        <register type="NOA" address="0x0038D104" value="0x00000400" />
> +        <register type="NOA" address="0x0038D100" value="0x00000544" />
> +        <register type="NOA" address="0x0038D104" value="0x00000000" />
> +        <register type="NOA" address="0x0038D100" value="0x00000545" />
> +        <register type="NOA" address="0x0038D104" value="0x00000000" />
> +        <register type="NOA" address="0x0038D100" value="0x00000660" />
> +        <register type="NOA" address="0x0038D104" value="0x00000001" />
> +        <register type="NOA" address="0x0038D100" value="0x00000661" />
> +        <register type="NOA" address="0x0038D104" value="0x00000001" />
> +        <register type="NOA" address="0x0038D100" value="0x00000663" />
> +        <register type="NOA" address="0x0038D104" value="0x00000C02" />
> +        <register type="NOA" address="0x0038D100" value="0x00000664" />
> +        <register type="NOA" address="0x0038D104" value="0x00000000" />
> +        <register type="NOA" address="0x0038D100" value="0x00000665" />
> +        <register type="NOA" address="0x0038D104" value="0x00000000" />
> +        <register type="NOA" address="0x0038D100" value="0x00000669" />
> +        <register type="NOA" address="0x0038D104" value="0x00000001" />
> +        <register type="NOA" address="0x0038D100" value="0x0000066A" />
> +        <register type="NOA" address="0x0038D104" value="0x00000015" />
> +        <register type="NOA" address="0x0038D114" value="0x0000000B" />
> +    </register_config>
> +    <register_config type="OA">
> +        <register type="OA" address="0x00393200" value="0x00000201" />
> +        <register type="OA" address="0x00393204" value="0x00000000" />
> +        <register type="OA" address="0x00393208" value="0x00000202" />
> +        <register type="OA" address="0x0039320C" value="0x00000000" />
> +        <register type="OA" address="0x00393000" value="0x00000000" />
> +        <register type="OA" address="0x00393004" value="0xF0800000" />
> +        <register type="OA" address="0x00393010" value="0x00000000" />
> +        <register type="OA" address="0x00393014" value="0xF0800000" />
> +        <register type="OA" address="0x00393020" value="0x00000000" />
> +        <register type="OA" address="0x00393040" value="0x00000004" />
> +        <register type="OA" address="0x00393044" value="0x0000FFFF" />
> +        <register type="OA" address="0x00393048" value="0x00000003" />
> +        <register type="OA" address="0x0039304C" value="0x0000FFFF" />
> +        <register type="OA" address="0x00393050" value="0x00000007" />
> +        <register type="OA" address="0x00393054" value="0x0000FFFF" />
> +        <register type="OA" address="0x00393058" value="0x00100002" />
> +        <register type="OA" address="0x0039305C" value="0x0000FFF7" />
> +        <register type="OA" address="0x00393060" value="0x00100002" />
> +        <register type="OA" address="0x00393064" value="0x0000FFCF" />
> +        <register type="OA" address="0x00393068" value="0x00100082" />
> +        <register type="OA" address="0x0039306C" value="0x0000FFEF" />
> +        <register type="OA" address="0x00393070" value="0x001000C2" />
> +        <register type="OA" address="0x00393074" value="0x0000FFE7" />
> +        <register type="OA" address="0x00393078" value="0x00002002" />
> +        <register type="OA" address="0x0039307C" value="0x0000F9FF" />
> +        <register type="OA" address="0x00393034" value="0x00000000" />
> +    </register_config>
> +  </set>
> +
>  </metrics>
> -- 
> 2.36.1
> 

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 22/31] lib/perf: Update MTL GT3 metrics for OAM
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 22/31] lib/perf: Update MTL GT3 " Umesh Nerlige Ramappa
@ 2023-03-13 16:15   ` Kamil Konieczny
  2023-03-16 18:38     ` Umesh Nerlige Ramappa
  0 siblings, 1 reply; 73+ messages in thread
From: Kamil Konieczny @ 2023-03-13 16:15 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

Hi Umesh,

here you have 
description="Number of read requests from stand alone media "
so 'samedia' is 'stan alone media' ?

Acked-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>

Regards,
Kamil

On 2023-02-14 at 16:46:39 -0800, Umesh Nerlige Ramappa wrote:
> Add OAM metrics configurations and update MTL GT3 metrics.
> 
> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
> ---
>  lib/i915/perf-configs/guids.xml     |   23 +-
>  lib/i915/perf-configs/oa-mtlgt3.xml | 1328 ++++++++++++++++++++++-----
>  2 files changed, 1133 insertions(+), 218 deletions(-)
> 
> diff --git a/lib/i915/perf-configs/guids.xml b/lib/i915/perf-configs/guids.xml
> index 0b96aa91..510450f8 100644
> --- a/lib/i915/perf-configs/guids.xml
> +++ b/lib/i915/perf-configs/guids.xml
> @@ -2507,12 +2507,12 @@
>      <guid config_hash="21fd6477790dc8803dd6331b8c41dd24" mdapi_config_hash="48c076d960ec7e094bc846058a20264f" id="9604dfeb-2724-459c-a25b-5e5e06d93fd8" chipset="mtlgt3" name="TDL3" />
>      <guid config_hash="95b5a166dff16d27293d7d657c146c20" mdapi_config_hash="742195ae50b801b9c5d680a5a9558cb0" id="b5333a47-add0-46a5-82d9-e62dcee14e81" chipset="mtlgt3" name="TDL4" />
>      <guid config_hash="269711b73f95981cabbcdee5a96a9ccb" mdapi_config_hash="c4289990e5c8cbd4918e9c2c333f251c" id="7272a7b8-6df2-4180-a95f-2ef7ad4412cc" chipset="mtlgt3" name="TestOa" />
> -    <guid config_hash="d439e67a55ee3ca7a70a35714c53bb52" mdapi_config_hash="8247df78555a4b792c33f0efa550952f" id="682c3520-dffc-4a76-8e17-1d9effc01a1a" chipset="mtlgt3" name="Ext1" />
> +    <guid config_hash="6d1cd0ed097d034869eb468b43dd879a" mdapi_config_hash="d6e43578c93c9c1ba32a063e36fa10cc" id="682c3520-dffc-4a76-8e17-1d9effc01a1a" chipset="mtlgt3" name="Ext1" />
>      <guid config_hash="e06924155d4acde10c45e89e6c65868d" mdapi_config_hash="eb6499f1a47dad7eae75cdb85b0bef2a" id="b24b7052-70a1-4ef7-b61d-7ee4d7e159ab" chipset="mtlgt3" name="Ext3" />
>      <guid config_hash="fc06c18d17085caa964777920a316cf4" mdapi_config_hash="e80db872fee6810d6f47a683a4a1c9ce" id="205ab9ab-56fd-4fdc-b3b3-91dc57be0fd3" chipset="mtlgt3" name="Ext4" />
>      <guid config_hash="939e13be9335004538a9e1d6944b4836" mdapi_config_hash="71a1bb2c5722c63fcf7176f6c61975a4" id="26cb7ee1-a26d-410a-9283-e07d6ced5fce" chipset="mtlgt3" name="Ext5" />
>      <guid config_hash="6e82d13da5cd70235fefab3b43e9e4c9" mdapi_config_hash="561b960bd69e9823d50cfae86614fabd" id="e62c9cd7-ada7-487d-87aa-b1ad4ab9a2c5" chipset="mtlgt3" name="Ext6" />
> -    <guid config_hash="070c9de0d068a9aacf8674c062374e05" mdapi_config_hash="1293975723eab282470ebaa4c97faa70" id="714e9d80-e4e3-40e6-9e79-2ca6d1d0a5a5" chipset="mtlgt3" name="Ext7" />
> +    <guid config_hash="baa81cf9fb16c0a5e738fc023f371350" mdapi_config_hash="614db897903581ee199202e79c94ca6c" id="714e9d80-e4e3-40e6-9e79-2ca6d1d0a5a5" chipset="mtlgt3" name="Ext7" />
>      <guid config_hash="5660b1f0e0ba49d22c1eaef513c8b58a" mdapi_config_hash="31ab651e5dc06042c8d2248f65a75d73" id="30499dfb-3977-4808-a34c-93e7b50e0454" chipset="mtlgt3" name="Ext8" />
>      <guid config_hash="b3b01ef016a1c55d9d932400511dd7cc" mdapi_config_hash="b4c689c289687c4df0e2523faf70cc4f" id="417618f2-7a87-4745-bccd-6ba14d17bfa4" chipset="mtlgt3" name="Ext9" />
>      <guid config_hash="97c49cf8f71f5bf86035d3bf6cb690c9" mdapi_config_hash="e25449627d90b790133b98f4a92657e1" id="443c32c7-e5e4-43da-b4f2-77efe45a60ed" chipset="mtlgt3" name="Ext10" />
> @@ -2698,14 +2698,14 @@
>      <guid config_hash="25302806331fba9bc9f3450e0e642e96" mdapi_config_hash="d5a07d5812d1d12b522960872fd28137" id="f6e20d5b-52be-4035-85c2-818a690bf601" chipset="mtlgt3" name="Ext501" />
>      <guid config_hash="b206b0dc53133698a7ca18febc7e320a" mdapi_config_hash="80d90f8d67609d99b1b85717ee3f9cd2" id="d09cedef-e3e3-41b5-8ce8-ddc3933339ca" chipset="mtlgt3" name="Ext502" />
>      <guid config_hash="2c857922a97a5830183ca8b8efb72008" mdapi_config_hash="dbc6d492e27a8a6cfa2063ba2ca11edf" id="96067625-3663-4f9a-8b26-74e47ab1aff4" chipset="mtlgt3" name="Ext503" />
> -    <guid config_hash="c77afaf69426cacf0d39b737afa6cbac" mdapi_config_hash="09e22d191f45567e982863a37d9c382d" id="2bc8b90d-997c-4d62-b101-fe1aa74036e5" chipset="mtlgt3" name="Ext508" />
> -    <guid config_hash="530cf98a637fc90c254c75c3bd9dedfb" mdapi_config_hash="25f6d07bddccffeaab56aadb24ae6be5" id="79252877-1dcd-4700-b4bd-58bce74b796d" chipset="mtlgt3" name="Ext509" />
> -    <guid config_hash="e8ab95f7c69adc8f259904c1de459856" mdapi_config_hash="2c1390b1ce682645b58f2396701c0d4b" id="68ac1770-b062-48cd-94f4-44c6ae16867a" chipset="mtlgt3" name="Ext510" />
> -    <guid config_hash="a15516d4ed73424ae36e6d4d1b95a200" mdapi_config_hash="59c1035f145bb7e00fb0b0d622feace5" id="443b8a84-7e77-4e9f-8a2a-56743897cba3" chipset="mtlgt3" name="Ext511" />
> -    <guid config_hash="ae9653c036a3dc324743f6ccac40eb92" mdapi_config_hash="285cd0a99124ba6a244a47577c34e3eb" id="68581669-8e57-4ff9-bb70-71a99f8454c8" chipset="mtlgt3" name="Ext512" />
> -    <guid config_hash="a1122c9120f4a345403dcb9be51afc13" mdapi_config_hash="26f2e86d15758105a9406c379bc83b80" id="1b49d31f-4d7c-4dd7-ad31-030ccb59649e" chipset="mtlgt3" name="Ext513" />
> -    <guid config_hash="54126b539d950f606053619014452c83" mdapi_config_hash="06e7700eb4e4ba08285b4fc0316db6ad" id="1b0ce68b-c301-4d05-8659-85fad0825057" chipset="mtlgt3" name="Ext514" />
> -    <guid config_hash="8667c4542c2ece365f0439a3659c4267" mdapi_config_hash="c5d806b0e6a6c7be6d1ad75a69a2527b" id="fde32e67-1a87-4946-bf96-c1ff68105749" chipset="mtlgt3" name="Ext515" />
> +    <guid config_hash="b89becafa0012d0119ce4251d4266b2c" mdapi_config_hash="83261cb3061414efb24e04580990df45" id="2bc8b90d-997c-4d62-b101-fe1aa74036e5" chipset="mtlgt3" name="Ext508" />
> +    <guid config_hash="aec3fc91255b37e4f7a9f5019f5a01e0" mdapi_config_hash="993dc808e586668f20473bfc21356dae" id="79252877-1dcd-4700-b4bd-58bce74b796d" chipset="mtlgt3" name="Ext509" />
> +    <guid config_hash="059b5bdee62d6b61c00848beeb2751e2" mdapi_config_hash="624661deaf5382d8c447936b0760f2ac" id="68ac1770-b062-48cd-94f4-44c6ae16867a" chipset="mtlgt3" name="Ext510" />
> +    <guid config_hash="2c302efab54ba8133e020e08c44f19e5" mdapi_config_hash="0d150ac4cdc7a15a37706b2499af5490" id="443b8a84-7e77-4e9f-8a2a-56743897cba3" chipset="mtlgt3" name="Ext511" />
> +    <guid config_hash="d01972b09245455a8a53df3ee5b0de48" mdapi_config_hash="1b6e276e805087093a4002d1a2fc59d4" id="68581669-8e57-4ff9-bb70-71a99f8454c8" chipset="mtlgt3" name="Ext512" />
> +    <guid config_hash="980fc02bcda49523aae80255d30dd8d9" mdapi_config_hash="9083f055e06214711443b1aa92209a51" id="1b49d31f-4d7c-4dd7-ad31-030ccb59649e" chipset="mtlgt3" name="Ext513" />
> +    <guid config_hash="d4c01604867190e57eb85b43ea35b19d" mdapi_config_hash="f0cc4cfd7a9d70f2d1c3464dedad851d" id="1b0ce68b-c301-4d05-8659-85fad0825057" chipset="mtlgt3" name="Ext514" />
> +    <guid config_hash="019a6367c845719ff7381414a99781ff" mdapi_config_hash="2b95a32768f0449b837fb9915ed514d9" id="fde32e67-1a87-4946-bf96-c1ff68105749" chipset="mtlgt3" name="Ext515" />
>      <guid config_hash="5ad38daa6cb00090cfb6658a43d30d06" mdapi_config_hash="ba325785aeb3c90926c9955686094006" id="bf950c5b-7250-47f4-aa59-d97b22db02ff" chipset="mtlgt3" name="Ext516" />
>      <guid config_hash="5093d322d1b278f2e323e259408c7b30" mdapi_config_hash="2e6f2f19cb9752141887cbe4bd057819" id="9027ff05-4348-4061-a434-0befaba7c379" chipset="mtlgt3" name="Ext517" />
>      <guid config_hash="9d968609fbc2e37f71dca7e2b5eddea6" mdapi_config_hash="b2cbdc9610f599b7c65f6100260049f0" id="6ad0dee9-17bf-4b54-8b70-e30afcc8710b" chipset="mtlgt3" name="Ext518" />
> @@ -2743,4 +2743,7 @@
>      <guid config_hash="482cebdeeb78bb56e67b42d24644c8db" mdapi_config_hash="11e33e01a371bf15e59b9786f4fe1050" id="de84260e-32ac-4863-ba4f-998a685174a2" chipset="mtlgt2" name="MediaSet1" />
>      <guid config_hash="5bfab887a79b99cf34a606dcca5f4f8a" mdapi_config_hash="1c238e39e5c73eefd870cef2fb7a18af" id="b9d5c6d5-39f2-4069-b343-e7a886353b89" chipset="mtlgt2" name="MediaSet2" />
>      <guid config_hash="44bcb438bea8b46b57779739bebfbd69" mdapi_config_hash="fbbd97d1f3b60c17eae57bbd3c42e7fe" id="a1700053-56bc-4b7e-87b9-e29b07a08f62" chipset="mtlgt2" name="TestOam" />
> +    <guid config_hash="482cebdeeb78bb56e67b42d24644c8db" mdapi_config_hash="11e33e01a371bf15e59b9786f4fe1050" id="4d9b2817-19b9-4461-a54b-dc9fdb7d69cb" chipset="mtlgt3" name="MediaSet1" />
> +    <guid config_hash="5bfab887a79b99cf34a606dcca5f4f8a" mdapi_config_hash="1c238e39e5c73eefd870cef2fb7a18af" id="651a6694-0ac1-4bd5-a4a1-94bcf479d4f4" chipset="mtlgt3" name="MediaSet2" />
> +    <guid config_hash="44bcb438bea8b46b57779739bebfbd69" mdapi_config_hash="fbbd97d1f3b60c17eae57bbd3c42e7fe" id="bac01106-5869-489c-a306-67303a434173" chipset="mtlgt3" name="TestOam" />
>  </guids>
> diff --git a/lib/i915/perf-configs/oa-mtlgt3.xml b/lib/i915/perf-configs/oa-mtlgt3.xml
> index 400e1ff4..5e173865 100644
> --- a/lib/i915/perf-configs/oa-mtlgt3.xml
> +++ b/lib/i915/perf-configs/oa-mtlgt3.xml
> @@ -1,10 +1,11 @@
>  <?xml version="1.0"?>
> -<metrics version="1669276497" merge_md5="">
> +<metrics version="1675300133" merge_md5="">
>    <set name="Render Metrics Basic"
>         chipset="MTLGT3"
>         symbol_name="RenderBasic"
>         underscore_name="render_basic"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="1124d1b6-6182-4b5a-950b-27b38ef7c996"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -579,6 +580,7 @@
>         symbol_name="ComputeBasic"
>         underscore_name="compute_basic"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="522743d7-4e01-461a-8600-7904e8ddc80c"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -1132,6 +1134,7 @@
>         symbol_name="AsyncCompute"
>         underscore_name="async_compute"
>         mdapi_supported_apis="OGL OCL MEDIA IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="d9edd254-60e8-4ce0-82b1-7b3de3bc79a6"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -1474,6 +1477,7 @@
>         symbol_name="XveActivity"
>         underscore_name="xve_activity"
>         mdapi_supported_apis="OGL OGL4 OCL MEDIA IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="703a9693-1444-4e7c-a235-1c4d6ee01943"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -1772,6 +1776,7 @@
>         symbol_name="GpuBusyness"
>         underscore_name="gpu_busyness"
>         mdapi_supported_apis="VK OGL OCL MEDIA IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="edae72d3-bb06-47af-87b4-7585274c6076"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -2030,6 +2035,7 @@
>         symbol_name="HDCAndSF1"
>         underscore_name="hdc_and_sf1"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="e1a408d6-aece-4bde-8bbd-1c7fbfff02cf"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -2233,6 +2239,7 @@
>         symbol_name="HDCAndSF2"
>         underscore_name="hdc_and_sf2"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="374e8aa3-09df-4d69-ad32-3133f6ad3c86"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -2438,6 +2445,7 @@
>         symbol_name="L3"
>         underscore_name="l3"
>         mdapi_supported_apis="VK OGL OCL MEDIA IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="580d5311-4e9d-4210-b419-37259ffcd3f2"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -2816,6 +2824,7 @@
>         symbol_name="RasterizerAndPixelBackend1"
>         underscore_name="rasterizer_and_pixel_backend1"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="4286bd8f-f9db-45e5-aa37-51dd7067f751"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -3060,6 +3069,7 @@
>         symbol_name="RasterizerAndPixelBackend2"
>         underscore_name="rasterizer_and_pixel_backend2"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="ac90f98d-14a6-4dcc-b5d7-31ee157bb6e2"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -3261,6 +3271,7 @@
>         symbol_name="RenderPipeProfile1"
>         underscore_name="render_pipe_profile1"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="f15b97f6-eb1b-43a8-839c-7bd956c143c4"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -3655,6 +3666,7 @@
>         symbol_name="RenderPipeProfile2"
>         underscore_name="render_pipe_profile2"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="86b9199d-8a44-4694-bbde-6fd35bada236"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -4049,6 +4061,7 @@
>         symbol_name="Sampler"
>         underscore_name="sampler"
>         mdapi_supported_apis="VK OGL OCL MEDIA IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="ae70a69c-341d-492a-b703-afa08a3497ba"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -4482,6 +4495,7 @@
>         symbol_name="TDL1"
>         underscore_name="tdl1"
>         mdapi_supported_apis="VK OGL OCL MEDIA IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="cf27081a-d750-4c9d-8a19-154f976992ee"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -4833,6 +4847,7 @@
>         symbol_name="TDL2"
>         underscore_name="tdl2"
>         mdapi_supported_apis="VK OGL OCL MEDIA IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="fa292653-8b18-448b-b57e-8e8ff92fac11"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -5179,6 +5194,7 @@
>         symbol_name="TDL3"
>         underscore_name="tdl3"
>         mdapi_supported_apis="VK OGL OCL MEDIA IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="9604dfeb-2724-459c-a25b-5e5e06d93fd8"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -5532,6 +5548,7 @@
>         symbol_name="TDL4"
>         underscore_name="tdl4"
>         mdapi_supported_apis="VK OGL OCL MEDIA IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="b5333a47-add0-46a5-82d9-e62dcee14e81"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -5880,6 +5897,7 @@
>         symbol_name="TestOa"
>         underscore_name="test_oa"
>         mdapi_supported_apis="VK OGL OCL MEDIA IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="7272a7b8-6df2-4180-a95f-2ef7ad4412cc"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -6104,6 +6122,7 @@
>         symbol_name="Ext1"
>         underscore_name="ext1"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="682c3520-dffc-4a76-8e17-1d9effc01a1a"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -6153,7 +6172,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="C 7 READ 128 UMUL"
> +             equation="B 2 READ 128 UMUL"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
>               mdapi_supported_apis=""
> @@ -6166,7 +6185,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="C 6 READ 128 UMUL"
> +             equation="B 3 READ 128 UMUL"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
>               mdapi_supported_apis=""
> @@ -6179,7 +6198,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="C 5 READ"
> +             equation="B 4 READ"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
>               mdapi_supported_apis=""
> @@ -6192,7 +6211,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="C 4 READ"
> +             equation="B 5 READ"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
>               mdapi_supported_apis=""
> @@ -6218,7 +6237,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="C 3 READ C 2 READ UADD"
> +             equation="B 6 READ B 7 READ UADD"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
>               mdapi_supported_apis=""
> @@ -6231,7 +6250,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="C 1 READ C 0 READ UADD"
> +             equation="C 0 READ C 1 READ UADD"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
>               mdapi_supported_apis=""
> @@ -6257,7 +6276,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="B 7 READ 128 UMUL"
> +             equation="C 2 READ 128 UMUL"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
>               mdapi_supported_apis=""
> @@ -6270,7 +6289,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="B 6 READ 128 UMUL"
> +             equation="C 3 READ 128 UMUL"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
>               mdapi_supported_apis=""
> @@ -6284,7 +6303,7 @@
>               max_equation="100"
>               units="percent"
>               semantic_type="duration"
> -             equation="B 5 READ 100 UMUL $GpuCoreClocks FDIV"
> +             equation="C 4 READ 100 UMUL $GpuCoreClocks FDIV"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
>               mdapi_supported_apis=""
> @@ -6298,7 +6317,7 @@
>               max_equation="100"
>               units="percent"
>               semantic_type="duration"
> -             equation="B 4 READ 100 UMUL $GpuCoreClocks FDIV"
> +             equation="C 5 READ 100 UMUL $GpuCoreClocks FDIV"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
>               mdapi_supported_apis=""
> @@ -6364,7 +6383,7 @@
>               max_equation="100"
>               units="percent"
>               semantic_type="duration"
> -             equation="B 2 READ 100 UMUL $GpuCoreClocks FDIV"
> +             equation="C 7 READ 100 UMUL $GpuCoreClocks FDIV"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
>               mdapi_supported_apis=""
> @@ -6378,7 +6397,7 @@
>               max_equation="100"
>               units="percent"
>               semantic_type="duration"
> -             equation="B 3 READ 100 UMUL $GpuCoreClocks FDIV"
> +             equation="C 6 READ 100 UMUL $GpuCoreClocks FDIV"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
>               mdapi_supported_apis=""
> @@ -6387,36 +6406,36 @@
>      <register_config type="NOA">
>          <register type="NOA" address="0x00000D04" value="0x00000200" />
>          <register type="NOA" address="0x00009884" value="0x00000000" />
> -        <register type="NOA" address="0x00009888" value="0x15010007" />
> -        <register type="NOA" address="0x00009888" value="0x17053400" />
> -        <register type="NOA" address="0x00009888" value="0x15210007" />
> -        <register type="NOA" address="0x00009888" value="0x17253400" />
> -        <register type="NOA" address="0x00009888" value="0x0007BBE0" />
> -        <register type="NOA" address="0x00009888" value="0x0207BBAF" />
> +        <register type="NOA" address="0x00009888" value="0x150100E0" />
> +        <register type="NOA" address="0x00009888" value="0x17051000" />
> +        <register type="NOA" address="0x00009888" value="0x152100E0" />
> +        <register type="NOA" address="0x00009888" value="0x17251000" />
> +        <register type="NOA" address="0x00009888" value="0x0007AEE0" />
> +        <register type="NOA" address="0x00009888" value="0x0207BEEF" />
>          <register type="NOA" address="0x00009888" value="0x0001AAA0" />
>          <register type="NOA" address="0x00009888" value="0x0201AAAA" />
>          <register type="NOA" address="0x00009888" value="0x03010004" />
> -        <register type="NOA" address="0x00009888" value="0x09010180" />
> -        <register type="NOA" address="0x00009888" value="0x0B010380" />
> -        <register type="NOA" address="0x00009888" value="0x0F010147" />
> -        <register type="NOA" address="0x00009888" value="0x110103C0" />
> -        <register type="NOA" address="0x00009888" value="0x13010340" />
> -        <register type="NOA" address="0x00009888" value="0x01010004" />
> +        <register type="NOA" address="0x00009888" value="0x07010005" />
> +        <register type="NOA" address="0x00009888" value="0x09010007" />
> +        <register type="NOA" address="0x00009888" value="0x0B0103CD" />
> +        <register type="NOA" address="0x00009888" value="0x0F010006" />
> +        <register type="NOA" address="0x00009888" value="0x1101000E" />
> +        <register type="NOA" address="0x00009888" value="0x01018000" />
>          <register type="NOA" address="0x00009888" value="0x03050004" />
> -        <register type="NOA" address="0x00009888" value="0x07050080" />
> +        <register type="NOA" address="0x00009888" value="0x15050005" />
>          <register type="NOA" address="0x00009888" value="0x01050000" />
>          <register type="NOA" address="0x00009888" value="0x03210004" />
> -        <register type="NOA" address="0x00009888" value="0x09210006" />
> -        <register type="NOA" address="0x00009888" value="0x0B21000E" />
> -        <register type="NOA" address="0x00009888" value="0x0D210147" />
> -        <register type="NOA" address="0x00009888" value="0x1121000F" />
> -        <register type="NOA" address="0x00009888" value="0x1321000D" />
> -        <register type="NOA" address="0x00009888" value="0x01210008" />
> +        <register type="NOA" address="0x00009888" value="0x07210140" />
> +        <register type="NOA" address="0x00009888" value="0x092101C0" />
> +        <register type="NOA" address="0x00009888" value="0x0D2103CD" />
> +        <register type="NOA" address="0x00009888" value="0x0F210180" />
> +        <register type="NOA" address="0x00009888" value="0x11210380" />
> +        <register type="NOA" address="0x00009888" value="0x01214000" />
>          <register type="NOA" address="0x00009888" value="0x03250004" />
> -        <register type="NOA" address="0x00009888" value="0x09250002" />
> +        <register type="NOA" address="0x00009888" value="0x13250140" />
>          <register type="NOA" address="0x00009888" value="0x01250000" />
>          <register type="NOA" address="0x00009888" value="0x56010000" />
> -        <register type="NOA" address="0x00009888" value="0x58010000" />
> +        <register type="NOA" address="0x00009888" value="0x58010201" />
>          <register type="NOA" address="0x00009888" value="0x5A010010" />
>          <register type="NOA" address="0x00009888" value="0x5C010201" />
>          <register type="NOA" address="0x00009888" value="0x5E010010" />
> @@ -6425,7 +6444,7 @@
>          <register type="NOA" address="0x00009888" value="0x4E010010" />
>          <register type="NOA" address="0x00009888" value="0x50010201" />
>          <register type="NOA" address="0x00009888" value="0x52010010" />
> -        <register type="NOA" address="0x00009888" value="0x54010201" />
> +        <register type="NOA" address="0x00009888" value="0x54010000" />
>          <register type="NOA" address="0x00009884" value="0x00000000" />
>          <register type="NOA" address="0x00009888" value="0x72010002" />
>      </register_config>
> @@ -6446,6 +6465,7 @@
>         symbol_name="Ext3"
>         underscore_name="ext3"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="b24b7052-70a1-4ef7-b61d-7ee4d7e159ab"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -6692,6 +6712,7 @@
>         symbol_name="Ext4"
>         underscore_name="ext4"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="205ab9ab-56fd-4fdc-b3b3-91dc57be0fd3"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -7049,6 +7070,7 @@
>         symbol_name="Ext5"
>         underscore_name="ext5"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="26cb7ee1-a26d-410a-9283-e07d6ced5fce"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -7401,6 +7423,7 @@
>         symbol_name="Ext6"
>         underscore_name="ext6"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="e62c9cd7-ada7-487d-87aa-b1ad4ab9a2c5"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -7824,6 +7847,7 @@
>         symbol_name="Ext7"
>         underscore_name="ext7"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="714e9d80-e4e3-40e6-9e79-2ca6d1d0a5a5"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -7873,7 +7897,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="C 7 READ"
> +             equation="B 0 READ"
>               availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
>               mdapi_group="GTI/L3"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -7887,7 +7911,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="C 6 READ"
> +             equation="B 1 READ"
>               availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
>               mdapi_group="GTI/L3"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -7901,7 +7925,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="C 5 READ"
> +             equation="B 2 READ"
>               availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
>               mdapi_group="GTI/L3"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -7915,7 +7939,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="C 4 READ"
> +             equation="B 3 READ"
>               availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
>               mdapi_group="GTI/L3"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -7929,7 +7953,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="C 3 READ"
> +             equation="B 4 READ"
>               availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
>               mdapi_group="GTI/L3"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -7943,7 +7967,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="C 2 READ"
> +             equation="B 5 READ"
>               availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
>               mdapi_group="GTI/L3"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -7957,7 +7981,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="C 1 READ"
> +             equation="B 6 READ"
>               availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
>               mdapi_group="GTI/L3"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -7971,7 +7995,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="C 0 READ"
> +             equation="B 7 READ"
>               availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
>               mdapi_group="GTI/L3"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -7985,7 +8009,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="B 7 READ"
> +             equation="C 7 READ"
>               availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
>               mdapi_group="GTI/L3"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -7999,7 +8023,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="B 6 READ"
> +             equation="C 6 READ"
>               availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
>               mdapi_group="GTI/L3"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -8013,7 +8037,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="B 5 READ"
> +             equation="C 5 READ"
>               availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
>               mdapi_group="GTI/L3"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -8027,7 +8051,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="B 4 READ"
> +             equation="C 4 READ"
>               availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
>               mdapi_group="GTI/L3"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -8041,7 +8065,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="B 3 READ"
> +             equation="C 3 READ"
>               availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
>               mdapi_group="GTI/L3"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -8055,7 +8079,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="B 2 READ"
> +             equation="C 2 READ"
>               availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
>               mdapi_group="GTI/L3"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -8069,7 +8093,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="B 1 READ"
> +             equation="C 1 READ"
>               availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
>               mdapi_group="GTI/L3"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -8083,7 +8107,7 @@
>               data_type="uint64"
>               units="events"
>               semantic_type="event"
> -             equation="B 0 READ"
> +             equation="C 0 READ"
>               availability="$SliceMask 3 0 2 UMUL &lt;&lt; AND"
>               mdapi_group="GTI/L3"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -8094,9 +8118,9 @@
>          <register type="NOA" address="0x00000D04" value="0x00000200" />
>          <register type="NOA" address="0x00009884" value="0x00000008" />
>          <register type="NOA" address="0x00009888" value="0x03010000" />
> -        <register type="NOA" address="0x00009888" value="0x0B010040" />
> +        <register type="NOA" address="0x00009888" value="0x0B010000" />
>          <register type="NOA" address="0x00009888" value="0x03210000" />
> -        <register type="NOA" address="0x00009888" value="0x0B210001" />
> +        <register type="NOA" address="0x00009888" value="0x0B210000" />
>          <register type="NOA" address="0x00009888" value="0x03410000" />
>          <register type="NOA" address="0x00009888" value="0x0B410000" />
>          <register type="NOA" address="0x00009888" value="0x03610000" />
> @@ -8106,56 +8130,55 @@
>          <register type="NOA" address="0x00009888" value="0x03A10000" />
>          <register type="NOA" address="0x00009888" value="0x0BA10000" />
>          <register type="NOA" address="0x00009888" value="0x03C10000" />
> -        <register type="NOA" address="0x00009888" value="0x0BC10000" />
> +        <register type="NOA" address="0x00009888" value="0x0BC10006" />
>          <register type="NOA" address="0x00009888" value="0x03E10000" />
> -        <register type="NOA" address="0x00009888" value="0x0BE10000" />
> -        <register type="NOA" address="0x00009888" value="0x00025500" />
> +        <register type="NOA" address="0x00009888" value="0x0BE10180" />
> +        <register type="NOA" address="0x00009888" value="0x00020055" />
>          <register type="NOA" address="0x00009888" value="0x02025500" />
> -        <register type="NOA" address="0x00009888" value="0x00820055" />
> +        <register type="NOA" address="0x00009888" value="0x00825500" />
>          <register type="NOA" address="0x00009888" value="0x02820055" />
> -        <register type="NOA" address="0x00009888" value="0x01010004" />
> -        <register type="NOA" address="0x00009888" value="0x13010380" />
> -        <register type="NOA" address="0x00009888" value="0x01210004" />
> -        <register type="NOA" address="0x00009888" value="0x1321000E" />
> -        <register type="NOA" address="0x00009888" value="0x01410004" />
> -        <register type="NOA" address="0x00009888" value="0x09410040" />
> -        <register type="NOA" address="0x00009888" value="0x11410380" />
> -        <register type="NOA" address="0x00009888" value="0x01610004" />
> -        <register type="NOA" address="0x00009888" value="0x09610001" />
> -        <register type="NOA" address="0x00009888" value="0x1161000E" />
> -        <register type="NOA" address="0x00009888" value="0x00015000" />
> -        <register type="NOA" address="0x00009888" value="0x0201009C" />
> +        <register type="NOA" address="0x00009888" value="0x01010040" />
> +        <register type="NOA" address="0x00009888" value="0x05010006" />
> +        <register type="NOA" address="0x00009888" value="0x13010200" />
> +        <register type="NOA" address="0x00009888" value="0x01210040" />
> +        <register type="NOA" address="0x00009888" value="0x05210180" />
> +        <register type="NOA" address="0x00009888" value="0x13210008" />
> +        <register type="NOA" address="0x00009888" value="0x01410040" />
> +        <register type="NOA" address="0x00009888" value="0x07410006" />
> +        <register type="NOA" address="0x00009888" value="0x11410200" />
> +        <register type="NOA" address="0x00009888" value="0x01610040" />
> +        <register type="NOA" address="0x00009888" value="0x07610180" />
> +        <register type="NOA" address="0x00009888" value="0x11610008" />
> +        <register type="NOA" address="0x00009888" value="0x00010B1A" />
>          <register type="NOA" address="0x00009888" value="0x04013940" />
>          <register type="NOA" address="0x00009888" value="0x06010002" />
> -        <register type="NOA" address="0x00009888" value="0x01810004" />
> -        <register type="NOA" address="0x00009888" value="0x07810040" />
> -        <register type="NOA" address="0x00009888" value="0x0F810380" />
> -        <register type="NOA" address="0x00009888" value="0x01A10004" />
> -        <register type="NOA" address="0x00009888" value="0x07A10001" />
> -        <register type="NOA" address="0x00009888" value="0x0FA1000E" />
> -        <register type="NOA" address="0x00009888" value="0x01C10004" />
> -        <register type="NOA" address="0x00009888" value="0x05C10040" />
> -        <register type="NOA" address="0x00009888" value="0x0DC10380" />
> -        <register type="NOA" address="0x00009888" value="0x01E10004" />
> -        <register type="NOA" address="0x00009888" value="0x05E10001" />
> -        <register type="NOA" address="0x00009888" value="0x0DE1000E" />
> -        <register type="NOA" address="0x00009888" value="0x008104E5" />
> -        <register type="NOA" address="0x00009888" value="0x02814A00" />
> +        <register type="NOA" address="0x00009888" value="0x01810040" />
> +        <register type="NOA" address="0x00009888" value="0x09810006" />
> +        <register type="NOA" address="0x00009888" value="0x0F810200" />
> +        <register type="NOA" address="0x00009888" value="0x01A10040" />
> +        <register type="NOA" address="0x00009888" value="0x09A10180" />
> +        <register type="NOA" address="0x00009888" value="0x0FA10008" />
> +        <register type="NOA" address="0x00009888" value="0x01C10040" />
> +        <register type="NOA" address="0x00009888" value="0x0DC10200" />
> +        <register type="NOA" address="0x00009888" value="0x01E10040" />
> +        <register type="NOA" address="0x00009888" value="0x0DE10008" />
> +        <register type="NOA" address="0x00009888" value="0x00812000" />
> +        <register type="NOA" address="0x00009888" value="0x02814B63" />
>          <register type="NOA" address="0x00009888" value="0x04810013" />
>          <register type="NOA" address="0x00009884" value="0x00000000" />
> -        <register type="NOA" address="0x00009888" value="0x00050F0F" />
> +        <register type="NOA" address="0x00009888" value="0x00050FF0" />
>          <register type="NOA" address="0x00009888" value="0x0002FFFF" />
>          <register type="NOA" address="0x00009888" value="0x00015555" />
>          <register type="NOA" address="0x00009888" value="0x02015555" />
> -        <register type="NOA" address="0x00009888" value="0x0003AA55" />
> +        <register type="NOA" address="0x00009888" value="0x000355AA" />
>          <register type="NOA" address="0x00009888" value="0x0203AA55" />
> -        <register type="NOA" address="0x00009888" value="0x00040F0F" />
> -        <register type="NOA" address="0x00009888" value="0x4C010000" />
> -        <register type="NOA" address="0x00009888" value="0x56010020" />
> -        <register type="NOA" address="0x00009888" value="0x58010401" />
> -        <register type="NOA" address="0x00009888" value="0x5A010030" />
> -        <register type="NOA" address="0x00009888" value="0x5C010804" />
> -        <register type="NOA" address="0x00009888" value="0x5E010020" />
> +        <register type="NOA" address="0x00009888" value="0x00040FF0" />
> +        <register type="NOA" address="0x00009888" value="0x4C010400" />
> +        <register type="NOA" address="0x00009888" value="0x56010040" />
> +        <register type="NOA" address="0x00009888" value="0x58010604" />
> +        <register type="NOA" address="0x00009888" value="0x5A010020" />
> +        <register type="NOA" address="0x00009888" value="0x5C010401" />
> +        <register type="NOA" address="0x00009888" value="0x5E010000" />
>          <register type="NOA" address="0x00009888" value="0x06010000" />
>          <register type="NOA" address="0x00009888" value="0x60010400" />
>          <register type="NOA" address="0x00009888" value="0x4E010010" />
> @@ -8182,6 +8205,7 @@
>         symbol_name="Ext8"
>         underscore_name="ext8"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="30499dfb-3977-4808-a34c-93e7b50e0454"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -8536,6 +8560,7 @@
>         symbol_name="Ext9"
>         underscore_name="ext9"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="417618f2-7a87-4745-bccd-6ba14d17bfa4"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -8756,6 +8781,7 @@
>         symbol_name="Ext10"
>         underscore_name="ext10"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="443c32c7-e5e4-43da-b4f2-77efe45a60ed"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -9110,6 +9136,7 @@
>         symbol_name="Ext11"
>         underscore_name="ext11"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="3833e442-880a-4746-9df1-6347b7e5a081"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -9464,6 +9491,7 @@
>         symbol_name="Ext12"
>         underscore_name="ext12"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="931bb082-6f87-450e-8910-fd6a4ab206f7"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -9828,6 +9856,7 @@
>         symbol_name="Ext13"
>         underscore_name="ext13"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="f7fdd159-e273-47ab-99bc-f4fc410c6053"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -10058,6 +10087,7 @@
>         symbol_name="Ext14"
>         underscore_name="ext14"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="423732fb-f20a-4549-b632-53ac587668d9"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -10290,6 +10320,7 @@
>         symbol_name="Ext15"
>         underscore_name="ext15"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="0fa8f991-d412-4014-a7a7-be08ccf5fc4c"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -10530,6 +10561,7 @@
>         symbol_name="Ext16"
>         underscore_name="ext16"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="e37de2da-c16f-4b2a-82bc-e1062fabfa2a"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -10772,6 +10804,7 @@
>         symbol_name="Ext17"
>         underscore_name="ext17"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="e8a60701-f694-496d-95be-34cc80796a46"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -10882,7 +10915,7 @@
>               max_equation="100"
>               units="percent"
>               semantic_type="duration"
> -             equation="B 7 READ B 6 READ FADD 4 FDIV 100 UMUL $GpuCoreClocks FDIV"
> +             equation="B 7 READ B 6 READ FADD 2 FDIV 100 UMUL $GpuCoreClocks FDIV"
>               availability="$GtSlice0XeCore0"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -10897,7 +10930,7 @@
>               max_equation="100"
>               units="percent"
>               semantic_type="duration"
> -             equation="B 1 READ B 0 READ FADD 4 FDIV 100 UMUL $GpuCoreClocks FDIV"
> +             equation="B 1 READ B 0 READ FADD 2 FDIV 100 UMUL $GpuCoreClocks FDIV"
>               availability="$GtSlice0XeCore1"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -10912,7 +10945,7 @@
>               max_equation="100"
>               units="percent"
>               semantic_type="duration"
> -             equation="B 3 READ B 2 READ FADD 4 FDIV 100 UMUL $GpuCoreClocks FDIV"
> +             equation="B 3 READ B 2 READ FADD 2 FDIV 100 UMUL $GpuCoreClocks FDIV"
>               availability="$GtSlice0XeCore2"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -10927,7 +10960,7 @@
>               max_equation="100"
>               units="percent"
>               semantic_type="duration"
> -             equation="B 5 READ B 4 READ FADD 4 FDIV 100 UMUL $GpuCoreClocks FDIV"
> +             equation="B 5 READ B 4 READ FADD 2 FDIV 100 UMUL $GpuCoreClocks FDIV"
>               availability="$GtSlice0XeCore3"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -11020,6 +11053,7 @@
>         symbol_name="Ext18"
>         underscore_name="ext18"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="1c957158-09ff-4a89-aa5b-3c1b4e46f9ba"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -11270,6 +11304,7 @@
>         symbol_name="Ext21"
>         underscore_name="ext21"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="a0b46166-6078-4045-8321-6df39b8e8ced"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -11514,6 +11549,7 @@
>         symbol_name="Ext22"
>         underscore_name="ext22"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="92371114-aa03-46d8-ab34-6e843fc92123"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -11760,6 +11796,7 @@
>         symbol_name="Ext23"
>         underscore_name="ext23"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="c7cd47a5-39e8-4c58-9b4f-a9c6df869db8"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -11954,6 +11991,7 @@
>         symbol_name="Ext24"
>         underscore_name="ext24"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="2adf2c05-e151-4fa7-9e77-2331bd94235e"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -12150,6 +12188,7 @@
>         symbol_name="Ext28"
>         underscore_name="ext28"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="1fcdcf0a-54da-4397-8832-c884d8d0b3ff"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -12394,6 +12433,7 @@
>         symbol_name="Ext29"
>         underscore_name="ext29"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="9701aca8-76a6-49ee-96c9-ff983f24d29e"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -12640,6 +12680,7 @@
>         symbol_name="Ext31"
>         underscore_name="ext31"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="f47e74cf-7966-43ea-bbac-46f9a0d1dc1f"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -12830,6 +12871,7 @@
>         symbol_name="Ext32"
>         underscore_name="ext32"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="3e220edc-390e-4964-9e57-4d45f3e01de8"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -13022,6 +13064,7 @@
>         symbol_name="Ext35"
>         underscore_name="ext35"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="d334294d-8dd2-4ae2-ae31-7d0d4acc2b6b"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -13212,6 +13255,7 @@
>         symbol_name="Ext36"
>         underscore_name="ext36"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="b749495f-4fc4-4e54-965e-38990758473b"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -13404,6 +13448,7 @@
>         symbol_name="Ext39"
>         underscore_name="ext39"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="09c0f842-3711-48f5-bf3e-74c1caa9f791"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -13598,6 +13643,7 @@
>         symbol_name="Ext40"
>         underscore_name="ext40"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="be7c864e-0538-420d-916d-ce3aed7742ba"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -13794,6 +13840,7 @@
>         symbol_name="Ext43"
>         underscore_name="ext43"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="86cf3d13-947b-4f7f-9685-1ff59ec342dd"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -13974,6 +14021,7 @@
>         symbol_name="Ext44"
>         underscore_name="ext44"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="7675136e-a91e-4bf8-b206-32591b878339"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -14156,6 +14204,7 @@
>         symbol_name="Ext45"
>         underscore_name="ext45"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="e953dbdb-3451-4912-80ae-241ecc56a59e"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -14331,6 +14380,7 @@
>         symbol_name="Ext46"
>         underscore_name="ext46"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="94219d74-6a23-4b93-bf62-88c9ad4ed4bd"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -14508,6 +14558,7 @@
>         symbol_name="Ext51"
>         underscore_name="ext51"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="cab52f96-c6bf-48ca-a34e-17e52cadc8a6"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -14759,6 +14810,7 @@
>         symbol_name="Ext53"
>         underscore_name="ext53"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="e4597eb9-ffa4-4da5-a180-5e12299f22cc"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -14949,6 +15001,7 @@
>         symbol_name="Ext54"
>         underscore_name="ext54"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="0a11c113-298b-4f77-a085-1b7cac225015"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -15141,6 +15194,7 @@
>         symbol_name="Ext57"
>         underscore_name="ext57"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="6f983509-03f1-463a-be88-3e4a40de40b4"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -15331,6 +15385,7 @@
>         symbol_name="Ext58"
>         underscore_name="ext58"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="75d3fdde-e74d-4ec2-a7f0-f88fe5971af3"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -15523,6 +15578,7 @@
>         symbol_name="Ext61"
>         underscore_name="ext61"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="98c25532-687f-489a-b070-667edd3c41f9"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -15717,6 +15773,7 @@
>         symbol_name="Ext62"
>         underscore_name="ext62"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="6ee28b50-5390-4655-af96-9d99569aee82"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -15913,6 +15970,7 @@
>         symbol_name="Ext65"
>         underscore_name="ext65"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="89a4a65b-cbfa-4c75-99fb-e5d7f0def495"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -16060,6 +16118,7 @@
>         symbol_name="Ext66"
>         underscore_name="ext66"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="99e44f76-928f-4835-866f-663e25c69f66"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -16202,6 +16261,7 @@
>         symbol_name="Ext67"
>         underscore_name="ext67"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="f45dfc0c-70ef-48bd-83a2-30cf4a6ba0d5"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -16351,6 +16411,7 @@
>         symbol_name="Ext68"
>         underscore_name="ext68"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="eab0942c-5181-4caf-aeec-44d9a0b69ada"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -16493,6 +16554,7 @@
>         symbol_name="Ext73"
>         underscore_name="ext73"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="d9d0c398-6429-4ba8-bc08-6e8556a5880f"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -16640,6 +16702,7 @@
>         symbol_name="Ext74"
>         underscore_name="ext74"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="d91bf24f-08af-4d1d-b957-c2293923c9a4"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -16780,6 +16843,7 @@
>         symbol_name="Ext75"
>         underscore_name="ext75"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="b5c2eaef-cffa-490b-a80e-de2b37ca63d8"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -16929,6 +16993,7 @@
>         symbol_name="Ext76"
>         underscore_name="ext76"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="d5cdafcf-483d-40f7-8dc9-feca73e94246"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -17071,6 +17136,7 @@
>         symbol_name="Ext77"
>         underscore_name="ext77"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="240802cf-de55-472f-9e0a-710270ae9487"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -17260,6 +17326,7 @@
>         symbol_name="Ext78"
>         underscore_name="ext78"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="3dd49211-aa69-4711-87c2-97289ff9cfff"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -17451,6 +17518,7 @@
>         symbol_name="Ext79"
>         underscore_name="ext79"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="64aeba75-9dbe-4231-81f6-8c991b84c070"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -17608,6 +17676,7 @@
>         symbol_name="Ext80"
>         underscore_name="ext80"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="3b293ce5-af38-4ae2-96f4-a542d3c68d5e"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -17758,6 +17827,7 @@
>         symbol_name="Ext81"
>         underscore_name="ext81"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="09516dce-66a0-499f-8457-97f78bb921e6"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -17917,6 +17987,7 @@
>         symbol_name="Ext82"
>         underscore_name="ext82"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="c0bdc35b-af55-4ac9-8078-f22578201756"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -18069,6 +18140,7 @@
>         symbol_name="Ext83"
>         underscore_name="ext83"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="7f4b6bdf-4a28-4e6b-a67b-c9a0d320ddb8"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -18455,6 +18527,7 @@
>         symbol_name="Ext85"
>         underscore_name="ext85"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="e19c5430-c632-43eb-b27f-eeb3d405bfd8"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -18709,6 +18782,7 @@
>         symbol_name="Ext86"
>         underscore_name="ext86"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="d379e5f5-32f3-4a6b-957f-5ccf607dda00"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -18964,6 +19038,7 @@
>         symbol_name="Ext87"
>         underscore_name="ext87"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="3e86ea71-8695-4815-ac18-0fd4510541a1"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -19148,6 +19223,7 @@
>         symbol_name="Ext88"
>         underscore_name="ext88"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="31ad28aa-7425-4bb4-b1a3-423821d98d84"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -19332,6 +19408,7 @@
>         symbol_name="Ext91"
>         underscore_name="ext91"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="a1963e82-2bad-44e2-9bb1-ee18657c09cd"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -19516,6 +19593,7 @@
>         symbol_name="Ext92"
>         underscore_name="ext92"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="fdf0722d-cb2e-46bd-8c1f-a85c6fbca3ff"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -19700,6 +19778,7 @@
>         symbol_name="Ext93"
>         underscore_name="ext93"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="e0810ece-3bb5-4786-871b-b504faa00ba7"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -19857,6 +19936,7 @@
>         symbol_name="Ext94"
>         underscore_name="ext94"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="8697d9f7-3085-4ae7-b88d-e77697972732"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -20007,6 +20087,7 @@
>         symbol_name="Ext95"
>         underscore_name="ext95"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="d059b804-fc25-4cbc-9682-ebc806a0d423"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -20166,6 +20247,7 @@
>         symbol_name="Ext96"
>         underscore_name="ext96"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="ca3c5e8c-b83a-474f-85fa-af7572a1ce27"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -20318,6 +20400,7 @@
>         symbol_name="Ext97"
>         underscore_name="ext97"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="fbed5532-2b4f-4194-b856-0404c387b2e4"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -20576,6 +20659,7 @@
>         symbol_name="Ext98"
>         underscore_name="ext98"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="4c975484-c2f5-4f29-b8fa-8ec1068de77a"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -20769,6 +20853,7 @@
>         symbol_name="Ext99"
>         underscore_name="ext99"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="13017c9d-9d3a-41d1-8f9c-2eafdcbefab4"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -20964,6 +21049,7 @@
>         symbol_name="Ext100"
>         underscore_name="ext100"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="a7ef0e01-74c3-48c5-8d0f-00241111cf69"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -21233,6 +21319,7 @@
>         symbol_name="Ext101"
>         underscore_name="ext101"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="7e86b43f-715e-419a-83eb-e8777fd7c77a"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -21504,6 +21591,7 @@
>         symbol_name="Ext102"
>         underscore_name="ext102"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="1fb36f5f-04a3-412f-a6ca-80233bf408a0"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -21889,6 +21977,7 @@
>         symbol_name="Ext103"
>         underscore_name="ext103"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="5228137b-8e8d-4d67-b195-d5f64a88f5f0"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -22274,6 +22363,7 @@
>         symbol_name="Ext104"
>         underscore_name="ext104"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="5503160a-7b2a-4099-9ec6-0d3a551cb388"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -22446,6 +22536,7 @@
>         symbol_name="Ext105"
>         underscore_name="ext105"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="418f87f0-b6d8-4684-883e-4f10a79c5070"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -22618,6 +22709,7 @@
>         symbol_name="Ext106"
>         underscore_name="ext106"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="f5b7256f-9bf6-4c95-94c1-4044cfad0ea6"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -22789,6 +22881,7 @@
>         symbol_name="Ext107"
>         underscore_name="ext107"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="28d75db6-0eb3-4651-b820-513a76013504"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -22960,6 +23053,7 @@
>         symbol_name="Ext108"
>         underscore_name="ext108"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="080da0b6-29a4-416b-b20f-ece0e2527f60"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -23131,6 +23225,7 @@
>         symbol_name="Ext109"
>         underscore_name="ext109"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="75a9e66d-9bbe-46d7-971e-71ca8ef680ff"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -23300,6 +23395,7 @@
>         symbol_name="Ext110"
>         underscore_name="ext110"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="ae5589a9-7e09-4343-a611-3161977315d5"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -23473,6 +23569,7 @@
>         symbol_name="Ext111"
>         underscore_name="ext111"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="a5e1e738-1338-4d76-a6a7-5517111cc852"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -23646,6 +23743,7 @@
>         symbol_name="Ext113"
>         underscore_name="ext113"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="1a24edc7-8187-43b6-86aa-fcf56c223893"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -23961,6 +24059,7 @@
>         symbol_name="Ext114"
>         underscore_name="ext114"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="32565d07-8ac7-41c3-89a3-66d0c1100616"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -24278,6 +24377,7 @@
>         symbol_name="Ext116"
>         underscore_name="ext116"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="f725009a-c5e7-4418-9adf-ddb70cb2edde"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -24463,6 +24563,7 @@
>         symbol_name="Ext117"
>         underscore_name="ext117"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="f633497f-c116-461f-a0e9-bb3fdcef7683"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -24650,6 +24751,7 @@
>         symbol_name="Ext118"
>         underscore_name="ext118"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="bae9e67e-4b5c-4fb9-b21d-21a6966bed46"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -24897,6 +24999,7 @@
>         symbol_name="Ext119"
>         underscore_name="ext119"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="95c08faf-813c-4b71-9062-09569c5ff432"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -25146,6 +25249,7 @@
>         symbol_name="Ext120"
>         underscore_name="ext120"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="045ee54e-4e02-4877-adb1-5bd14ba49100"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -25333,6 +25437,7 @@
>         symbol_name="Ext121"
>         underscore_name="ext121"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="2e3894b5-2b6a-49c4-b2b6-0dde7375cb7b"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -25520,6 +25625,7 @@
>         symbol_name="Ext122"
>         underscore_name="ext122"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="25ca1237-2ed3-447a-9767-1a85da89daef"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -25823,6 +25929,7 @@
>         symbol_name="Ext123"
>         underscore_name="ext123"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="cf41fd07-c4c2-466c-9d85-774dcde02359"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -26136,6 +26243,7 @@
>         symbol_name="Ext124"
>         underscore_name="ext124"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="2445e8f0-04c4-43f5-87ff-e2f99a2528ed"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -26424,6 +26532,7 @@
>         symbol_name="Ext125"
>         underscore_name="ext125"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="446192f5-9062-4f1e-a99e-1be87cdcd0b8"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -26714,6 +26823,7 @@
>         symbol_name="Ext126"
>         underscore_name="ext126"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="9a0ec3ea-1d61-413e-8b9c-169cdec1f9b3"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -26937,6 +27047,7 @@
>         symbol_name="Ext127"
>         underscore_name="ext127"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="1f70ab0a-6efd-461b-b06e-3b47d3602f36"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -27162,6 +27273,7 @@
>         symbol_name="Ext128"
>         underscore_name="ext128"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="9eedb03f-340b-40ec-8a66-43d01973003e"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -27310,6 +27422,7 @@
>         symbol_name="Ext129"
>         underscore_name="ext129"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="0e5ffe58-83b2-445b-a439-9ee7a01642d4"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -27461,6 +27574,7 @@
>         symbol_name="Ext130"
>         underscore_name="ext130"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="78925a28-3e52-4d74-b03b-cb27c6a4401a"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -27594,6 +27708,7 @@
>         symbol_name="Ext131"
>         underscore_name="ext131"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="1e91d8d9-ced4-4240-bf9e-fdd7d015c058"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -27720,6 +27835,7 @@
>         symbol_name="Ext132"
>         underscore_name="ext132"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="1cacf022-b4d4-401c-abec-acc0a3353adc"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -27855,6 +27971,7 @@
>         symbol_name="Ext133"
>         underscore_name="ext133"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="3c15657a-b3da-4513-8b9c-08bcc1ca0226"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -27983,6 +28100,7 @@
>         symbol_name="Ext134"
>         underscore_name="ext134"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="da34c79f-d1c6-4d15-b848-2085528bb86b"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -28099,6 +28217,7 @@
>         symbol_name="Ext135"
>         underscore_name="ext135"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="33ceab81-26bc-49f3-a124-5dbb2d592a87"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -28206,6 +28325,7 @@
>         symbol_name="Ext136"
>         underscore_name="ext136"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="d8b7d2f7-7c3a-4a68-b6c1-48d197b22945"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -28324,6 +28444,7 @@
>         symbol_name="Ext137"
>         underscore_name="ext137"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="01d6bd34-b8d1-4412-b53b-0d16b327abec"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -28433,6 +28554,7 @@
>         symbol_name="Ext138"
>         underscore_name="ext138"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="7485f9ec-ac5f-4c6d-8c5f-6a023e7d29d5"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -28549,6 +28671,7 @@
>         symbol_name="Ext139"
>         underscore_name="ext139"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="944dc12b-b2fd-4bf5-a59d-540e2b280cdd"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -28656,6 +28779,7 @@
>         symbol_name="Ext140"
>         underscore_name="ext140"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="5c97330a-b407-4ef8-908f-7fdeec216f81"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -28774,6 +28898,7 @@
>         symbol_name="Ext141"
>         underscore_name="ext141"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="65e4ac2a-db8f-4918-bdd6-ac4d85de160e"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -28883,6 +29008,7 @@
>         symbol_name="Ext142"
>         underscore_name="ext142"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="0eb11775-ad71-44d4-ad2c-c2fa6431b144"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -28999,6 +29125,7 @@
>         symbol_name="Ext143"
>         underscore_name="ext143"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="d7736d53-f1cb-4899-8f3d-d8aaad1f1c67"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -29106,6 +29233,7 @@
>         symbol_name="Ext144"
>         underscore_name="ext144"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="496219cc-316b-4945-9fc4-180e60331262"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -29224,6 +29352,7 @@
>         symbol_name="Ext145"
>         underscore_name="ext145"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="c7e6721e-51f9-40af-ba8b-0520a1082855"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -29333,6 +29462,7 @@
>         symbol_name="Ext146"
>         underscore_name="ext146"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="0e9b064c-9fa7-4e85-8aaa-cc871010117d"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -29449,6 +29579,7 @@
>         symbol_name="Ext147"
>         underscore_name="ext147"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="44d73f02-f843-4717-a3d5-3d1dfbd3f106"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -29556,6 +29687,7 @@
>         symbol_name="Ext148"
>         underscore_name="ext148"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="b84f370e-1b64-41d1-a4d8-f095fb79e5f8"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -29674,6 +29806,7 @@
>         symbol_name="Ext149"
>         underscore_name="ext149"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="772a2c24-0a03-480e-baca-72f2f55a5422"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -29783,6 +29916,7 @@
>         symbol_name="Ext150"
>         underscore_name="ext150"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="953d3bf8-af3d-4287-ac22-dcd122c5eb51"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -29897,6 +30031,7 @@
>         symbol_name="Ext151"
>         underscore_name="ext151"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="dbb009c2-98ad-4af0-905a-e7808ac5424c"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -30003,6 +30138,7 @@
>         symbol_name="Ext152"
>         underscore_name="ext152"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="16fd8981-676d-4cbc-b010-8d731ba66a06"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -30119,6 +30255,7 @@
>         symbol_name="Ext153"
>         underscore_name="ext153"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="7bcdd766-98a5-461a-ac8e-d8c648958364"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -30227,6 +30364,7 @@
>         symbol_name="Ext154"
>         underscore_name="ext154"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="c0459fa8-1790-46b8-a0f8-3064baf7c670"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -30532,6 +30670,7 @@
>         symbol_name="Ext155"
>         underscore_name="ext155"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="304d9439-4bdd-48a9-a82e-15b3533afaf4"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -30667,6 +30806,7 @@
>         symbol_name="Ext156"
>         underscore_name="ext156"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="90691d58-782d-459c-a242-f6e515fe9567"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -30803,6 +30943,7 @@
>         symbol_name="Ext158"
>         underscore_name="ext158"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="cf34a431-3cc9-4b70-a84e-0d31a71170f0"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -31070,6 +31211,7 @@
>         symbol_name="Ext159"
>         underscore_name="ext159"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="ad3cd014-8897-4613-8653-6d80c6eaff88"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -31271,6 +31413,7 @@
>         symbol_name="Ext160"
>         underscore_name="ext160"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="aa12de63-7d11-4acf-af96-be89807729f7"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -31474,6 +31617,7 @@
>         symbol_name="Ext161"
>         underscore_name="ext161"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="ac013132-7e0c-4143-bc34-ea6428ce3082"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -31675,6 +31819,7 @@
>         symbol_name="Ext162"
>         underscore_name="ext162"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="b9d8323a-7bb4-41b5-b99b-43ed99e23590"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -31878,6 +32023,7 @@
>         symbol_name="Ext163"
>         underscore_name="ext163"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="6ae2c19e-672c-4ad6-9d59-0a391af1af4f"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -32079,6 +32225,7 @@
>         symbol_name="Ext164"
>         underscore_name="ext164"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="c76b6b40-9d7f-48f6-b6da-595252c884f4"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -32282,6 +32429,7 @@
>         symbol_name="Ext165"
>         underscore_name="ext165"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="a85da4d8-d984-45f3-8dbe-c8678eac8aae"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -32483,6 +32631,7 @@
>         symbol_name="Ext166"
>         underscore_name="ext166"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="fbc7362e-4d05-451d-833e-f0ce5e7ad8e3"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -32686,6 +32835,7 @@
>         symbol_name="Ext167"
>         underscore_name="ext167"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="881454da-d271-41ba-9dfb-0cc354fb5aea"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -32887,6 +33037,7 @@
>         symbol_name="Ext168"
>         underscore_name="ext168"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="9f2b827b-01c6-4e82-b283-dfe91af30d88"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -33090,6 +33241,7 @@
>         symbol_name="Ext169"
>         underscore_name="ext169"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="c6b40da2-4783-45d7-8252-9a4f1f75faf4"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -33291,6 +33443,7 @@
>         symbol_name="Ext170"
>         underscore_name="ext170"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="b5883529-3595-412d-b40f-b7ade9cc3304"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -33494,6 +33647,7 @@
>         symbol_name="Ext171"
>         underscore_name="ext171"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="2455c20b-95bb-4e9f-8db2-597ba9447025"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -33871,6 +34025,7 @@
>         symbol_name="Ext172"
>         underscore_name="ext172"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="ec18cd0b-7caa-48d0-9a16-418ecbe1096e"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -34250,6 +34405,7 @@
>         symbol_name="Ext173"
>         underscore_name="ext173"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="3628b2de-d9f9-4db2-a74f-32a314e591c5"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -34472,6 +34628,7 @@
>         symbol_name="Ext174"
>         underscore_name="ext174"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="d35ecd39-0a9d-48f7-bf87-d3c318b8fadd"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -34694,6 +34851,7 @@
>         symbol_name="Ext175"
>         underscore_name="ext175"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="d0d0e9cc-494c-4b01-8a43-683aae5beaff"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -34911,6 +35069,7 @@
>         symbol_name="Ext176"
>         underscore_name="ext176"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="c5fde834-52c8-411b-854e-8d3197def109"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -35123,6 +35282,7 @@
>         symbol_name="Ext177"
>         underscore_name="ext177"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="55830ebd-062b-40e8-8d5c-e921429957ff"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -35347,6 +35507,7 @@
>         symbol_name="Ext178"
>         underscore_name="ext178"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="9603d88f-e5bf-47b4-85fd-fbbb68f42632"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -35571,6 +35732,7 @@
>         symbol_name="Ext179"
>         underscore_name="ext179"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="b05bd7bd-387f-4fd7-a1b4-06a1dab5bc14"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -35790,6 +35952,7 @@
>         symbol_name="Ext180"
>         underscore_name="ext180"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="49dc9023-be7b-4102-a4a2-d31b9a6b1ce4"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -36004,6 +36167,7 @@
>         symbol_name="Ext181"
>         underscore_name="ext181"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="871d8a6b-7c73-4cd7-a4ed-4bdb58d5b6ee"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -36183,6 +36347,7 @@
>         symbol_name="Ext182"
>         underscore_name="ext182"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="25a2f80d-147e-4363-a0cb-53584b7a837d"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -36364,6 +36529,7 @@
>         symbol_name="Ext183"
>         underscore_name="ext183"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="71863fcf-d57c-433b-858f-87f5f11ec3da"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -36585,6 +36751,7 @@
>         symbol_name="Ext184"
>         underscore_name="ext184"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="c29640d9-39eb-4a03-9043-2a54eb5a3112"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -36808,6 +36975,7 @@
>         symbol_name="Ext185"
>         underscore_name="ext185"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="00882747-d1dd-4ba5-9b72-96df25dad7bd"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -36998,6 +37166,7 @@
>         symbol_name="Ext186"
>         underscore_name="ext186"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="89aea44f-ffa6-43cc-9a9c-103b4930e103"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -37190,6 +37359,7 @@
>         symbol_name="Ext188"
>         underscore_name="ext188"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="11e92a4a-d605-499c-9159-e79797c230de"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -37380,6 +37550,7 @@
>         symbol_name="Ext189"
>         underscore_name="ext189"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="27c2ef51-6689-4ffc-acaa-3f46a8e834cf"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -37572,6 +37743,7 @@
>         symbol_name="Ext190"
>         underscore_name="ext190"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="1625df84-2f24-4aed-9ced-e652184c9949"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -37723,6 +37895,7 @@
>         symbol_name="Ext191"
>         underscore_name="ext191"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="d98e7947-ecee-46a9-b3ac-619d13d32b1a"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -37876,6 +38049,7 @@
>         symbol_name="Ext192"
>         underscore_name="ext192"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="ed973589-e13c-4115-a2b1-08bc443a4e8d"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -38154,6 +38328,7 @@
>         symbol_name="Ext193"
>         underscore_name="ext193"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="9bb6c40a-ec2c-4292-8ac8-d8b413abd301"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -38434,6 +38609,7 @@
>         symbol_name="Ext195"
>         underscore_name="ext195"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="9a911d6f-39b5-425d-aea3-15e49e6395fa"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -38716,6 +38892,7 @@
>         symbol_name="Ext196"
>         underscore_name="ext196"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="814b3516-d465-4faa-b89c-67c30c96a256"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -39000,6 +39177,7 @@
>         symbol_name="Ext198"
>         underscore_name="ext198"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="3663ed58-377d-40c3-9af0-913cbc5d954b"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -39181,6 +39359,7 @@
>         symbol_name="Ext199"
>         underscore_name="ext199"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="6ce22a01-9025-4afb-b3e9-652ce0c693b5"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -39366,6 +39545,7 @@
>         symbol_name="Ext200"
>         underscore_name="ext200"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="7f59bef3-f0f1-4856-b4f3-e64fa9913956"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -39549,6 +39729,7 @@
>         symbol_name="Ext201"
>         underscore_name="ext201"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="8982721e-16cb-42ec-92dd-eb049ae7a503"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -39736,6 +39917,7 @@
>         symbol_name="Ext202"
>         underscore_name="ext202"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="d86c1224-3af7-4df1-a44d-e4522f22b2ae"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -39836,6 +40018,7 @@
>         symbol_name="Ext203"
>         underscore_name="ext203"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="03090380-689d-481a-ace2-9725ea0c10d2"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -39936,6 +40119,7 @@
>         symbol_name="Ext204"
>         underscore_name="ext204"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="78a1b79a-a5fd-4fa0-b33d-2ec51404e3b9"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -40141,6 +40325,7 @@
>         symbol_name="Ext205"
>         underscore_name="ext205"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="b3c2bff1-e203-4c90-8719-66546c370005"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -40346,6 +40531,7 @@
>         symbol_name="Ext206"
>         underscore_name="ext206"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="a209e458-76a6-46fc-bb62-29850f38eb0d"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -40553,6 +40739,7 @@
>         symbol_name="Ext207"
>         underscore_name="ext207"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="06aea283-f183-4e96-85a5-3bb7193f06c7"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -40760,6 +40947,7 @@
>         symbol_name="Ext212"
>         underscore_name="ext212"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="0c6d24a9-2489-4fcd-a9f6-d44380417dee"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -40951,6 +41139,7 @@
>         symbol_name="Ext213"
>         underscore_name="ext213"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="39a43efe-ee39-4fa2-88c4-3dfc34a74f4f"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -41144,6 +41333,7 @@
>         symbol_name="Ext214"
>         underscore_name="ext214"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="f3ca645b-a2b3-496b-bf6d-f8f26b1faa86"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -41328,6 +41518,7 @@
>         symbol_name="Ext215"
>         underscore_name="ext215"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="947b168e-df39-4e92-a622-0884c81221b3"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -41514,6 +41705,7 @@
>         symbol_name="Ext220"
>         underscore_name="ext220"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="0722885e-4df8-4c98-8336-72b5e129e6be"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -41781,6 +41973,7 @@
>         symbol_name="Ext225"
>         underscore_name="ext225"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="db4a27f8-40a0-4cb5-aa3a-5368add92cd5"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -41915,6 +42108,7 @@
>         symbol_name="Ext226"
>         underscore_name="ext226"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="6b5736f5-a627-4cb6-9078-1c05137bc460"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -42051,6 +42245,7 @@
>         symbol_name="Ext227"
>         underscore_name="ext227"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="5e6f4959-c37c-4be0-bb4e-2f1c1aef2bb3"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -42185,6 +42380,7 @@
>         symbol_name="Ext228"
>         underscore_name="ext228"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="fe2d673e-8b2e-47d0-b9db-2c50e10ee53e"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -42321,6 +42517,7 @@
>         symbol_name="Ext229"
>         underscore_name="ext229"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="cb94a696-bfbe-4566-8225-c337f988600c"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -42461,6 +42658,7 @@
>         symbol_name="Ext230"
>         underscore_name="ext230"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="ec3032cb-df12-445c-9eb2-6b1031d2dc86"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -42603,6 +42801,7 @@
>         symbol_name="Ext231"
>         underscore_name="ext231"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="e5e22fbb-0ff4-44f6-a549-6ed41df0dd27"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -42736,6 +42935,7 @@
>         symbol_name="Ext232"
>         underscore_name="ext232"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="b6defb71-0fe8-400e-ae27-565ce9067082"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -42871,6 +43071,7 @@
>         symbol_name="Ext236"
>         underscore_name="ext236"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="98d5c3d9-bca6-4699-99e3-7b95a23025ce"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -43099,6 +43300,7 @@
>         symbol_name="Ext237"
>         underscore_name="ext237"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="4256db1d-9083-4497-9000-59bbcf9eee72"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -43399,6 +43601,7 @@
>         symbol_name="Ext239"
>         underscore_name="ext239"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="5ba2bf20-ca4e-4872-86fd-9026c9de8c93"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -43511,6 +43714,7 @@
>         symbol_name="Ext240"
>         underscore_name="ext240"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="fe8810c2-457b-47e0-a3b9-50cab24718b4"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -43623,6 +43827,7 @@
>         symbol_name="Ext500"
>         underscore_name="ext500"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="ee0cc3d0-9ac8-4608-aaca-b37fd9d18238"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -44036,6 +44241,7 @@
>         symbol_name="Ext501"
>         underscore_name="ext501"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="f6e20d5b-52be-4035-85c2-818a690bf601"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -44449,6 +44655,7 @@
>         symbol_name="Ext502"
>         underscore_name="ext502"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="d09cedef-e3e3-41b5-8ce8-ddc3933339ca"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -44862,6 +45069,7 @@
>         symbol_name="Ext503"
>         underscore_name="ext503"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="96067625-3663-4f9a-8b26-74e47ab1aff4"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -45275,6 +45483,7 @@
>         symbol_name="Ext508"
>         underscore_name="ext508"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="2bc8b90d-997c-4d62-b101-fe1aa74036e5"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -45324,7 +45533,7 @@
>               data_type="uint64"
>               units="bytes"
>               semantic_type="throughput"
> -             equation="B 2 READ 2 B 3 READ UMUL UADD 4 B 4 READ UMUL UADD 8 B 5 READ UMUL UADD 16 B 6 READ UMUL UADD 32 B 7 READ UMUL UADD 64 C 0 READ UMUL UADD"
> +             equation="B 3 READ 2 C 7 READ UMUL UADD 4 C 6 READ UMUL UADD 8 C 5 READ UMUL UADD 16 C 4 READ UMUL UADD 32 C 3 READ UMUL UADD 64 C 2 READ UMUL UADD"
>               availability="$GtSlice0XeCore0"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -45338,7 +45547,7 @@
>               data_type="uint64"
>               units="bytes"
>               semantic_type="throughput"
> -             equation="C 1 READ 2 C 2 READ UMUL UADD 4 C 3 READ UMUL UADD 8 C 4 READ UMUL UADD 16 C 5 READ UMUL UADD 32 C 6 READ UMUL UADD 64 C 7 READ UMUL UADD"
> +             equation="B 2 READ 2 C 1 READ UMUL UADD 4 C 0 READ UMUL UADD 8 B 7 READ UMUL UADD 16 B 6 READ UMUL UADD 32 B 5 READ UMUL UADD 64 B 4 READ UMUL UADD"
>               availability="$GtSlice0XeCore1"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -45351,19 +45560,20 @@
>          <register type="NOA" address="0x00009888" value="0x180802B4" />
>          <register type="NOA" address="0x00009888" value="0x182802B4" />
>          <register type="NOA" address="0x00009888" value="0x04080010" />
> -        <register type="NOA" address="0x00009888" value="0x0A080247" />
> -        <register type="NOA" address="0x00009888" value="0x0C0802CA" />
> -        <register type="NOA" address="0x00009888" value="0x0E08034C" />
> -        <register type="NOA" address="0x00009888" value="0x1008000E" />
> +        <register type="NOA" address="0x00009888" value="0x0A0801C0" />
> +        <register type="NOA" address="0x00009888" value="0x1208030D" />
> +        <register type="NOA" address="0x00009888" value="0x1408028B" />
> +        <register type="NOA" address="0x00009888" value="0x16080209" />
>          <register type="NOA" address="0x00009888" value="0x06080000" />
>          <register type="NOA" address="0x00009888" value="0x00080000" />
>          <register type="NOA" address="0x00009888" value="0x02080000" />
>          <register type="NOA" address="0x00009888" value="0x04280010" />
> -        <register type="NOA" address="0x00009888" value="0x102801C0" />
> -        <register type="NOA" address="0x00009888" value="0x12280289" />
> -        <register type="NOA" address="0x00009888" value="0x1428030B" />
> -        <register type="NOA" address="0x00009888" value="0x1628038D" />
> +        <register type="NOA" address="0x00009888" value="0x0A280007" />
> +        <register type="NOA" address="0x00009888" value="0x0C28030D" />
> +        <register type="NOA" address="0x00009888" value="0x0E28028B" />
> +        <register type="NOA" address="0x00009888" value="0x10280209" />
>          <register type="NOA" address="0x00009888" value="0x06280000" />
> +        <register type="NOA" address="0x00009888" value="0x00280000" />
>          <register type="NOA" address="0x00009888" value="0x02280000" />
>          <register type="NOA" address="0x00009884" value="0x00000004" />
>          <register type="NOA" address="0x00009888" value="0x00015550" />
> @@ -45371,8 +45581,8 @@
>          <register type="NOA" address="0x00009888" value="0x00045550" />
>          <register type="NOA" address="0x00009888" value="0x02045555" />
>          <register type="NOA" address="0x00009888" value="0x000BFFFC" />
> -        <register type="NOA" address="0x00009888" value="0x0009AAA0" />
> -        <register type="NOA" address="0x00009888" value="0x0209FFFE" />
> +        <register type="NOA" address="0x00009888" value="0x0009FFB0" />
> +        <register type="NOA" address="0x00009888" value="0x0209AAAF" />
>          <register type="NOA" address="0x00009888" value="0x000AAAA0" />
>          <register type="NOA" address="0x00009888" value="0x020AAAAA" />
>          <register type="NOA" address="0x00009884" value="0x00000008" />
> @@ -45415,6 +45625,7 @@
>         symbol_name="Ext509"
>         underscore_name="ext509"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="79252877-1dcd-4700-b4bd-58bce74b796d"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -45464,7 +45675,7 @@
>               data_type="uint64"
>               units="bytes"
>               semantic_type="throughput"
> -             equation="C 1 READ 2 C 2 READ UMUL UADD 4 C 3 READ UMUL UADD 8 C 4 READ UMUL UADD 16 C 5 READ UMUL UADD 32 C 6 READ UMUL UADD 64 C 7 READ UMUL UADD"
> +             equation="C 7 READ 2 C 6 READ UMUL UADD 4 C 5 READ UMUL UADD 8 C 4 READ UMUL UADD 16 C 3 READ UMUL UADD 32 C 2 READ UMUL UADD 64 C 1 READ UMUL UADD"
>               availability="$GtSlice0XeCore0"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -45478,7 +45689,7 @@
>               data_type="uint64"
>               units="bytes"
>               semantic_type="throughput"
> -             equation="B 2 READ 2 B 3 READ UMUL UADD 4 B 4 READ UMUL UADD 8 B 5 READ UMUL UADD 16 B 6 READ UMUL UADD 32 B 7 READ UMUL UADD 64 C 0 READ UMUL UADD"
> +             equation="C 0 READ 2 B 7 READ UMUL UADD 4 B 6 READ UMUL UADD 8 B 5 READ UMUL UADD 16 B 4 READ UMUL UADD 32 B 3 READ UMUL UADD 64 B 2 READ UMUL UADD"
>               availability="$GtSlice0XeCore1"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -45489,19 +45700,21 @@
>          <register type="NOA" address="0x00000D04" value="0x00000200" />
>          <register type="NOA" address="0x00009884" value="0x0000000C" />
>          <register type="NOA" address="0x00009888" value="0x1C085400" />
> +        <register type="NOA" address="0x00009888" value="0x1E080014" />
>          <register type="NOA" address="0x00009888" value="0x1C285400" />
> -        <register type="NOA" address="0x00009888" value="0x04080008" />
> -        <register type="NOA" address="0x00009888" value="0x10080000" />
> -        <register type="NOA" address="0x00009888" value="0x12080081" />
> -        <register type="NOA" address="0x00009888" value="0x14080103" />
> -        <register type="NOA" address="0x00009888" value="0x16080185" />
> +        <register type="NOA" address="0x00009888" value="0x1E280014" />
> +        <register type="NOA" address="0x00009888" value="0x04080098" />
> +        <register type="NOA" address="0x00009888" value="0x10080140" />
> +        <register type="NOA" address="0x00009888" value="0x120800C4" />
> +        <register type="NOA" address="0x00009888" value="0x14080042" />
> +        <register type="NOA" address="0x00009888" value="0x160803C0" />
>          <register type="NOA" address="0x00009888" value="0x06080000" />
>          <register type="NOA" address="0x00009888" value="0x02080000" />
> -        <register type="NOA" address="0x00009888" value="0x04280008" />
> -        <register type="NOA" address="0x00009888" value="0x0A280040" />
> -        <register type="NOA" address="0x00009888" value="0x0C2800C2" />
> -        <register type="NOA" address="0x00009888" value="0x0E280144" />
> -        <register type="NOA" address="0x00009888" value="0x10280006" />
> +        <register type="NOA" address="0x00009888" value="0x04280098" />
> +        <register type="NOA" address="0x00009888" value="0x0A280105" />
> +        <register type="NOA" address="0x00009888" value="0x0C280083" />
> +        <register type="NOA" address="0x00009888" value="0x0E280001" />
> +        <register type="NOA" address="0x00009888" value="0x1028000F" />
>          <register type="NOA" address="0x00009888" value="0x06280000" />
>          <register type="NOA" address="0x00009888" value="0x00280000" />
>          <register type="NOA" address="0x00009888" value="0x02280000" />
> @@ -45555,6 +45768,7 @@
>         symbol_name="Ext510"
>         underscore_name="ext510"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="68ac1770-b062-48cd-94f4-44c6ae16867a"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -45604,7 +45818,7 @@
>               data_type="uint64"
>               units="bytes"
>               semantic_type="throughput"
> -             equation="B 2 READ 2 C 7 READ UMUL UADD 4 C 6 READ UMUL UADD 8 C 5 READ UMUL UADD 16 C 4 READ UMUL UADD 32 C 3 READ UMUL UADD 64 C 2 READ UMUL UADD"
> +             equation="B 3 READ 2 C 7 READ UMUL UADD 4 C 6 READ UMUL UADD 8 C 5 READ UMUL UADD 16 C 4 READ UMUL UADD 32 C 3 READ UMUL UADD 64 C 2 READ UMUL UADD"
>               availability="$GtSlice0XeCore2"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -45618,7 +45832,7 @@
>               data_type="uint64"
>               units="bytes"
>               semantic_type="throughput"
> -             equation="C 1 READ 2 C 0 READ UMUL UADD 4 B 7 READ UMUL UADD 8 B 6 READ UMUL UADD 16 B 5 READ UMUL UADD 32 B 4 READ UMUL UADD 64 B 3 READ UMUL UADD"
> +             equation="B 2 READ 2 C 1 READ UMUL UADD 4 C 0 READ UMUL UADD 8 B 7 READ UMUL UADD 16 B 6 READ UMUL UADD 32 B 5 READ UMUL UADD 64 B 4 READ UMUL UADD"
>               availability="$GtSlice0XeCore3"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -45629,30 +45843,30 @@
>          <register type="NOA" address="0x00000D04" value="0x00000200" />
>          <register type="NOA" address="0x00009884" value="0x0000000C" />
>          <register type="NOA" address="0x00009888" value="0x184802B4" />
> -        <register type="NOA" address="0x00009888" value="0x18680295" />
> +        <register type="NOA" address="0x00009888" value="0x186802B4" />
>          <register type="NOA" address="0x00009888" value="0x04480010" />
> -        <register type="NOA" address="0x00009888" value="0x0A480007" />
> -        <register type="NOA" address="0x00009888" value="0x1248034E" />
> -        <register type="NOA" address="0x00009888" value="0x144802CC" />
> -        <register type="NOA" address="0x00009888" value="0x1648024A" />
> +        <register type="NOA" address="0x00009888" value="0x0A4801C0" />
> +        <register type="NOA" address="0x00009888" value="0x1248030D" />
> +        <register type="NOA" address="0x00009888" value="0x1448028B" />
> +        <register type="NOA" address="0x00009888" value="0x16480209" />
>          <register type="NOA" address="0x00009888" value="0x06480000" />
>          <register type="NOA" address="0x00009888" value="0x00480000" />
>          <register type="NOA" address="0x00009888" value="0x02480000" />
>          <register type="NOA" address="0x00009888" value="0x04680010" />
> -        <register type="NOA" address="0x00009888" value="0x0A680180" />
> -        <register type="NOA" address="0x00009888" value="0x0C680105" />
> -        <register type="NOA" address="0x00009888" value="0x0E680083" />
> -        <register type="NOA" address="0x00009888" value="0x106803C1" />
> +        <register type="NOA" address="0x00009888" value="0x0A680007" />
> +        <register type="NOA" address="0x00009888" value="0x0C68030D" />
> +        <register type="NOA" address="0x00009888" value="0x0E68028B" />
> +        <register type="NOA" address="0x00009888" value="0x10680209" />
>          <register type="NOA" address="0x00009888" value="0x06680000" />
>          <register type="NOA" address="0x00009888" value="0x00680000" />
>          <register type="NOA" address="0x00009888" value="0x02680000" />
>          <register type="NOA" address="0x00009884" value="0x00000004" />
> -        <register type="NOA" address="0x00009888" value="0x00010030" />
> +        <register type="NOA" address="0x00009888" value="0x000100C0" />
>          <register type="NOA" address="0x00009888" value="0x0201FFF0" />
> -        <register type="NOA" address="0x00009888" value="0x000A0020" />
> +        <register type="NOA" address="0x00009888" value="0x000A0080" />
>          <register type="NOA" address="0x00009888" value="0x020AAAA0" />
>          <register type="NOA" address="0x00009884" value="0x00000008" />
> -        <register type="NOA" address="0x00009888" value="0x0002FFE0" />
> +        <register type="NOA" address="0x00009888" value="0x0002FFB0" />
>          <register type="NOA" address="0x00009888" value="0x0202AAAF" />
>          <register type="NOA" address="0x00009884" value="0x00000000" />
>          <register type="NOA" address="0x00009888" value="0x0002FFFC" />
> @@ -45661,7 +45875,7 @@
>          <register type="NOA" address="0x00009888" value="0x0003AAA0" />
>          <register type="NOA" address="0x00009888" value="0x0203AAAA" />
>          <register type="NOA" address="0x00009888" value="0x56010000" />
> -        <register type="NOA" address="0x00009888" value="0x58010400" />
> +        <register type="NOA" address="0x00009888" value="0x58010002" />
>          <register type="NOA" address="0x00009888" value="0x5A010020" />
>          <register type="NOA" address="0x00009888" value="0x5C010402" />
>          <register type="NOA" address="0x00009888" value="0x5E010020" />
> @@ -45691,6 +45905,7 @@
>         symbol_name="Ext511"
>         underscore_name="ext511"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="443b8a84-7e77-4e9f-8a2a-56743897cba3"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -45740,7 +45955,7 @@
>               data_type="uint64"
>               units="bytes"
>               semantic_type="throughput"
> -             equation="B 2 READ 2 C 7 READ UMUL UADD 4 C 6 READ UMUL UADD 8 C 5 READ UMUL UADD 16 C 4 READ UMUL UADD 32 C 3 READ UMUL UADD 64 C 2 READ UMUL UADD"
> +             equation="C 7 READ 2 C 6 READ UMUL UADD 4 C 5 READ UMUL UADD 8 C 4 READ UMUL UADD 16 C 3 READ UMUL UADD 32 C 2 READ UMUL UADD 64 C 1 READ UMUL UADD"
>               availability="$GtSlice0XeCore2"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -45754,7 +45969,7 @@
>               data_type="uint64"
>               units="bytes"
>               semantic_type="throughput"
> -             equation="C 1 READ 2 C 0 READ UMUL UADD 4 B 7 READ UMUL UADD 8 B 6 READ UMUL UADD 16 B 5 READ UMUL UADD 32 B 4 READ UMUL UADD 64 B 3 READ UMUL UADD"
> +             equation="C 0 READ 2 B 7 READ UMUL UADD 4 B 6 READ UMUL UADD 8 B 5 READ UMUL UADD 16 B 4 READ UMUL UADD 32 B 3 READ UMUL UADD 64 B 2 READ UMUL UADD"
>               availability="$GtSlice0XeCore3"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -45765,31 +45980,30 @@
>          <register type="NOA" address="0x00000D04" value="0x00000200" />
>          <register type="NOA" address="0x00009884" value="0x0000000C" />
>          <register type="NOA" address="0x00009888" value="0x1C485400" />
> +        <register type="NOA" address="0x00009888" value="0x1E480014" />
>          <register type="NOA" address="0x00009888" value="0x1C685400" />
> -        <register type="NOA" address="0x00009888" value="0x04480008" />
> -        <register type="NOA" address="0x00009888" value="0x0A480000" />
> -        <register type="NOA" address="0x00009888" value="0x12480146" />
> -        <register type="NOA" address="0x00009888" value="0x144800C4" />
> -        <register type="NOA" address="0x00009888" value="0x16480042" />
> +        <register type="NOA" address="0x00009888" value="0x1E680014" />
> +        <register type="NOA" address="0x00009888" value="0x04480098" />
> +        <register type="NOA" address="0x00009888" value="0x10480140" />
> +        <register type="NOA" address="0x00009888" value="0x124800C4" />
> +        <register type="NOA" address="0x00009888" value="0x14480042" />
> +        <register type="NOA" address="0x00009888" value="0x164803C0" />
>          <register type="NOA" address="0x00009888" value="0x06480000" />
> -        <register type="NOA" address="0x00009888" value="0x00480000" />
>          <register type="NOA" address="0x00009888" value="0x02480000" />
> -        <register type="NOA" address="0x00009888" value="0x04680008" />
> -        <register type="NOA" address="0x00009888" value="0x0A680180" />
> -        <register type="NOA" address="0x00009888" value="0x0C680105" />
> -        <register type="NOA" address="0x00009888" value="0x0E680083" />
> -        <register type="NOA" address="0x00009888" value="0x10680001" />
> +        <register type="NOA" address="0x00009888" value="0x04680098" />
> +        <register type="NOA" address="0x00009888" value="0x0A680105" />
> +        <register type="NOA" address="0x00009888" value="0x0C680083" />
> +        <register type="NOA" address="0x00009888" value="0x0E680001" />
> +        <register type="NOA" address="0x00009888" value="0x1068000F" />
>          <register type="NOA" address="0x00009888" value="0x06680000" />
>          <register type="NOA" address="0x00009888" value="0x00680000" />
>          <register type="NOA" address="0x00009888" value="0x02680000" />
>          <register type="NOA" address="0x00009884" value="0x00000004" />
> -        <register type="NOA" address="0x00009888" value="0x00010030" />
> -        <register type="NOA" address="0x00009888" value="0x0201FFF0" />
> -        <register type="NOA" address="0x00009888" value="0x000A0020" />
> -        <register type="NOA" address="0x00009888" value="0x020AAAA0" />
> +        <register type="NOA" address="0x00009888" value="0x0201FFFC" />
> +        <register type="NOA" address="0x00009888" value="0x020AAAA8" />
>          <register type="NOA" address="0x00009884" value="0x00000008" />
> -        <register type="NOA" address="0x00009888" value="0x0002FFE0" />
> -        <register type="NOA" address="0x00009888" value="0x0202AAAF" />
> +        <register type="NOA" address="0x00009888" value="0x0002FFF0" />
> +        <register type="NOA" address="0x00009888" value="0x0202AAAB" />
>          <register type="NOA" address="0x00009884" value="0x00000000" />
>          <register type="NOA" address="0x00009888" value="0x0002FFFC" />
>          <register type="NOA" address="0x00009888" value="0x00015550" />
> @@ -45797,12 +46011,12 @@
>          <register type="NOA" address="0x00009888" value="0x0003AAA0" />
>          <register type="NOA" address="0x00009888" value="0x0203AAAA" />
>          <register type="NOA" address="0x00009888" value="0x56010000" />
> -        <register type="NOA" address="0x00009888" value="0x58010400" />
> +        <register type="NOA" address="0x00009888" value="0x58010402" />
>          <register type="NOA" address="0x00009888" value="0x5A010020" />
>          <register type="NOA" address="0x00009888" value="0x5C010402" />
>          <register type="NOA" address="0x00009888" value="0x5E010020" />
>          <register type="NOA" address="0x00009888" value="0x06010000" />
> -        <register type="NOA" address="0x00009888" value="0x60010402" />
> +        <register type="NOA" address="0x00009888" value="0x60010002" />
>          <register type="NOA" address="0x00009888" value="0x4E010000" />
>          <register type="NOA" address="0x00009888" value="0x50010000" />
>          <register type="NOA" address="0x00009888" value="0x52010000" />
> @@ -45827,6 +46041,7 @@
>         symbol_name="Ext512"
>         underscore_name="ext512"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="68581669-8e57-4ff9-bb70-71a99f8454c8"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -45876,7 +46091,7 @@
>               data_type="uint64"
>               units="bytes"
>               semantic_type="throughput"
> -             equation="C 7 READ 2 C 6 READ UMUL UADD 4 C 5 READ UMUL UADD 8 C 4 READ UMUL UADD 16 C 3 READ UMUL UADD 32 C 2 READ UMUL UADD 64 C 1 READ UMUL UADD"
> +             equation="B 2 READ 2 C 7 READ UMUL UADD 4 C 6 READ UMUL UADD 8 C 5 READ UMUL UADD 16 C 4 READ UMUL UADD 32 C 3 READ UMUL UADD 64 C 2 READ UMUL UADD"
>               availability="$GtSlice1XeCore0"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -45890,7 +46105,7 @@
>               data_type="uint64"
>               units="bytes"
>               semantic_type="throughput"
> -             equation="C 0 READ 2 B 7 READ UMUL UADD 4 B 6 READ UMUL UADD 8 B 5 READ UMUL UADD 16 B 4 READ UMUL UADD 32 B 3 READ UMUL UADD 64 B 2 READ UMUL UADD"
> +             equation="B 3 READ 2 C 1 READ UMUL UADD 4 C 0 READ UMUL UADD 8 B 7 READ UMUL UADD 16 B 6 READ UMUL UADD 32 B 5 READ UMUL UADD 64 B 4 READ UMUL UADD"
>               availability="$GtSlice1XeCore1"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -45900,20 +46115,21 @@
>      <register_config type="NOA">
>          <register type="NOA" address="0x00000D04" value="0x00000200" />
>          <register type="NOA" address="0x00009884" value="0x0000000C" />
> -        <register type="NOA" address="0x00009888" value="0x18880295" />
> -        <register type="NOA" address="0x00009888" value="0x18A80295" />
> +        <register type="NOA" address="0x00009888" value="0x188802B4" />
> +        <register type="NOA" address="0x00009888" value="0x18A802B4" />
>          <register type="NOA" address="0x00009888" value="0x04880010" />
> -        <register type="NOA" address="0x00009888" value="0x10880180" />
> -        <register type="NOA" address="0x00009888" value="0x12880105" />
> -        <register type="NOA" address="0x00009888" value="0x14880083" />
> -        <register type="NOA" address="0x00009888" value="0x168803C1" />
> +        <register type="NOA" address="0x00009888" value="0x0A880007" />
> +        <register type="NOA" address="0x00009888" value="0x1288030D" />
> +        <register type="NOA" address="0x00009888" value="0x1488028B" />
> +        <register type="NOA" address="0x00009888" value="0x16880209" />
>          <register type="NOA" address="0x00009888" value="0x06880000" />
> +        <register type="NOA" address="0x00009888" value="0x00880000" />
>          <register type="NOA" address="0x00009888" value="0x02880000" />
>          <register type="NOA" address="0x00009888" value="0x04A80010" />
> -        <register type="NOA" address="0x00009888" value="0x0AA80146" />
> -        <register type="NOA" address="0x00009888" value="0x0CA800C4" />
> -        <register type="NOA" address="0x00009888" value="0x0EA80042" />
> -        <register type="NOA" address="0x00009888" value="0x10A8000F" />
> +        <register type="NOA" address="0x00009888" value="0x0AA801C0" />
> +        <register type="NOA" address="0x00009888" value="0x0CA8030D" />
> +        <register type="NOA" address="0x00009888" value="0x0EA8028B" />
> +        <register type="NOA" address="0x00009888" value="0x10A80209" />
>          <register type="NOA" address="0x00009888" value="0x06A80000" />
>          <register type="NOA" address="0x00009888" value="0x00A80000" />
>          <register type="NOA" address="0x00009888" value="0x02A80000" />
> @@ -45923,8 +46139,8 @@
>          <register type="NOA" address="0x00009888" value="0x00245550" />
>          <register type="NOA" address="0x00009888" value="0x02245555" />
>          <register type="NOA" address="0x00009888" value="0x002BFFFC" />
> -        <register type="NOA" address="0x00009888" value="0x0029FFF0" />
> -        <register type="NOA" address="0x00009888" value="0x0229AAAB" />
> +        <register type="NOA" address="0x00009888" value="0x0029FFE0" />
> +        <register type="NOA" address="0x00009888" value="0x0229AAAF" />
>          <register type="NOA" address="0x00009888" value="0x002AAAA0" />
>          <register type="NOA" address="0x00009888" value="0x022AAAAA" />
>          <register type="NOA" address="0x00009884" value="0x00000008" />
> @@ -45969,6 +46185,7 @@
>         symbol_name="Ext513"
>         underscore_name="ext513"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="1b49d31f-4d7c-4dd7-ad31-030ccb59649e"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -46043,19 +46260,21 @@
>          <register type="NOA" address="0x00000D04" value="0x00000200" />
>          <register type="NOA" address="0x00009884" value="0x0000000C" />
>          <register type="NOA" address="0x00009888" value="0x1C885400" />
> +        <register type="NOA" address="0x00009888" value="0x1E880014" />
>          <register type="NOA" address="0x00009888" value="0x1CA85400" />
> -        <register type="NOA" address="0x00009888" value="0x04880008" />
> -        <register type="NOA" address="0x00009888" value="0x10880180" />
> -        <register type="NOA" address="0x00009888" value="0x12880105" />
> -        <register type="NOA" address="0x00009888" value="0x14880083" />
> -        <register type="NOA" address="0x00009888" value="0x16880001" />
> +        <register type="NOA" address="0x00009888" value="0x1EA80014" />
> +        <register type="NOA" address="0x00009888" value="0x04880098" />
> +        <register type="NOA" address="0x00009888" value="0x10880140" />
> +        <register type="NOA" address="0x00009888" value="0x128800C4" />
> +        <register type="NOA" address="0x00009888" value="0x14880042" />
> +        <register type="NOA" address="0x00009888" value="0x168803C0" />
>          <register type="NOA" address="0x00009888" value="0x06880000" />
>          <register type="NOA" address="0x00009888" value="0x02880000" />
> -        <register type="NOA" address="0x00009888" value="0x04A80008" />
> -        <register type="NOA" address="0x00009888" value="0x0AA80146" />
> -        <register type="NOA" address="0x00009888" value="0x0CA800C4" />
> -        <register type="NOA" address="0x00009888" value="0x0EA80042" />
> -        <register type="NOA" address="0x00009888" value="0x10A80000" />
> +        <register type="NOA" address="0x00009888" value="0x04A80098" />
> +        <register type="NOA" address="0x00009888" value="0x0AA80105" />
> +        <register type="NOA" address="0x00009888" value="0x0CA80083" />
> +        <register type="NOA" address="0x00009888" value="0x0EA80001" />
> +        <register type="NOA" address="0x00009888" value="0x10A8000F" />
>          <register type="NOA" address="0x00009888" value="0x06A80000" />
>          <register type="NOA" address="0x00009888" value="0x00A80000" />
>          <register type="NOA" address="0x00009888" value="0x02A80000" />
> @@ -46111,6 +46330,7 @@
>         symbol_name="Ext514"
>         underscore_name="ext514"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="1b0ce68b-c301-4d05-8659-85fad0825057"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -46160,7 +46380,7 @@
>               data_type="uint64"
>               units="bytes"
>               semantic_type="throughput"
> -             equation="C 7 READ 2 C 6 READ UMUL UADD 4 C 5 READ UMUL UADD 8 C 4 READ UMUL UADD 16 C 3 READ UMUL UADD 32 C 2 READ UMUL UADD 64 C 1 READ UMUL UADD"
> +             equation="B 2 READ 2 C 7 READ UMUL UADD 4 C 6 READ UMUL UADD 8 C 5 READ UMUL UADD 16 C 4 READ UMUL UADD 32 C 3 READ UMUL UADD 64 C 2 READ UMUL UADD"
>               availability="$GtSlice1XeCore2"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -46174,7 +46394,7 @@
>               data_type="uint64"
>               units="bytes"
>               semantic_type="throughput"
> -             equation="C 0 READ 2 B 7 READ UMUL UADD 4 B 6 READ UMUL UADD 8 B 5 READ UMUL UADD 16 B 4 READ UMUL UADD 32 B 3 READ UMUL UADD 64 B 2 READ UMUL UADD"
> +             equation="B 3 READ 2 C 1 READ UMUL UADD 4 C 0 READ UMUL UADD 8 B 7 READ UMUL UADD 16 B 6 READ UMUL UADD 32 B 5 READ UMUL UADD 64 B 4 READ UMUL UADD"
>               availability="$GtSlice1XeCore3"
>               mdapi_group="GPU"
>               mdapi_usage_flags="Frame Batch Draw"
> @@ -46184,29 +46404,32 @@
>      <register_config type="NOA">
>          <register type="NOA" address="0x00000D04" value="0x00000200" />
>          <register type="NOA" address="0x00009884" value="0x0000000C" />
> -        <register type="NOA" address="0x00009888" value="0x18C80295" />
> -        <register type="NOA" address="0x00009888" value="0x18E80295" />
> +        <register type="NOA" address="0x00009888" value="0x18C802B4" />
> +        <register type="NOA" address="0x00009888" value="0x18E802B4" />
>          <register type="NOA" address="0x00009888" value="0x04C80010" />
> -        <register type="NOA" address="0x00009888" value="0x10C80180" />
> -        <register type="NOA" address="0x00009888" value="0x12C80105" />
> -        <register type="NOA" address="0x00009888" value="0x14C80083" />
> -        <register type="NOA" address="0x00009888" value="0x16C803C1" />
> +        <register type="NOA" address="0x00009888" value="0x0AC80007" />
> +        <register type="NOA" address="0x00009888" value="0x12C8030D" />
> +        <register type="NOA" address="0x00009888" value="0x14C8028B" />
> +        <register type="NOA" address="0x00009888" value="0x16C80209" />
>          <register type="NOA" address="0x00009888" value="0x06C80000" />
> +        <register type="NOA" address="0x00009888" value="0x00C80000" />
>          <register type="NOA" address="0x00009888" value="0x02C80000" />
>          <register type="NOA" address="0x00009888" value="0x04E80010" />
> -        <register type="NOA" address="0x00009888" value="0x0AE80146" />
> -        <register type="NOA" address="0x00009888" value="0x0CE800C4" />
> -        <register type="NOA" address="0x00009888" value="0x0EE80042" />
> -        <register type="NOA" address="0x00009888" value="0x10E8000F" />
> +        <register type="NOA" address="0x00009888" value="0x0AE801C0" />
> +        <register type="NOA" address="0x00009888" value="0x0CE8030D" />
> +        <register type="NOA" address="0x00009888" value="0x0EE8028B" />
> +        <register type="NOA" address="0x00009888" value="0x10E80209" />
>          <register type="NOA" address="0x00009888" value="0x06E80000" />
>          <register type="NOA" address="0x00009888" value="0x00E80000" />
>          <register type="NOA" address="0x00009888" value="0x02E80000" />
>          <register type="NOA" address="0x00009884" value="0x00000004" />
> -        <register type="NOA" address="0x00009888" value="0x0221FFFC" />
> -        <register type="NOA" address="0x00009888" value="0x022AAAA8" />
> +        <register type="NOA" address="0x00009888" value="0x00210030" />
> +        <register type="NOA" address="0x00009888" value="0x0221FFF0" />
> +        <register type="NOA" address="0x00009888" value="0x002A0020" />
> +        <register type="NOA" address="0x00009888" value="0x022AAAA0" />
>          <register type="NOA" address="0x00009884" value="0x00000008" />
> -        <register type="NOA" address="0x00009888" value="0x0082FFF0" />
> -        <register type="NOA" address="0x00009888" value="0x0282AAAB" />
> +        <register type="NOA" address="0x00009888" value="0x0082FFE0" />
> +        <register type="NOA" address="0x00009888" value="0x0282AAAF" />
>          <register type="NOA" address="0x00009884" value="0x00000000" />
>          <register type="NOA" address="0x00009888" value="0x0005FFFC" />
>          <register type="NOA" address="0x00009888" value="0x0002FFFC" />
> @@ -46216,12 +46439,12 @@
>          <register type="NOA" address="0x00009888" value="0x02035555" />
>          <register type="NOA" address="0x00009888" value="0x0004FFFC" />
>          <register type="NOA" address="0x00009888" value="0x56010000" />
> -        <register type="NOA" address="0x00009888" value="0x58010402" />
> +        <register type="NOA" address="0x00009888" value="0x58010400" />
>          <register type="NOA" address="0x00009888" value="0x5A010020" />
>          <register type="NOA" address="0x00009888" value="0x5C010402" />
>          <register type="NOA" address="0x00009888" value="0x5E010020" />
>          <register type="NOA" address="0x00009888" value="0x06010000" />
> -        <register type="NOA" address="0x00009888" value="0x60010002" />
> +        <register type="NOA" address="0x00009888" value="0x60010402" />
>          <register type="NOA" address="0x00009888" value="0x4E010000" />
>          <register type="NOA" address="0x00009888" value="0x50010000" />
>          <register type="NOA" address="0x00009888" value="0x52010000" />
> @@ -46246,6 +46469,7 @@
>         symbol_name="Ext515"
>         underscore_name="ext515"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="fde32e67-1a87-4946-bf96-c1ff68105749"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -46320,19 +46544,21 @@
>          <register type="NOA" address="0x00000D04" value="0x00000200" />
>          <register type="NOA" address="0x00009884" value="0x0000000C" />
>          <register type="NOA" address="0x00009888" value="0x1CC85400" />
> +        <register type="NOA" address="0x00009888" value="0x1EC80014" />
>          <register type="NOA" address="0x00009888" value="0x1CE85400" />
> -        <register type="NOA" address="0x00009888" value="0x04C80008" />
> -        <register type="NOA" address="0x00009888" value="0x10C80180" />
> -        <register type="NOA" address="0x00009888" value="0x12C80105" />
> -        <register type="NOA" address="0x00009888" value="0x14C80083" />
> -        <register type="NOA" address="0x00009888" value="0x16C80001" />
> +        <register type="NOA" address="0x00009888" value="0x1EE80014" />
> +        <register type="NOA" address="0x00009888" value="0x04C80098" />
> +        <register type="NOA" address="0x00009888" value="0x10C80140" />
> +        <register type="NOA" address="0x00009888" value="0x12C800C4" />
> +        <register type="NOA" address="0x00009888" value="0x14C80042" />
> +        <register type="NOA" address="0x00009888" value="0x16C803C0" />
>          <register type="NOA" address="0x00009888" value="0x06C80000" />
>          <register type="NOA" address="0x00009888" value="0x02C80000" />
> -        <register type="NOA" address="0x00009888" value="0x04E80008" />
> -        <register type="NOA" address="0x00009888" value="0x0AE80146" />
> -        <register type="NOA" address="0x00009888" value="0x0CE800C4" />
> -        <register type="NOA" address="0x00009888" value="0x0EE80042" />
> -        <register type="NOA" address="0x00009888" value="0x10E80000" />
> +        <register type="NOA" address="0x00009888" value="0x04E80098" />
> +        <register type="NOA" address="0x00009888" value="0x0AE80105" />
> +        <register type="NOA" address="0x00009888" value="0x0CE80083" />
> +        <register type="NOA" address="0x00009888" value="0x0EE80001" />
> +        <register type="NOA" address="0x00009888" value="0x10E8000F" />
>          <register type="NOA" address="0x00009888" value="0x06E80000" />
>          <register type="NOA" address="0x00009888" value="0x00E80000" />
>          <register type="NOA" address="0x00009888" value="0x02E80000" />
> @@ -46381,6 +46607,7 @@
>         symbol_name="Ext516"
>         underscore_name="ext516"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="bf950c5b-7250-47f4-aa59-d97b22db02ff"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -46519,6 +46746,7 @@
>         symbol_name="Ext517"
>         underscore_name="ext517"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="9027ff05-4348-4061-a434-0befaba7c379"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -46657,6 +46885,7 @@
>         symbol_name="Ext518"
>         underscore_name="ext518"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="6ad0dee9-17bf-4b54-8b70-e30afcc8710b"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -46795,6 +47024,7 @@
>         symbol_name="Ext519"
>         underscore_name="ext519"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="2c2ecec8-7f33-475c-9ca4-a7e89f949f58"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -46933,6 +47163,7 @@
>         symbol_name="Ext520"
>         underscore_name="ext520"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="d866e2a8-310e-4691-9edc-f7263b8d5c07"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -47066,6 +47297,7 @@
>         symbol_name="Ext521"
>         underscore_name="ext521"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="e5a95c15-d54f-4d4f-bbe2-533240392df3"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -47199,6 +47431,7 @@
>         symbol_name="Ext522"
>         underscore_name="ext522"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="bba76095-18aa-447d-9a79-00461a06f233"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -47327,6 +47560,7 @@
>         symbol_name="Ext523"
>         underscore_name="ext523"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="724a5073-2463-4f7f-aecb-7cdd90c831e1"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -47455,6 +47689,7 @@
>         symbol_name="Ext524"
>         underscore_name="ext524"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="3b94a07f-e4d8-4cf2-969e-ea19bb253a8c"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -47595,6 +47830,7 @@
>         symbol_name="Ext525"
>         underscore_name="ext525"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="f4399df4-e808-4a0a-85ff-0c66f9c9e8a4"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -47735,6 +47971,7 @@
>         symbol_name="Ext526"
>         underscore_name="ext526"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="f588aa78-c29a-4187-9818-480b12d5b076"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -47875,6 +48112,7 @@
>         symbol_name="Ext527"
>         underscore_name="ext527"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="c0a38cc9-f0e9-40f5-9c1e-a4d7eba30825"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -48015,6 +48253,7 @@
>         symbol_name="Ext528"
>         underscore_name="ext528"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="1cb1d3ff-ff5d-4c9b-84c9-89b9d235be36"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -48150,6 +48389,7 @@
>         symbol_name="Ext529"
>         underscore_name="ext529"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="4491913e-99ed-4420-9575-75ab7a82c45d"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -48285,6 +48525,7 @@
>         symbol_name="Ext530"
>         underscore_name="ext530"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="4fe2fe09-1ef2-45ff-87f5-e789f8405713"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -48415,6 +48656,7 @@
>         symbol_name="Ext531"
>         underscore_name="ext531"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="856f213d-954d-4b0a-be6c-307b41d39b18"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -48545,6 +48787,7 @@
>         symbol_name="Ext540"
>         underscore_name="ext540"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="03eb9c9b-72ee-4c7b-930b-6211dbb60503"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -48681,6 +48924,7 @@
>         symbol_name="Ext541"
>         underscore_name="ext541"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="e3bef1e9-f563-4927-9ce8-1be6e151448c"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -48817,6 +49061,7 @@
>         symbol_name="Ext542"
>         underscore_name="ext542"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="de587fdf-1740-4816-a5c0-08c1cb6b43eb"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -48948,6 +49193,7 @@
>         symbol_name="Ext543"
>         underscore_name="ext543"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="cea536f3-f7ef-449c-91fe-42c721e54b52"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -49074,6 +49320,7 @@
>         symbol_name="Ext544"
>         underscore_name="ext544"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="c3586bbc-f20b-4ffc-bd62-21ea68c161f4"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -49212,6 +49459,7 @@
>         symbol_name="Ext545"
>         underscore_name="ext545"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="f3d6345a-b760-4433-844e-e35204b44e09"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -49350,6 +49598,7 @@
>         symbol_name="Ext546"
>         underscore_name="ext546"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="f5448b6d-cb2a-4aad-804e-b1a285299582"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -49483,6 +49732,7 @@
>         symbol_name="Ext547"
>         underscore_name="ext547"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="7b8b6c53-abff-4570-b413-91cc843181d8"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -49611,6 +49861,7 @@
>         symbol_name="Ext604"
>         underscore_name="ext604"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="b83befed-d2db-4806-907c-3f952798e117"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -49996,6 +50247,7 @@
>         symbol_name="Ext1000"
>         underscore_name="ext1000"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="0d368afb-b8fd-425d-a704-9a45eaaaed3d"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -50342,6 +50594,7 @@
>         symbol_name="Ext1001"
>         underscore_name="ext1001"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="08bee982-b34c-49c1-bf0c-93c1949ffbe7"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -50745,6 +50998,7 @@
>         symbol_name="Ext1002"
>         underscore_name="ext1002"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="845617a9-5a17-4f1f-9a6f-61ff844065e4"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -51063,6 +51317,7 @@
>         symbol_name="Ext1003"
>         underscore_name="ext1003"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="24e3b1a8-b80e-4c8c-ab21-83640d78f896"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -51410,6 +51665,7 @@
>         symbol_name="Ext1004"
>         underscore_name="ext1004"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="974d6469-d51f-4e4a-a393-32033f9b562e"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -51757,6 +52013,7 @@
>         symbol_name="Ext1005"
>         underscore_name="ext1005"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="c172fb87-e53f-468d-893a-d8528684accc"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -52160,6 +52417,7 @@
>         symbol_name="Ext1006"
>         underscore_name="ext1006"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="f739508f-51b2-48df-839c-e92c14d14c64"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -52506,6 +52764,7 @@
>         symbol_name="Ext1007"
>         underscore_name="ext1007"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="926b1773-807e-4ee5-8561-30c9eb0a6344"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -52795,6 +53054,7 @@
>         symbol_name="Ext1010"
>         underscore_name="ext1010"
>         mdapi_supported_apis="VK OGL OCL IO"
> +       oa_format="256B_GENERIC_NOA16"
>         hw_config_guid="82f69b49-772a-4169-bf9a-b1ef08e0823b"
>         >
>      <counter name="GPU Time Elapsed"
> @@ -52914,4 +53174,656 @@
>      </register_config>
>    </set>
>  
> +  <set name="MediaSet1"
> +       chipset="MTLGT3"
> +       symbol_name="MediaSet1"
> +       underscore_name="media_set1"
> +       mdapi_supported_apis="IO"
> +       oa_format="128B_MPEC8_NOA16"
> +       hw_config_guid="4d9b2817-19b9-4461-a54b-dc9fdb7d69cb"
> +       >
> +    <counter name="GPU Time Elapsed"
> +             symbol_name="GpuTime"
> +             underscore_name="gpu_time"
> +             description="GPU Time Elapsed"
> +             data_type="uint64"
> +             units="ns"
> +             semantic_type="event"
> +             equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Overview System Batch"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="GPU Core Clocks"
> +             symbol_name="GpuCoreClocks"
> +             underscore_name="gpu_core_clocks"
> +             description="The total number of GPU core clocks elapsed during the measurement."
> +             data_type="uint64"
> +             units="cycles"
> +             semantic_type="event"
> +             equation="GPU_CLOCK 0 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="AVG GPU Core Frequency"
> +             symbol_name="AvgGpuCoreFrequency"
> +             underscore_name="avg_gpu_core_frequency"
> +             description="Average GPU Core Frequency in the measurement."
> +             data_type="uint64"
> +             max_equation="$GpuMaxFrequency"
> +             units="hz"
> +             semantic_type="event"
> +             equation="$GpuCoreClocks 1000000000 UMUL $GpuTime UDIV"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="VIDEO_DECODE_BOX0_READ_REQUEST"
> +             symbol_name="VIDEO_DECODE_BOX0_READ_REQUEST"
> +             underscore_name="video_decode_box0_read_request"
> +             description="Number of VDBOX0 read requests"
> +             data_type="uint64"
> +             units="messages"
> +             semantic_type="event"
> +             equation="A 0 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="VIDEO_DECODE_BOX0_WRITE_REQUEST"
> +             symbol_name="VIDEO_DECODE_BOX0_WRITE_REQUEST"
> +             underscore_name="video_decode_box0_write_request"
> +             description="Number of VDBOX0 write requests"
> +             data_type="uint64"
> +             units="messages"
> +             semantic_type="event"
> +             equation="A 1 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="VIDEO_DECODE_BOX1_READ_REQUEST"
> +             symbol_name="VIDEO_DECODE_BOX1_READ_REQUEST"
> +             underscore_name="video_decode_box1_read_request"
> +             description="Number of VDBOX1 read requests"
> +             data_type="uint64"
> +             units="messages"
> +             semantic_type="event"
> +             equation="A 2 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="VIDEO_DECODE_BOX1_WRITE_REQUEST"
> +             symbol_name="VIDEO_DECODE_BOX1_WRITE_REQUEST"
> +             underscore_name="video_decode_box1_write_request"
> +             description="Number of VDBOX1 write requests"
> +             data_type="uint64"
> +             units="messages"
> +             semantic_type="event"
> +             equation="A 3 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="VIDEO_ENHANCEMENT_BOX0_READ_REQUEST"
> +             symbol_name="VIDEO_ENHANCEMENT_BOX0_READ_REQUEST"
> +             underscore_name="video_enhancement_box0_read_request"
> +             description="Number of VEBOX0 read requests"
> +             data_type="uint64"
> +             units="messages"
> +             semantic_type="event"
> +             equation="A 4 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="VIDEO_ENHANCEMENT_BOX0_WRITE_REQUEST"
> +             symbol_name="VIDEO_ENHANCEMENT_BOX0_WRITE_REQUEST"
> +             underscore_name="video_enhancement_box0_write_request"
> +             description="Number of VEBOX0 write requests"
> +             data_type="uint64"
> +             units="messages"
> +             semantic_type="event"
> +             equation="A 5 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="VIDEO_ENHANCEMENT_BOX1_READ_REQUEST"
> +             symbol_name="VIDEO_ENHANCEMENT_BOX1_READ_REQUEST"
> +             underscore_name="video_enhancement_box1_read_request"
> +             description="Number of VEBOX1 read requests"
> +             data_type="uint64"
> +             units="messages"
> +             semantic_type="event"
> +             equation="A 6 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="VIDEO_ENHANCEMENT_BOX1_WRITE_REQUEST"
> +             symbol_name="VIDEO_ENHANCEMENT_BOX1_WRITE_REQUEST"
> +             underscore_name="video_enhancement_box1_write_request"
> +             description="Number of VEBOX1 write requests"
> +             data_type="uint64"
> +             units="messages"
> +             semantic_type="event"
> +             equation="A 7 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <register_config type="OA">
> +        <register type="OA" address="0x00393200" value="0x00000201" />
> +        <register type="OA" address="0x00393204" value="0x00000000" />
> +        <register type="OA" address="0x00393208" value="0x00000202" />
> +        <register type="OA" address="0x0039320C" value="0x00000000" />
> +        <register type="OA" address="0x00393210" value="0x00000401" />
> +        <register type="OA" address="0x00393214" value="0x00000000" />
> +        <register type="OA" address="0x00393218" value="0x00000402" />
> +        <register type="OA" address="0x0039321C" value="0x00000000" />
> +        <register type="OA" address="0x00393220" value="0x00002201" />
> +        <register type="OA" address="0x00393224" value="0x00000000" />
> +        <register type="OA" address="0x00393228" value="0x00002202" />
> +        <register type="OA" address="0x0039322C" value="0x00000000" />
> +        <register type="OA" address="0x00393230" value="0x00002401" />
> +        <register type="OA" address="0x00393234" value="0x00000000" />
> +        <register type="OA" address="0x00393238" value="0x00002402" />
> +        <register type="OA" address="0x0039323C" value="0x00000000" />
> +        <register type="OA" address="0x00393034" value="0x00000000" />
> +    </register_config>
> +  </set>
> +
> +  <set name="MediaSet2"
> +       chipset="MTLGT3"
> +       symbol_name="MediaSet2"
> +       underscore_name="media_set2"
> +       mdapi_supported_apis="IO"
> +       oa_format="128B_MPEC8_NOA16"
> +       hw_config_guid="651a6694-0ac1-4bd5-a4a1-94bcf479d4f4"
> +       >
> +    <counter name="GPU Time Elapsed"
> +             symbol_name="GpuTime"
> +             underscore_name="gpu_time"
> +             description="GPU Time Elapsed"
> +             data_type="uint64"
> +             units="ns"
> +             semantic_type="event"
> +             equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Overview System Batch"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="GPU Core Clocks"
> +             symbol_name="GpuCoreClocks"
> +             underscore_name="gpu_core_clocks"
> +             description="The total number of GPU core clocks elapsed during the measurement."
> +             data_type="uint64"
> +             units="cycles"
> +             semantic_type="event"
> +             equation="GPU_CLOCK 0 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="AVG GPU Core Frequency"
> +             symbol_name="AvgGpuCoreFrequency"
> +             underscore_name="avg_gpu_core_frequency"
> +             description="Average GPU Core Frequency in the measurement."
> +             data_type="uint64"
> +             max_equation="$GpuMaxFrequency"
> +             units="hz"
> +             semantic_type="event"
> +             equation="$GpuCoreClocks 1000000000 UMUL $GpuTime UDIV"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="MEDIA_READ_REQUEST"
> +             symbol_name="MEDIA_READ_REQUEST"
> +             underscore_name="media_read_request"
> +             description="Number of read requests from stand alone media "
> +             data_type="uint64"
> +             units="messages"
> +             semantic_type="event"
> +             equation="A 0 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="MEDIA_WRITE_REQUEST"
> +             symbol_name="MEDIA_WRITE_REQUEST"
> +             underscore_name="media_write_request"
> +             description="Number of write requests from stand alone media "
> +             data_type="uint64"
> +             units="messages"
> +             semantic_type="event"
> +             equation="A 1 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="COMMAND PARSER VIDEO DECODE_ENGINE0 BUSY"
> +             symbol_name="COMMAND_PARSER_VIDEO_DECODE_ENGINE0_BUSY"
> +             underscore_name="command_parser_video_decode_engine0_busy"
> +             description="Percentage of time in which there is a context loaded and active on the media VDBOX0"
> +             data_type="float"
> +             max_equation="100"
> +             units="percent"
> +             semantic_type="duration"
> +             equation="A 2 READ 100 UMUL $GpuCoreClocks FDIV"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="COMMAND_PARSER_VIDEO_DECODE_ENGINE1_BUSY"
> +             symbol_name="COMMAND_PARSER_VIDEO_DECODE_ENGINE1_BUSY"
> +             underscore_name="command_parser_video_decode_engine1_busy"
> +             description="Percentage of time in which there is a context loaded and active on the media VDBOX1"
> +             data_type="float"
> +             max_equation="100"
> +             units="percent"
> +             semantic_type="duration"
> +             equation="A 3 READ 100 UMUL $GpuCoreClocks FDIV"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="COMMAND_PARSER_VIDEO_ENHANCEMENT_ENGINE0_BUSY"
> +             symbol_name="COMMAND_PARSER_VIDEO_ENHANCEMENT_ENGINE0_BUSY"
> +             underscore_name="command_parser_video_enhancement_engine0_busy"
> +             description="Percentage of time in which there is a context loaded and active on the media VEBOX0"
> +             data_type="float"
> +             max_equation="100"
> +             units="percent"
> +             semantic_type="duration"
> +             equation="A 4 READ 100 UMUL $GpuCoreClocks FDIV"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="COMMAND_PARSER_VIDEO_ENHANCEMENT_ENGINE1_BUSY"
> +             symbol_name="COMMAND_PARSER_VIDEO_ENHANCEMENT_ENGINE1_BUSY"
> +             underscore_name="command_parser_video_enhancement_engine1_busy"
> +             description="Percentage of time in which there is a context loaded and active on the media VEBOX0"
> +             data_type="float"
> +             max_equation="100"
> +             units="percent"
> +             semantic_type="duration"
> +             equation="A 5 READ 100 UMUL $GpuCoreClocks FDIV"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="COMMAND_PARSER_GRAPHICS_SECURITY_CONTROLLER_BUSY"
> +             symbol_name="COMMAND_PARSER_GRAPHICS_SECURITY_CONTROLLER_BUSY"
> +             underscore_name="command_parser_graphics_security_controller_busy"
> +             description="Percentage of time in which Graphics Security Controller is active."
> +             data_type="float"
> +             max_equation="100"
> +             units="percent"
> +             semantic_type="duration"
> +             equation="A 6 READ 100 UMUL $GpuCoreClocks FDIV"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <register_config type="OA">
> +        <register type="OA" address="0x00393200" value="0x00000001" />
> +        <register type="OA" address="0x00393204" value="0x00000000" />
> +        <register type="OA" address="0x00393208" value="0x00000002" />
> +        <register type="OA" address="0x0039320C" value="0x00000000" />
> +        <register type="OA" address="0x00393210" value="0x00000200" />
> +        <register type="OA" address="0x00393214" value="0x00000000" />
> +        <register type="OA" address="0x00393218" value="0x00000400" />
> +        <register type="OA" address="0x0039321C" value="0x00000000" />
> +        <register type="OA" address="0x00393220" value="0x00002200" />
> +        <register type="OA" address="0x00393224" value="0x00000000" />
> +        <register type="OA" address="0x00393228" value="0x00002400" />
> +        <register type="OA" address="0x0039322C" value="0x00000000" />
> +        <register type="OA" address="0x00393230" value="0x00000003" />
> +        <register type="OA" address="0x00393234" value="0x00000000" />
> +        <register type="OA" address="0x00393034" value="0x00000000" />
> +    </register_config>
> +  </set>
> +
> +  <set name="TestOam"
> +       chipset="MTLGT3"
> +       symbol_name="TestOam"
> +       underscore_name="test_oam"
> +       mdapi_supported_apis="IO"
> +       oa_format="128B_MPEC8_NOA16"
> +       hw_config_guid="bac01106-5869-489c-a306-67303a434173"
> +       >
> +    <counter name="GPU Time Elapsed"
> +             symbol_name="GpuTime"
> +             underscore_name="gpu_time"
> +             description="GPU Time Elapsed"
> +             data_type="uint64"
> +             units="ns"
> +             semantic_type="event"
> +             equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Overview System Batch"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="GPU Core Clocks"
> +             symbol_name="GpuCoreClocks"
> +             underscore_name="gpu_core_clocks"
> +             description="The total number of GPU core clocks elapsed during the measurement."
> +             data_type="uint64"
> +             units="cycles"
> +             semantic_type="event"
> +             equation="GPU_CLOCK 0 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="AVG GPU Core Frequency"
> +             symbol_name="AvgGpuCoreFrequency"
> +             underscore_name="avg_gpu_core_frequency"
> +             description="Average GPU Core Frequency in the measurement."
> +             data_type="uint64"
> +             max_equation="$GpuMaxFrequency"
> +             units="hz"
> +             semantic_type="event"
> +             equation="$GpuCoreClocks 1000000000 UMUL $GpuTime UDIV"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="TestCounter0"
> +             symbol_name="Counter0"
> +             underscore_name="counter0"
> +             description="HW test counter 0. Factor: 0.0"
> +             data_type="uint64"
> +             units="events"
> +             semantic_type="event"
> +             equation="B 0 READ"
> +             mdapi_group="Test"
> +             mdapi_usage_flags="Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="TestCounter1"
> +             symbol_name="Counter1"
> +             underscore_name="counter1"
> +             description="HW test counter 1. Factor: 1.0"
> +             data_type="uint64"
> +             units="events"
> +             semantic_type="event"
> +             equation="B 1 READ"
> +             mdapi_group="Test"
> +             mdapi_usage_flags="Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="TestCounter2"
> +             symbol_name="Counter2"
> +             underscore_name="counter2"
> +             description="HW test counter 2. Factor: 1.0"
> +             data_type="uint64"
> +             units="events"
> +             semantic_type="event"
> +             equation="B 2 READ"
> +             mdapi_group="Test"
> +             mdapi_usage_flags="Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="TestCounter3"
> +             symbol_name="Counter3"
> +             underscore_name="counter3"
> +             description="HW test counter 3. Factor: 0.5"
> +             data_type="uint64"
> +             units="events"
> +             semantic_type="event"
> +             equation="B 3 READ"
> +             mdapi_group="Test"
> +             mdapi_usage_flags="Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="TestCounter4"
> +             symbol_name="Counter4"
> +             underscore_name="counter4"
> +             description="HW test counter 4. Factor: 0.3333"
> +             data_type="uint64"
> +             units="events"
> +             semantic_type="event"
> +             equation="B 4 READ"
> +             mdapi_group="Test"
> +             mdapi_usage_flags="Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="TestCounter5"
> +             symbol_name="Counter5"
> +             underscore_name="counter5"
> +             description="HW test counter 5. Factor: 0.3333"
> +             data_type="uint64"
> +             units="events"
> +             semantic_type="event"
> +             equation="B 5 READ"
> +             mdapi_group="Test"
> +             mdapi_usage_flags="Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="TestCounter6"
> +             symbol_name="Counter6"
> +             underscore_name="counter6"
> +             description="HW test counter 6. Factor: 0.16666"
> +             data_type="uint64"
> +             units="events"
> +             semantic_type="event"
> +             equation="B 6 READ"
> +             mdapi_group="Test"
> +             mdapi_usage_flags="Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="TestCounter8"
> +             symbol_name="Counter8"
> +             underscore_name="counter8"
> +             description="TestCounter8"
> +             data_type="uint64"
> +             units="events"
> +             semantic_type="event"
> +             equation="C 0 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="VIDEO_DECODE_BOX0_WRITE_REQUEST_VISA"
> +             symbol_name="VIDEO_DECODE_BOX0_WRITE_REQUEST_VISA"
> +             underscore_name="video_decode_box0_write_request_visa"
> +             description="Number of VDBOX0 write requests"
> +             data_type="uint64"
> +             units="messages"
> +             semantic_type="event"
> +             equation="C 1 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="VIDEO_DECODE_BOX0_READ_REQUEST_VISA"
> +             symbol_name="VIDEO_DECODE_BOX0_READ_REQUEST_VISA"
> +             underscore_name="video_decode_box0_read_request_visa"
> +             description="Number of VDBOX0 read requests"
> +             data_type="uint64"
> +             units="messages"
> +             semantic_type="event"
> +             equation="B 7 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Frame Batch Draw"
> +             mdapi_supported_apis=""
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="VIDEO_DECODE_BOX0_READ_REQUEST_MPEC"
> +             symbol_name="VIDEO_DECODE_BOX0_READ_REQUEST_MPEC"
> +             underscore_name="video_decode_box0_read_request_mpec"
> +             description="Number of VDBOX0 read requests"
> +             data_type="uint64"
> +             units="messages"
> +             semantic_type="event"
> +             equation="A 0 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <counter name="VIDEO_DECODE_BOX0_WRITE_REQUEST_MPEC"
> +             symbol_name="VIDEO_DECODE_BOX0_WRITE_REQUEST_MPEC"
> +             underscore_name="video_decode_box0_write_request_mpec"
> +             description="Number of VDBOX0 write requests"
> +             data_type="uint64"
> +             units="messages"
> +             semantic_type="event"
> +             equation="A 1 READ"
> +             mdapi_group="GPU"
> +             mdapi_usage_flags="Tier1 Frame Batch Draw"
> +             mdapi_supported_apis="IO"
> +             mdapi_hw_unit_type="gpu"
> +             />
> +    <register_config type="NOA">
> +        <register type="NOA" address="0x0038D114" value="0x00000003" />
> +        <register type="NOA" address="0x0038D100" value="0x00000DE0" />
> +        <register type="NOA" address="0x0038D104" value="0x00000001" />
> +        <register type="NOA" address="0x0038D100" value="0x00000DE2" />
> +        <register type="NOA" address="0x0038D104" value="0x00000001" />
> +        <register type="NOA" address="0x0038D100" value="0x000001C0" />
> +        <register type="NOA" address="0x0038D104" value="0x00000001" />
> +        <register type="NOA" address="0x0038D100" value="0x000001C1" />
> +        <register type="NOA" address="0x0038D104" value="0x00000809" />
> +        <register type="NOA" address="0x0038D100" value="0x000001C3" />
> +        <register type="NOA" address="0x0038D104" value="0x00800400" />
> +        <register type="NOA" address="0x0038D100" value="0x000001C4" />
> +        <register type="NOA" address="0x0038D104" value="0x00000000" />
> +        <register type="NOA" address="0x0038D100" value="0x000001C5" />
> +        <register type="NOA" address="0x0038D104" value="0x00000000" />
> +        <register type="NOA" address="0x0038D100" value="0x00000360" />
> +        <register type="NOA" address="0x0038D104" value="0x00000001" />
> +        <register type="NOA" address="0x0038D100" value="0x00000361" />
> +        <register type="NOA" address="0x0038D104" value="0x00001819" />
> +        <register type="NOA" address="0x0038D100" value="0x00000362" />
> +        <register type="NOA" address="0x0038D104" value="0x00001C1D" />
> +        <register type="NOA" address="0x0038D100" value="0x00000363" />
> +        <register type="NOA" address="0x0038D104" value="0x02402006" />
> +        <register type="NOA" address="0x0038D100" value="0x00000364" />
> +        <register type="NOA" address="0x0038D104" value="0x00000000" />
> +        <register type="NOA" address="0x0038D100" value="0x00000365" />
> +        <register type="NOA" address="0x0038D104" value="0x00000000" />
> +        <register type="NOA" address="0x0038D100" value="0x000003A0" />
> +        <register type="NOA" address="0x0038D104" value="0x00000001" />
> +        <register type="NOA" address="0x0038D100" value="0x000003A1" />
> +        <register type="NOA" address="0x0038D104" value="0x00001011" />
> +        <register type="NOA" address="0x0038D100" value="0x000003BB" />
> +        <register type="NOA" address="0x0038D104" value="0x00000001" />
> +        <register type="NOA" address="0x0038D100" value="0x000003BC" />
> +        <register type="NOA" address="0x0038D104" value="0x00000001" />
> +        <register type="NOA" address="0x0038D100" value="0x000004E0" />
> +        <register type="NOA" address="0x0038D104" value="0x00000001" />
> +        <register type="NOA" address="0x0038D100" value="0x000004E1" />
> +        <register type="NOA" address="0x0038D104" value="0x00001819" />
> +        <register type="NOA" address="0x0038D100" value="0x000004E3" />
> +        <register type="NOA" address="0x0038D104" value="0x00000400" />
> +        <register type="NOA" address="0x0038D100" value="0x000004E4" />
> +        <register type="NOA" address="0x0038D104" value="0x00000000" />
> +        <register type="NOA" address="0x0038D100" value="0x000004E5" />
> +        <register type="NOA" address="0x0038D104" value="0x00000000" />
> +        <register type="NOA" address="0x0038D100" value="0x00000420" />
> +        <register type="NOA" address="0x0038D104" value="0x00000001" />
> +        <register type="NOA" address="0x0038D100" value="0x00000421" />
> +        <register type="NOA" address="0x0038D104" value="0x00001A1B" />
> +        <register type="NOA" address="0x0038D100" value="0x00000423" />
> +        <register type="NOA" address="0x0038D104" value="0x00000400" />
> +        <register type="NOA" address="0x0038D100" value="0x00000424" />
> +        <register type="NOA" address="0x0038D104" value="0x00000000" />
> +        <register type="NOA" address="0x0038D100" value="0x00000425" />
> +        <register type="NOA" address="0x0038D104" value="0x00000000" />
> +        <register type="NOA" address="0x0038D100" value="0x00000540" />
> +        <register type="NOA" address="0x0038D104" value="0x00000001" />
> +        <register type="NOA" address="0x0038D100" value="0x00000541" />
> +        <register type="NOA" address="0x0038D104" value="0x00001415" />
> +        <register type="NOA" address="0x0038D100" value="0x00000543" />
> +        <register type="NOA" address="0x0038D104" value="0x00000400" />
> +        <register type="NOA" address="0x0038D100" value="0x00000544" />
> +        <register type="NOA" address="0x0038D104" value="0x00000000" />
> +        <register type="NOA" address="0x0038D100" value="0x00000545" />
> +        <register type="NOA" address="0x0038D104" value="0x00000000" />
> +        <register type="NOA" address="0x0038D100" value="0x00000660" />
> +        <register type="NOA" address="0x0038D104" value="0x00000001" />
> +        <register type="NOA" address="0x0038D100" value="0x00000661" />
> +        <register type="NOA" address="0x0038D104" value="0x00000001" />
> +        <register type="NOA" address="0x0038D100" value="0x00000663" />
> +        <register type="NOA" address="0x0038D104" value="0x00000C02" />
> +        <register type="NOA" address="0x0038D100" value="0x00000664" />
> +        <register type="NOA" address="0x0038D104" value="0x00000000" />
> +        <register type="NOA" address="0x0038D100" value="0x00000665" />
> +        <register type="NOA" address="0x0038D104" value="0x00000000" />
> +        <register type="NOA" address="0x0038D100" value="0x00000669" />
> +        <register type="NOA" address="0x0038D104" value="0x00000001" />
> +        <register type="NOA" address="0x0038D100" value="0x0000066A" />
> +        <register type="NOA" address="0x0038D104" value="0x00000015" />
> +        <register type="NOA" address="0x0038D114" value="0x0000000B" />
> +    </register_config>
> +    <register_config type="OA">
> +        <register type="OA" address="0x00393200" value="0x00000201" />
> +        <register type="OA" address="0x00393204" value="0x00000000" />
> +        <register type="OA" address="0x00393208" value="0x00000202" />
> +        <register type="OA" address="0x0039320C" value="0x00000000" />
> +        <register type="OA" address="0x00393000" value="0x00000000" />
> +        <register type="OA" address="0x00393004" value="0xF0800000" />
> +        <register type="OA" address="0x00393010" value="0x00000000" />
> +        <register type="OA" address="0x00393014" value="0xF0800000" />
> +        <register type="OA" address="0x00393020" value="0x00000000" />
> +        <register type="OA" address="0x00393040" value="0x00000004" />
> +        <register type="OA" address="0x00393044" value="0x0000FFFF" />
> +        <register type="OA" address="0x00393048" value="0x00000003" />
> +        <register type="OA" address="0x0039304C" value="0x0000FFFF" />
> +        <register type="OA" address="0x00393050" value="0x00000007" />
> +        <register type="OA" address="0x00393054" value="0x0000FFFF" />
> +        <register type="OA" address="0x00393058" value="0x00100002" />
> +        <register type="OA" address="0x0039305C" value="0x0000FFF7" />
> +        <register type="OA" address="0x00393060" value="0x00100002" />
> +        <register type="OA" address="0x00393064" value="0x0000FFCF" />
> +        <register type="OA" address="0x00393068" value="0x00100082" />
> +        <register type="OA" address="0x0039306C" value="0x0000FFEF" />
> +        <register type="OA" address="0x00393070" value="0x001000C2" />
> +        <register type="OA" address="0x00393074" value="0x0000FFE7" />
> +        <register type="OA" address="0x00393078" value="0x00002002" />
> +        <register type="OA" address="0x0039307C" value="0x0000F9FF" />
> +        <register type="OA" address="0x00393034" value="0x00000000" />
> +    </register_config>
> +  </set>
> +
>  </metrics>
> -- 
> 2.36.1
> 

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 14/31] i915/perf: Test concurrent access to OA in different groups
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 14/31] i915/perf: Test concurrent access to OA in different groups Umesh Nerlige Ramappa
  2023-03-13 15:04   ` Kamil Konieczny
@ 2023-03-14 23:17   ` Dixit, Ashutosh
  2023-03-15 20:40     ` Umesh Nerlige Ramappa
  1 sibling, 1 reply; 73+ messages in thread
From: Dixit, Ashutosh @ 2023-03-14 23:17 UTC (permalink / raw)
  To: Umesh Nerlige Ramappa; +Cc: igt-dev, Lionel G Landwerlin

On Tue, 14 Feb 2023 16:46:31 -0800, Umesh Nerlige Ramappa wrote:
>
> With multiple OA buffers, verify that the perf interface allows
> concurrent access to the OA buffers in different groups.
>
> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
> ---
>  tests/i915/perf.c | 135 ++++++++++++++++++++++++++++++++++++++++++++--
>  1 file changed, 131 insertions(+), 4 deletions(-)
>
> diff --git a/tests/i915/perf.c b/tests/i915/perf.c
> index 727eaf4e..9c926fd2 100644
> --- a/tests/i915/perf.c
> +++ b/tests/i915/perf.c
> @@ -2248,6 +2248,7 @@ test_blocking(uint64_t requested_oa_period,
>
>	int max_iterations = (test_duration_ns / oa_period) + 2;
>	int n_extra_iterations = 0;
> +	int perf_fd;
>
>	/* It's a bit tricky to put a lower limit here, but we expect a
>	 * relatively low latency for seeing reports, while we don't currently
> @@ -2281,7 +2282,7 @@ test_blocking(uint64_t requested_oa_period,
>	param.num_properties = (idx - props) / 2;
>	param.properties_ptr = to_user_pointer(props);
>
> -	stream_fd = __perf_open(drm_fd, &param, true /* prevent_pm */);
> +	perf_fd = __perf_open(drm_fd, &param, true /* prevent_pm */);
>
>	times(&start_times);
>
> @@ -2313,14 +2314,14 @@ test_blocking(uint64_t requested_oa_period,
>	 * the error delta.
>	 */
>	start = get_time();
> -	do_ioctl(stream_fd, I915_PERF_IOCTL_ENABLE, 0);
> +	do_ioctl(perf_fd, I915_PERF_IOCTL_ENABLE, 0);
>	for (/* nop */; ((end = get_time()) - start) < test_duration_ns; /* nop */) {
>		struct drm_i915_perf_record_header *header;
>		bool timer_report_read = false;
>		bool non_timer_report_read = false;
>		int ret;
>
> -		while ((ret = read(stream_fd, buf, sizeof(buf))) < 0 &&
> +		while ((ret = read(perf_fd, buf, sizeof(buf))) < 0 &&
>		       errno == EINTR)
>			;
>
> @@ -2388,7 +2389,7 @@ test_blocking(uint64_t requested_oa_period,
>	if (!set_kernel_hrtimer)
>		igt_assert(kernel_ns <= (test_duration_ns / 100ull));
>
> -	__perf_close(stream_fd);
> +	__perf_close(perf_fd);
>  }
>
>  static void
> @@ -5476,6 +5477,14 @@ static void put_engine_groups(struct perf_engine_group *groups,
>	free(groups);
>  }
>
> +static struct i915_engine_class_instance *
> +random_engine(struct perf_engine_group *group)
> +{
> +	srandom(time(NULL));
> +
> +	return &group->ci[random() % group->num_engines];
> +}
> +
>  static bool has_class_instance(int i915, uint16_t class, uint16_t instance)
>  {
>	int fd;
> @@ -5498,6 +5507,112 @@ static void set_default_engine(const intel_ctx_t *ctx)
>			default_e2 = *e;
>  }
>
> +/*
> + * Test if OA buffer streams can be independently opened on each gt. Once a user
> + * opens a stream, that gt is exclusive to the user, other users get -EBUSY on
> + * trying to open a stream. Note that OA metrics are global to the gt and can
> + * get clobbered if we try to support concurrency.

Little bit confusing since what we are doing below is for each perf group,
not each gt, though there is one perf group per gt on MTL. Even function
and test names say gt. Shall we s/gt/grp/ or something like that?

> + */
> +static void
> +test_gt_exclusive_stream(const intel_ctx_t *ctx, bool exponent)
> +{
> +	uint64_t properties[] = {
> +		DRM_I915_PERF_PROP_SAMPLE_OA, true,
> +		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
> +		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
> +		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, 0,
> +		DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, 0,
> +		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
> +	};
> +	struct drm_i915_perf_open_param param = {
> +		.flags = I915_PERF_FLAG_FD_CLOEXEC,
> +		/* for gem_context use case, we do no pass exponent */
> +		.num_properties = exponent ?
> +				  ARRAY_SIZE(properties) / 2 - 1:
> +				  ARRAY_SIZE(properties) / 2,
> +		.properties_ptr = to_user_pointer(properties),
> +	};
> +	uint32_t i, j;
> +
> +	/* for each group, open one random perf stream with sample OA */
> +	for (i = 0; i < num_perf_oa_groups; i++) {
> +		struct perf_engine_group *grp = &perf_oa_groups[i];
> +		struct i915_engine_class_instance *ci = random_engine(grp);
> +
> +		if (!exponent) {
> +			properties[0] = DRM_I915_PERF_PROP_CTX_HANDLE;
> +			properties[1] = ctx->id;
> +		}
> +
> +		properties[7] = ci->engine_class;
> +		properties[9] = ci->engine_instance;
> +		grp->perf_fd = igt_ioctl(drm_fd,
> +					 DRM_IOCTL_I915_PERF_OPEN,
> +					 &param);
> +		igt_assert(grp->perf_fd >= 0);
> +		igt_debug("opened OA buffer with c:i %d:%d\n",
> +			  ci->engine_class, ci->engine_instance);
> +	}
> +
> +	/* for each group make sure no other streams can be opened */
> +	for (i = 0; i < num_perf_oa_groups; i++) {
> +		struct perf_engine_group *grp = &perf_oa_groups[i];
> +		int err;
> +
> +		for (j = 0; j < grp->num_engines; j++) {
> +			struct i915_engine_class_instance *ci = grp->ci + j;
> +
> +			/*
> +			 * case 1:
> +			 * concurrent access to OAG should fail

I guess here by OAG we means SAMPLE_OA so using the OA buffer?

> +			 */
> +			properties[0] = DRM_I915_PERF_PROP_SAMPLE_OA;
> +			properties[1] = true;
> +			properties[7] = ci->engine_class;
> +			properties[9] = ci->engine_instance;
> +			/* for SAMPLE OA use case, we must pass exponent */
> +			param.num_properties = ARRAY_SIZE(properties) / 2;
> +			do_ioctl_err(drm_fd, DRM_IOCTL_I915_PERF_OPEN, &param,
> +				     EBUSY);
> +			igt_debug("try OA buffer with c:i %d:%d\n",
> +				  ci->engine_class, ci->engine_instance);
> +
> +			/*
> +			 * case 2:
> +			 * concurrent access to non-OAG unit should fail

Similarly here non-OAG means not using the OA buffer?

After potentially fixing the function names and comments, this is:

Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>

> +			 */
> +			properties[0] = DRM_I915_PERF_PROP_CTX_HANDLE;
> +			properties[1] = gem_context_create(drm_fd);
> +			/* for gem_context use case, we do no pass exponent */
> +			param.num_properties = ARRAY_SIZE(properties) / 2 - 1;
> +			errno = 0;
> +			err = igt_ioctl(drm_fd, DRM_IOCTL_I915_PERF_OPEN, &param);
> +			igt_assert(err < 0);
> +			igt_assert(errno == EBUSY || errno == ENODEV);
> +			igt_debug("try OA ci unit with c:i %d:%d\n",
> +				  ci->engine_class, ci->engine_instance);
> +			gem_context_destroy(drm_fd, properties[1]);
> +		}
> +
> +		if (grp->perf_fd >= 0)
> +			close(grp->perf_fd);
> +	}
> +}
> +
> +static void
> +test_gt_concurrent_oa_buffer_read(void)
> +{
> +	igt_fork(child, num_perf_oa_groups) {
> +		struct intel_execution_engine2 e;
> +
> +		e.class = perf_oa_groups[child].ci->engine_class;
> +		e.instance = perf_oa_groups[child].ci->engine_instance;
> +
> +		test_blocking(40 * 1000 * 1000, false, 5 * 1000 * 1000, &e);
> +	}
> +	igt_waitchildren();
> +}
> +
>  igt_main
>  {
>	const intel_ctx_t *ctx;
> @@ -5723,6 +5838,18 @@ igt_main
>		igt_describe("Verify invalid class instance");
>		igt_subtest("gen12-invalid-class-instance")
>			test_invalid_class_instance();
> +
> +		igt_describe("Verify exclusivity of perf streams with sample oa option");
> +		igt_subtest("gen12-gt-exclusive-stream-sample-oa")
> +			test_gt_exclusive_stream(ctx, true);
> +
> +		igt_describe("Verify exclusivity of perf streams with ctx handle");
> +		igt_subtest("gen12-gt-exclusive-stream-ctx-handle")
> +			test_gt_exclusive_stream(ctx, false);
> +
> +		igt_describe("Verify concurrent reads from OA buffers in different gts");
> +		igt_subtest("gen12-gt-concurrent-oa-buffer-read")
> +			test_gt_concurrent_oa_buffer_read();
>	}
>
>	igt_subtest("rc6-disable")
> --
> 2.36.1
>

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 15/31] i915/perf: Add OAM support
  2023-03-13 15:21   ` Kamil Konieczny
@ 2023-03-15  0:38     ` Dixit, Ashutosh
  2023-03-15 20:37       ` Umesh Nerlige Ramappa
  0 siblings, 1 reply; 73+ messages in thread
From: Dixit, Ashutosh @ 2023-03-15  0:38 UTC (permalink / raw)
  To: Kamil Konieczny, igt-dev, Umesh Nerlige Ramappa, Lionel G Landwerlin

On Mon, 13 Mar 2023 08:21:21 -0700, Kamil Konieczny wrote:
>
> > @@ -5306,10 +5345,27 @@ test_sysctl_defaults(void)
> >	igt_assert_eq(max_freq, 100000);
> >  }
> >
> > -#define __for_each_perf_enabled_engine(fd__, e__) \
> > -	for_each_physical_engine(fd__, e__) \
> > -		if (perf_supports_engine(e__)) \
> > -			igt_dynamic_f("%s", e__->name)
> > +static struct intel_execution_engine2 *
> > +__ci_to_e2(const intel_ctx_t *ctx, struct i915_engine_class_instance *ci)
> > +{
> > +	static struct intel_execution_engine2 e2;
>
> e2 is on stack, see below, so it should be *e2
>
> > +	struct intel_execution_engine2 *e;
> > +
> > +	for_each_ctx_engine(drm_fd, ctx, e) {
> > +		if (e->class == ci->engine_class && e->instance == ci->engine_instance) {
> > +			e2 = *e;
> > +			break;
> > +		}
> > +	}
> > +
> > +	return &e2;
> --------------- ^
> imho you should allocate memory for this and return NULL when
> not found.

Yup something needs to be done here since e2 is on stack so dangerous to
return a pointer to it.

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 18/31] lib/perf" Set missing metric unit for some counters
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 18/31] lib/perf" Set missing metric unit for some counters Umesh Nerlige Ramappa
  2023-02-24 13:22   ` Kamil Konieczny
@ 2023-03-15  4:44   ` Dixit, Ashutosh
  2023-03-15 19:58     ` Umesh Nerlige Ramappa
  1 sibling, 1 reply; 73+ messages in thread
From: Dixit, Ashutosh @ 2023-03-15  4:44 UTC (permalink / raw)
  To: Umesh Nerlige Ramappa; +Cc: igt-dev, Lionel G Landwerlin

On Tue, 14 Feb 2023 16:46:35 -0800, Umesh Nerlige Ramappa wrote:
>
> Some counters do not have units specified, so use 'number' as the unit.
>
> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>

Acked-by: Ashutosh Dixit <ashutosh.dixit@intel.com>

But why isn't this in the internal tree?

> ---
>  lib/i915/perf-configs/mdapi-xml-convert.py | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/lib/i915/perf-configs/mdapi-xml-convert.py b/lib/i915/perf-configs/mdapi-xml-convert.py
> index 3b7d0663..eee12ad5 100755
> --- a/lib/i915/perf-configs/mdapi-xml-convert.py
> +++ b/lib/i915/perf-configs/mdapi-xml-convert.py
> @@ -819,9 +819,14 @@ for arg in args.xml:
>              # XXX Not sure why EU metrics tend to just be bundled under 'gpu'
>              counter.set('mdapi_hw_unit_type', mdapi_counter.get('HWUnitType').lower())
>
> +            # Some counters do not have MetricUnits, treat them as number.
> +            if mdapi_counter.get('MetricUnits') == None:
> +                units = "number"
> +            else:
> +                units = mdapi_counter.get('MetricUnits').lower()
> +
>              # There are counters representing cycle counts that have a semantic
>              # type of 'duration' which doesn't seem to make sense...
> -            units = mdapi_counter.get('MetricUnits').lower()
>              if units == "cycles":
>                  semantic_type = "event"
>              else:
> --
> 2.36.1
>

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 25/31] i915/perf: Make sanity check failures descriptive
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 25/31] i915/perf: Make sanity check failures descriptive Umesh Nerlige Ramappa
@ 2023-03-15 16:47   ` Kamil Konieczny
  0 siblings, 0 replies; 73+ messages in thread
From: Kamil Konieczny @ 2023-03-15 16:47 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

On 2023-02-14 at 16:46:42 -0800, Umesh Nerlige Ramappa wrote:
> Make the asserts in the sanity check descriptive.
> 
> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>

Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>

> ---
>  tests/i915/perf.c | 16 ++++++++++++----
>  1 file changed, 12 insertions(+), 4 deletions(-)
> 
> diff --git a/tests/i915/perf.c b/tests/i915/perf.c
> index 2e902d74..b50c86d1 100644
> --- a/tests/i915/perf.c
> +++ b/tests/i915/perf.c
> @@ -1030,7 +1030,9 @@ gen8_sanity_check_test_oa_reports(const uint32_t *oa_report0,
>  			continue;
>  
>  		igt_debug("A40_%d: delta = %"PRIu64"\n", j, delta);
> -		igt_assert(delta <= max_delta);
> +		igt_assert_f(delta <= max_delta,
> +			     "A40_%d: delta = %"PRIu64", max_delta = %"PRIu64"\n",
> +			     j, delta, max_delta);
>  	}
>  
>  	for (int j = 0; j < format.n_a64; j++) {
> @@ -1042,7 +1044,9 @@ gen8_sanity_check_test_oa_reports(const uint32_t *oa_report0,
>  			continue;
>  
>  		igt_debug("A64_%d: delta = %"PRIu64"\n", format.first_a + j, delta);
> -		igt_assert(delta <= max_delta);
> +		igt_assert_f(delta <= max_delta,
> +			     "A64_%d: delta = %"PRIu64", max_delta = %"PRIu64"\n",
> +			     format.first_a + j, delta, max_delta);
>  	}
>  
>  	for (int j = 0; j < format.n_a; j++) {
> @@ -1057,7 +1061,9 @@ gen8_sanity_check_test_oa_reports(const uint32_t *oa_report0,
>  			continue;
>  
>  		igt_debug("A%d: delta = %"PRIu32"\n", a_id, delta);
> -		igt_assert(delta <= max_delta);
> +		igt_assert_f(delta <= max_delta,
> +			     "A%d: delta = %"PRIu32", max_delta = %"PRIu64"\n",
> +			     a_id, delta, max_delta);
>  	}
>  
>  	/* The TestOa metric set defines all B counters to be a
> @@ -1119,7 +1125,9 @@ gen8_sanity_check_test_oa_reports(const uint32_t *oa_report0,
>  
>  		igt_debug("C%d: delta = %"PRIu32", max_delta=%"PRIu64"\n",
>  			  j, delta, max_delta);
> -		igt_assert(delta <= max_delta);
> +		igt_assert_f(delta <= max_delta,
> +			     "C%d: delta = %"PRIu32", max_delta = %"PRIu64"\n",
> +			     j, delta, max_delta);
>  	}
>  }
>  
> -- 
> 2.36.1
> 

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 24/31] i915/perf: Run non-zero-reason on media engines as well
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 24/31] i915/perf: Run non-zero-reason on media engines as well Umesh Nerlige Ramappa
@ 2023-03-15 16:50   ` Kamil Konieczny
  0 siblings, 0 replies; 73+ messages in thread
From: Kamil Konieczny @ 2023-03-15 16:50 UTC (permalink / raw)
  To: igt-dev; +Cc: Lionel G Landwerlin

On 2023-02-14 at 16:46:41 -0800, Umesh Nerlige Ramappa wrote:
> Enable non-zero-reason test to run on media engines as well.
> 
> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>

Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>

> ---
>  tests/i915/perf.c | 25 +++++++++++++++----------
>  1 file changed, 15 insertions(+), 10 deletions(-)
> 
> diff --git a/tests/i915/perf.c b/tests/i915/perf.c
> index 15f9202d..2e902d74 100644
> --- a/tests/i915/perf.c
> +++ b/tests/i915/perf.c
> @@ -2908,18 +2908,23 @@ test_buffer_fill(const struct intel_execution_engine2 *e)
>  }
>  
>  static void
> -test_non_zero_reason(void)
> +test_non_zero_reason(const struct intel_execution_engine2 *e)
>  {
>  	/* ~20 micro second period */
>  	int oa_exponent = max_oa_exponent_for_period_lte(20000);
> +	struct intel_perf_metric_set *test_set = metric_set(e);
> +	uint64_t fmt = test_set->perf_oa_format;
> +	size_t report_size = get_oa_format(fmt).size;
>  	uint64_t properties[] = {
>  		/* Include OA reports in samples */
>  		DRM_I915_PERF_PROP_SAMPLE_OA, true,
>  
>  		/* OA unit configuration */
> -		DRM_I915_PERF_PROP_OA_METRICS_SET, default_test_set->perf_oa_metrics_set,
> -		DRM_I915_PERF_PROP_OA_FORMAT, default_test_set->perf_oa_format,
> +		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
> +		DRM_I915_PERF_PROP_OA_FORMAT, fmt,
>  		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
> +		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, e->class,
> +		DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, e->instance,
>  	};
>  	struct drm_i915_perf_open_param param = {
>  		.flags = I915_PERF_FLAG_FD_CLOEXEC,
> @@ -2927,7 +2932,7 @@ test_non_zero_reason(void)
>  		.properties_ptr = to_user_pointer(properties),
>  	};
>  	struct drm_i915_perf_record_header *header;
> -	uint32_t buf_size = 3 * 65536 * (256 + sizeof(struct drm_i915_perf_record_header));
> +	uint32_t buf_size = 3 * 65536 * (report_size + sizeof(struct drm_i915_perf_record_header));
>  	uint8_t *buf = malloc(buf_size);
>  	uint32_t total_len = 0, reports_lost;
>  	const uint32_t *last_report;
> @@ -2972,10 +2977,9 @@ test_non_zero_reason(void)
>  
>  			igt_assert_neq(reason, 0);
>  
> -			if (last_report) {
> -				sanity_check_reports(last_report, report,
> -						     default_test_set->perf_oa_format);
> -			}
> +			if (last_report)
> +				sanity_check_reports(last_report, report, fmt);
> +
>  			last_report = report;
>  			break;
>  		}
> @@ -5797,10 +5801,11 @@ igt_main
>  			test_buffer_fill(e);
>  
>  	igt_describe("Test that reason field in OA reports is never 0 on Gen8+");
> -	igt_subtest("non-zero-reason") {
> +	igt_subtest_with_dynamic("non-zero-reason") {
>  		/* Reason field is only available on Gen8+ */
>  		igt_require(intel_gen(devid) >= 8);
> -		test_non_zero_reason();
> +		__for_random_engine_in_each_group(perf_oa_groups, ctx, e)
> +			test_non_zero_reason(e);
>  	}
>  
>  	igt_subtest("disabled-read-error")
> -- 
> 2.36.1
> 

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 18/31] lib/perf" Set missing metric unit for some counters
  2023-03-15  4:44   ` Dixit, Ashutosh
@ 2023-03-15 19:58     ` Umesh Nerlige Ramappa
  0 siblings, 0 replies; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-03-15 19:58 UTC (permalink / raw)
  To: Dixit, Ashutosh; +Cc: igt-dev, Lionel G Landwerlin

On Tue, Mar 14, 2023 at 09:44:03PM -0700, Dixit, Ashutosh wrote:
>On Tue, 14 Feb 2023 16:46:35 -0800, Umesh Nerlige Ramappa wrote:
>>
>> Some counters do not have units specified, so use 'number' as the unit.
>>
>> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
>
>Acked-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
>
>But why isn't this in the internal tree?

The script started failing only when parsing the media metrics xml 
files. Those files are not in internal yet.

Umesh
>
>> ---
>>  lib/i915/perf-configs/mdapi-xml-convert.py | 7 ++++++-
>>  1 file changed, 6 insertions(+), 1 deletion(-)
>>
>> diff --git a/lib/i915/perf-configs/mdapi-xml-convert.py b/lib/i915/perf-configs/mdapi-xml-convert.py
>> index 3b7d0663..eee12ad5 100755
>> --- a/lib/i915/perf-configs/mdapi-xml-convert.py
>> +++ b/lib/i915/perf-configs/mdapi-xml-convert.py
>> @@ -819,9 +819,14 @@ for arg in args.xml:
>>              # XXX Not sure why EU metrics tend to just be bundled under 'gpu'
>>              counter.set('mdapi_hw_unit_type', mdapi_counter.get('HWUnitType').lower())
>>
>> +            # Some counters do not have MetricUnits, treat them as number.
>> +            if mdapi_counter.get('MetricUnits') == None:
>> +                units = "number"
>> +            else:
>> +                units = mdapi_counter.get('MetricUnits').lower()
>> +
>>              # There are counters representing cycle counts that have a semantic
>>              # type of 'duration' which doesn't seem to make sense...
>> -            units = mdapi_counter.get('MetricUnits').lower()
>>              if units == "cycles":
>>                  semantic_type = "event"
>>              else:
>> --
>> 2.36.1
>>

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 15/31] i915/perf: Add OAM support
  2023-03-15  0:38     ` Dixit, Ashutosh
@ 2023-03-15 20:37       ` Umesh Nerlige Ramappa
  0 siblings, 0 replies; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-03-15 20:37 UTC (permalink / raw)
  To: Dixit, Ashutosh; +Cc: igt-dev, Lionel G Landwerlin

On Tue, Mar 14, 2023 at 05:38:36PM -0700, Dixit, Ashutosh wrote:
>On Mon, 13 Mar 2023 08:21:21 -0700, Kamil Konieczny wrote:
>>
>> > @@ -5306,10 +5345,27 @@ test_sysctl_defaults(void)
>> >	igt_assert_eq(max_freq, 100000);
>> >  }
>> >
>> > -#define __for_each_perf_enabled_engine(fd__, e__) \
>> > -	for_each_physical_engine(fd__, e__) \
>> > -		if (perf_supports_engine(e__)) \
>> > -			igt_dynamic_f("%s", e__->name)
>> > +static struct intel_execution_engine2 *
>> > +__ci_to_e2(const intel_ctx_t *ctx, struct i915_engine_class_instance *ci)
>> > +{
>> > +	static struct intel_execution_engine2 e2;
>>
>> e2 is on stack, see below, so it should be *e2

e2 is not on the stack because it is static.

>>
>> > +	struct intel_execution_engine2 *e;
>> > +
>> > +	for_each_ctx_engine(drm_fd, ctx, e) {
>> > +		if (e->class == ci->engine_class && e->instance == ci->engine_instance) {
>> > +			e2 = *e;
>> > +			break;
>> > +		}
>> > +	}
>> > +
>> > +	return &e2;
>> --------------- ^
>> imho you should allocate memory for this and return NULL when
>> not found.
>
>Yup something needs to be done here since e2 is on stack so dangerous to
>return a pointer to it.

Same as above, the static function variable is not allocated on the 
stack, so a pointer to it works just fine.

Thanks,
Umesh

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 14/31] i915/perf: Test concurrent access to OA in different groups
  2023-03-14 23:17   ` Dixit, Ashutosh
@ 2023-03-15 20:40     ` Umesh Nerlige Ramappa
  0 siblings, 0 replies; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-03-15 20:40 UTC (permalink / raw)
  To: Dixit, Ashutosh; +Cc: igt-dev, Lionel G Landwerlin

On Tue, Mar 14, 2023 at 04:17:16PM -0700, Dixit, Ashutosh wrote:
>On Tue, 14 Feb 2023 16:46:31 -0800, Umesh Nerlige Ramappa wrote:
>>
>> With multiple OA buffers, verify that the perf interface allows
>> concurrent access to the OA buffers in different groups.
>>
>> Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa@intel.com>
>> ---
>>  tests/i915/perf.c | 135 ++++++++++++++++++++++++++++++++++++++++++++--
>>  1 file changed, 131 insertions(+), 4 deletions(-)
>>
>> diff --git a/tests/i915/perf.c b/tests/i915/perf.c
>> index 727eaf4e..9c926fd2 100644
>> --- a/tests/i915/perf.c
>> +++ b/tests/i915/perf.c
>> @@ -2248,6 +2248,7 @@ test_blocking(uint64_t requested_oa_period,
>>
>>	int max_iterations = (test_duration_ns / oa_period) + 2;
>>	int n_extra_iterations = 0;
>> +	int perf_fd;
>>
>>	/* It's a bit tricky to put a lower limit here, but we expect a
>>	 * relatively low latency for seeing reports, while we don't currently
>> @@ -2281,7 +2282,7 @@ test_blocking(uint64_t requested_oa_period,
>>	param.num_properties = (idx - props) / 2;
>>	param.properties_ptr = to_user_pointer(props);
>>
>> -	stream_fd = __perf_open(drm_fd, &param, true /* prevent_pm */);
>> +	perf_fd = __perf_open(drm_fd, &param, true /* prevent_pm */);
>>
>>	times(&start_times);
>>
>> @@ -2313,14 +2314,14 @@ test_blocking(uint64_t requested_oa_period,
>>	 * the error delta.
>>	 */
>>	start = get_time();
>> -	do_ioctl(stream_fd, I915_PERF_IOCTL_ENABLE, 0);
>> +	do_ioctl(perf_fd, I915_PERF_IOCTL_ENABLE, 0);
>>	for (/* nop */; ((end = get_time()) - start) < test_duration_ns; /* nop */) {
>>		struct drm_i915_perf_record_header *header;
>>		bool timer_report_read = false;
>>		bool non_timer_report_read = false;
>>		int ret;
>>
>> -		while ((ret = read(stream_fd, buf, sizeof(buf))) < 0 &&
>> +		while ((ret = read(perf_fd, buf, sizeof(buf))) < 0 &&
>>		       errno == EINTR)
>>			;
>>
>> @@ -2388,7 +2389,7 @@ test_blocking(uint64_t requested_oa_period,
>>	if (!set_kernel_hrtimer)
>>		igt_assert(kernel_ns <= (test_duration_ns / 100ull));
>>
>> -	__perf_close(stream_fd);
>> +	__perf_close(perf_fd);
>>  }
>>
>>  static void
>> @@ -5476,6 +5477,14 @@ static void put_engine_groups(struct perf_engine_group *groups,
>>	free(groups);
>>  }
>>
>> +static struct i915_engine_class_instance *
>> +random_engine(struct perf_engine_group *group)
>> +{
>> +	srandom(time(NULL));
>> +
>> +	return &group->ci[random() % group->num_engines];
>> +}
>> +
>>  static bool has_class_instance(int i915, uint16_t class, uint16_t instance)
>>  {
>>	int fd;
>> @@ -5498,6 +5507,112 @@ static void set_default_engine(const intel_ctx_t *ctx)
>>			default_e2 = *e;
>>  }
>>
>> +/*
>> + * Test if OA buffer streams can be independently opened on each gt. Once a user
>> + * opens a stream, that gt is exclusive to the user, other users get -EBUSY on
>> + * trying to open a stream. Note that OA metrics are global to the gt and can
>> + * get clobbered if we try to support concurrency.
>
>Little bit confusing since what we are doing below is for each perf group,
>not each gt, though there is one perf group per gt on MTL. Even function
>and test names say gt. Shall we s/gt/grp/ or something like that?

Hmm, looks like the comment wasn't updated when we moved to perf groups.  
I will fix that and the function name accordingly.

>
>> + */
>> +static void
>> +test_gt_exclusive_stream(const intel_ctx_t *ctx, bool exponent)
>> +{
>> +	uint64_t properties[] = {
>> +		DRM_I915_PERF_PROP_SAMPLE_OA, true,
>> +		DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
>> +		DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
>> +		DRM_I915_PERF_PROP_OA_ENGINE_CLASS, 0,
>> +		DRM_I915_PERF_PROP_OA_ENGINE_INSTANCE, 0,
>> +		DRM_I915_PERF_PROP_OA_EXPONENT, oa_exp_1_millisec,
>> +	};
>> +	struct drm_i915_perf_open_param param = {
>> +		.flags = I915_PERF_FLAG_FD_CLOEXEC,
>> +		/* for gem_context use case, we do no pass exponent */
>> +		.num_properties = exponent ?
>> +				  ARRAY_SIZE(properties) / 2 - 1:
>> +				  ARRAY_SIZE(properties) / 2,
>> +		.properties_ptr = to_user_pointer(properties),
>> +	};
>> +	uint32_t i, j;
>> +
>> +	/* for each group, open one random perf stream with sample OA */
>> +	for (i = 0; i < num_perf_oa_groups; i++) {
>> +		struct perf_engine_group *grp = &perf_oa_groups[i];
>> +		struct i915_engine_class_instance *ci = random_engine(grp);
>> +
>> +		if (!exponent) {
>> +			properties[0] = DRM_I915_PERF_PROP_CTX_HANDLE;
>> +			properties[1] = ctx->id;
>> +		}
>> +
>> +		properties[7] = ci->engine_class;
>> +		properties[9] = ci->engine_instance;
>> +		grp->perf_fd = igt_ioctl(drm_fd,
>> +					 DRM_IOCTL_I915_PERF_OPEN,
>> +					 &param);
>> +		igt_assert(grp->perf_fd >= 0);
>> +		igt_debug("opened OA buffer with c:i %d:%d\n",
>> +			  ci->engine_class, ci->engine_instance);
>> +	}
>> +
>> +	/* for each group make sure no other streams can be opened */
>> +	for (i = 0; i < num_perf_oa_groups; i++) {
>> +		struct perf_engine_group *grp = &perf_oa_groups[i];
>> +		int err;
>> +
>> +		for (j = 0; j < grp->num_engines; j++) {
>> +			struct i915_engine_class_instance *ci = grp->ci + j;
>> +
>> +			/*
>> +			 * case 1:
>> +			 * concurrent access to OAG should fail
>
>I guess here by OAG we means SAMPLE_OA so using the OA buffer?

Correct, SAMPLE_OA means OA buffer is being enabled.
>
>> +			 */
>> +			properties[0] = DRM_I915_PERF_PROP_SAMPLE_OA;
>> +			properties[1] = true;
>> +			properties[7] = ci->engine_class;
>> +			properties[9] = ci->engine_instance;
>> +			/* for SAMPLE OA use case, we must pass exponent */
>> +			param.num_properties = ARRAY_SIZE(properties) / 2;
>> +			do_ioctl_err(drm_fd, DRM_IOCTL_I915_PERF_OPEN, &param,
>> +				     EBUSY);
>> +			igt_debug("try OA buffer with c:i %d:%d\n",
>> +				  ci->engine_class, ci->engine_instance);
>> +
>> +			/*
>> +			 * case 2:
>> +			 * concurrent access to non-OAG unit should fail
>
>Similarly here non-OAG means not using the OA buffer?

non-OAG = OAR/OAC units which are configured by passing 
DRM_I915_PERF_PROP_CTX_HANDLE.
>
>After potentially fixing the function names and comments, this is:
>
>Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>

Thanks,
Umesh
>
>> +			 */
>> +			properties[0] = DRM_I915_PERF_PROP_CTX_HANDLE;
>> +			properties[1] = gem_context_create(drm_fd);
>> +			/* for gem_context use case, we do no pass exponent */
>> +			param.num_properties = ARRAY_SIZE(properties) / 2 - 1;
>> +			errno = 0;
>> +			err = igt_ioctl(drm_fd, DRM_IOCTL_I915_PERF_OPEN, &param);
>> +			igt_assert(err < 0);
>> +			igt_assert(errno == EBUSY || errno == ENODEV);
>> +			igt_debug("try OA ci unit with c:i %d:%d\n",
>> +				  ci->engine_class, ci->engine_instance);
>> +			gem_context_destroy(drm_fd, properties[1]);
>> +		}
>> +
>> +		if (grp->perf_fd >= 0)
>> +			close(grp->perf_fd);
>> +	}
>> +}
>> +
>> +static void
>> +test_gt_concurrent_oa_buffer_read(void)
>> +{
>> +	igt_fork(child, num_perf_oa_groups) {
>> +		struct intel_execution_engine2 e;
>> +
>> +		e.class = perf_oa_groups[child].ci->engine_class;
>> +		e.instance = perf_oa_groups[child].ci->engine_instance;
>> +
>> +		test_blocking(40 * 1000 * 1000, false, 5 * 1000 * 1000, &e);
>> +	}
>> +	igt_waitchildren();
>> +}
>> +
>>  igt_main
>>  {
>>	const intel_ctx_t *ctx;
>> @@ -5723,6 +5838,18 @@ igt_main
>>		igt_describe("Verify invalid class instance");
>>		igt_subtest("gen12-invalid-class-instance")
>>			test_invalid_class_instance();
>> +
>> +		igt_describe("Verify exclusivity of perf streams with sample oa option");
>> +		igt_subtest("gen12-gt-exclusive-stream-sample-oa")
>> +			test_gt_exclusive_stream(ctx, true);
>> +
>> +		igt_describe("Verify exclusivity of perf streams with ctx handle");
>> +		igt_subtest("gen12-gt-exclusive-stream-ctx-handle")
>> +			test_gt_exclusive_stream(ctx, false);
>> +
>> +		igt_describe("Verify concurrent reads from OA buffers in different gts");
>> +		igt_subtest("gen12-gt-concurrent-oa-buffer-read")
>> +			test_gt_concurrent_oa_buffer_read();
>>	}
>>
>>	igt_subtest("rc6-disable")
>> --
>> 2.36.1
>>

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 15/31] i915/perf: Add OAM support
  2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 15/31] i915/perf: Add OAM support Umesh Nerlige Ramappa
  2023-03-13 15:21   ` Kamil Konieczny
@ 2023-03-15 21:52   ` Dixit, Ashutosh
  1 sibling, 0 replies; 73+ messages in thread
From: Dixit, Ashutosh @ 2023-03-15 21:52 UTC (permalink / raw)
  To: Umesh Nerlige Ramappa; +Cc: igt-dev, Lionel G Landwerlin

On Tue, 14 Feb 2023 16:46:32 -0800, Umesh Nerlige Ramappa wrote:
>
> @@ -5306,10 +5345,27 @@ test_sysctl_defaults(void)
>	igt_assert_eq(max_freq, 100000);
>  }
>
> -#define __for_each_perf_enabled_engine(fd__, e__) \
> -	for_each_physical_engine(fd__, e__) \
> -		if (perf_supports_engine(e__)) \
> -			igt_dynamic_f("%s", e__->name)
> +static struct intel_execution_engine2 *
> +__ci_to_e2(const intel_ctx_t *ctx, struct i915_engine_class_instance *ci)
> +{
> +	static struct intel_execution_engine2 e2;
> +	struct intel_execution_engine2 *e;
> +
> +	for_each_ctx_engine(drm_fd, ctx, e) {
> +		if (e->class == ci->engine_class && e->instance == ci->engine_instance) {
> +			e2 = *e;
> +			break;
> +		}
> +	}
> +
> +	return &e2;
> +}
> +
> +#define __for_random_engine_in_each_group(groups_, ctx_, e_) \
> +	for (int i_ = 0; \
> +	     i_ < num_perf_oa_groups && !!(e_ = __ci_to_e2(ctx_, random_engine(&groups_[i_]))); \

Sorry, missed that e2 is static. Basically here we are only checking for
"i_ < num_perf_oa_groups". Maybe get rid of the "!!" above, it's
implicit. With that this is:

Reviewed-by: Ashutosh Dixit <ashutosh.dixit@intel.com>

^ permalink raw reply	[flat|nested] 73+ messages in thread

* Re: [igt-dev] [PATCH i-g-t 22/31] lib/perf: Update MTL GT3 metrics for OAM
  2023-03-13 16:15   ` Kamil Konieczny
@ 2023-03-16 18:38     ` Umesh Nerlige Ramappa
  0 siblings, 0 replies; 73+ messages in thread
From: Umesh Nerlige Ramappa @ 2023-03-16 18:38 UTC (permalink / raw)
  To: Kamil Konieczny, igt-dev, Lionel G Landwerlin, Ashutosh Dixit

On Mon, Mar 13, 2023 at 05:15:42PM +0100, Kamil Konieczny wrote:
>Hi Umesh,
>
>here you have
>description="Number of read requests from stand alone media "
>so 'samedia' is 'stan alone media' ?

Correct, Standalone Media

Thanks,
Umesh
>
>Acked-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
>
>Regards,
>Kamil

^ permalink raw reply	[flat|nested] 73+ messages in thread

end of thread, other threads:[~2023-03-16 18:39 UTC | newest]

Thread overview: 73+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-02-15  0:46 [igt-dev] [PATCH i-g-t 00/31] Enable OAM support in IGT and GPUvis Umesh Nerlige Ramappa
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 01/31] i915/perf: Add support for 64-bit OA formats Umesh Nerlige Ramappa
2023-03-04  2:55   ` Dixit, Ashutosh
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 02/31] i915/perf: Define a default engine for OA Umesh Nerlige Ramappa
2023-03-04  3:05   ` Dixit, Ashutosh
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 03/31] i915/perf: Use default engine for sseu tests Umesh Nerlige Ramappa
2023-03-04  3:08   ` Dixit, Ashutosh
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 04/31] i915/perf: Ensure rcs0 is present for gen12-mi-rpc Umesh Nerlige Ramappa
2023-03-04  3:26   ` Dixit, Ashutosh
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 05/31] i915/perf: Use ARRAY_SIZE for buffer-fill test Umesh Nerlige Ramappa
2023-03-04  3:28   ` Dixit, Ashutosh
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 06/31] i915/perf: Add class:instance support to OA tests Umesh Nerlige Ramappa
2023-03-04  3:38   ` Dixit, Ashutosh
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 07/31] i915/perf: Enable tests to run on specific engines Umesh Nerlige Ramappa
2023-03-06 22:19   ` Dixit, Ashutosh
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 08/31] i915/perf: Treat ticks as 64 bit Umesh Nerlige Ramappa
2023-03-06 23:13   ` Dixit, Ashutosh
2023-03-09 22:55     ` Umesh Nerlige Ramappa
2023-03-09 23:00   ` Dixit, Ashutosh
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 09/31] i915/perf: Treat timestamp as 64 bit value Umesh Nerlige Ramappa
2023-03-07 12:53   ` Kamil Konieczny
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 10/31] i915/perf: Add OAM format type Umesh Nerlige Ramappa
2023-03-07 13:45   ` Kamil Konieczny
2023-03-09 22:39     ` Umesh Nerlige Ramappa
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 11/31] i915/perf: Move OA format array from stack to heap Umesh Nerlige Ramappa
2023-03-07 13:32   ` Kamil Konieczny
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 12/31] i915/perf: Use a helper for OA format Umesh Nerlige Ramappa
2023-03-07 13:49   ` Kamil Konieczny
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 13/31] i915/perf: Add support for oa perf groups Umesh Nerlige Ramappa
2023-03-07 14:09   ` Kamil Konieczny
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 14/31] i915/perf: Test concurrent access to OA in different groups Umesh Nerlige Ramappa
2023-03-13 15:04   ` Kamil Konieczny
2023-03-14 23:17   ` Dixit, Ashutosh
2023-03-15 20:40     ` Umesh Nerlige Ramappa
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 15/31] i915/perf: Add OAM support Umesh Nerlige Ramappa
2023-03-13 15:21   ` Kamil Konieczny
2023-03-15  0:38     ` Dixit, Ashutosh
2023-03-15 20:37       ` Umesh Nerlige Ramappa
2023-03-15 21:52   ` Dixit, Ashutosh
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 16/31] lib/perf: Make chipsets aware of oa formats Umesh Nerlige Ramappa
2023-03-13 15:49   ` Kamil Konieczny
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 17/31] i915/perf: Choose OAM format for media metrics Umesh Nerlige Ramappa
2023-03-13 15:52   ` Kamil Konieczny
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 18/31] lib/perf" Set missing metric unit for some counters Umesh Nerlige Ramappa
2023-02-24 13:22   ` Kamil Konieczny
2023-03-15  4:44   ` Dixit, Ashutosh
2023-03-15 19:58     ` Umesh Nerlige Ramappa
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 19/31] lib/perf: Add MTL to supprted HW in oa guid registry Umesh Nerlige Ramappa
2023-03-13 15:55   ` Kamil Konieczny
2023-03-13 15:57   ` Kamil Konieczny
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 20/31] lib/perf: Add support for OAM format in codegen Umesh Nerlige Ramappa
2023-03-13 16:04   ` Kamil Konieczny
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 21/31] lib/perf: Update MTL GT2 metrics for OAM Umesh Nerlige Ramappa
2023-03-13 16:09   ` Kamil Konieczny
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 22/31] lib/perf: Update MTL GT3 " Umesh Nerlige Ramappa
2023-03-13 16:15   ` Kamil Konieczny
2023-03-16 18:38     ` Umesh Nerlige Ramappa
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 23/31] i915/perf: Add support for engine specific metrics Umesh Nerlige Ramappa
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 24/31] i915/perf: Run non-zero-reason on media engines as well Umesh Nerlige Ramappa
2023-03-15 16:50   ` Kamil Konieczny
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 25/31] i915/perf: Make sanity check failures descriptive Umesh Nerlige Ramappa
2023-03-15 16:47   ` Kamil Konieczny
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 26/31] lib/perf: Enable multi-tile support for perf library Umesh Nerlige Ramappa
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 27/31] lib/perf: Update MTL OA timestamp and EU thread config Umesh Nerlige Ramappa
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 28/31] lib/perf: Add support for MPEC format Umesh Nerlige Ramappa
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 29/31] lib/perf: Adjust the GPU timestamp for new OA formats Umesh Nerlige Ramappa
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 30/31] tools/perf: Choose the right card Umesh Nerlige Ramappa
2023-02-16 19:39   ` Kamil Konieczny
2023-02-16 21:27     ` Umesh Nerlige Ramappa
2023-03-03  1:17       ` Umesh Nerlige Ramappa
2023-02-15  0:46 ` [igt-dev] [PATCH i-g-t 31/31] lib/perf: Apply shift to raw timestamp as well Umesh Nerlige Ramappa
2023-02-15  1:26 ` [igt-dev] ✓ Fi.CI.BAT: success for Enable OAM support in IGT and GPUvis (rev2) Patchwork
2023-02-15 14:12 ` [igt-dev] ✗ Fi.CI.IGT: failure " Patchwork

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.