[PATCH i-g-t 04/18] lib/xe/oa: Generate LNL metrics/registers files
Ashutosh Dixit
ashutosh.dixit at intel.com
Fri Feb 16 23:16:49 UTC 2024
Add LNL OA formats and generate metrics/registers .c and .h files with the
XE_OA_FORMAT_PEC64u64 format (called 576B_PEC64LL) used in
MetricsXML_P31.xml.
Signed-off-by: Ashutosh Dixit <ashutosh.dixit at intel.com>
---
lib/xe/oa-configs/oa-metricset-codegen.py | 53 +++++++++++++++++++++--
1 file changed, 50 insertions(+), 3 deletions(-)
diff --git a/lib/xe/oa-configs/oa-metricset-codegen.py b/lib/xe/oa-configs/oa-metricset-codegen.py
index be9483af02f7..3c4e870701d6 100644
--- a/lib/xe/oa-configs/oa-metricset-codegen.py
+++ b/lib/xe/oa-configs/oa-metricset-codegen.py
@@ -81,6 +81,40 @@ def generate_metric_sets(args, gen):
#include <stdbool.h>
#include <assert.h>
+enum xe_oa_format_name {
+ XE_OA_FORMAT_C4_B8 = 1,
+
+ /* Gen8+ */
+ XE_OA_FORMAT_A12,
+ XE_OA_FORMAT_A12_B8_C8,
+ XE_OA_FORMAT_A32u40_A4u32_B8_C8,
+
+ /* DG2 */
+ XE_OAR_FORMAT_A32u40_A4u32_B8_C8,
+ XE_OA_FORMAT_A24u40_A14u32_B8_C8,
+
+ /* DG2/MTL OAC */
+ XE_OAC_FORMAT_A24u64_B8_C8,
+ XE_OAC_FORMAT_A22u32_R2u32_B8_C8,
+
+ /* MTL OAM */
+ XE_OAM_FORMAT_MPEC8u64_B8_C8,
+ XE_OAM_FORMAT_MPEC8u32_B8_C8,
+
+ /* Xe2+ */
+ XE_OA_FORMAT_PEC64u64,
+ XE_OA_FORMAT_PEC64u64_B8_C8,
+ XE_OA_FORMAT_PEC64u32,
+ XE_OA_FORMAT_PEC32u64_G1,
+ XE_OA_FORMAT_PEC32u32_G1,
+ XE_OA_FORMAT_PEC32u64_G2,
+ XE_OA_FORMAT_PEC32u32_G2,
+ XE_OA_FORMAT_PEC36u64_G1_32_G2_4,
+ XE_OA_FORMAT_PEC36u64_G1_4_G2_32,
+
+ XE_OA_FORMAT_MAX,
+};
+
"""))
c("#include \"{0}\"".format(os.path.basename(args.header)))
@@ -116,7 +150,7 @@ def generate_metric_sets(args, gen):
if gen.chipset.startswith("acm") or gen.chipset.startswith("mtl"):
if set.oa_format == "128B_MPEC8_NOA16":
c(textwrap.dedent("""\
- metric_set->perf_oa_format = I915_OAM_FORMAT_MPEC8u32_B8_C8;
+ metric_set->perf_oa_format = XE_OAM_FORMAT_MPEC8u32_B8_C8;
metric_set->perf_raw_size = 128;
metric_set->gpu_time_offset = 0;
@@ -128,7 +162,7 @@ def generate_metric_sets(args, gen):
"""))
else:
c(textwrap.dedent("""\
- metric_set->perf_oa_format = I915_OA_FORMAT_A24u40_A14u32_B8_C8;
+ metric_set->perf_oa_format = XE_OA_FORMAT_A24u40_A14u32_B8_C8;
metric_set->perf_raw_size = 256;
metric_set->gpu_time_offset = 0;
@@ -138,9 +172,22 @@ def generate_metric_sets(args, gen):
metric_set->c_offset = metric_set->b_offset + 8;
metric_set->perfcnt_offset = metric_set->c_offset + 8;
"""))
+ elif gen.chipset == "lnl":
+ c(textwrap.dedent("""\
+ metric_set->perf_oa_format = XE_OA_FORMAT_PEC64u64;
+
+ metric_set->perf_raw_size = 576;
+ 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->a_offset + 64;
+
+ """))
else:
c(textwrap.dedent("""\
- metric_set->perf_oa_format = I915_OA_FORMAT_A32u40_A4u32_B8_C8;
+ metric_set->perf_oa_format = XE_OA_FORMAT_A32u40_A4u32_B8_C8;
metric_set->perf_raw_size = 256;
metric_set->gpu_time_offset = 0;
--
2.41.0
More information about the igt-dev
mailing list