* [Intel-gfx] [PATCH i-g-t v2 1/3] lib/i915/perf: remove generation code for mathml render
@ 2020-03-12 11:15 Lionel Landwerlin
2020-03-12 11:15 ` [Intel-gfx] [PATCH i-g-t v2 2/3] lib/i915/perf: break generated code in separate files Lionel Landwerlin
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: Lionel Landwerlin @ 2020-03-12 11:15 UTC (permalink / raw)
To: intel-gfx
Gputop had support for generating mathml figures of the post
processing equations. It's not useful here.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
---
lib/i915/perf-configs/perf-codegen.py | 168 +++-----------------------
1 file changed, 17 insertions(+), 151 deletions(-)
diff --git a/lib/i915/perf-configs/perf-codegen.py b/lib/i915/perf-configs/perf-codegen.py
index 24c5514d..ac3ad683 100755
--- a/lib/i915/perf-configs/perf-codegen.py
+++ b/lib/i915/perf-configs/perf-codegen.py
@@ -36,109 +36,6 @@ c = None
hashed_funcs = {}
xml_equations = None
-def check_operand_type(set, arg):
- if arg.isdigit():
- return "\n<mn>" + arg + "</mn>"
- elif arg[0] == "$":
- if arg in set.counter_vars:
- description = set.counter_vars[arg].get('description')
- elif arg in hw_vars and 'desc' in hw_vars[arg]:
- description = hw_vars[arg]['desc'];
- else:
- description = None
-
- if description != None:
- return "\n<maction actiontype='tooltip'>\n<mi>" + arg + "</mi>\n<mtext>" + description + "</mtext>\n</maction>"
- else:
- return "<mi>" + arg + "</mi>"
- return arg
-
-# http://en.cppreference.com/w/c/language/operator_precedence
-and_precedence = 8
-shft_precedence = 5
-mul_precedence = 3
-add_precedence = 2
-sub_precedence = 2
-default_precedence = 16 #a high value which denotes no brackets needed
-
-def put_brackets(arg):
- return "\n<mtext>(</mtext>" + arg + "\n<mtext>)</mtext>"
-
-def mathml_splice_add(set, args):
- operand_0 = check_operand_type(set, args[0][0])
- operand_1 = check_operand_type(set, args[1][0])
- if args[0][1] < add_precedence:
- operand_0 = put_brackets(args[0][0])
- if args[1][1] < add_precedence:
- operand_1 = put_brackets(args[1][0])
- return [operand_1 + "\n<mo>+</mo>" + operand_0, add_precedence]
-
-def mathml_splice_div(set, args):
- operand_0 = check_operand_type(set, args[0][0])
- operand_1 = check_operand_type(set, args[1][0])
- return ["\n<mfrac>\n<mrow>" + operand_1 + "\n</mrow>\n<mrow>" + operand_0 + "</mrow>\n</mfrac>", default_precedence]
-
-def mathml_splice_max(set, args):
- operand_0 = check_operand_type(set, args[0][0])
- operand_1 = check_operand_type(set, args[1][0])
- return ["\n<mtext>max ( </mtext>" + operand_1 + "\n<mtext> , </mtext>" + operand_0 + "\n<mtext> ) </mtext>", default_precedence]
-
-def mathml_splice_mul(set, args):
- operand_0 = check_operand_type(set, args[0][0])
- operand_1 = check_operand_type(set, args[1][0])
- if args[0][1] < mul_precedence:
- operand_0 = put_brackets(args[0][0])
- if args[1][1] < mul_precedence:
- operand_1 = put_brackets(args[1][0])
- return [operand_1 + "\n<mo>*</mo>" + operand_0, mul_precedence]
-
-def mathml_splice_sub(set, args):
- operand_0 = check_operand_type(set, args[0][0])
- operand_1 = check_operand_type(set, args[1][0])
- if args[0][1] < sub_precedence:
- operand_0 = put_brackets(args[0][0])
- if args[1][1] < sub_precedence:
- operand_1 = put_brackets(args[1][0])
- return [operand_1 + "\n<mo>-</mo>" + operand_0, sub_precedence]
-
-def mathml_splice_read(set, args):
- return ["\n<maction actiontype='tooltip'>\n<mi>" + args[1][0] + args[0][0] + "</mi>\n<mtext>placeholder</mtext>\n</maction>", default_precedence]
-
-def mathml_splice_read_reg(set, args):
- return ["\n<maction actiontype='tooltip'>\n<mi>" + args[0][0] + "</mi>\n<mtext>placeholder</mtext>\n</maction>", default_precedence]
-
-def mathml_splice_min(set, args):
- operand_0 = check_operand_type(set, args[0][0])
- operand_1 = check_operand_type(set, args[1][0])
- return ["\n<mtext>min ( </mtext>" + operand_1 + "\n<mtext> , </mtext>" + operand_0 + "\n<mtext> ) </mtext>", default_precedence]
-
-def mathml_splice_lshft(set, args):
- operand_0 = check_operand_type(set, args[0][0])
- operand_1 = check_operand_type(set, args[1][0])
- if args[0][1] < shft_precedence:
- operand_0 = put_brackets(args[0][0])
- if args[1][1] < shft_precedence:
- operand_1 = put_brackets(args[1][0])
- return [operand_1 + "\n<mo><<</mo>" + operand_0, shft_precedence]
-
-def mathml_splice_rshft(set, args):
- operand_0 = check_operand_type(set, args[0][0])
- operand_1 = check_operand_type(set, args[1][0])
- if args[0][1] < mul_precedence:
- operand_0 = put_brackets(args[0][0])
- if args[1][1] < mul_precedence:
- operand_1 = put_brackets(args[1][0])
- return [operand_1 + "\n<mo>>></mo>" + operand_0, mul_precedence]
-
-def mathml_splice_and(set, args):
- operand_0 = check_operand_type(set, args[0][0])
- operand_1 = check_operand_type(set, args[1][0])
- if args[0][1] < and_precedence:
- operand_0 = put_brackets(args[0][0])
- if args[1][1] < and_precedence:
- operand_1 = put_brackets(args[1][0])
- return [operand_1 + "\n<mo>&</mo>" + operand_0, and_precedence]
-
def emit_fadd(tmp_id, args):
c("double tmp{0} = {1} + {2};".format(tmp_id, args[1], args[0]))
return tmp_id + 1
@@ -212,22 +109,22 @@ def emit_and(tmp_id, args):
return tmp_id + 1
ops = {}
-# (n operands, emitter1, emitter2)
-ops["FADD"] = (2, emit_fadd, mathml_splice_add)
-ops["FDIV"] = (2, emit_fdiv, mathml_splice_div)
-ops["FMAX"] = (2, emit_fmax, mathml_splice_max)
-ops["FMUL"] = (2, emit_fmul, mathml_splice_mul)
-ops["FSUB"] = (2, emit_fsub, mathml_splice_sub)
-ops["READ"] = (2, emit_read, mathml_splice_read)
-ops["READ_REG"] = (1, emit_read_reg, mathml_splice_read_reg)
-ops["UADD"] = (2, emit_uadd, mathml_splice_add)
-ops["UDIV"] = (2, emit_udiv, mathml_splice_div)
-ops["UMUL"] = (2, emit_umul, mathml_splice_mul)
-ops["USUB"] = (2, emit_usub, mathml_splice_sub)
-ops["UMIN"] = (2, emit_umin, mathml_splice_min)
-ops["<<"] = (2, emit_lshft, mathml_splice_lshft)
-ops[">>"] = (2, emit_rshft, mathml_splice_rshft)
-ops["AND"] = (2, emit_and, mathml_splice_and)
+# (n operands, emitter)
+ops["FADD"] = (2, emit_fadd)
+ops["FDIV"] = (2, emit_fdiv)
+ops["FMAX"] = (2, emit_fmax)
+ops["FMUL"] = (2, emit_fmul)
+ops["FSUB"] = (2, emit_fsub)
+ops["READ"] = (2, emit_read)
+ops["READ_REG"] = (1, emit_read_reg)
+ops["UADD"] = (2, emit_uadd)
+ops["UDIV"] = (2, emit_udiv)
+ops["UMUL"] = (2, emit_umul)
+ops["USUB"] = (2, emit_usub)
+ops["UMIN"] = (2, emit_umin)
+ops["<<"] = (2, emit_lshft)
+ops[">>"] = (2, emit_rshft)
+ops["AND"] = (2, emit_and)
def brkt(subexp):
if " " in subexp:
@@ -270,27 +167,6 @@ hw_vars = {
"$QueryMode": { 'c': "perf->devinfo.query_mode" },
}
-def splice_mathml_expression(set, equation, tag):
- tokens = equation.split()
- mathml_stack = []
- tmp_xml_operand = ""
- for token in tokens:
- if not mathml_stack:
- token = check_operand_type(set, token)
- mathml_stack.append([token, default_precedence])
- while mathml_stack and mathml_stack[-1][0] in ops:
- op = mathml_stack.pop()[0]
- argc, callback, mathml_callback = ops[op]
- xml_args = []
- for i in range(0, argc):
- xml_operand = mathml_stack.pop()
- xml_args.append(xml_operand)
- tmp_xml_operand = mathml_callback(set, xml_args)
- mathml_stack.append(tmp_xml_operand)
- xml_string = mathml_stack.pop()[0]
- equation_descr = "<mi>" + tag + "</mi><mo> = </mo>"
- return "<mathml_" + tag + ">" + equation_descr + xml_string + "</mathml_" + tag + ">"
-
def output_rpn_equation_code(set, counter, equation):
c("/* RPN equation: " + equation + " */")
tokens = equation.split()
@@ -302,7 +178,7 @@ def output_rpn_equation_code(set, counter, equation):
stack.append(token)
while stack and stack[-1] in ops:
op = stack.pop()
- argc, callback, mathml_callback = ops[op]
+ argc, callback = ops[op]
args = []
for i in range(0, argc):
operand = stack.pop()
@@ -656,7 +532,6 @@ def main():
parser = argparse.ArgumentParser()
parser.add_argument("--header", help="Header file to write")
parser.add_argument("--code", help="C file to write")
- parser.add_argument("--xml-out", help="Output XML files (adding mathml equations)")
parser.add_argument("xml_files", nargs='+', help="List of xml metrics files to process")
args = parser.parse_args()
@@ -669,15 +544,6 @@ def main():
for xml_file in args.xml_files:
gens.append(Gen(xml_file))
- if args.xml_out:
- for gen in gens:
- for set in gen.sets:
- for counter in set.counters:
- xml_equation = splice_mathml_expression(set, counter.get('equation'), "EQ")
- counter.append(et.fromstring(xml_equation))
- gen.xml.write(gen.filename)
-
-
copyright = textwrap.dedent("""\
/* Autogenerated file, DO NOT EDIT manually! generated by {}
*
--
2.25.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Intel-gfx] [PATCH i-g-t v2 2/3] lib/i915/perf: break generated code in separate files
2020-03-12 11:15 [Intel-gfx] [PATCH i-g-t v2 1/3] lib/i915/perf: remove generation code for mathml render Lionel Landwerlin
@ 2020-03-12 11:15 ` Lionel Landwerlin
2020-03-12 11:15 ` [Intel-gfx] [PATCH i-g-t v2 3/3] lib/i915/perf: update TGL configs Lionel Landwerlin
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Lionel Landwerlin @ 2020-03-12 11:15 UTC (permalink / raw)
To: intel-gfx
Initially all the generated code was per generation. Eventually we
grouped it into a single file to reuse as much as possible equation
code (this reduce binary size by a factor). So many equations are just
the same from generation to generation.
But this generated file is 200k lines long...
This change puts all the equations into a single file, so that we
reuse as much code as possible, and then breaks down the metric sets &
register configurations into per generation files.
v2: Split registers away from the metric set descriptions
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
---
lib/i915/perf-configs/codegen.py | 320 ++++++++
lib/i915/perf-configs/perf-codegen.py | 716 ------------------
.../perf-configs/perf-equations-codegen.py | 289 +++++++
.../perf-configs/perf-metricset-codegen.py | 238 ++++++
.../perf-configs/perf-registers-codegen.py | 159 ++++
lib/i915/perf.c | 18 +-
lib/meson.build | 33 +-
7 files changed, 1053 insertions(+), 720 deletions(-)
delete mode 100755 lib/i915/perf-configs/perf-codegen.py
create mode 100644 lib/i915/perf-configs/perf-equations-codegen.py
create mode 100644 lib/i915/perf-configs/perf-metricset-codegen.py
create mode 100644 lib/i915/perf-configs/perf-registers-codegen.py
diff --git a/lib/i915/perf-configs/codegen.py b/lib/i915/perf-configs/codegen.py
index 0802547a..88981d73 100644
--- a/lib/i915/perf-configs/codegen.py
+++ b/lib/i915/perf-configs/codegen.py
@@ -1,3 +1,5 @@
+import xml.etree.cElementTree as et
+
class Codegen:
_file = None
@@ -31,3 +33,321 @@ class Codegen:
self._indent = self._indent + n
def outdent(self, n):
self._indent = self._indent - n
+
+
+class Counter:
+ def __init__(self, set, xml):
+ self.xml = xml
+ self.set = set
+ self.read_hash = None
+ self.max_hash = None
+
+ self.read_sym = "{0}__{1}__{2}__read".format(self.set.gen.chipset,
+ self.set.underscore_name,
+ self.xml.get('underscore_name'))
+
+ max_eq = self.xml.get('max_equation')
+ if not max_eq:
+ self.max_sym = "NULL /* undefined */"
+ elif max_eq == "100":
+ self.max_sym = "percentage_max_callback_" + self.xml.get('data_type')
+ else:
+ self.max_sym = "{0}__{1}__{2}__max".format(self.set.gen.chipset,
+ self.set.underscore_name,
+ self.xml.get('underscore_name'))
+
+ def get(self, prop):
+ return self.xml.get(prop)
+
+ def compute_hashes(self):
+ if self.read_hash is not None:
+ return
+
+ def replace_func(token):
+ if token[0] != "$":
+ return token
+ if token not in self.set.counter_vars:
+ return token
+ self.set.counter_vars[token].compute_hashes()
+ return self.set.counter_vars[token].read_hash
+
+ read_eq = self.xml.get('equation')
+ self.read_hash = ' '.join(map(replace_func, read_eq.split()))
+
+ max_eq = self.xml.get('max_equation')
+ if max_eq:
+ self.max_hash = ' '.join(map(replace_func, max_eq.split()))
+
+class Set:
+ def __init__(self, gen, xml):
+ self.gen = gen
+ self.xml = xml
+
+ self.counter_vars = {}
+ self.max_funcs = {}
+ self.read_funcs = {}
+ self.counter_hashes = {}
+
+ self.counters = []
+ xml_counters = self.xml.findall("counter")
+ for xml_counter in xml_counters:
+ counter = Counter(self, xml_counter)
+ self.counters.append(counter)
+ self.counter_vars["$" + counter.get('symbol_name')] = counter
+ self.max_funcs[counter.get('symbol_name')] = counter.max_sym
+ self.read_funcs[counter.get('symbol_name')] = counter.read_sym
+
+ for counter in self.counters:
+ counter.compute_hashes()
+
+ @property
+ def hw_config_guid(self):
+ return self.xml.get('hw_config_guid')
+
+ @property
+ def name(self):
+ return self.xml.get('name')
+
+ @property
+ def symbol_name(self):
+ return self.xml.get('symbol_name')
+
+ @property
+ def underscore_name(self):
+ return self.xml.get('underscore_name')
+
+ def findall(self, path):
+ return self.xml.findall(path)
+
+ def find(self, path):
+ return self.xml.find(path)
+
+
+class Gen:
+ def __init__(self, filename, c):
+ self.filename = filename
+ self.xml = et.parse(self.filename)
+ self.chipset = self.xml.find('.//set').get('chipset').lower()
+ self.sets = []
+ self.c = c
+
+ for xml_set in self.xml.findall(".//set"):
+ self.sets.append(Set(self, xml_set))
+
+ self.ops = {}
+ # (n operands, emitter)
+ self.ops["FADD"] = (2, self.emit_fadd)
+ self.ops["FDIV"] = (2, self.emit_fdiv)
+ self.ops["FMAX"] = (2, self.emit_fmax)
+ self.ops["FMUL"] = (2, self.emit_fmul)
+ self.ops["FSUB"] = (2, self.emit_fsub)
+ self.ops["READ"] = (2, self.emit_read)
+ self.ops["READ_REG"] = (1, self.emit_read_reg)
+ self.ops["UADD"] = (2, self.emit_uadd)
+ self.ops["UDIV"] = (2, self.emit_udiv)
+ self.ops["UMUL"] = (2, self.emit_umul)
+ self.ops["USUB"] = (2, self.emit_usub)
+ self.ops["UMIN"] = (2, self.emit_umin)
+ self.ops["<<"] = (2, self.emit_lshft)
+ self.ops[">>"] = (2, self.emit_rshft)
+ self.ops["AND"] = (2, self.emit_and)
+
+ self.exp_ops = {}
+ # (n operands, splicer)
+ self.exp_ops["AND"] = (2, self.splice_bitwise_and)
+ self.exp_ops["UGTE"] = (2, self.splice_ugte)
+ self.exp_ops["ULT"] = (2, self.splice_ult)
+ self.exp_ops["&&"] = (2, self.splice_logical_and)
+
+ self.hw_vars = {
+ "$EuCoresTotalCount": { 'c': "perf->devinfo.n_eus", 'desc': "The total number of execution units" },
+ "$EuSlicesTotalCount": { 'c': "perf->devinfo.n_eu_slices" },
+ "$EuSubslicesTotalCount": { 'c': "perf->devinfo.n_eu_sub_slices" },
+ "$EuThreadsCount": { 'c': "perf->devinfo.eu_threads_count" },
+ "$SliceMask": { 'c': "perf->devinfo.slice_mask" },
+ "$DualSubsliceMask": { 'c': "perf->devinfo.subslice_mask" },
+ "$SubsliceMask": { 'c': "perf->devinfo.subslice_mask" },
+ "$GpuTimestampFrequency": { 'c': "perf->devinfo.timestamp_frequency" },
+ "$GpuMinFrequency": { 'c': "perf->devinfo.gt_min_freq" },
+ "$GpuMaxFrequency": { 'c': "perf->devinfo.gt_max_freq" },
+ "$SkuRevisionId": { 'c': "perf->devinfo.revision" },
+ "$QueryMode": { 'c': "perf->devinfo.query_mode" },
+ }
+
+ def emit_fadd(self, tmp_id, args):
+ self.c("double tmp{0} = {1} + {2};".format(tmp_id, args[1], args[0]))
+ return tmp_id + 1
+
+ # Be careful to check for divide by zero...
+ def emit_fdiv(self, tmp_id, args):
+ self.c("double tmp{0} = {1};".format(tmp_id, args[1]))
+ self.c("double tmp{0} = {1};".format(tmp_id + 1, args[0]))
+ self.c("double tmp{0} = tmp{1} ? tmp{2} / tmp{1} : 0;".format(tmp_id + 2, tmp_id + 1, tmp_id))
+ return tmp_id + 3
+
+ def emit_fmax(self, tmp_id, args):
+ self.c("double tmp{0} = {1};".format(tmp_id, args[1]))
+ self.c("double tmp{0} = {1};".format(tmp_id + 1, args[0]))
+ self.c("double tmp{0} = MAX(tmp{1}, tmp{2});".format(tmp_id + 2, tmp_id, tmp_id + 1))
+ return tmp_id + 3
+
+ def emit_fmul(self, tmp_id, args):
+ self.c("double tmp{0} = {1} * {2};".format(tmp_id, args[1], args[0]))
+ return tmp_id + 1
+
+ def emit_fsub(self, tmp_id, args):
+ self.c("double tmp{0} = {1} - {2};".format(tmp_id, args[1], args[0]))
+ return tmp_id + 1
+
+ def emit_read(self, tmp_id, args):
+ type = args[1].lower()
+ self.c("uint64_t tmp{0} = accumulator[metric_set->{1}_offset + {2}];".format(tmp_id, type, args[0]))
+ return tmp_id + 1
+
+ # Disabled here as the generated code is not capturing registers. This
+ # will only be useful for query mode where the driver captures
+ # additional registers.
+ def emit_read_reg(self, tmp_id, args):
+ self.c("uint64_t tmp{0} = 0;".format(tmp_id))
+ return tmp_id + 1
+
+ def emit_uadd(self, tmp_id, args):
+ self.c("uint64_t tmp{0} = {1} + {2};".format(tmp_id, args[1], args[0]))
+ return tmp_id + 1
+
+ # Be careful to check for divide by zero...
+ def emit_udiv(self, tmp_id, args):
+ self.c("uint64_t tmp{0} = {1};".format(tmp_id, args[1]))
+ self.c("uint64_t tmp{0} = {1};".format(tmp_id + 1, args[0]))
+ self.c("uint64_t tmp{0} = tmp{1} ? tmp{2} / tmp{1} : 0;".format(tmp_id + 2, tmp_id + 1, tmp_id))
+ return tmp_id + 3
+
+ def emit_umul(self, tmp_id, args):
+ self.c("uint64_t tmp{0} = {1} * {2};".format(tmp_id, args[1], args[0]))
+ return tmp_id + 1
+
+ def emit_usub(self, tmp_id, args):
+ self.c("uint64_t tmp{0} = {1} - {2};".format(tmp_id, args[1], args[0]))
+ return tmp_id + 1
+
+ def emit_umin(self, tmp_id, args):
+ self.c("uint64_t tmp{0} = MIN({1}, {2});".format(tmp_id, args[1], args[0]))
+ return tmp_id + 1
+
+ def emit_lshft(self, tmp_id, args):
+ self.c("uint64_t tmp{0} = {1} << {2};".format(tmp_id, args[1], args[0]))
+ return tmp_id + 1
+
+ def emit_rshft(self, tmp_id, args):
+ self.c("uint64_t tmp{0} = {1} >> {2};".format(tmp_id, args[1], args[0]))
+ return tmp_id + 1
+
+ def emit_and(self, tmp_id, args):
+ self.c("uint64_t tmp{0} = {1} & {2};".format(tmp_id, args[1], args[0]))
+ return tmp_id + 1
+
+ def brkt(self, subexp):
+ if " " in subexp:
+ return "(" + subexp + ")"
+ else:
+ return subexp
+
+ def splice_bitwise_and(self, args):
+ return self.brkt(args[1]) + " & " + self.brkt(args[0])
+
+ def splice_logical_and(self, args):
+ return self.brkt(args[1]) + " && " + self.brkt(args[0])
+
+ def splice_ult(self, args):
+ return self.brkt(args[1]) + " < " + self.brkt(args[0])
+
+ def splice_ugte(self, args):
+ return self.brkt(args[1]) + " >= " + self.brkt(args[0])
+
+ def output_rpn_equation_code(self, set, counter, equation):
+ self.c("/* RPN equation: " + equation + " */")
+ tokens = equation.split()
+ stack = []
+ tmp_id = 0
+ tmp = None
+
+ for token in tokens:
+ stack.append(token)
+ while stack and stack[-1] in self.ops:
+ op = stack.pop()
+ argc, callback = self.ops[op]
+ args = []
+ for i in range(0, argc):
+ operand = stack.pop()
+ if operand[0] == "$":
+ if operand in self.hw_vars:
+ operand = self.hw_vars[operand]['c']
+ elif operand in set.counter_vars:
+ reference = set.counter_vars[operand]
+ operand = set.read_funcs[operand[1:]] + "(perf, metric_set, accumulator)"
+ else:
+ raise Exception("Failed to resolve variable " + operand + " in equation " + equation + " for " + set.name + " :: " + counter.get('name'));
+ args.append(operand)
+
+ tmp_id = callback(tmp_id, args)
+
+ tmp = "tmp{0}".format(tmp_id - 1)
+ stack.append(tmp)
+
+ if len(stack) != 1:
+ raise Exception("Spurious empty rpn code for " + set.name + " :: " +
+ counter.get('name') + ".\nThis is probably due to some unhandled RPN function, in the equation \"" +
+ equation + "\"")
+
+ value = stack[-1]
+
+ if value in self.hw_vars:
+ value = self.hw_vars[value]['c']
+ if value in set.counter_vars:
+ value = set.read_funcs[value[1:]] + "(perf, metric_set, accumulator)"
+
+ self.c("\nreturn " + value + ";")
+
+ def splice_rpn_expression(self, set, counter_name, expression):
+ tokens = expression.split()
+ stack = []
+
+ for token in tokens:
+ stack.append(token)
+ while stack and stack[-1] in self.exp_ops:
+ op = stack.pop()
+ argc, callback = self.exp_ops[op]
+ args = []
+ for i in range(0, argc):
+ operand = stack.pop()
+ if operand[0] == "$":
+ if operand in self.hw_vars:
+ operand = self.hw_vars[operand]['c']
+ else:
+ raise Exception("Failed to resolve variable " + operand + " in expression " + expression + " for " + set.name + " :: " + counter_name)
+ args.append(operand)
+
+ subexp = callback(args)
+
+ stack.append(subexp)
+
+ if len(stack) != 1:
+ raise Exception("Spurious empty rpn expression for " + set.name + " :: " +
+ counter_name + ".\nThis is probably due to some unhandled RPN operation, in the expression \"" +
+ expression + "\"")
+
+ return stack[-1]
+
+ def output_availability(self, set, availability, counter_name):
+ expression = self.splice_rpn_expression(set, counter_name, availability)
+ lines = expression.split(' && ')
+ n_lines = len(lines)
+ if n_lines == 1:
+ self.c("if (" + lines[0] + ") {")
+ else:
+ self.c("if (" + lines[0] + " &&")
+ self.c.indent(4)
+ for i in range(1, (n_lines - 1)):
+ self.c(lines[i] + " &&")
+ self.c(lines[(n_lines - 1)] + ") {")
+ self.c.outdent(4)
diff --git a/lib/i915/perf-configs/perf-codegen.py b/lib/i915/perf-configs/perf-codegen.py
deleted file mode 100755
index ac3ad683..00000000
--- a/lib/i915/perf-configs/perf-codegen.py
+++ /dev/null
@@ -1,716 +0,0 @@
-#!/usr/bin/env python3
-#
-# Copyright (c) 2015-2018 Intel Corporation
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice (including the next
-# paragraph) shall be included in all copies or substantial portions of the
-# Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-# IN THE SOFTWARE.
-
-import argparse
-import os
-import sys
-import textwrap
-
-import xml.etree.cElementTree as et
-
-import codegen
-
-h = None
-c = None
-
-hashed_funcs = {}
-xml_equations = None
-
-def emit_fadd(tmp_id, args):
- c("double tmp{0} = {1} + {2};".format(tmp_id, args[1], args[0]))
- return tmp_id + 1
-
-# Be careful to check for divide by zero...
-def emit_fdiv(tmp_id, args):
- c("double tmp{0} = {1};".format(tmp_id, args[1]))
- c("double tmp{0} = {1};".format(tmp_id + 1, args[0]))
- c("double tmp{0} = tmp{1} ? tmp{2} / tmp{1} : 0;".format(tmp_id + 2, tmp_id + 1, tmp_id))
- return tmp_id + 3
-
-def emit_fmax(tmp_id, args):
- c("double tmp{0} = {1};".format(tmp_id, args[1]))
- c("double tmp{0} = {1};".format(tmp_id + 1, args[0]))
- c("double tmp{0} = MAX(tmp{1}, tmp{2});".format(tmp_id + 2, tmp_id, tmp_id + 1))
- return tmp_id + 3
-
-def emit_fmul(tmp_id, args):
- c("double tmp{0} = {1} * {2};".format(tmp_id, args[1], args[0]))
- return tmp_id + 1
-
-def emit_fsub(tmp_id, args):
- c("double tmp{0} = {1} - {2};".format(tmp_id, args[1], args[0]))
- return tmp_id + 1
-
-def emit_read(tmp_id, args):
- type = args[1].lower()
- c("uint64_t tmp{0} = accumulator[metric_set->{1}_offset + {2}];".format(tmp_id, type, args[0]))
- return tmp_id + 1
-
-# Disabled here as the generated code is not capturing registers. This
-# will only be useful for query mode where the driver captures
-# additional registers.
-def emit_read_reg(tmp_id, args):
- c("uint64_t tmp{0} = 0;".format(tmp_id))
- return tmp_id + 1
-
-def emit_uadd(tmp_id, args):
- c("uint64_t tmp{0} = {1} + {2};".format(tmp_id, args[1], args[0]))
- return tmp_id + 1
-
-# Be careful to check for divide by zero...
-def emit_udiv(tmp_id, args):
- c("uint64_t tmp{0} = {1};".format(tmp_id, args[1]))
- c("uint64_t tmp{0} = {1};".format(tmp_id + 1, args[0]))
- c("uint64_t tmp{0} = tmp{1} ? tmp{2} / tmp{1} : 0;".format(tmp_id + 2, tmp_id + 1, tmp_id))
- return tmp_id + 3
-
-def emit_umul(tmp_id, args):
- c("uint64_t tmp{0} = {1} * {2};".format(tmp_id, args[1], args[0]))
- return tmp_id + 1
-
-def emit_usub(tmp_id, args):
- c("uint64_t tmp{0} = {1} - {2};".format(tmp_id, args[1], args[0]))
- return tmp_id + 1
-
-def emit_umin(tmp_id, args):
- c("uint64_t tmp{0} = MIN({1}, {2});".format(tmp_id, args[1], args[0]))
- return tmp_id + 1
-
-def emit_lshft(tmp_id, args):
- c("uint64_t tmp{0} = {1} << {2};".format(tmp_id, args[1], args[0]))
- return tmp_id + 1
-
-def emit_rshft(tmp_id, args):
- c("uint64_t tmp{0} = {1} >> {2};".format(tmp_id, args[1], args[0]))
- return tmp_id + 1
-
-def emit_and(tmp_id, args):
- c("uint64_t tmp{0} = {1} & {2};".format(tmp_id, args[1], args[0]))
- return tmp_id + 1
-
-ops = {}
-# (n operands, emitter)
-ops["FADD"] = (2, emit_fadd)
-ops["FDIV"] = (2, emit_fdiv)
-ops["FMAX"] = (2, emit_fmax)
-ops["FMUL"] = (2, emit_fmul)
-ops["FSUB"] = (2, emit_fsub)
-ops["READ"] = (2, emit_read)
-ops["READ_REG"] = (1, emit_read_reg)
-ops["UADD"] = (2, emit_uadd)
-ops["UDIV"] = (2, emit_udiv)
-ops["UMUL"] = (2, emit_umul)
-ops["USUB"] = (2, emit_usub)
-ops["UMIN"] = (2, emit_umin)
-ops["<<"] = (2, emit_lshft)
-ops[">>"] = (2, emit_rshft)
-ops["AND"] = (2, emit_and)
-
-def brkt(subexp):
- if " " in subexp:
- return "(" + subexp + ")"
- else:
- return subexp
-
-def splice_bitwise_and(args):
- return brkt(args[1]) + " & " + brkt(args[0])
-
-def splice_logical_and(args):
- return brkt(args[1]) + " && " + brkt(args[0])
-
-def splice_ult(args):
- return brkt(args[1]) + " < " + brkt(args[0])
-
-def splice_ugte(args):
- return brkt(args[1]) + " >= " + brkt(args[0])
-
-exp_ops = {}
-# (n operands, splicer)
-exp_ops["AND"] = (2, splice_bitwise_and)
-exp_ops["UGTE"] = (2, splice_ugte)
-exp_ops["ULT"] = (2, splice_ult)
-exp_ops["&&"] = (2, splice_logical_and)
-
-
-hw_vars = {
- "$EuCoresTotalCount": { 'c': "perf->devinfo.n_eus", 'desc': "The total number of execution units" },
- "$EuSlicesTotalCount": { 'c': "perf->devinfo.n_eu_slices" },
- "$EuSubslicesTotalCount": { 'c': "perf->devinfo.n_eu_sub_slices" },
- "$EuThreadsCount": { 'c': "perf->devinfo.eu_threads_count" },
- "$SliceMask": { 'c': "perf->devinfo.slice_mask" },
- "$DualSubsliceMask": { 'c': "perf->devinfo.subslice_mask" },
- "$SubsliceMask": { 'c': "perf->devinfo.subslice_mask" },
- "$GpuTimestampFrequency": { 'c': "perf->devinfo.timestamp_frequency" },
- "$GpuMinFrequency": { 'c': "perf->devinfo.gt_min_freq" },
- "$GpuMaxFrequency": { 'c': "perf->devinfo.gt_max_freq" },
- "$SkuRevisionId": { 'c': "perf->devinfo.revision" },
- "$QueryMode": { 'c': "perf->devinfo.query_mode" },
-}
-
-def output_rpn_equation_code(set, counter, equation):
- c("/* RPN equation: " + equation + " */")
- tokens = equation.split()
- stack = []
- tmp_id = 0
- tmp = None
-
- for token in tokens:
- stack.append(token)
- while stack and stack[-1] in ops:
- op = stack.pop()
- argc, callback = ops[op]
- args = []
- for i in range(0, argc):
- operand = stack.pop()
- if operand[0] == "$":
- if operand in hw_vars:
- operand = hw_vars[operand]['c']
- elif operand in set.counter_vars:
- reference = set.counter_vars[operand]
- operand = set.read_funcs[operand[1:]] + "(perf, metric_set, accumulator)"
- else:
- raise Exception("Failed to resolve variable " + operand + " in equation " + equation + " for " + set.name + " :: " + counter.get('name'));
- args.append(operand)
-
- tmp_id = callback(tmp_id, args)
-
- tmp = "tmp{0}".format(tmp_id - 1)
- stack.append(tmp)
-
- if len(stack) != 1:
- raise Exception("Spurious empty rpn code for " + set.name + " :: " +
- counter.get('name') + ".\nThis is probably due to some unhandled RPN function, in the equation \"" +
- equation + "\"")
-
- value = stack[-1]
-
- if value in hw_vars:
- value = hw_vars[value]['c']
- if value in set.counter_vars:
- value = set.read_funcs[value[1:]] + "(perf, metric_set, accumulator)"
-
- c("\nreturn " + value + ";")
-
-def splice_rpn_expression(set, counter_name, expression):
- tokens = expression.split()
- stack = []
-
- for token in tokens:
- stack.append(token)
- while stack and stack[-1] in exp_ops:
- op = stack.pop()
- argc, callback = exp_ops[op]
- args = []
- for i in range(0, argc):
- operand = stack.pop()
- if operand[0] == "$":
- if operand in hw_vars:
- operand = hw_vars[operand]['c']
- else:
- raise Exception("Failed to resolve variable " + operand + " in expression " + expression + " for " + set.name + " :: " + counter_name)
- args.append(operand)
-
- subexp = callback(args)
-
- stack.append(subexp)
-
- if len(stack) != 1:
- raise Exception("Spurious empty rpn expression for " + set.name + " :: " +
- counter_name + ".\nThis is probably due to some unhandled RPN operation, in the expression \"" +
- expression + "\"")
-
- return stack[-1]
-
-
-def data_type_to_ctype(ret_type):
- if ret_type == "uint64":
- return "uint64_t"
- elif ret_type == "float":
- return "double"
- else:
- raise Exception("Unhandled case for mapping \"" + ret_type + "\" to a C type")
-
-
-def output_counter_read(gen, set, counter):
- c("\n")
- c("/* {0} :: {1} */".format(set.name, counter.get('name')))
-
- if counter.read_hash in hashed_funcs:
- c("#define %s \\" % counter.read_sym)
- c.indent(4)
- c("%s" % hashed_funcs[counter.read_hash])
- c.outdent(4)
- else:
- ret_type = counter.get('data_type')
- ret_ctype = data_type_to_ctype(ret_type)
- read_eq = counter.get('equation')
-
- c("static " + ret_ctype)
- c(counter.read_sym + "(const struct intel_perf *perf,\n")
- c.indent(len(counter.read_sym) + 1)
- c("const struct intel_perf_metric_set *metric_set,\n")
- c("uint64_t *accumulator)\n")
- c.outdent(len(counter.read_sym) + 1)
-
- c("{")
- c.indent(4)
-
- output_rpn_equation_code(set, counter, read_eq)
-
- c.outdent(4)
- c("}")
-
- hashed_funcs[counter.read_hash] = counter.read_sym
-
-
-def output_counter_max(gen, set, counter):
- max_eq = counter.get('max_equation')
-
- if not max_eq or max_eq == "100":
- return
-
- c("\n")
- c("/* {0} :: {1} */".format(set.name, counter.get('name')))
-
- if counter.max_hash in hashed_funcs:
- c("#define %s \\" % counter.max_sym)
- c.indent(4)
- c("%s" % hashed_funcs[counter.max_hash])
- c.outdent(4)
- else:
- ret_type = counter.get('data_type')
- ret_ctype = data_type_to_ctype(ret_type)
-
- c("static " + ret_ctype)
-
- c(counter.max_sym + "(const struct intel_perf *perf,\n")
- c.indent(len(counter.max_sym) + 1)
- c("const struct intel_perf_metric_set *metric_set,\n")
- c("uint64_t *accumulator)\n")
- c.outdent(len(counter.max_sym) + 1)
-
- c("{")
- c.indent(4)
-
- output_rpn_equation_code(set, counter, max_eq)
-
- c.outdent(4)
- c("}")
-
- hashed_funcs[counter.max_hash] = counter.max_sym
-
-
-semantic_type_map = {
- "duration": "raw",
- "ratio": "event"
- }
-
-def output_availability(set, availability, counter_name):
- expression = splice_rpn_expression(set, counter_name, availability)
- lines = expression.split(' && ')
- n_lines = len(lines)
- if n_lines == 1:
- c("if (" + lines[0] + ") {")
- else:
- c("if (" + lines[0] + " &&")
- c.indent(4)
- for i in range(1, (n_lines - 1)):
- c(lines[i] + " &&")
- c(lines[(n_lines - 1)] + ") {")
- c.outdent(4)
-
-
-def output_units(unit):
- return unit.replace(' ', '_').upper()
-
-
-def output_counter_report(set, counter):
- data_type = counter.get('data_type')
- data_type_uc = data_type.upper()
- c_type = data_type
-
- if "uint" in c_type:
- c_type = c_type + "_t"
-
- semantic_type = counter.get('semantic_type')
- if semantic_type in semantic_type_map:
- semantic_type = semantic_type_map[semantic_type]
-
- semantic_type_uc = semantic_type.upper()
-
- c("\n")
-
- availability = counter.get('availability')
- if availability:
- output_availability(set, availability, counter.get('name'))
- c.indent(4)
-
- c("counter = &metric_set->counters[metric_set->n_counters++];\n")
- c("counter->metric_set = metric_set;\n")
- c("counter->name = \"{0}\";\n".format(counter.get('name')))
- c("counter->symbol_name = \"{0}\";\n".format(counter.get('symbol_name')));
- c("counter->desc = \"{0}\";\n".format(counter.get('description')))
- c("counter->type = INTEL_PERF_LOGICAL_COUNTER_TYPE_{0};\n".format(semantic_type_uc))
- c("counter->storage = INTEL_PERF_LOGICAL_COUNTER_STORAGE_{0};\n".format(data_type_uc))
- c("counter->unit = INTEL_PERF_LOGICAL_COUNTER_UNIT_{0};\n".format(output_units(counter.get('units'))))
- c("counter->read_{0} = {1};\n".format(data_type, set.read_funcs[counter.get('symbol_name')]))
- c("counter->max_{0} = {1};\n".format(data_type, set.max_funcs[counter.get('symbol_name')]))
- c("intel_perf_add_logical_counter(perf, counter, \"{0}\");\n".format(counter.get('mdapi_group')))
-
- if availability:
- c.outdent(4)
- c("}\n")
-
-
-def generate_register_configs(set):
- register_types = {
- 'FLEX': 'flex_regs',
- 'NOA': 'mux_regs',
- 'OA': 'b_counter_regs',
- }
-
- # allocate memory
- total_n_registers = {}
- register_configs = set.findall('register_config')
- for register_config in register_configs:
- t = register_types[register_config.get('type')]
- if t not in total_n_registers:
- total_n_registers[t] = len(register_config.findall('register'))
- else:
- total_n_registers[t] += len(register_config.findall('register'))
-
- for reg in total_n_registers:
- c("metric_set->{0} = calloc({1}, sizeof(struct intel_perf_register_prog));".format(reg, total_n_registers[reg]))
- c("\n")
-
- # fill in register/values
- register_configs = set.findall('register_config')
- for register_config in register_configs:
- t = register_types[register_config.get('type')]
-
- availability = register_config.get('availability')
- if availability:
- output_availability(set, availability, register_config.get('type') + ' register config')
- c.indent(4)
-
- for register in register_config.findall('register'):
- c("metric_set->%s[metric_set->n_%s++] = (struct intel_perf_register_prog) { .reg = %s, .val = %s };" %
- (t, t, register.get('address'), register.get('value')))
-
- if availability:
- c.outdent(4)
- c("}")
- c("\n")
-
-#
-
-class Counter:
- def __init__(self, set, xml):
- self.xml = xml
- self.set = set
- self.read_hash = None
- self.max_hash = None
-
- self.read_sym = "{0}__{1}__{2}__read".format(self.set.gen.chipset,
- self.set.underscore_name,
- self.xml.get('underscore_name'))
-
- max_eq = self.xml.get('max_equation')
- if not max_eq:
- self.max_sym = "NULL /* undefined */"
- elif max_eq == "100":
- self.max_sym = "percentage_max_callback_" + self.xml.get('data_type')
- else:
- self.max_sym = "{0}__{1}__{2}__max".format(self.set.gen.chipset,
- self.set.underscore_name,
- self.xml.get('underscore_name'))
-
- def get(self, prop):
- return self.xml.get(prop)
-
- def compute_hashes(self):
- if self.read_hash is not None:
- return
-
- def replace_func(token):
- if token[0] != "$":
- return token
- if token not in self.set.counter_vars:
- return token
- self.set.counter_vars[token].compute_hashes()
- return self.set.counter_vars[token].read_hash
-
- read_eq = self.xml.get('equation')
- self.read_hash = ' '.join(map(replace_func, read_eq.split()))
-
- max_eq = self.xml.get('max_equation')
- if max_eq:
- self.max_hash = ' '.join(map(replace_func, max_eq.split()))
-
-
-class Set:
- def __init__(self, gen, xml):
- self.gen = gen
- self.xml = xml
-
- self.counter_vars = {}
- self.max_funcs = {}
- self.read_funcs = {}
- self.counter_hashes = {}
-
- self.counters = []
- xml_counters = self.xml.findall("counter")
- for xml_counter in xml_counters:
- counter = Counter(self, xml_counter)
- self.counters.append(counter)
- self.counter_vars["$" + counter.get('symbol_name')] = counter
- self.max_funcs[counter.get('symbol_name')] = counter.max_sym
- self.read_funcs[counter.get('symbol_name')] = counter.read_sym
-
- for counter in self.counters:
- counter.compute_hashes()
-
- @property
- def hw_config_guid(self):
- return self.xml.get('hw_config_guid')
-
- @property
- def name(self):
- return self.xml.get('name')
-
- @property
- def symbol_name(self):
- return self.xml.get('symbol_name')
-
- @property
- def underscore_name(self):
- return self.xml.get('underscore_name')
-
- def findall(self, path):
- return self.xml.findall(path)
-
- def find(self, path):
- return self.xml.find(path)
-
-
-class Gen:
- def __init__(self, filename):
- self.filename = filename
- self.xml = et.parse(self.filename)
- self.chipset = self.xml.find('.//set').get('chipset').lower()
- self.sets = []
-
- for xml_set in self.xml.findall(".//set"):
- self.sets.append(Set(self, xml_set))
-
-
-def main():
- global c
- global h
- global xml_equations
-
- parser = argparse.ArgumentParser()
- parser.add_argument("--header", help="Header file to write")
- parser.add_argument("--code", help="C file to write")
- parser.add_argument("xml_files", nargs='+', help="List of xml metrics files to process")
-
- args = parser.parse_args()
-
- # Note: either arg may == None
- h = codegen.Codegen(args.header)
- c = codegen.Codegen(args.code)
-
- gens = []
- for xml_file in args.xml_files:
- gens.append(Gen(xml_file))
-
- copyright = textwrap.dedent("""\
- /* Autogenerated file, DO NOT EDIT manually! generated by {}
- *
- * Copyright (c) 2018 Intel Corporation
- *
- * Permission is hereby granted, free of charge, to any person obtaining a
- * copy of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice (including the next
- * paragraph) shall be included in all copies or substantial portions of the
- * Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
- * DEALINGS IN THE SOFTWARE.
- */
-
- """).format(os.path.basename(__file__))
-
- h(copyright)
- c(copyright)
- c(textwrap.dedent("""\
- #include <stddef.h>
- #include <stdint.h>
- #include <stdbool.h>
- #include <assert.h>
-
- """))
-
- c("#include \"" + os.path.basename(args.header) + "\"")
-
- c(textwrap.dedent("""\
- #include <stdlib.h>
- #include <string.h>
-
- #include <i915_drm.h>
-
- #include "i915/perf.h"
-
- #define MIN(x, y) (((x) < (y)) ? (x) : (y))
- #define MAX(a, b) (((a) > (b)) ? (a) : (b))
-
- static double
- percentage_max_callback_float(const struct intel_perf *perf,
- const struct intel_perf_metric_set *metric_set,
- uint64_t *accumulator)
- {
- return 100;
- }
-
- static uint64_t
- percentage_max_callback_uint64(const struct intel_perf *perf,
- const struct intel_perf_metric_set *metric_set,
- uint64_t *accumulator)
- {
- return 100;
- }
-
- """))
-
- # Print out all equation functions.
- for gen in gens:
- for set in gen.sets:
- for counter in set.counters:
- output_counter_read(gen, set, counter)
- output_counter_max(gen, set, counter)
-
- # Print out all set registration functions for each set in each
- # generation.
- for gen in gens:
- for set in gen.sets:
- c("\nstatic void\n")
- c(gen.chipset + "_add_" + set.underscore_name + "_metric_set(struct intel_perf *perf)")
- c("{\n")
- c.indent(4)
-
- c("struct intel_perf_metric_set *metric_set;\n")
- c("struct intel_perf_logical_counter *counter;\n\n")
-
- counters = sorted(set.counters, key=lambda k: k.get('symbol_name'))
-
- c("metric_set = calloc(1, sizeof(*metric_set));\n")
- c("metric_set->name = \"" + set.name + "\";\n")
- c("metric_set->symbol_name = \"" + set.symbol_name + "\";\n")
- c("metric_set->hw_config_guid = \"" + set.hw_config_guid + "\";\n")
- c("metric_set->counters = calloc({0}, sizeof(struct intel_perf_logical_counter));\n".format(str(len(counters))))
- c("metric_set->n_counters = 0;\n")
- c("metric_set->perf_oa_metrics_set = 0; // determined at runtime\n")
-
- if gen.chipset == "hsw":
- c(textwrap.dedent("""\
- metric_set->perf_oa_format = I915_OA_FORMAT_A45_B8_C8;
-
- metric_set->perf_raw_size = 256;
- metric_set->gpu_time_offset = 0;
- metric_set->a_offset = 1;
- metric_set->b_offset = metric_set->a_offset + 45;
- metric_set->c_offset = metric_set->b_offset + 8;
-
- """))
- else:
- c(textwrap.dedent("""\
- metric_set->perf_oa_format = I915_OA_FORMAT_A32u40_A4u32_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 + 36;
- metric_set->c_offset = metric_set->b_offset + 8;
-
- """))
-
- c("intel_perf_add_metric_set(perf, metric_set);");
- c("\n")
-
- generate_register_configs(set)
-
- for counter in counters:
- output_counter_report(set, counter)
-
- c("\nassert(metric_set->n_counters <= {0});\n".format(len(counters)));
-
- c.outdent(4)
- c("}\n")
-
- h(textwrap.dedent("""\
- #pragma once
-
- #include "i915/perf.h"
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
- """))
-
- # Print out all set registration functions for each generation.
- for gen in gens:
- h("void intel_perf_load_metrics_" + gen.chipset + "(struct intel_perf *perf);\n\n")
-
- c("\nvoid")
- c("intel_perf_load_metrics_" + gen.chipset + "(struct intel_perf *perf)")
- c("{")
- c.indent(4)
-
- for set in gen.sets:
- c("{0}_add_{1}_metric_set(perf);".format(gen.chipset, set.underscore_name))
-
- c.outdent(4)
- c("}")
-
- h(textwrap.dedent("""\
- #ifdef __cplusplus
- } /* extern C */
- #endif
-
- """))
-
-
-if __name__ == '__main__':
- main()
diff --git a/lib/i915/perf-configs/perf-equations-codegen.py b/lib/i915/perf-configs/perf-equations-codegen.py
new file mode 100644
index 00000000..610205ef
--- /dev/null
+++ b/lib/i915/perf-configs/perf-equations-codegen.py
@@ -0,0 +1,289 @@
+#!/usr/bin/env python3
+#
+# Copyright (c) 2015-2020 Intel Corporation
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+# IN THE SOFTWARE.
+
+import argparse
+import os
+import sys
+import textwrap
+
+import codegen
+
+h = None
+c = None
+
+hashed_funcs = {}
+
+def data_type_to_ctype(ret_type):
+ if ret_type == "uint64":
+ return "uint64_t"
+ elif ret_type == "float":
+ return "double"
+ else:
+ raise Exception("Unhandled case for mapping \"" + ret_type + "\" to a C type")
+
+
+def output_counter_read(gen, set, counter):
+ if counter.read_hash in hashed_funcs:
+ return
+
+ c("\n")
+ c("/* {0} :: {1} */".format(set.name, counter.get('name')))
+
+ ret_type = counter.get('data_type')
+ ret_ctype = data_type_to_ctype(ret_type)
+ read_eq = counter.get('equation')
+
+ c(ret_ctype)
+ c(counter.read_sym + "(const struct intel_perf *perf,\n")
+ c.indent(len(counter.read_sym) + 1)
+ c("const struct intel_perf_metric_set *metric_set,\n")
+ c("uint64_t *accumulator)\n")
+ c.outdent(len(counter.read_sym) + 1)
+
+ c("{")
+ c.indent(4)
+
+ gen.output_rpn_equation_code(set, counter, read_eq)
+
+ c.outdent(4)
+ c("}")
+
+ hashed_funcs[counter.read_hash] = counter.read_sym
+
+
+def output_counter_read_definition(gen, set, counter):
+ if counter.read_hash in hashed_funcs:
+ h("#define %s \\" % counter.read_sym)
+ h.indent(4)
+ h("%s" % hashed_funcs[counter.read_hash])
+ h.outdent(4)
+ else:
+ ret_type = counter.get('data_type')
+ ret_ctype = data_type_to_ctype(ret_type)
+ read_eq = counter.get('equation')
+
+ h(ret_ctype)
+ h(counter.read_sym + "(const struct intel_perf *perf,\n")
+ h.indent(len(counter.read_sym) + 1)
+ h("const struct intel_perf_metric_set *metric_set,\n")
+ h("uint64_t *accumulator);\n")
+ h.outdent(len(counter.read_sym) + 1)
+
+ hashed_funcs[counter.read_hash] = counter.read_sym
+
+
+def output_counter_max(gen, set, counter):
+ max_eq = counter.get('max_equation')
+
+ if not max_eq or max_eq == "100":
+ return
+
+ if counter.max_hash in hashed_funcs:
+ return
+
+ c("\n")
+ c("/* {0} :: {1} */".format(set.name, counter.get('name')))
+
+ ret_type = counter.get('data_type')
+ ret_ctype = data_type_to_ctype(ret_type)
+
+ c(ret_ctype)
+ c(counter.max_sym + "(const struct intel_perf *perf,\n")
+ c.indent(len(counter.max_sym) + 1)
+ c("const struct intel_perf_metric_set *metric_set,\n")
+ c("uint64_t *accumulator)\n")
+ c.outdent(len(counter.max_sym) + 1)
+
+ c("{")
+ c.indent(4)
+
+ gen.output_rpn_equation_code(set, counter, max_eq)
+
+ c.outdent(4)
+ c("}")
+
+ hashed_funcs[counter.max_hash] = counter.max_sym
+
+
+def output_counter_max_definition(gen, set, counter):
+ max_eq = counter.get('max_equation')
+
+ if not max_eq or max_eq == "100":
+ return
+
+ if counter.max_hash in hashed_funcs:
+ h("#define %s \\" % counter.max_sym)
+ h.indent(4)
+ h("%s" % hashed_funcs[counter.max_hash])
+ h.outdent(4)
+ h("\n")
+ else:
+ ret_type = counter.get('data_type')
+ ret_ctype = data_type_to_ctype(ret_type)
+
+ h(ret_ctype)
+
+ h(counter.max_sym + "(const struct intel_perf *perf,")
+ h.indent(len(counter.max_sym) + 1)
+ h("const struct intel_perf_metric_set *metric_set,")
+ h("uint64_t *accumulator);")
+ h.outdent(len(counter.max_sym) + 1)
+ h("\n")
+
+ hashed_funcs[counter.max_hash] = counter.max_sym
+
+
+def generate_equations(args, gens):
+ global hashed_funcs
+
+ header_file = os.path.basename(args.header)
+ header_define = header_file.replace('.', '_').upper()
+
+ hashed_funcs = {}
+ c(textwrap.dedent("""\
+ #include <stdlib.h>
+ #include <string.h>
+
+ #include <i915_drm.h>
+
+ #include "i915/perf.h"
+ #include "%s"
+
+ #define MIN(x, y) (((x) < (y)) ? (x) : (y))
+ #define MAX(a, b) (((a) > (b)) ? (a) : (b))
+
+ double
+ percentage_max_callback_float(const struct intel_perf *perf,
+ const struct intel_perf_metric_set *metric_set,
+ uint64_t *accumulator)
+ {
+ return 100;
+ }
+
+ uint64_t
+ percentage_max_callback_uint64(const struct intel_perf *perf,
+ const struct intel_perf_metric_set *metric_set,
+ uint64_t *accumulator)
+ {
+ return 100;
+ }
+
+ """ % os.path.basename(args.header)))
+
+ # Print out all equation functions.
+ for gen in gens:
+ for set in gen.sets:
+ for counter in set.counters:
+ output_counter_read(gen, set, counter)
+ output_counter_max(gen, set, counter)
+
+ hashed_funcs = {}
+ h(textwrap.dedent("""\
+ #ifndef __%s__
+ #define __%s__
+
+ #include <stddef.h>
+ #include <stdint.h>
+ #include <stdbool.h>
+
+ struct intel_perf;
+ struct intel_perf_metric_set;
+
+ double
+ percentage_max_callback_float(const struct intel_perf *perf,
+ const struct intel_perf_metric_set *metric_set,
+ uint64_t *accumulator);
+ uint64_t
+ percentage_max_callback_uint64(const struct intel_perf *perf,
+ const struct intel_perf_metric_set *metric_set,
+ uint64_t *accumulator);
+
+ """ % (header_define, header_define)))
+
+ # Print out all equation functions.
+ for gen in gens:
+ for set in gen.sets:
+ for counter in set.counters:
+ output_counter_read_definition(gen, set, counter)
+ output_counter_max_definition(gen, set, counter)
+
+ h(textwrap.dedent("""\
+
+ #endif /* __%s__ */
+ """ % header_define))
+
+
+def main():
+ global c
+ global h
+
+ parser = argparse.ArgumentParser()
+ parser.add_argument("--header", help="Header file to write")
+ parser.add_argument("--code", help="C file to write")
+ parser.add_argument("xml_files", nargs='+', help="List of xml metrics files to process")
+
+ args = parser.parse_args()
+
+ # Note: either arg may == None
+ h = codegen.Codegen(args.header)
+ c = codegen.Codegen(args.code)
+
+ gens = []
+ for xml_file in args.xml_files:
+ gens.append(codegen.Gen(xml_file, c))
+
+ copyright = textwrap.dedent("""\
+ /* Autogenerated file, DO NOT EDIT manually! generated by {}
+ *
+ * Copyright (c) 2018 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+ """).format(os.path.basename(__file__))
+
+ h(copyright)
+ c(copyright)
+
+ generate_equations(args, gens)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/lib/i915/perf-configs/perf-metricset-codegen.py b/lib/i915/perf-configs/perf-metricset-codegen.py
new file mode 100644
index 00000000..d11546b8
--- /dev/null
+++ b/lib/i915/perf-configs/perf-metricset-codegen.py
@@ -0,0 +1,238 @@
+#!/usr/bin/env python3
+#
+# Copyright (c) 2015-2020 Intel Corporation
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+# IN THE SOFTWARE.
+
+import argparse
+import os
+import sys
+import textwrap
+
+import codegen
+
+h = None
+c = None
+
+semantic_type_map = {
+ "duration": "raw",
+ "ratio": "event"
+ }
+
+def output_units(unit):
+ return unit.replace(' ', '_').upper()
+
+
+def output_counter_report(set, counter):
+ data_type = counter.get('data_type')
+ data_type_uc = data_type.upper()
+ c_type = data_type
+
+ if "uint" in c_type:
+ c_type = c_type + "_t"
+
+ semantic_type = counter.get('semantic_type')
+ if semantic_type in semantic_type_map:
+ semantic_type = semantic_type_map[semantic_type]
+
+ semantic_type_uc = semantic_type.upper()
+
+ c("\n")
+
+ availability = counter.get('availability')
+ if availability:
+ set.gen.output_availability(set, availability, counter.get('name'))
+ c.indent(4)
+
+ c("counter = &metric_set->counters[metric_set->n_counters++];\n")
+ c("counter->metric_set = metric_set;\n")
+ c("counter->name = \"{0}\";\n".format(counter.get('name')))
+ c("counter->symbol_name = \"{0}\";\n".format(counter.get('symbol_name')));
+ c("counter->desc = \"{0}\";\n".format(counter.get('description')))
+ c("counter->type = INTEL_PERF_LOGICAL_COUNTER_TYPE_{0};\n".format(semantic_type_uc))
+ c("counter->storage = INTEL_PERF_LOGICAL_COUNTER_STORAGE_{0};\n".format(data_type_uc))
+ c("counter->unit = INTEL_PERF_LOGICAL_COUNTER_UNIT_{0};\n".format(output_units(counter.get('units'))))
+ c("counter->read_{0} = {1};\n".format(data_type, set.read_funcs[counter.get('symbol_name')]))
+ c("counter->max_{0} = {1};\n".format(data_type, set.max_funcs[counter.get('symbol_name')]))
+ c("intel_perf_add_logical_counter(perf, counter, \"{0}\");\n".format(counter.get('mdapi_group')))
+
+ if availability:
+ c.outdent(4)
+ c("}\n")
+
+
+def generate_metric_sets(args, gen):
+ c(textwrap.dedent("""\
+ #include <stddef.h>
+ #include <stdint.h>
+ #include <stdlib.h>
+ #include <stdbool.h>
+ #include <assert.h>
+
+ #include "i915_drm.h"
+
+ """))
+
+ c("#include \"{0}\"".format(os.path.basename(args.header)))
+ c("#include \"{0}\"".format(os.path.basename(args.equations_include)))
+ c("#include \"{0}\"".format(os.path.basename(args.registers_include)))
+
+ # Print out all set registration functions for each set in each
+ # generation.
+ for set in gen.sets:
+ c("\nstatic void\n")
+ c(gen.chipset + "_add_" + set.underscore_name + "_metric_set(struct intel_perf *perf)")
+ c("{\n")
+ c.indent(4)
+
+ c("struct intel_perf_metric_set *metric_set;\n")
+ c("struct intel_perf_logical_counter *counter;\n\n")
+
+ counters = sorted(set.counters, key=lambda k: k.get('symbol_name'))
+
+ c("metric_set = calloc(1, sizeof(*metric_set));\n")
+ c("metric_set->name = \"" + set.name + "\";\n")
+ c("metric_set->symbol_name = \"" + set.symbol_name + "\";\n")
+ c("metric_set->hw_config_guid = \"" + set.hw_config_guid + "\";\n")
+ c("metric_set->counters = calloc({0}, sizeof(struct intel_perf_logical_counter));\n".format(str(len(counters))))
+ c("metric_set->n_counters = 0;\n")
+ c("metric_set->perf_oa_metrics_set = 0; // determined at runtime\n")
+
+ if gen.chipset == "hsw":
+ c(textwrap.dedent("""\
+ metric_set->perf_oa_format = I915_OA_FORMAT_A45_B8_C8;
+
+ metric_set->perf_raw_size = 256;
+ metric_set->gpu_time_offset = 0;
+ metric_set->a_offset = 1;
+ metric_set->b_offset = metric_set->a_offset + 45;
+ metric_set->c_offset = metric_set->b_offset + 8;
+
+ """))
+ else:
+ c(textwrap.dedent("""\
+ metric_set->perf_oa_format = I915_OA_FORMAT_A32u40_A4u32_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 + 36;
+ metric_set->c_offset = metric_set->b_offset + 8;
+
+ """))
+
+ c("%s_%s_add_registers(perf, metric_set);" % (gen.chipset, set.underscore_name))
+
+ c("intel_perf_add_metric_set(perf, metric_set);");
+ c("\n")
+
+ for counter in counters:
+ output_counter_report(set, counter)
+
+ c("\nassert(metric_set->n_counters <= {0});\n".format(len(counters)));
+
+ c.outdent(4)
+ c("}\n")
+
+ c("\nvoid")
+ c("intel_perf_load_metrics_" + gen.chipset + "(struct intel_perf *perf)")
+ c("{")
+ c.indent(4)
+
+ for set in gen.sets:
+ c("{0}_add_{1}_metric_set(perf);".format(gen.chipset, set.underscore_name))
+
+ c.outdent(4)
+ c("}")
+
+
+
+def main():
+ global c
+ global h
+
+ parser = argparse.ArgumentParser()
+ parser.add_argument("--header", help="Header file to write")
+ parser.add_argument("--code", help="C file to write")
+ parser.add_argument("--equations-include", help="Equations header file")
+ parser.add_argument("--registers-include", help="Registers header file")
+ parser.add_argument("--xml-file", help="Xml file to generate metric sets from")
+
+ args = parser.parse_args()
+
+ # Note: either arg may == None
+ h = codegen.Codegen(args.header)
+ c = codegen.Codegen(args.code)
+
+ gen = codegen.Gen(args.xml_file, c)
+
+ copyright = textwrap.dedent("""\
+ /* Autogenerated file, DO NOT EDIT manually! generated by {}
+ *
+ * Copyright (c) 2018 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+ """).format(os.path.basename(__file__))
+
+ header_file = os.path.basename(args.header)
+ header_define = header_file.replace('.', '_').upper()
+
+ h(copyright)
+ h(textwrap.dedent("""\
+ #ifndef %s
+ #define %s
+
+ #include "i915/perf.h"
+
+ """ % (header_define, header_define)))
+
+ # Print out all set registration functions for each generation.
+ h("void intel_perf_load_metrics_" + gen.chipset + "(struct intel_perf *perf);\n\n")
+
+ h(textwrap.dedent("""\
+ #endif /* %s */
+ """ % header_define))
+
+ c(copyright)
+ generate_metric_sets(args, gen)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/lib/i915/perf-configs/perf-registers-codegen.py b/lib/i915/perf-configs/perf-registers-codegen.py
new file mode 100644
index 00000000..19f09d7a
--- /dev/null
+++ b/lib/i915/perf-configs/perf-registers-codegen.py
@@ -0,0 +1,159 @@
+#!/usr/bin/env python3
+#
+# Copyright (c) 2015-2020 Intel Corporation
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# to deal in the Software without restriction, including without limitation
+# the rights to use, copy, modify, merge, publish, distribute, sublicense,
+# and/or sell copies of the Software, and to permit persons to whom the
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+# IN THE SOFTWARE.
+
+import argparse
+import os
+import sys
+import textwrap
+
+import codegen
+
+h = None
+c = None
+
+
+def generate_register_configs(set):
+ register_types = {
+ 'FLEX': 'flex_regs',
+ 'NOA': 'mux_regs',
+ 'OA': 'b_counter_regs',
+ }
+
+ c("void %s_%s_add_registers(struct intel_perf *perf, struct intel_perf_metric_set *metric_set)" %
+ (set.gen.chipset, set.underscore_name))
+ c("{")
+ c.indent(4)
+
+ # allocate memory
+ total_n_registers = {}
+ register_configs = set.findall('register_config')
+ for register_config in register_configs:
+ t = register_types[register_config.get('type')]
+ if t not in total_n_registers:
+ total_n_registers[t] = len(register_config.findall('register'))
+ else:
+ total_n_registers[t] += len(register_config.findall('register'))
+
+ for reg in total_n_registers:
+ c("metric_set->{0} = calloc({1}, sizeof(struct intel_perf_register_prog));".format(reg, total_n_registers[reg]))
+ c("\n")
+
+ # fill in register/values
+ register_configs = set.findall('register_config')
+ for register_config in register_configs:
+ t = register_types[register_config.get('type')]
+
+ availability = register_config.get('availability')
+ if availability:
+ set.gen.output_availability(set, availability, register_config.get('type') + ' register config')
+ c.indent(4)
+
+ for register in register_config.findall('register'):
+ c("metric_set->%s[metric_set->n_%s++] = (struct intel_perf_register_prog) { .reg = %s, .val = %s };" %
+ (t, t, register.get('address'), register.get('value')))
+
+ if availability:
+ c.outdent(4)
+ c("}")
+ c("\n")
+
+ c.outdent(4)
+ c("}")
+
+
+def main():
+ global c
+ global h
+ global xml_equations
+
+ parser = argparse.ArgumentParser()
+ parser.add_argument("--header", help="Header file to write")
+ parser.add_argument("--code", help="C file to write")
+ parser.add_argument("--xml-file", help="Xml file to generate register configurations from")
+
+ args = parser.parse_args()
+
+ # Note: either arg may == None
+ h = codegen.Codegen(args.header)
+ c = codegen.Codegen(args.code)
+
+ gen = codegen.Gen(args.xml_file, c)
+
+ copyright = textwrap.dedent("""\
+ /* Autogenerated file, DO NOT EDIT manually! generated by {}
+ *
+ * Copyright (c) 2020 Intel Corporation
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+ """).format(os.path.basename(__file__))
+
+
+ header_file = os.path.basename(args.header)
+ header_define = "__%s__" % header_file.replace('.', '_').upper()
+
+ h(copyright)
+ h("#ifndef %s" % header_define)
+ h("#define %s" % header_define)
+ h("\n")
+ h("struct intel_perf;")
+ h("struct intel_perf_metric_set;")
+ h("\n")
+ for set in gen.sets:
+ h("void %s_%s_add_registers(struct intel_perf *perf, struct intel_perf_metric_set *metric_set);" %
+ (gen.chipset, set.underscore_name))
+ h("\n")
+ h("#endif /* %s */" % header_define)
+
+ c(copyright)
+ c("\n")
+ c("#include <stdlib.h>")
+ c("\n")
+ c("#include \"%s\"" % header_file)
+ c("#include \"i915/perf.h\"")
+
+ for set in gen.sets:
+ c("\n")
+ generate_register_configs(set)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/lib/i915/perf.c b/lib/i915/perf.c
index babfe633..8d3e188a 100644
--- a/lib/i915/perf.c
+++ b/lib/i915/perf.c
@@ -37,7 +37,23 @@
#include "intel_chipset.h"
#include "perf.h"
-#include "i915_perf_metrics.h"
+
+#include "i915_perf_metrics_hsw.h"
+#include "i915_perf_metrics_bdw.h"
+#include "i915_perf_metrics_chv.h"
+#include "i915_perf_metrics_sklgt2.h"
+#include "i915_perf_metrics_sklgt3.h"
+#include "i915_perf_metrics_sklgt4.h"
+#include "i915_perf_metrics_kblgt2.h"
+#include "i915_perf_metrics_kblgt3.h"
+#include "i915_perf_metrics_cflgt2.h"
+#include "i915_perf_metrics_cflgt3.h"
+#include "i915_perf_metrics_bxt.h"
+#include "i915_perf_metrics_glk.h"
+#include "i915_perf_metrics_cnl.h"
+#include "i915_perf_metrics_icl.h"
+#include "i915_perf_metrics_ehl.h"
+#include "i915_perf_metrics_tgl.h"
static int
perf_ioctl(int fd, unsigned long request, void *arg)
diff --git a/lib/meson.build b/lib/meson.build
index 8112bec4..6cc11530 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -195,16 +195,43 @@ foreach hw : i915_perf_hardware
endforeach
i915_perf_files += custom_target(
- 'i915-perf-metrics',
+ 'i915-perf-equations',
input : i915_xml_files,
- output : [ 'i915_perf_metrics.c', 'i915_perf_metrics.h' ],
+ output : [ 'i915_perf_equations.c', 'i915_perf_equations.h' ],
command : [
- find_program('i915/perf-configs/perf-codegen.py'),
+ find_program('i915/perf-configs/perf-equations-codegen.py'),
'--code', '@OUTPUT0@',
'--header', '@OUTPUT1@',
'@INPUT@',
])
+foreach hw : i915_perf_hardware
+ i915_perf_files += custom_target(
+ 'i915-perf-registers-@0@'.format(hw),
+ input : 'i915/perf-configs/oa-@0@.xml'.format(hw),
+ output : [ 'i915_perf_registers_@0@.c'.format(hw),
+ 'i915_perf_registers_@0@.h'.format(hw), ],
+ command : [
+ find_program('i915/perf-configs/perf-registers-codegen.py'),
+ '--code', '@OUTPUT0@',
+ '--header', '@OUTPUT1@',
+ '--xml-file', '@INPUT@'
+ ])
+ i915_perf_files += custom_target(
+ 'i915-perf-metrics-@0@'.format(hw),
+ input : 'i915/perf-configs/oa-@0@.xml'.format(hw),
+ output : [ 'i915_perf_metrics_@0@.c'.format(hw),
+ 'i915_perf_metrics_@0@.h'.format(hw), ],
+ command : [
+ find_program('i915/perf-configs/perf-metricset-codegen.py'),
+ '--code', '@OUTPUT0@',
+ '--header', '@OUTPUT1@',
+ '--equations-include', 'i915_perf_equations.h',
+ '--registers-include', 'i915_perf_registers_@0@.h'.format(hw),
+ '--xml-file', '@INPUT@',
+ ])
+endforeach
+
lib_igt_i915_perf_build = shared_library(
'i915_perf',
i915_perf_files,
--
2.25.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Intel-gfx] [PATCH i-g-t v2 3/3] lib/i915/perf: update TGL configs
2020-03-12 11:15 [Intel-gfx] [PATCH i-g-t v2 1/3] lib/i915/perf: remove generation code for mathml render Lionel Landwerlin
2020-03-12 11:15 ` [Intel-gfx] [PATCH i-g-t v2 2/3] lib/i915/perf: break generated code in separate files Lionel Landwerlin
@ 2020-03-12 11:15 ` Lionel Landwerlin
2020-03-12 11:43 ` [Intel-gfx] ✗ GitLab.Pipeline: warning for series starting with [v2,1/3] lib/i915/perf: remove generation code for mathml render Patchwork
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Lionel Landwerlin @ 2020-03-12 11:15 UTC (permalink / raw)
To: intel-gfx
Some HW woes are forcing us to store EU activity counters in a
different way.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
---
lib/i915/perf-configs/guids.xml | 41 +-
lib/i915/perf-configs/oa-tgl.xml | 3577 ++++++++++++++++++++++--------
2 files changed, 2718 insertions(+), 900 deletions(-)
diff --git a/lib/i915/perf-configs/guids.xml b/lib/i915/perf-configs/guids.xml
index d382d302..1e45cd1e 100644
--- a/lib/i915/perf-configs/guids.xml
+++ b/lib/i915/perf-configs/guids.xml
@@ -279,23 +279,30 @@
<guid config_hash="d2188fa3c865ef430532b127a3fd87a5" mdapi_config_hash="ff33e47c767f6f81d9a779153aae6fdb" id="fd25ec19-3ed1-40c9-8648-1d2387449a92" chipset="icl" name="TDL_3" />
<guid config_hash="b421b29d8557dbbf0fe3068c82b3d8dd" mdapi_config_hash="cc850ab4463c23e6017f069d67785c31" id="40dc79f2-88c8-47c6-8f86-f509e39fbe5d" chipset="icl" name="GpuBusyness" />
<guid config_hash="7480125fc0806a347f975dc714568e92" mdapi_config_hash="c6b1c7a22e3c2f456cbfdae1bfe394ac" id="3c0bf614-5d67-4326-887f-a24eb8a58244" chipset="icl" name="TestOa" />
- <guid config_hash="cf5cc66e29088080b9de32aca9c20fdf" mdapi_config_hash="4d959fed7563ce4c6f34e9d9c1c504a6" id="daf004fb-fc9f-45e0-b842-1770e6d273c2" chipset="tgl" name="RenderBasic" />
- <guid config_hash="7fbc387f30cec97fff537e0609e7b622" mdapi_config_hash="4b584fd8c71948d5bec22a415f6ef3a0" id="6ad92fc0-ed62-460c-b774-5353534c67ed" chipset="tgl" name="ComputeBasic" />
- <guid config_hash="87de7aad82eabfb9e8ca28470298c833" mdapi_config_hash="b340b1eac0b354f04e9767f14a42a6e6" id="77ae98cf-9a9e-4e35-be85-597b09ffbe53" chipset="tgl" name="RenderPipeProfile" />
- <guid config_hash="4bd795338e2cf42726894fedccdd223f" mdapi_config_hash="d6c3023d3da8fda32655bfa1fad4e514" id="dedd95cd-1bd4-4e65-be7f-1fd7aa43fe12" chipset="tgl" name="HDCAndSF" />
- <guid config_hash="36994d80bab156fab0dbe815184a7303" mdapi_config_hash="739afc9fff139a9b9c8a2d72297abb78" id="a889ccb3-5ebd-437f-b5c6-e951fba822f5" chipset="tgl" name="RasterizerAndPixelBackend" />
- <guid config_hash="54690c67418eb1b8fb23d9c6b47f07d2" mdapi_config_hash="745b6634b3b72399f738761f4565e924" id="feee2629-03a8-4d31-ab4d-7d16572163fb" chipset="tgl" name="L3_1" />
- <guid config_hash="13cfb577c221a881210d1f31600a2207" mdapi_config_hash="4b527bab2ce2a95aeeb7764f1d4abf23" id="5266f235-1711-4eef-9493-ebdf0238d512" chipset="tgl" name="L3_2" />
- <guid config_hash="6402b8deefae23be4db362c3fd853b89" mdapi_config_hash="b21101ed0007ddb167044b476654bd8f" id="9c2cd379-bf93-4ded-b481-f64efd534c4a" chipset="tgl" name="L3_3" />
- <guid config_hash="9f9021d53f1970e1c9f7e4ea1a8ba24d" mdapi_config_hash="71f1cc0729c56e695307c981f0f410a6" id="6a68185d-0056-4891-a5f6-29aa1e1d81ae" chipset="tgl" name="L3_4" />
- <guid config_hash="b23742dad95e7fc75edd65fa4dc367b7" mdapi_config_hash="7198d15717542985e3ba8308fa95b3a2" id="3f17a326-ae8b-4869-9f5a-3bccf793e287" chipset="tgl" name="L3_5" />
- <guid config_hash="6c0871403663ab1617a98afa14b01e42" mdapi_config_hash="0383f07caf50fd4f6818a2138f418409" id="d312c40a-9fb7-489a-9a1a-9cd80aac6d61" chipset="tgl" name="L3_6" />
- <guid config_hash="b1c971413433261918b4de26d99a4388" mdapi_config_hash="b6833e7b89fc08aa05b8e5c8d200071d" id="f0f255a4-535c-43ed-9d6b-85958cef6c1c" chipset="tgl" name="Sampler_1" />
- <guid config_hash="8f5e405d5ece3fbd0586a1ca279db170" mdapi_config_hash="44f2a86d917ab0a44332d027036d9c32" id="f47c6b97-fc10-4962-bb67-d623e9d6219b" chipset="tgl" name="Sampler_2" />
- <guid config_hash="185968c3897d41bcf4b84a5bf23187bb" mdapi_config_hash="64c55773613e6a431df5436de5ff8e8c" id="2e49d25e-93e8-4e2b-b91b-51731f5fb315" chipset="tgl" name="TDL_1" />
- <guid config_hash="8f99569076014439129d68470313013b" mdapi_config_hash="0ff455e43a1ef70d60afc871bd7a1293" id="2a42ff25-99b1-4048-a121-f0664ed42c90" chipset="tgl" name="TDL_2" />
- <guid config_hash="d1c4956992d95bf782ae915e306a5343" mdapi_config_hash="3ca22a297940fee9b8d8d78106a93003" id="b763fa13-834e-4468-bba6-5f0d40db9813" chipset="tgl" name="TDL_3" />
- <guid config_hash="e9992e7e1c679eec0ac61356a3905731" mdapi_config_hash="9328c3e2f515349dd60c6468bad254c7" id="cc935a3e-8d96-4b47-bc46-3d84247e9a3a" chipset="tgl" name="GpuBusyness" />
+ <guid config_hash="e11b3ae4d24126848630dfe3ca5d5c9d" mdapi_config_hash="f79fdac73b7b9e7a4b29cc552d53541e" id="daf004fb-fc9f-45e0-b842-1770e6d273c2" chipset="tgl" name="RenderBasic" />
+ <guid config_hash="705e12535d531f9ff559167831832c15" mdapi_config_hash="0b225543e4d2809d21e5a41b91a34b10" id="6ad92fc0-ed62-460c-b774-5353534c67ed" chipset="tgl" name="ComputeBasic" />
+ <guid config_hash="25155ad45887742faf4286e5d637ee76" mdapi_config_hash="907735bc616cd88d18cc07b791f310b1" id="77ae98cf-9a9e-4e35-be85-597b09ffbe53" chipset="tgl" name="RenderPipeProfile" />
+ <guid config_hash="2f5fdc0a222330844b4838c01ff2f0d7" mdapi_config_hash="5e59bd24cd51d97e8bdf10d0105b571a" id="dedd95cd-1bd4-4e65-be7f-1fd7aa43fe12" chipset="tgl" name="HDCAndSF" />
+ <guid config_hash="68ae806b961b5fe10bc4538f3437c1aa" mdapi_config_hash="3c336f4983f38baedb49ee0ba6463a05" id="a889ccb3-5ebd-437f-b5c6-e951fba822f5" chipset="tgl" name="RasterizerAndPixelBackend" />
+ <guid config_hash="9c950c6ca07f1eccfdcfd49dad046c79" mdapi_config_hash="037ce99af3124b147e626c732fed685c" id="feee2629-03a8-4d31-ab4d-7d16572163fb" chipset="tgl" name="L3_1" />
+ <guid config_hash="289db172e2380a6b75aa18135a178fa5" mdapi_config_hash="d96d8a44d3d1cf20e43a8d4a0d455944" id="5266f235-1711-4eef-9493-ebdf0238d512" chipset="tgl" name="L3_2" />
+ <guid config_hash="e8f56ddd87c511ec0550e6607f061cba" mdapi_config_hash="ef430240598e5d1b52be27df97b2cb05" id="9c2cd379-bf93-4ded-b481-f64efd534c4a" chipset="tgl" name="L3_3" />
+ <guid config_hash="f39841acc09f409b1d970cfcdf561fab" mdapi_config_hash="04e1f19526af2ceda229588104702531" id="6a68185d-0056-4891-a5f6-29aa1e1d81ae" chipset="tgl" name="L3_4" />
+ <guid config_hash="63601012e6bccf1956384ab60dce30bb" mdapi_config_hash="de2796143442a5bf31f1da384b2537f7" id="3f17a326-ae8b-4869-9f5a-3bccf793e287" chipset="tgl" name="L3_5" />
+ <guid config_hash="2c297ada6f33ef20eeca56c8d4beeade" mdapi_config_hash="9a5506a742413b90fd2f3f76ed0c8de0" id="d312c40a-9fb7-489a-9a1a-9cd80aac6d61" chipset="tgl" name="L3_6" />
+ <guid config_hash="4a5906954e6d2fb44057c6cd1d7548f2" mdapi_config_hash="d4ce0c915b228a3ba5803cb3ec5bf87f" id="f0f255a4-535c-43ed-9d6b-85958cef6c1c" chipset="tgl" name="Sampler_1" />
+ <guid config_hash="21cca53ef0ba57fdeccd60634bb2647b" mdapi_config_hash="0301fc7eaddaba1e6ed73c66a66cb53f" id="f47c6b97-fc10-4962-bb67-d623e9d6219b" chipset="tgl" name="Sampler_2" />
+ <guid config_hash="48011bc9d54f96fa65d6913fbf1cee7f" mdapi_config_hash="49abf97f3d60ef68f41f88ff3137b09c" id="2e49d25e-93e8-4e2b-b91b-51731f5fb315" chipset="tgl" name="TDL_1" />
+ <guid config_hash="270908dc68b94e7f052cdc9b2b283167" mdapi_config_hash="e8f763b7b1f93e2c4614c9cb6e5efea8" id="2a42ff25-99b1-4048-a121-f0664ed42c90" chipset="tgl" name="TDL_2" />
+ <guid config_hash="c3cfaa9f10fc1109831e511184915858" mdapi_config_hash="1bd054308052f97adffa7c6207f3f653" id="b763fa13-834e-4468-bba6-5f0d40db9813" chipset="tgl" name="TDL_3" />
+ <guid config_hash="152652e6549d438757c692a4fcf35247" mdapi_config_hash="3a1737f21051c9ad2da32d250dd6c4d2" id="cc935a3e-8d96-4b47-bc46-3d84247e9a3a" chipset="tgl" name="GpuBusyness" />
+ <guid config_hash="836d21da6c81399e7f4bf0ca5cc2adc0" mdapi_config_hash="cb12bd77d6d6cace3172867b543e828b" id="0732e7e2-e09a-401c-92bc-8af9bf6000bb" chipset="tgl" name="EuActivity1" />
+ <guid config_hash="ff656dc8ef36a80023ff170f50cba220" mdapi_config_hash="fd6ba067ae79689bad93a1581db5dc72" id="52b1fa12-3068-4b8c-8139-b5031a8d569b" chipset="tgl" name="EuActivity2" />
+ <guid config_hash="a0548951f70bbfc2d608fced4af8703d" mdapi_config_hash="c80f4de1346995f6883330fe36e7ee4c" id="6381bfd9-e89a-4d23-a71c-176f70e39088" chipset="tgl" name="EuActivity3" />
+ <guid config_hash="4fb45fce661994bb712d58bf21dcf617" mdapi_config_hash="b206a58e00605b2100f454e8746c141d" id="efb7e460-edff-4329-9123-bbccc93f5546" chipset="tgl" name="EuActivity4" />
+ <guid config_hash="80a8e01afb1d0480f6560a3d55578240" mdapi_config_hash="bb7bd9a4082249a7503ebf1b6d56dc73" id="76566878-face-4c3e-b18e-9117e1662ed4" chipset="tgl" name="EuActivity5" />
+ <guid config_hash="b466c8edcc118944f73725dd3a1d0997" mdapi_config_hash="3522f98e3d010205276910c21d66f719" id="61ead329-10c0-48ad-8087-99cc9886197f" chipset="tgl" name="EuActivity6" />
+ <guid config_hash="d1d8327895c6292ea720571bf6aec48d" mdapi_config_hash="13b16625e9e7842ec07dfe7f607be03e" id="f6992ed0-8c99-4613-8371-08560c271eb9" chipset="tgl" name="EuActivity7" />
<guid config_hash="185673d9c229adff444a595e6c217439" mdapi_config_hash="51644bc87975e69064d0575227a663f9" id="30801299-fe7b-40ba-8a6c-64c6196f3748" chipset="tgl" name="TestOa" />
<guid config_hash="25380f09a9ab454374c78f1b5d1c4ddf" mdapi_config_hash="4d28665f4702ddf38239e5c47384dc15" id="a95112cc-804a-4c80-b57b-2870e56cc240" chipset="ehl" name="RenderBasic" />
<guid config_hash="bf521fa74e9f5285bc3e9a7215cdadd2" mdapi_config_hash="bf085a519814344b241b08064f256921" id="54449e8a-196b-4c43-8ecd-540b0504b5c1" chipset="ehl" name="ComputeBasic" />
diff --git a/lib/i915/perf-configs/oa-tgl.xml b/lib/i915/perf-configs/oa-tgl.xml
index 3f8ae3d1..4e4f453b 100644
--- a/lib/i915/perf-configs/oa-tgl.xml
+++ b/lib/i915/perf-configs/oa-tgl.xml
@@ -1,5 +1,5 @@
<?xml version="1.0"?>
-<metrics version="1582124706" merge_md5="">
+<metrics version="1584009330" merge_md5="">
<set name="Render Metrics Basic Gen12"
chipset="TGL"
symbol_name="RenderBasic"
@@ -147,7 +147,7 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="A 7 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="A 7 READ A 8 READ FADD A 9 READ FADD A 10 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array"
mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
@@ -161,124 +161,26 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="A 8 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="A 11 READ A 12 READ FADD A 13 READ FADD A 14 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array"
mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
mdapi_hw_unit_type="gpu"
/>
- <counter name="EU FPU And EM Pipes Active"
- symbol_name="EuFpuEmActive"
- underscore_name="eu_fpu_em_active"
- description="The percentage of time in which EU FPU and EM pipelines were actively processing."
+ <counter name="EU Thread Occupancy"
+ symbol_name="EuThreadOccupancy"
+ underscore_name="eu_thread_occupancy"
+ description="The percentage of time in which hardware threads occupied EUs."
data_type="float"
max_equation="100"
units="percent"
semantic_type="duration"
- equation="A 9 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Pipes"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
+ equation="8 A 15 READ A 16 READ FADD A 17 READ FADD A 18 READ FADD FMUL $EuThreadsCount FDIV $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array"
+ mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
mdapi_hw_unit_type="gpu"
/>
- <counter name="VS FPU Pipe Active"
- symbol_name="VsFpuActive"
- underscore_name="vs_fpu_active"
- description="The percentage of time in which EU FPU pipeline was actively processing a vertex shader instruction."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 10 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Vertex Shader"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
- mdapi_supported_apis="VK OGL IO"
- mdapi_hw_unit_type="gpu"
- />
- <counter name="VS EM Pipe Active"
- symbol_name="VsEmActive"
- underscore_name="vs_em_active"
- description="The percentage of time in which EU EM pipeline was actively processing a vertex shader instruction."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 11 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Vertex Shader"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
- mdapi_supported_apis="VK OGL IO"
- mdapi_hw_unit_type="gpu"
- />
- <counter name="VS Send Pipe Active"
- symbol_name="VsSendActive"
- underscore_name="vs_send_active"
- description="The percentage of time in which EU send pipeline was actively processing a vertex shader instruction."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 12 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Vertex Shader"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
- mdapi_supported_apis="VK OGL IO"
- mdapi_hw_unit_type="gpu"
- />
- <counter name="PS FPU Pipe Active"
- symbol_name="PsFpuActive"
- underscore_name="ps_fpu_active"
- description="The percentage of time in which EU FPU pipeline was actively processing a pixel shader instruction."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 15 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Pixel Shader"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
- mdapi_supported_apis="VK OGL IO"
- mdapi_hw_unit_type="gpu"
- />
- <counter name="PS EM Pipe Active"
- symbol_name="PsEmActive"
- underscore_name="ps_em_active"
- description="The percentage of time in which EU EM pipeline was actively processing a pixel shader instruction."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 16 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Pixel Shader"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
- mdapi_supported_apis="VK OGL IO"
- mdapi_hw_unit_type="gpu"
- />
- <counter name="PS Send Pipeline Active"
- symbol_name="PsSendActive"
- underscore_name="ps_send_active"
- description="The percentage of time in which EU send pipeline was actively processing a pixel shader instruction."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 17 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Pixel Shader"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
- mdapi_supported_apis="VK OGL IO"
- mdapi_hw_unit_type="gpu"
- />
- <counter name="FS Both FPU Active"
- symbol_name="PsEuBothFpuActive"
- underscore_name="ps_eu_both_fpu_active"
- description="The percentage of time in which fragment shaders were processed actively on the both FPUs."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 18 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="3D Pipe/Fragment Shader"
- mdapi_usage_flags="Tier4 Frame Batch Draw"
- mdapi_supported_apis="VK OGL IO"
- mdapi_hw_unit_type="gpu"
- />
<counter name="Samplers Busy"
symbol_name="SamplersBusy"
underscore_name="samplers_busy"
@@ -598,11 +500,12 @@
<register type="OA" address="0x0000DC40" value="0x00000000" />
</register_config>
<register_config type="FLEX">
- <register type="FLEX" address="0x0000E458" value="0x00005004" />
- <register type="FLEX" address="0x0000E558" value="0x00010003" />
- <register type="FLEX" address="0x0000E658" value="0x00012011" />
- <register type="FLEX" address="0x0000E45C" value="0x00051050" />
- <register type="FLEX" address="0x0000E55C" value="0x00053052" />
+ <register type="FLEX" address="0x0000E458" value="0x00804704" />
+ <register type="FLEX" address="0x0000E558" value="0x00A04904" />
+ <register type="FLEX" address="0x0000E658" value="0x00805705" />
+ <register type="FLEX" address="0x0000E758" value="0x00A05905" />
+ <register type="FLEX" address="0x0000E45C" value="0x00808708" />
+ <register type="FLEX" address="0x0000E55C" value="0x00A08908" />
<register type="FLEX" address="0x0000E65C" value="0xFFFFFFFF" />
</register_config>
</set>
@@ -746,34 +649,6 @@
mdapi_supported_apis="VK OGL OCL IO MEDIA"
mdapi_hw_unit_type="gpu"
/>
- <counter name="EU Active"
- symbol_name="EuActive"
- underscore_name="eu_active"
- description="The percentage of time in which the Execution Units were actively processing."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 7 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array"
- mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
- mdapi_hw_unit_type="gpu"
- />
- <counter name="EU Stall"
- symbol_name="EuStall"
- underscore_name="eu_stall"
- description="The percentage of time in which the Execution Units were stalled."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 8 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array"
- mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
- mdapi_hw_unit_type="gpu"
- />
<counter name="EU AVG IPC Rate"
symbol_name="EuAvgIpcRate"
underscore_name="eu_avg_ipc_rate"
@@ -782,7 +657,7 @@
max_equation="2"
units="number"
semantic_type="ratio"
- equation="A 9 READ A 10 READ A 11 READ FADD A 9 READ FSUB FDIV 1 FADD"
+ equation="A 7 READ A 8 READ FADD A 9 READ FADD A 10 READ FADD A 11 READ A 12 READ FADD A 13 READ FADD A 14 READ FADD A 15 READ A 16 READ FADD A 17 READ FADD A 18 READ FADD FADD A 7 READ A 8 READ FADD A 9 READ FADD A 10 READ FADD FSUB FDIV 1 FADD"
mdapi_group="EU Array"
mdapi_usage_flags="Tier4 Overview System Frame Batch Draw"
mdapi_supported_apis=""
@@ -796,7 +671,7 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="A 9 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="A 7 READ A 8 READ FADD A 9 READ FADD A 10 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array/Pipes"
mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
mdapi_supported_apis=""
@@ -810,7 +685,7 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="A 10 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="A 11 READ A 12 READ FADD A 13 READ FADD A 14 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array/Pipes"
mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
mdapi_supported_apis=""
@@ -824,40 +699,12 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="A 11 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Pipes"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
- mdapi_hw_unit_type="gpu"
- />
- <counter name="EU Send Pipe Active"
- symbol_name="EuSendActive"
- underscore_name="eu_send_active"
- description="The percentage of time in which EU send pipeline was actively processing."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 12 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="A 15 READ A 16 READ FADD A 17 READ FADD A 18 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array/Pipes"
mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
mdapi_supported_apis=""
mdapi_hw_unit_type="gpu"
/>
- <counter name="EU Thread Occupancy"
- symbol_name="EuThreadOccupancy"
- underscore_name="eu_thread_occupancy"
- description="The percentage of time in which hardware threads occupied EUs."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="8 A 13 READ FMUL $EuThreadsCount FDIV $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array"
- mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
- mdapi_hw_unit_type="gpu"
- />
<counter name="Rasterized Pixels"
symbol_name="RasterizedPixels"
underscore_name="rasterized_pixels"
@@ -1125,10 +972,12 @@
<register type="OA" address="0x0000DC40" value="0x00000000" />
</register_config>
<register_config type="FLEX">
- <register type="FLEX" address="0x0000E458" value="0x00005004" />
- <register type="FLEX" address="0x0000E558" value="0x00000003" />
- <register type="FLEX" address="0x0000E658" value="0x00002001" />
- <register type="FLEX" address="0x0000E758" value="0x00000008" />
+ <register type="FLEX" address="0x0000E458" value="0x00803703" />
+ <register type="FLEX" address="0x0000E558" value="0x00A03903" />
+ <register type="FLEX" address="0x0000E658" value="0x00800700" />
+ <register type="FLEX" address="0x0000E758" value="0x00A00900" />
+ <register type="FLEX" address="0x0000E45C" value="0x00801701" />
+ <register type="FLEX" address="0x0000E55C" value="0x00A01901" />
<register type="FLEX" address="0x0000E65C" value="0xFFFFFFFF" />
</register_config>
</set>
@@ -1280,7 +1129,7 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="A 7 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="A 7 READ A 8 READ FADD A 9 READ FADD A 10 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array"
mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
@@ -1294,7 +1143,21 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="A 8 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="A 11 READ A 12 READ FADD A 13 READ FADD A 14 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array"
+ mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="EU Thread Occupancy"
+ symbol_name="EuThreadOccupancy"
+ underscore_name="eu_thread_occupancy"
+ description="The percentage of time in which hardware threads occupied EUs."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="8 A 15 READ A 16 READ FADD A 17 READ FADD A 18 READ FADD FMUL $EuThreadsCount FDIV $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array"
mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
@@ -1882,7 +1745,12 @@
<register type="OA" address="0x0000DC40" value="0x00000000" />
</register_config>
<register_config type="FLEX">
- <register type="FLEX" address="0x0000E458" value="0x00005004" />
+ <register type="FLEX" address="0x0000E458" value="0x00804704" />
+ <register type="FLEX" address="0x0000E558" value="0x00A04904" />
+ <register type="FLEX" address="0x0000E658" value="0x00805705" />
+ <register type="FLEX" address="0x0000E758" value="0x00A05905" />
+ <register type="FLEX" address="0x0000E45C" value="0x00808708" />
+ <register type="FLEX" address="0x0000E55C" value="0x00A08908" />
</register_config>
</set>
@@ -2033,7 +1901,7 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="A 7 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="A 7 READ A 8 READ FADD A 9 READ FADD A 10 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array"
mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
@@ -2047,173 +1915,75 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="A 8 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="A 11 READ A 12 READ FADD A 13 READ FADD A 14 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array"
mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
mdapi_hw_unit_type="gpu"
/>
- <counter name="EU FPU And EM Pipes Active"
- symbol_name="EuFpuEmActive"
- underscore_name="eu_fpu_em_active"
- description="The percentage of time in which EU FPU and EM pipelines were actively processing."
+ <counter name="EU Thread Occupancy"
+ symbol_name="EuThreadOccupancy"
+ underscore_name="eu_thread_occupancy"
+ description="The percentage of time in which hardware threads occupied EUs."
data_type="float"
max_equation="100"
units="percent"
semantic_type="duration"
- equation="A 9 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Pipes"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
+ equation="8 A 15 READ A 16 READ FADD A 17 READ FADD A 18 READ FADD FMUL $EuThreadsCount FDIV $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array"
+ mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
mdapi_hw_unit_type="gpu"
/>
- <counter name="VS FPU Pipe Active"
- symbol_name="VsFpuActive"
- underscore_name="vs_fpu_active"
- description="The percentage of time in which EU FPU pipeline was actively processing a vertex shader instruction."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 10 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Vertex Shader"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
+ <counter name="Rasterized Pixels"
+ symbol_name="RasterizedPixels"
+ underscore_name="rasterized_pixels"
+ description="The total number of rasterized pixels."
+ data_type="uint64"
+ units="pixels"
+ semantic_type="event"
+ equation="A 21 READ 4 UMUL"
+ mdapi_group="3D Pipe/Rasterizer"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
mdapi_supported_apis="VK OGL IO"
mdapi_hw_unit_type="gpu"
/>
- <counter name="VS EM Pipe Active"
- symbol_name="VsEmActive"
- underscore_name="vs_em_active"
- description="The percentage of time in which EU EM pipeline was actively processing a vertex shader instruction."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 11 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Vertex Shader"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
+ <counter name="Early Hi-Depth Test Fails"
+ symbol_name="HiDepthTestFails"
+ underscore_name="hi_depth_test_fails"
+ description="The total number of pixels dropped on early hierarchical depth test."
+ data_type="uint64"
+ units="pixels"
+ semantic_type="event"
+ equation="A 22 READ 4 UMUL"
+ mdapi_group="3D Pipe/Rasterizer/Hi-Depth Test"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
mdapi_supported_apis="VK OGL IO"
mdapi_hw_unit_type="gpu"
/>
- <counter name="VS Send Pipe Active"
- symbol_name="VsSendActive"
- underscore_name="vs_send_active"
- description="The percentage of time in which EU send pipeline was actively processing a vertex shader instruction."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 12 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Vertex Shader"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
+ <counter name="Early Depth Test Fails"
+ symbol_name="EarlyDepthTestFails"
+ underscore_name="early_depth_test_fails"
+ description="The total number of pixels dropped on early depth test."
+ data_type="uint64"
+ units="pixels"
+ semantic_type="event"
+ equation="A 23 READ 4 UMUL"
+ mdapi_group="3D Pipe/Rasterizer/Early Depth Test"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
mdapi_supported_apis="VK OGL IO"
mdapi_hw_unit_type="gpu"
/>
- <counter name="PS FPU Pipe Active"
- symbol_name="PsFpuActive"
- underscore_name="ps_fpu_active"
- description="The percentage of time in which EU FPU pipeline was actively processing a pixel shader instruction."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 15 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Pixel Shader"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
- mdapi_supported_apis="VK OGL IO"
- mdapi_hw_unit_type="gpu"
- />
- <counter name="PS EM Pipe Active"
- symbol_name="PsEmActive"
- underscore_name="ps_em_active"
- description="The percentage of time in which EU EM pipeline was actively processing a pixel shader instruction."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 16 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Pixel Shader"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
- mdapi_supported_apis="VK OGL IO"
- mdapi_hw_unit_type="gpu"
- />
- <counter name="PS Send Pipeline Active"
- symbol_name="PsSendActive"
- underscore_name="ps_send_active"
- description="The percentage of time in which EU send pipeline was actively processing a pixel shader instruction."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 17 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Pixel Shader"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
- mdapi_supported_apis="VK OGL IO"
- mdapi_hw_unit_type="gpu"
- />
- <counter name="FS Both FPU Active"
- symbol_name="PsEuBothFpuActive"
- underscore_name="ps_eu_both_fpu_active"
- description="The percentage of time in which fragment shaders were processed actively on the both FPUs."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 18 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="3D Pipe/Fragment Shader"
- mdapi_usage_flags="Tier4 Frame Batch Draw"
- mdapi_supported_apis="VK OGL IO"
- mdapi_hw_unit_type="gpu"
- />
- <counter name="Rasterized Pixels"
- symbol_name="RasterizedPixels"
- underscore_name="rasterized_pixels"
- description="The total number of rasterized pixels."
- data_type="uint64"
- units="pixels"
- semantic_type="event"
- equation="A 21 READ 4 UMUL"
- mdapi_group="3D Pipe/Rasterizer"
- mdapi_usage_flags="Tier3 Frame Batch Draw"
- mdapi_supported_apis="VK OGL IO"
- mdapi_hw_unit_type="gpu"
- />
- <counter name="Early Hi-Depth Test Fails"
- symbol_name="HiDepthTestFails"
- underscore_name="hi_depth_test_fails"
- description="The total number of pixels dropped on early hierarchical depth test."
- data_type="uint64"
- units="pixels"
- semantic_type="event"
- equation="A 22 READ 4 UMUL"
- mdapi_group="3D Pipe/Rasterizer/Hi-Depth Test"
- mdapi_usage_flags="Tier3 Frame Batch Draw"
- mdapi_supported_apis="VK OGL IO"
- mdapi_hw_unit_type="gpu"
- />
- <counter name="Early Depth Test Fails"
- symbol_name="EarlyDepthTestFails"
- underscore_name="early_depth_test_fails"
- description="The total number of pixels dropped on early depth test."
- data_type="uint64"
- units="pixels"
- semantic_type="event"
- equation="A 23 READ 4 UMUL"
- mdapi_group="3D Pipe/Rasterizer/Early Depth Test"
- mdapi_usage_flags="Tier3 Frame Batch Draw"
- mdapi_supported_apis="VK OGL IO"
- mdapi_hw_unit_type="gpu"
- />
- <counter name="Samples Killed in FS"
- symbol_name="SamplesKilledInPs"
- underscore_name="samples_killed_in_ps"
- description="The total number of samples or pixels dropped in fragment shaders."
- data_type="uint64"
- units="pixels"
- semantic_type="event"
- equation="A 24 READ 4 UMUL"
- mdapi_group="3D Pipe/Fragment Shader"
- mdapi_usage_flags="Tier4 Overview Frame Batch Draw"
+ <counter name="Samples Killed in FS"
+ symbol_name="SamplesKilledInPs"
+ underscore_name="samples_killed_in_ps"
+ description="The total number of samples or pixels dropped in fragment shaders."
+ data_type="uint64"
+ units="pixels"
+ semantic_type="event"
+ equation="A 24 READ 4 UMUL"
+ mdapi_group="3D Pipe/Fragment Shader"
+ mdapi_usage_flags="Tier4 Overview Frame Batch Draw"
mdapi_supported_apis="VK OGL IO"
mdapi_hw_unit_type="gpu"
/>
@@ -2588,11 +2358,12 @@
<register type="OA" address="0x0000DC34" value="0x0000FFBF" />
</register_config>
<register_config type="FLEX">
- <register type="FLEX" address="0x0000E458" value="0x00005004" />
- <register type="FLEX" address="0x0000E558" value="0x00010003" />
- <register type="FLEX" address="0x0000E658" value="0x00012011" />
- <register type="FLEX" address="0x0000E45C" value="0x00051050" />
- <register type="FLEX" address="0x0000E55C" value="0x00053052" />
+ <register type="FLEX" address="0x0000E458" value="0x00804704" />
+ <register type="FLEX" address="0x0000E558" value="0x00A04904" />
+ <register type="FLEX" address="0x0000E658" value="0x00805705" />
+ <register type="FLEX" address="0x0000E758" value="0x00A05905" />
+ <register type="FLEX" address="0x0000E45C" value="0x00808708" />
+ <register type="FLEX" address="0x0000E55C" value="0x00A08908" />
</register_config>
</set>
@@ -2743,7 +2514,7 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="A 7 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="A 7 READ A 8 READ FADD A 9 READ FADD A 10 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array"
mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
@@ -2757,124 +2528,26 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="A 8 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="A 11 READ A 12 READ FADD A 13 READ FADD A 14 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array"
mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
mdapi_hw_unit_type="gpu"
/>
- <counter name="EU FPU And EM Pipes Active"
- symbol_name="EuFpuEmActive"
- underscore_name="eu_fpu_em_active"
- description="The percentage of time in which EU FPU and EM pipelines were actively processing."
+ <counter name="EU Thread Occupancy"
+ symbol_name="EuThreadOccupancy"
+ underscore_name="eu_thread_occupancy"
+ description="The percentage of time in which hardware threads occupied EUs."
data_type="float"
max_equation="100"
units="percent"
semantic_type="duration"
- equation="A 9 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Pipes"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
+ equation="8 A 15 READ A 16 READ FADD A 17 READ FADD A 18 READ FADD FMUL $EuThreadsCount FDIV $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array"
+ mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
mdapi_hw_unit_type="gpu"
/>
- <counter name="VS FPU Pipe Active"
- symbol_name="VsFpuActive"
- underscore_name="vs_fpu_active"
- description="The percentage of time in which EU FPU pipeline was actively processing a vertex shader instruction."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 10 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Vertex Shader"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
- mdapi_supported_apis="VK OGL IO"
- mdapi_hw_unit_type="gpu"
- />
- <counter name="VS EM Pipe Active"
- symbol_name="VsEmActive"
- underscore_name="vs_em_active"
- description="The percentage of time in which EU EM pipeline was actively processing a vertex shader instruction."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 11 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Vertex Shader"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
- mdapi_supported_apis="VK OGL IO"
- mdapi_hw_unit_type="gpu"
- />
- <counter name="VS Send Pipe Active"
- symbol_name="VsSendActive"
- underscore_name="vs_send_active"
- description="The percentage of time in which EU send pipeline was actively processing a vertex shader instruction."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 12 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Vertex Shader"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
- mdapi_supported_apis="VK OGL IO"
- mdapi_hw_unit_type="gpu"
- />
- <counter name="PS FPU Pipe Active"
- symbol_name="PsFpuActive"
- underscore_name="ps_fpu_active"
- description="The percentage of time in which EU FPU pipeline was actively processing a pixel shader instruction."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 15 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Pixel Shader"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
- mdapi_supported_apis="VK OGL IO"
- mdapi_hw_unit_type="gpu"
- />
- <counter name="PS EM Pipe Active"
- symbol_name="PsEmActive"
- underscore_name="ps_em_active"
- description="The percentage of time in which EU EM pipeline was actively processing a pixel shader instruction."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 16 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Pixel Shader"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
- mdapi_supported_apis="VK OGL IO"
- mdapi_hw_unit_type="gpu"
- />
- <counter name="PS Send Pipeline Active"
- symbol_name="PsSendActive"
- underscore_name="ps_send_active"
- description="The percentage of time in which EU send pipeline was actively processing a pixel shader instruction."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 17 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Pixel Shader"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
- mdapi_supported_apis="VK OGL IO"
- mdapi_hw_unit_type="gpu"
- />
- <counter name="FS Both FPU Active"
- symbol_name="PsEuBothFpuActive"
- underscore_name="ps_eu_both_fpu_active"
- description="The percentage of time in which fragment shaders were processed actively on the both FPUs."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 18 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="3D Pipe/Fragment Shader"
- mdapi_usage_flags="Tier4 Frame Batch Draw"
- mdapi_supported_apis="VK OGL IO"
- mdapi_hw_unit_type="gpu"
- />
<counter name="Rasterized Pixels"
symbol_name="RasterizedPixels"
underscore_name="rasterized_pixels"
@@ -3376,11 +3049,12 @@
<register type="OA" address="0x0000DC0C" value="0x0000FFE7" />
</register_config>
<register_config type="FLEX">
- <register type="FLEX" address="0x0000E458" value="0x00005004" />
- <register type="FLEX" address="0x0000E558" value="0x00010003" />
- <register type="FLEX" address="0x0000E658" value="0x00012011" />
- <register type="FLEX" address="0x0000E45C" value="0x00051050" />
- <register type="FLEX" address="0x0000E55C" value="0x00053052" />
+ <register type="FLEX" address="0x0000E458" value="0x00804704" />
+ <register type="FLEX" address="0x0000E558" value="0x00A04904" />
+ <register type="FLEX" address="0x0000E658" value="0x00805705" />
+ <register type="FLEX" address="0x0000E758" value="0x00A05905" />
+ <register type="FLEX" address="0x0000E45C" value="0x00808708" />
+ <register type="FLEX" address="0x0000E55C" value="0x00A08908" />
</register_config>
</set>
@@ -3453,7 +3127,7 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="A 7 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="A 7 READ A 8 READ FADD A 9 READ FADD A 10 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array"
mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
@@ -3467,26 +3141,12 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="A 8 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="A 11 READ A 12 READ FADD A 13 READ FADD A 14 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array"
mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
mdapi_hw_unit_type="gpu"
/>
- <counter name="EU FPU And EM Pipes Active"
- symbol_name="EuFpuEmActive"
- underscore_name="eu_fpu_em_active"
- description="The percentage of time in which EU FPU and EM pipelines were actively processing."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 9 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Pipes"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
- mdapi_hw_unit_type="gpu"
- />
<counter name="EU Thread Occupancy"
symbol_name="EuThreadOccupancy"
underscore_name="eu_thread_occupancy"
@@ -3495,7 +3155,7 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="8 A 10 READ FMUL $EuThreadsCount FDIV $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="8 A 15 READ A 16 READ FADD A 17 READ FADD A 18 READ FADD FMUL $EuThreadsCount FDIV $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array"
mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
@@ -3735,8 +3395,12 @@
<register type="OA" address="0x0000DC40" value="0x00000000" />
</register_config>
<register_config type="FLEX">
- <register type="FLEX" address="0x0000E458" value="0x00005004" />
- <register type="FLEX" address="0x0000E558" value="0x00008003" />
+ <register type="FLEX" address="0x0000E458" value="0x00804704" />
+ <register type="FLEX" address="0x0000E558" value="0x00A04904" />
+ <register type="FLEX" address="0x0000E658" value="0x00805705" />
+ <register type="FLEX" address="0x0000E758" value="0x00A05905" />
+ <register type="FLEX" address="0x0000E45C" value="0x00808708" />
+ <register type="FLEX" address="0x0000E55C" value="0x00A08908" />
</register_config>
</set>
@@ -3801,48 +3465,6 @@
mdapi_supported_apis=""
mdapi_hw_unit_type="gpu"
/>
- <counter name="EU Active"
- symbol_name="EuActive"
- underscore_name="eu_active"
- description="The percentage of time in which the Execution Units were actively processing."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 7 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array"
- mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
- mdapi_hw_unit_type="gpu"
- />
- <counter name="EU Stall"
- symbol_name="EuStall"
- underscore_name="eu_stall"
- description="The percentage of time in which the Execution Units were stalled."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 8 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array"
- mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
- mdapi_hw_unit_type="gpu"
- />
- <counter name="EU FPU And EM Pipes Active"
- symbol_name="EuFpuEmActive"
- underscore_name="eu_fpu_em_active"
- description="The percentage of time in which EU FPU and EM pipelines were actively processing."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 9 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Pipes"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
- mdapi_hw_unit_type="gpu"
- />
<counter name="VS Threads Dispatched"
symbol_name="VsThreads"
underscore_name="vs_threads"
@@ -3856,20 +3478,6 @@
mdapi_supported_apis="VK OGL IO"
mdapi_hw_unit_type="gpu"
/>
- <counter name="EU Thread Occupancy"
- symbol_name="EuThreadOccupancy"
- underscore_name="eu_thread_occupancy"
- description="The percentage of time in which hardware threads occupied EUs."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="8 A 10 READ FMUL $EuThreadsCount FDIV $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array"
- mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
- mdapi_hw_unit_type="gpu"
- />
<counter name="HS Threads Dispatched"
symbol_name="HsThreads"
underscore_name="hs_threads"
@@ -3935,10 +3543,52 @@
mdapi_supported_apis="VK OGL OCL IO MEDIA"
mdapi_hw_unit_type="gpu"
/>
- <counter name="Slice0 L3 Bank2 Input Available"
- symbol_name="L30Bank2InputAvailable"
- underscore_name="l30_bank2_input_available"
- description="The percentage of time in which slice0 L3 bank2 has input available"
+ <counter name="EU Active"
+ symbol_name="EuActive"
+ underscore_name="eu_active"
+ description="The percentage of time in which the Execution Units were actively processing."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 7 READ A 8 READ FADD A 9 READ FADD A 10 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array"
+ mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="EU Stall"
+ symbol_name="EuStall"
+ underscore_name="eu_stall"
+ description="The percentage of time in which the Execution Units were stalled."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 11 READ A 12 READ FADD A 13 READ FADD A 14 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array"
+ mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="EU Thread Occupancy"
+ symbol_name="EuThreadOccupancy"
+ underscore_name="eu_thread_occupancy"
+ description="The percentage of time in which hardware threads occupied EUs."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="8 A 15 READ A 16 READ FADD A 17 READ FADD A 18 READ FADD FMUL $EuThreadsCount FDIV $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array"
+ mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="Slice0 L3 Bank2 Input Available"
+ symbol_name="L30Bank2InputAvailable"
+ underscore_name="l30_bank2_input_available"
+ description="The percentage of time in which slice0 L3 bank2 has input available"
data_type="float"
max_equation="100"
units="percent"
@@ -4092,8 +3742,12 @@
<register type="OA" address="0x0000DC40" value="0x00000000" />
</register_config>
<register_config type="FLEX">
- <register type="FLEX" address="0x0000E458" value="0x00005004" />
- <register type="FLEX" address="0x0000E558" value="0x00008003" />
+ <register type="FLEX" address="0x0000E458" value="0x00804704" />
+ <register type="FLEX" address="0x0000E558" value="0x00A04904" />
+ <register type="FLEX" address="0x0000E658" value="0x00805705" />
+ <register type="FLEX" address="0x0000E758" value="0x00A05905" />
+ <register type="FLEX" address="0x0000E45C" value="0x00808708" />
+ <register type="FLEX" address="0x0000E55C" value="0x00A08908" />
</register_config>
</set>
@@ -4158,48 +3812,6 @@
mdapi_supported_apis=""
mdapi_hw_unit_type="gpu"
/>
- <counter name="EU Active"
- symbol_name="EuActive"
- underscore_name="eu_active"
- description="The percentage of time in which the Execution Units were actively processing."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 7 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array"
- mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
- mdapi_hw_unit_type="gpu"
- />
- <counter name="EU Stall"
- symbol_name="EuStall"
- underscore_name="eu_stall"
- description="The percentage of time in which the Execution Units were stalled."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 8 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array"
- mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
- mdapi_hw_unit_type="gpu"
- />
- <counter name="EU FPU And EM Pipes Active"
- symbol_name="EuFpuEmActive"
- underscore_name="eu_fpu_em_active"
- description="The percentage of time in which EU FPU and EM pipelines were actively processing."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 9 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Pipes"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
- mdapi_hw_unit_type="gpu"
- />
<counter name="VS Threads Dispatched"
symbol_name="VsThreads"
underscore_name="vs_threads"
@@ -4213,20 +3825,6 @@
mdapi_supported_apis="VK OGL IO"
mdapi_hw_unit_type="gpu"
/>
- <counter name="EU Thread Occupancy"
- symbol_name="EuThreadOccupancy"
- underscore_name="eu_thread_occupancy"
- description="The percentage of time in which hardware threads occupied EUs."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="8 A 10 READ FMUL $EuThreadsCount FDIV $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array"
- mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
- mdapi_hw_unit_type="gpu"
- />
<counter name="HS Threads Dispatched"
symbol_name="HsThreads"
underscore_name="hs_threads"
@@ -4292,6 +3890,48 @@
mdapi_supported_apis="VK OGL OCL IO MEDIA"
mdapi_hw_unit_type="gpu"
/>
+ <counter name="EU Active"
+ symbol_name="EuActive"
+ underscore_name="eu_active"
+ description="The percentage of time in which the Execution Units were actively processing."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 7 READ A 8 READ FADD A 9 READ FADD A 10 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array"
+ mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="EU Stall"
+ symbol_name="EuStall"
+ underscore_name="eu_stall"
+ description="The percentage of time in which the Execution Units were stalled."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 11 READ A 12 READ FADD A 13 READ FADD A 14 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array"
+ mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="EU Thread Occupancy"
+ symbol_name="EuThreadOccupancy"
+ underscore_name="eu_thread_occupancy"
+ description="The percentage of time in which hardware threads occupied EUs."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="8 A 15 READ A 16 READ FADD A 17 READ FADD A 18 READ FADD FMUL $EuThreadsCount FDIV $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array"
+ mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
<counter name="Slice0 L3 Bank0 Output Ready"
symbol_name="L30Bank0OutputReady"
underscore_name="l30_bank0_output_ready"
@@ -4369,8 +4009,12 @@
<register type="OA" address="0x0000DC40" value="0x00000000" />
</register_config>
<register_config type="FLEX">
- <register type="FLEX" address="0x0000E458" value="0x00005004" />
- <register type="FLEX" address="0x0000E558" value="0x00008003" />
+ <register type="FLEX" address="0x0000E458" value="0x00804704" />
+ <register type="FLEX" address="0x0000E558" value="0x00A04904" />
+ <register type="FLEX" address="0x0000E658" value="0x00805705" />
+ <register type="FLEX" address="0x0000E758" value="0x00A05905" />
+ <register type="FLEX" address="0x0000E45C" value="0x00808708" />
+ <register type="FLEX" address="0x0000E55C" value="0x00A08908" />
</register_config>
</set>
@@ -4435,48 +4079,6 @@
mdapi_supported_apis=""
mdapi_hw_unit_type="gpu"
/>
- <counter name="EU Active"
- symbol_name="EuActive"
- underscore_name="eu_active"
- description="The percentage of time in which the Execution Units were actively processing."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 7 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array"
- mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
- mdapi_hw_unit_type="gpu"
- />
- <counter name="EU Stall"
- symbol_name="EuStall"
- underscore_name="eu_stall"
- description="The percentage of time in which the Execution Units were stalled."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 8 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array"
- mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
- mdapi_hw_unit_type="gpu"
- />
- <counter name="EU FPU And EM Pipes Active"
- symbol_name="EuFpuEmActive"
- underscore_name="eu_fpu_em_active"
- description="The percentage of time in which EU FPU and EM pipelines were actively processing."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 9 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Pipes"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
- mdapi_hw_unit_type="gpu"
- />
<counter name="VS Threads Dispatched"
symbol_name="VsThreads"
underscore_name="vs_threads"
@@ -4490,20 +4092,6 @@
mdapi_supported_apis="VK OGL IO"
mdapi_hw_unit_type="gpu"
/>
- <counter name="EU Thread Occupancy"
- symbol_name="EuThreadOccupancy"
- underscore_name="eu_thread_occupancy"
- description="The percentage of time in which hardware threads occupied EUs."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="8 A 10 READ FMUL $EuThreadsCount FDIV $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array"
- mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
- mdapi_hw_unit_type="gpu"
- />
<counter name="HS Threads Dispatched"
symbol_name="HsThreads"
underscore_name="hs_threads"
@@ -4569,6 +4157,48 @@
mdapi_supported_apis="VK OGL OCL IO MEDIA"
mdapi_hw_unit_type="gpu"
/>
+ <counter name="EU Active"
+ symbol_name="EuActive"
+ underscore_name="eu_active"
+ description="The percentage of time in which the Execution Units were actively processing."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 7 READ A 8 READ FADD A 9 READ FADD A 10 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array"
+ mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="EU Stall"
+ symbol_name="EuStall"
+ underscore_name="eu_stall"
+ description="The percentage of time in which the Execution Units were stalled."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 11 READ A 12 READ FADD A 13 READ FADD A 14 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array"
+ mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="EU Thread Occupancy"
+ symbol_name="EuThreadOccupancy"
+ underscore_name="eu_thread_occupancy"
+ description="The percentage of time in which hardware threads occupied EUs."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="8 A 15 READ A 16 READ FADD A 17 READ FADD A 18 READ FADD FMUL $EuThreadsCount FDIV $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array"
+ mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
<counter name="Slice0 L3 Bank1 Output Ready"
symbol_name="L30Bank1OutputReady"
underscore_name="l30_bank1_output_ready"
@@ -4646,8 +4276,12 @@
<register type="OA" address="0x0000DC40" value="0x00000000" />
</register_config>
<register_config type="FLEX">
- <register type="FLEX" address="0x0000E458" value="0x00005004" />
- <register type="FLEX" address="0x0000E558" value="0x00008003" />
+ <register type="FLEX" address="0x0000E458" value="0x00804704" />
+ <register type="FLEX" address="0x0000E558" value="0x00A04904" />
+ <register type="FLEX" address="0x0000E658" value="0x00805705" />
+ <register type="FLEX" address="0x0000E758" value="0x00A05905" />
+ <register type="FLEX" address="0x0000E45C" value="0x00808708" />
+ <register type="FLEX" address="0x0000E55C" value="0x00A08908" />
</register_config>
</set>
@@ -4712,73 +4346,17 @@
mdapi_supported_apis=""
mdapi_hw_unit_type="gpu"
/>
- <counter name="EU Active"
- symbol_name="EuActive"
- underscore_name="eu_active"
- description="The percentage of time in which the Execution Units were actively processing."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 7 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array"
- mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
- mdapi_hw_unit_type="gpu"
- />
- <counter name="EU Stall"
- symbol_name="EuStall"
- underscore_name="eu_stall"
- description="The percentage of time in which the Execution Units were stalled."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 8 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array"
- mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
- mdapi_hw_unit_type="gpu"
- />
- <counter name="EU FPU And EM Pipes Active"
- symbol_name="EuFpuEmActive"
- underscore_name="eu_fpu_em_active"
- description="The percentage of time in which EU FPU and EM pipelines were actively processing."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 9 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Pipes"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
- mdapi_hw_unit_type="gpu"
- />
- <counter name="VS Threads Dispatched"
- symbol_name="VsThreads"
- underscore_name="vs_threads"
- description="The total number of vertex shader hardware threads dispatched."
- data_type="uint64"
- units="threads"
- semantic_type="event"
- equation="A 1 READ"
- mdapi_group="EU Array/Vertex Shader"
- mdapi_usage_flags="Tier3 Frame Batch Draw"
- mdapi_supported_apis="VK OGL IO"
- mdapi_hw_unit_type="gpu"
- />
- <counter name="EU Thread Occupancy"
- symbol_name="EuThreadOccupancy"
- underscore_name="eu_thread_occupancy"
- description="The percentage of time in which hardware threads occupied EUs."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="8 A 10 READ FMUL $EuThreadsCount FDIV $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array"
- mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
+ <counter name="VS Threads Dispatched"
+ symbol_name="VsThreads"
+ underscore_name="vs_threads"
+ description="The total number of vertex shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 1 READ"
+ mdapi_group="EU Array/Vertex Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis="VK OGL IO"
mdapi_hw_unit_type="gpu"
/>
<counter name="HS Threads Dispatched"
@@ -4846,6 +4424,48 @@
mdapi_supported_apis="VK OGL OCL IO MEDIA"
mdapi_hw_unit_type="gpu"
/>
+ <counter name="EU Active"
+ symbol_name="EuActive"
+ underscore_name="eu_active"
+ description="The percentage of time in which the Execution Units were actively processing."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 7 READ A 8 READ FADD A 9 READ FADD A 10 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array"
+ mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="EU Stall"
+ symbol_name="EuStall"
+ underscore_name="eu_stall"
+ description="The percentage of time in which the Execution Units were stalled."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 11 READ A 12 READ FADD A 13 READ FADD A 14 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array"
+ mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="EU Thread Occupancy"
+ symbol_name="EuThreadOccupancy"
+ underscore_name="eu_thread_occupancy"
+ description="The percentage of time in which hardware threads occupied EUs."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="8 A 15 READ A 16 READ FADD A 17 READ FADD A 18 READ FADD FMUL $EuThreadsCount FDIV $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array"
+ mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
<counter name="Slice0 L3 Bank2 Output Ready"
symbol_name="L30Bank2OutputReady"
underscore_name="l30_bank2_output_ready"
@@ -4923,8 +4543,12 @@
<register type="OA" address="0x0000DC40" value="0x00000000" />
</register_config>
<register_config type="FLEX">
- <register type="FLEX" address="0x0000E458" value="0x00005004" />
- <register type="FLEX" address="0x0000E558" value="0x00008003" />
+ <register type="FLEX" address="0x0000E458" value="0x00804704" />
+ <register type="FLEX" address="0x0000E558" value="0x00A04904" />
+ <register type="FLEX" address="0x0000E658" value="0x00805705" />
+ <register type="FLEX" address="0x0000E758" value="0x00A05905" />
+ <register type="FLEX" address="0x0000E45C" value="0x00808708" />
+ <register type="FLEX" address="0x0000E55C" value="0x00A08908" />
</register_config>
</set>
@@ -4989,48 +4613,6 @@
mdapi_supported_apis=""
mdapi_hw_unit_type="gpu"
/>
- <counter name="EU Active"
- symbol_name="EuActive"
- underscore_name="eu_active"
- description="The percentage of time in which the Execution Units were actively processing."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 7 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array"
- mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
- mdapi_hw_unit_type="gpu"
- />
- <counter name="EU Stall"
- symbol_name="EuStall"
- underscore_name="eu_stall"
- description="The percentage of time in which the Execution Units were stalled."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 8 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array"
- mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
- mdapi_hw_unit_type="gpu"
- />
- <counter name="EU FPU And EM Pipes Active"
- symbol_name="EuFpuEmActive"
- underscore_name="eu_fpu_em_active"
- description="The percentage of time in which EU FPU and EM pipelines were actively processing."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 9 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Pipes"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
- mdapi_hw_unit_type="gpu"
- />
<counter name="VS Threads Dispatched"
symbol_name="VsThreads"
underscore_name="vs_threads"
@@ -5044,20 +4626,6 @@
mdapi_supported_apis="VK OGL IO"
mdapi_hw_unit_type="gpu"
/>
- <counter name="EU Thread Occupancy"
- symbol_name="EuThreadOccupancy"
- underscore_name="eu_thread_occupancy"
- description="The percentage of time in which hardware threads occupied EUs."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="8 A 10 READ FMUL $EuThreadsCount FDIV $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array"
- mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
- mdapi_hw_unit_type="gpu"
- />
<counter name="HS Threads Dispatched"
symbol_name="HsThreads"
underscore_name="hs_threads"
@@ -5123,6 +4691,48 @@
mdapi_supported_apis="VK OGL OCL IO MEDIA"
mdapi_hw_unit_type="gpu"
/>
+ <counter name="EU Active"
+ symbol_name="EuActive"
+ underscore_name="eu_active"
+ description="The percentage of time in which the Execution Units were actively processing."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 7 READ A 8 READ FADD A 9 READ FADD A 10 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array"
+ mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="EU Stall"
+ symbol_name="EuStall"
+ underscore_name="eu_stall"
+ description="The percentage of time in which the Execution Units were stalled."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 11 READ A 12 READ FADD A 13 READ FADD A 14 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array"
+ mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="EU Thread Occupancy"
+ symbol_name="EuThreadOccupancy"
+ underscore_name="eu_thread_occupancy"
+ description="The percentage of time in which hardware threads occupied EUs."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="8 A 15 READ A 16 READ FADD A 17 READ FADD A 18 READ FADD FMUL $EuThreadsCount FDIV $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array"
+ mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
<counter name="Slice0 L3 Bank3 Output Ready"
symbol_name="L30Bank3OutputReady"
underscore_name="l30_bank3_output_ready"
@@ -5200,8 +4810,12 @@
<register type="OA" address="0x0000DC40" value="0x00000000" />
</register_config>
<register_config type="FLEX">
- <register type="FLEX" address="0x0000E458" value="0x00005004" />
- <register type="FLEX" address="0x0000E558" value="0x00008003" />
+ <register type="FLEX" address="0x0000E458" value="0x00804704" />
+ <register type="FLEX" address="0x0000E558" value="0x00A04904" />
+ <register type="FLEX" address="0x0000E658" value="0x00805705" />
+ <register type="FLEX" address="0x0000E758" value="0x00A05905" />
+ <register type="FLEX" address="0x0000E45C" value="0x00808708" />
+ <register type="FLEX" address="0x0000E55C" value="0x00A08908" />
</register_config>
</set>
@@ -5352,7 +4966,7 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="A 7 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="A 7 READ A 8 READ FADD A 9 READ FADD A 10 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array"
mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
@@ -5366,26 +4980,12 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="A 8 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="A 11 READ A 12 READ FADD A 13 READ FADD A 14 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array"
mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
mdapi_hw_unit_type="gpu"
/>
- <counter name="EU FPU And EM Pipes Active"
- symbol_name="EuFpuEmActive"
- underscore_name="eu_fpu_em_active"
- description="The percentage of time in which EU FPU and EM pipelines were actively processing."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 9 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Pipes"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
- mdapi_hw_unit_type="gpu"
- />
<counter name="EU Thread Occupancy"
symbol_name="EuThreadOccupancy"
underscore_name="eu_thread_occupancy"
@@ -5394,7 +4994,7 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="8 A 10 READ FMUL $EuThreadsCount FDIV $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="8 A 15 READ A 16 READ FADD A 17 READ FADD A 18 READ FADD FMUL $EuThreadsCount FDIV $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array"
mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
@@ -5649,8 +5249,12 @@
<register type="OA" address="0x0000DC2C" value="0x0000F3FF" />
</register_config>
<register_config type="FLEX">
- <register type="FLEX" address="0x0000E458" value="0x00005004" />
- <register type="FLEX" address="0x0000E558" value="0x00008003" />
+ <register type="FLEX" address="0x0000E458" value="0x00804704" />
+ <register type="FLEX" address="0x0000E558" value="0x00A04904" />
+ <register type="FLEX" address="0x0000E658" value="0x00805705" />
+ <register type="FLEX" address="0x0000E758" value="0x00A05905" />
+ <register type="FLEX" address="0x0000E45C" value="0x00808708" />
+ <register type="FLEX" address="0x0000E55C" value="0x00A08908" />
</register_config>
</set>
@@ -5801,7 +5405,7 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="A 7 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="A 7 READ A 8 READ FADD A 9 READ FADD A 10 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array"
mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
@@ -5815,26 +5419,12 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="A 8 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="A 11 READ A 12 READ FADD A 13 READ FADD A 14 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array"
mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
mdapi_hw_unit_type="gpu"
/>
- <counter name="EU FPU And EM Pipes Active"
- symbol_name="EuFpuEmActive"
- underscore_name="eu_fpu_em_active"
- description="The percentage of time in which EU FPU and EM pipelines were actively processing."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 9 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Pipes"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
- mdapi_hw_unit_type="gpu"
- />
<counter name="EU Thread Occupancy"
symbol_name="EuThreadOccupancy"
underscore_name="eu_thread_occupancy"
@@ -5843,7 +5433,7 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="8 A 10 READ FMUL $EuThreadsCount FDIV $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="8 A 15 READ A 16 READ FADD A 17 READ FADD A 18 READ FADD FMUL $EuThreadsCount FDIV $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array"
mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
@@ -6100,8 +5690,12 @@
<register type="OA" address="0x0000DC2C" value="0x0000F3FF" />
</register_config>
<register_config type="FLEX">
- <register type="FLEX" address="0x0000E458" value="0x00005004" />
- <register type="FLEX" address="0x0000E558" value="0x00008003" />
+ <register type="FLEX" address="0x0000E458" value="0x00804704" />
+ <register type="FLEX" address="0x0000E558" value="0x00A04904" />
+ <register type="FLEX" address="0x0000E658" value="0x00805705" />
+ <register type="FLEX" address="0x0000E758" value="0x00A05905" />
+ <register type="FLEX" address="0x0000E45C" value="0x00808708" />
+ <register type="FLEX" address="0x0000E55C" value="0x00A08908" />
</register_config>
</set>
@@ -6252,7 +5846,7 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="A 7 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="A 7 READ A 8 READ FADD A 9 READ FADD A 10 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array"
mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
@@ -6266,26 +5860,12 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="A 8 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="A 11 READ A 12 READ FADD A 13 READ FADD A 14 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array"
mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
mdapi_hw_unit_type="gpu"
/>
- <counter name="EU FPU And EM Pipes Active"
- symbol_name="EuFpuEmActive"
- underscore_name="eu_fpu_em_active"
- description="The percentage of time in which EU FPU and EM pipelines were actively processing."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 9 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Pipes"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
- mdapi_hw_unit_type="gpu"
- />
<counter name="EU Thread Occupancy"
symbol_name="EuThreadOccupancy"
underscore_name="eu_thread_occupancy"
@@ -6294,7 +5874,7 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="8 A 10 READ FMUL $EuThreadsCount FDIV $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="8 A 15 READ A 16 READ FADD A 17 READ FADD A 18 READ FADD FMUL $EuThreadsCount FDIV $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array"
mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
@@ -6709,8 +6289,12 @@
<register type="OA" address="0x0000DC3C" value="0x00000FFF" />
</register_config>
<register_config type="FLEX">
- <register type="FLEX" address="0x0000E458" value="0x00005004" />
- <register type="FLEX" address="0x0000E558" value="0x00008003" />
+ <register type="FLEX" address="0x0000E458" value="0x00804704" />
+ <register type="FLEX" address="0x0000E558" value="0x00A04904" />
+ <register type="FLEX" address="0x0000E658" value="0x00805705" />
+ <register type="FLEX" address="0x0000E758" value="0x00A05905" />
+ <register type="FLEX" address="0x0000E45C" value="0x00808708" />
+ <register type="FLEX" address="0x0000E55C" value="0x00A08908" />
</register_config>
</set>
@@ -6861,7 +6445,7 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="A 7 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="A 7 READ A 8 READ FADD A 9 READ FADD A 10 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array"
mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
@@ -6875,26 +6459,12 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="A 8 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="A 11 READ A 12 READ FADD A 13 READ FADD A 14 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array"
mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
mdapi_hw_unit_type="gpu"
/>
- <counter name="EU FPU And EM Pipes Active"
- symbol_name="EuFpuEmActive"
- underscore_name="eu_fpu_em_active"
- description="The percentage of time in which EU FPU and EM pipelines were actively processing."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 9 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Pipes"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
- mdapi_hw_unit_type="gpu"
- />
<counter name="EU Thread Occupancy"
symbol_name="EuThreadOccupancy"
underscore_name="eu_thread_occupancy"
@@ -6903,7 +6473,7 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="8 A 10 READ FMUL $EuThreadsCount FDIV $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="8 A 15 READ A 16 READ FADD A 17 READ FADD A 18 READ FADD FMUL $EuThreadsCount FDIV $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array"
mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
@@ -7254,8 +6824,12 @@
<register type="OA" address="0x0000DC34" value="0x00000FFF" />
</register_config>
<register_config type="FLEX">
- <register type="FLEX" address="0x0000E458" value="0x00005004" />
- <register type="FLEX" address="0x0000E558" value="0x00008003" />
+ <register type="FLEX" address="0x0000E458" value="0x00804704" />
+ <register type="FLEX" address="0x0000E558" value="0x00A04904" />
+ <register type="FLEX" address="0x0000E658" value="0x00805705" />
+ <register type="FLEX" address="0x0000E758" value="0x00A05905" />
+ <register type="FLEX" address="0x0000E45C" value="0x00808708" />
+ <register type="FLEX" address="0x0000E55C" value="0x00A08908" />
</register_config>
</set>
@@ -7406,7 +6980,7 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="A 7 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="A 7 READ A 8 READ FADD A 9 READ FADD A 10 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array"
mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
@@ -7420,26 +6994,12 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="A 8 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="A 11 READ A 12 READ FADD A 13 READ FADD A 14 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array"
mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
mdapi_hw_unit_type="gpu"
/>
- <counter name="EU FPU And EM Pipes Active"
- symbol_name="EuFpuEmActive"
- underscore_name="eu_fpu_em_active"
- description="The percentage of time in which EU FPU and EM pipelines were actively processing."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 9 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Pipes"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
- mdapi_hw_unit_type="gpu"
- />
<counter name="EU Thread Occupancy"
symbol_name="EuThreadOccupancy"
underscore_name="eu_thread_occupancy"
@@ -7448,7 +7008,7 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="8 A 10 READ FMUL $EuThreadsCount FDIV $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="8 A 15 READ A 16 READ FADD A 17 READ FADD A 18 READ FADD FMUL $EuThreadsCount FDIV $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array"
mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
@@ -7818,8 +7378,12 @@
<register type="OA" address="0x0000DC14" value="0x0000FF0F" />
</register_config>
<register_config type="FLEX">
- <register type="FLEX" address="0x0000E458" value="0x00005004" />
- <register type="FLEX" address="0x0000E558" value="0x00008003" />
+ <register type="FLEX" address="0x0000E458" value="0x00804704" />
+ <register type="FLEX" address="0x0000E558" value="0x00A04904" />
+ <register type="FLEX" address="0x0000E658" value="0x00805705" />
+ <register type="FLEX" address="0x0000E758" value="0x00A05905" />
+ <register type="FLEX" address="0x0000E45C" value="0x00808708" />
+ <register type="FLEX" address="0x0000E55C" value="0x00A08908" />
</register_config>
</set>
@@ -7892,7 +7456,7 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="A 7 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="A 7 READ A 8 READ FADD A 9 READ FADD A 10 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array"
mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
@@ -7906,26 +7470,12 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="A 8 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="A 11 READ A 12 READ FADD A 13 READ FADD A 14 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array"
mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
mdapi_hw_unit_type="gpu"
/>
- <counter name="EU FPU And EM Pipes Active"
- symbol_name="EuFpuEmActive"
- underscore_name="eu_fpu_em_active"
- description="The percentage of time in which EU FPU and EM pipelines were actively processing."
- data_type="float"
- max_equation="100"
- units="percent"
- semantic_type="duration"
- equation="A 9 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
- mdapi_group="EU Array/Pipes"
- mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
- mdapi_supported_apis=""
- mdapi_hw_unit_type="gpu"
- />
<counter name="EU Thread Occupancy"
symbol_name="EuThreadOccupancy"
underscore_name="eu_thread_occupancy"
@@ -7934,7 +7484,7 @@
max_equation="100"
units="percent"
semantic_type="duration"
- equation="8 A 10 READ FMUL $EuThreadsCount FDIV $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ equation="8 A 15 READ A 16 READ FADD A 17 READ FADD A 18 READ FADD FMUL $EuThreadsCount FDIV $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
mdapi_group="EU Array"
mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
mdapi_supported_apis=""
@@ -8230,8 +7780,2269 @@
<register type="OA" address="0x0000DC0C" value="0x000001FF" />
</register_config>
<register_config type="FLEX">
- <register type="FLEX" address="0x0000E458" value="0x00005004" />
- <register type="FLEX" address="0x0000E558" value="0x00008003" />
+ <register type="FLEX" address="0x0000E458" value="0x00804704" />
+ <register type="FLEX" address="0x0000E558" value="0x00A04904" />
+ <register type="FLEX" address="0x0000E658" value="0x00805705" />
+ <register type="FLEX" address="0x0000E758" value="0x00A05905" />
+ <register type="FLEX" address="0x0000E45C" value="0x00808708" />
+ <register type="FLEX" address="0x0000E55C" value="0x00A08908" />
+ </register_config>
+ </set>
+
+ <set name="EuActivity1"
+ chipset="TGL"
+ symbol_name="EuActivity1"
+ underscore_name="eu_activity1"
+ mdapi_supported_apis="OGL OGL4 OCL MEDIA IO"
+ hw_config_guid="0732e7e2-e09a-401c-92bc-8af9bf6000bb"
+ >
+ <counter name="GPU Time Elapsed"
+ symbol_name="GpuTime"
+ underscore_name="gpu_time"
+ description="Time elapsed on the GPU during the measurement."
+ data_type="uint64"
+ units="ns"
+ semantic_type="duration"
+ equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+ 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="GPU Busy"
+ symbol_name="GpuBusy"
+ underscore_name="gpu_busy"
+ description="The percentage of time in which the GPU has been processing GPU commands."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 0 READ 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="Tier1 Overview System Frame"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="VS Threads Dispatched"
+ symbol_name="VsThreads"
+ underscore_name="vs_threads"
+ description="The total number of vertex shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 1 READ"
+ mdapi_group="EU Array/Vertex Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="HS Threads Dispatched"
+ symbol_name="HsThreads"
+ underscore_name="hs_threads"
+ description="The total number of hull shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 2 READ"
+ mdapi_group="EU Array/Hull Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="DS Threads Dispatched"
+ symbol_name="DsThreads"
+ underscore_name="ds_threads"
+ description="The total number of domain shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 3 READ"
+ mdapi_group="EU Array/Domain Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="GS Threads Dispatched"
+ symbol_name="GsThreads"
+ underscore_name="gs_threads"
+ description="The total number of geometry shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 5 READ"
+ mdapi_group="EU Array/Geometry Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="FS Threads Dispatched"
+ symbol_name="PsThreads"
+ underscore_name="ps_threads"
+ description="The total number of fragment shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 6 READ"
+ mdapi_group="EU Array/Fragment Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="CS Threads Dispatched"
+ symbol_name="CsThreads"
+ underscore_name="cs_threads"
+ description="The total number of compute shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 4 READ"
+ mdapi_group="EU Array/Compute Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="Render Ring Busy"
+ symbol_name="RenderBusy"
+ underscore_name="render_busy"
+ description="The percentage of time when render command streamer was busy."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="C 1 READ 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="System Frame Batch"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="Compute Ring Busy"
+ symbol_name="ComputeBusy"
+ underscore_name="compute_busy"
+ description="The percentage of time when render command streamer was busy."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="C 0 READ 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="System Frame Batch"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="Render and compute engines are simultaneously busy"
+ symbol_name="RenderAndComputeBusy"
+ underscore_name="render_and_compute_busy"
+ description="The percentage of time when render and compute engines are simultaneously busy"
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="B 0 READ 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="GTI Read Throughput"
+ symbol_name="GtiReadThroughput"
+ underscore_name="gti_read_throughput"
+ description="The total number of GPU memory bytes read from GTI."
+ data_type="uint64"
+ max_equation="$GpuCoreClocks 64 UMUL"
+ units="bytes"
+ semantic_type="throughput"
+ equation="64 C 7 READ C 6 READ UADD C 5 READ UADD C 4 READ UADD UMUL"
+ mdapi_group="GTI"
+ mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="GTI Write Throughput"
+ symbol_name="GtiWriteThroughput"
+ underscore_name="gti_write_throughput"
+ description="The total number of GPU memory bytes written to GTI."
+ data_type="uint64"
+ max_equation="$GpuCoreClocks 64 UMUL"
+ units="bytes"
+ semantic_type="throughput"
+ equation="64 C 3 READ C 2 READ UADD UMUL"
+ mdapi_group="GTI"
+ mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="VS FPU Pipe Active"
+ symbol_name="VsFpuActive"
+ underscore_name="vs_fpu_active"
+ description="The percentage of time in which EU FPU pipeline was actively processing a vertex shader instruction."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 7 READ A 8 READ FADD A 9 READ FADD A 10 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array/Vertex Shader"
+ mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="PS FPU Pipe Active"
+ symbol_name="PsFpuActive"
+ underscore_name="ps_fpu_active"
+ description="The percentage of time in which EU FPU pipeline was actively processing a pixel shader instruction."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 11 READ A 12 READ FADD A 13 READ FADD A 14 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array/Pixel Shader"
+ mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="EU Send Pipe Active"
+ symbol_name="EuSendActive"
+ underscore_name="eu_send_active"
+ description="The percentage of time in which EU send pipeline was actively processing."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 15 READ A 16 READ FADD A 17 READ FADD A 18 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array/Pipes"
+ mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <register_config type="NOA">
+ <register type="NOA" address="0x00000D04" value="0x00000200" />
+ <register type="NOA" address="0x00009840" value="0x00000000" />
+ <register type="NOA" address="0x00009884" value="0x00000000" />
+ <register type="NOA" address="0x00009888" value="0x0E0E1200" />
+ <register type="NOA" address="0x00009888" value="0x220E0009" />
+ <register type="NOA" address="0x00009888" value="0x1C0E0043" />
+ <register type="NOA" address="0x00009888" value="0x1E0E00B3" />
+ <register type="NOA" address="0x00009888" value="0x180E0000" />
+ <register type="NOA" address="0x00009888" value="0x160E0000" />
+ <register type="NOA" address="0x00009888" value="0x1E0F1400" />
+ <register type="NOA" address="0x00009888" value="0x1C104000" />
+ <register type="NOA" address="0x00009888" value="0x1E104000" />
+ <register type="NOA" address="0x00009888" value="0x2E020140" />
+ <register type="NOA" address="0x00009888" value="0x2C030005" />
+ <register type="NOA" address="0x00009888" value="0x38003600" />
+ <register type="NOA" address="0x00009888" value="0x1C0A8000" />
+ <register type="NOA" address="0x00009888" value="0x1E0A8000" />
+ <register type="NOA" address="0x00009884" value="0x00000003" />
+ <register type="NOA" address="0x00009888" value="0x05151D37" />
+ <register type="NOA" address="0x00009888" value="0x09151547" />
+ <register type="NOA" address="0x00009888" value="0x05351C00" />
+ <register type="NOA" address="0x00009888" value="0x09351400" />
+ <register type="NOA" address="0x00009888" value="0x5D101400" />
+ <register type="NOA" address="0x00009888" value="0x5B100BBB" />
+ <register type="NOA" address="0x00009888" value="0x1D140030" />
+ <register type="NOA" address="0x00009888" value="0x61111400" />
+ <register type="NOA" address="0x00009888" value="0x1D128000" />
+ <register type="NOA" address="0x00009888" value="0x1F128000" />
+ <register type="NOA" address="0x00009888" value="0x0D150136" />
+ <register type="NOA" address="0x00009888" value="0x01150000" />
+ <register type="NOA" address="0x00009888" value="0x03164000" />
+ <register type="NOA" address="0x00009888" value="0x05164000" />
+ <register type="NOA" address="0x00009888" value="0x07164000" />
+ <register type="NOA" address="0x00009888" value="0x03350137" />
+ <register type="NOA" address="0x00009888" value="0x07350147" />
+ <register type="NOA" address="0x00009888" value="0x0B350136" />
+ <register type="NOA" address="0x00009888" value="0x01350000" />
+ <register type="NOA" address="0x00009888" value="0x01368000" />
+ <register type="NOA" address="0x00009888" value="0x03368000" />
+ <register type="NOA" address="0x00009888" value="0x05368000" />
+ <register type="NOA" address="0x00009888" value="0x17100000" />
+ <register type="NOA" address="0x00009888" value="0x55100000" />
+ <register type="NOA" address="0x00009888" value="0x57100000" />
+ <register type="NOA" address="0x00009888" value="0x47103000" />
+ <register type="NOA" address="0x00009888" value="0x49103535" />
+ <register type="NOA" address="0x00009888" value="0x4B103535" />
+ <register type="NOA" address="0x00009888" value="0x4D100535" />
+ <register type="NOA" address="0x00009888" value="0x31100000" />
+ <register type="NOA" address="0x00009884" value="0x00000003" />
+ <register type="NOA" address="0x00009888" value="0x65100002" />
+ <register type="NOA" address="0x00009884" value="0x00000000" />
+ <register type="NOA" address="0x00009888" value="0x42000001" />
+ </register_config>
+ <register_config type="OA">
+ <register type="OA" address="0x0000D920" value="0x00000000" />
+ <register type="OA" address="0x0000D900" value="0x00000000" />
+ <register type="OA" address="0x0000D904" value="0x10800000" />
+ <register type="OA" address="0x0000D910" value="0x00000000" />
+ <register type="OA" address="0x0000D914" value="0x00800000" />
+ <register type="OA" address="0x0000DC40" value="0x00010000" />
+ <register type="OA" address="0x0000D940" value="0x00001802" />
+ <register type="OA" address="0x0000D944" value="0x0000FCFF" />
+ <register type="OA" address="0x0000DC00" value="0x00001802" />
+ <register type="OA" address="0x0000DC04" value="0x0000FCFF" />
+ </register_config>
+ <register_config type="FLEX">
+ <register type="FLEX" address="0x0000E458" value="0x00810710" />
+ <register type="FLEX" address="0x0000E558" value="0x00A10910" />
+ <register type="FLEX" address="0x0000E658" value="0x00850750" />
+ <register type="FLEX" address="0x0000E758" value="0x00A50950" />
+ <register type="FLEX" address="0x0000E45C" value="0x00802702" />
+ <register type="FLEX" address="0x0000E55C" value="0x00A02902" />
+ </register_config>
+ </set>
+
+ <set name="EuActivity2"
+ chipset="TGL"
+ symbol_name="EuActivity2"
+ underscore_name="eu_activity2"
+ mdapi_supported_apis="OGL OGL4 OCL MEDIA IO"
+ hw_config_guid="52b1fa12-3068-4b8c-8139-b5031a8d569b"
+ >
+ <counter name="GPU Time Elapsed"
+ symbol_name="GpuTime"
+ underscore_name="gpu_time"
+ description="Time elapsed on the GPU during the measurement."
+ data_type="uint64"
+ units="ns"
+ semantic_type="duration"
+ equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+ 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="GPU Busy"
+ symbol_name="GpuBusy"
+ underscore_name="gpu_busy"
+ description="The percentage of time in which the GPU has been processing GPU commands."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 0 READ 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="Tier1 Overview System Frame"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="VS Threads Dispatched"
+ symbol_name="VsThreads"
+ underscore_name="vs_threads"
+ description="The total number of vertex shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 1 READ"
+ mdapi_group="EU Array/Vertex Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="HS Threads Dispatched"
+ symbol_name="HsThreads"
+ underscore_name="hs_threads"
+ description="The total number of hull shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 2 READ"
+ mdapi_group="EU Array/Hull Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="DS Threads Dispatched"
+ symbol_name="DsThreads"
+ underscore_name="ds_threads"
+ description="The total number of domain shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 3 READ"
+ mdapi_group="EU Array/Domain Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="GS Threads Dispatched"
+ symbol_name="GsThreads"
+ underscore_name="gs_threads"
+ description="The total number of geometry shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 5 READ"
+ mdapi_group="EU Array/Geometry Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="FS Threads Dispatched"
+ symbol_name="PsThreads"
+ underscore_name="ps_threads"
+ description="The total number of fragment shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 6 READ"
+ mdapi_group="EU Array/Fragment Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="CS Threads Dispatched"
+ symbol_name="CsThreads"
+ underscore_name="cs_threads"
+ description="The total number of compute shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 4 READ"
+ mdapi_group="EU Array/Compute Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="Render Ring Busy"
+ symbol_name="RenderBusy"
+ underscore_name="render_busy"
+ description="The percentage of time when render command streamer was busy."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="C 1 READ 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="System Frame Batch"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="Compute Ring Busy"
+ symbol_name="ComputeBusy"
+ underscore_name="compute_busy"
+ description="The percentage of time when render command streamer was busy."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="C 0 READ 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="System Frame Batch"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="Render and compute engines are simultaneously busy"
+ symbol_name="RenderAndComputeBusy"
+ underscore_name="render_and_compute_busy"
+ description="The percentage of time when render and compute engines are simultaneously busy"
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="B 0 READ 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="GTI Read Throughput"
+ symbol_name="GtiReadThroughput"
+ underscore_name="gti_read_throughput"
+ description="The total number of GPU memory bytes read from GTI."
+ data_type="uint64"
+ max_equation="$GpuCoreClocks 64 UMUL"
+ units="bytes"
+ semantic_type="throughput"
+ equation="64 C 7 READ C 6 READ UADD C 5 READ UADD C 4 READ UADD UMUL"
+ mdapi_group="GTI"
+ mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="GTI Write Throughput"
+ symbol_name="GtiWriteThroughput"
+ underscore_name="gti_write_throughput"
+ description="The total number of GPU memory bytes written to GTI."
+ data_type="uint64"
+ max_equation="$GpuCoreClocks 64 UMUL"
+ units="bytes"
+ semantic_type="throughput"
+ equation="64 C 3 READ C 2 READ UADD UMUL"
+ mdapi_group="GTI"
+ mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="CS EM Pipe Active"
+ symbol_name="CsEmActive"
+ underscore_name="cs_em_active"
+ description="The percentage of time in which EU FPU1 pipeline was actively processing a compute shader instruction."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 15 READ A 16 READ FADD A 17 READ FADD A 18 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array"
+ mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="CS FPU Pipe Active"
+ symbol_name="CsFpuActive"
+ underscore_name="cs_fpu_active"
+ description="The percentage of time in which EU FPU pipeline was actively processing a compute shader instruction."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 11 READ A 12 READ FADD A 13 READ FADD A 14 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array"
+ mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="CS Send Pipeline Active"
+ symbol_name="CsSendActive"
+ underscore_name="cs_send_active"
+ description="The percentage of time in which EU send pipeline was actively processing a compute shader instruction."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 7 READ A 8 READ FADD A 9 READ FADD A 10 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array"
+ mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <register_config type="NOA">
+ <register type="NOA" address="0x00000D04" value="0x00000200" />
+ <register type="NOA" address="0x00009840" value="0x00000000" />
+ <register type="NOA" address="0x00009884" value="0x00000000" />
+ <register type="NOA" address="0x00009888" value="0x0E0E1200" />
+ <register type="NOA" address="0x00009888" value="0x220E0009" />
+ <register type="NOA" address="0x00009888" value="0x1C0E0043" />
+ <register type="NOA" address="0x00009888" value="0x1E0E00B3" />
+ <register type="NOA" address="0x00009888" value="0x180E0000" />
+ <register type="NOA" address="0x00009888" value="0x160E0000" />
+ <register type="NOA" address="0x00009888" value="0x1E0F1400" />
+ <register type="NOA" address="0x00009888" value="0x1C104000" />
+ <register type="NOA" address="0x00009888" value="0x1E104000" />
+ <register type="NOA" address="0x00009888" value="0x2E020140" />
+ <register type="NOA" address="0x00009888" value="0x2C030005" />
+ <register type="NOA" address="0x00009888" value="0x38003600" />
+ <register type="NOA" address="0x00009888" value="0x1C0A8000" />
+ <register type="NOA" address="0x00009888" value="0x1E0A8000" />
+ <register type="NOA" address="0x00009884" value="0x00000003" />
+ <register type="NOA" address="0x00009888" value="0x05151D37" />
+ <register type="NOA" address="0x00009888" value="0x09151547" />
+ <register type="NOA" address="0x00009888" value="0x05351C00" />
+ <register type="NOA" address="0x00009888" value="0x09351400" />
+ <register type="NOA" address="0x00009888" value="0x5D101400" />
+ <register type="NOA" address="0x00009888" value="0x5B100BBB" />
+ <register type="NOA" address="0x00009888" value="0x1D140030" />
+ <register type="NOA" address="0x00009888" value="0x61111400" />
+ <register type="NOA" address="0x00009888" value="0x1D128000" />
+ <register type="NOA" address="0x00009888" value="0x1F128000" />
+ <register type="NOA" address="0x00009888" value="0x0D150136" />
+ <register type="NOA" address="0x00009888" value="0x01150000" />
+ <register type="NOA" address="0x00009888" value="0x03164000" />
+ <register type="NOA" address="0x00009888" value="0x05164000" />
+ <register type="NOA" address="0x00009888" value="0x07164000" />
+ <register type="NOA" address="0x00009888" value="0x03350137" />
+ <register type="NOA" address="0x00009888" value="0x07350147" />
+ <register type="NOA" address="0x00009888" value="0x0B350136" />
+ <register type="NOA" address="0x00009888" value="0x01350000" />
+ <register type="NOA" address="0x00009888" value="0x01368000" />
+ <register type="NOA" address="0x00009888" value="0x03368000" />
+ <register type="NOA" address="0x00009888" value="0x05368000" />
+ <register type="NOA" address="0x00009888" value="0x17100000" />
+ <register type="NOA" address="0x00009888" value="0x55100000" />
+ <register type="NOA" address="0x00009888" value="0x57100000" />
+ <register type="NOA" address="0x00009888" value="0x47103000" />
+ <register type="NOA" address="0x00009888" value="0x49103535" />
+ <register type="NOA" address="0x00009888" value="0x4B103535" />
+ <register type="NOA" address="0x00009888" value="0x4D100535" />
+ <register type="NOA" address="0x00009888" value="0x31100000" />
+ <register type="NOA" address="0x00009884" value="0x00000003" />
+ <register type="NOA" address="0x00009888" value="0x65100002" />
+ <register type="NOA" address="0x00009884" value="0x00000000" />
+ <register type="NOA" address="0x00009888" value="0x42000001" />
+ </register_config>
+ <register_config type="OA">
+ <register type="OA" address="0x0000D920" value="0x00000000" />
+ <register type="OA" address="0x0000D900" value="0x00000000" />
+ <register type="OA" address="0x0000D904" value="0x10800000" />
+ <register type="OA" address="0x0000D910" value="0x00000000" />
+ <register type="OA" address="0x0000D914" value="0x00800000" />
+ <register type="OA" address="0x0000DC40" value="0x00010000" />
+ <register type="OA" address="0x0000D940" value="0x00001802" />
+ <register type="OA" address="0x0000D944" value="0x0000FCFF" />
+ <register type="OA" address="0x0000DC00" value="0x00001802" />
+ <register type="OA" address="0x0000DC04" value="0x0000FCFF" />
+ </register_config>
+ <register_config type="FLEX">
+ <register type="FLEX" address="0x0000E458" value="0x00862762" />
+ <register type="FLEX" address="0x0000E558" value="0x00A62962" />
+ <register type="FLEX" address="0x0000E658" value="0x00860760" />
+ <register type="FLEX" address="0x0000E758" value="0x00A60960" />
+ <register type="FLEX" address="0x0000E45C" value="0x00861761" />
+ <register type="FLEX" address="0x0000E55C" value="0x00A61961" />
+ </register_config>
+ </set>
+
+ <set name="EuActivity3"
+ chipset="TGL"
+ symbol_name="EuActivity3"
+ underscore_name="eu_activity3"
+ mdapi_supported_apis="OGL OGL4 OCL MEDIA IO"
+ hw_config_guid="6381bfd9-e89a-4d23-a71c-176f70e39088"
+ >
+ <counter name="GPU Time Elapsed"
+ symbol_name="GpuTime"
+ underscore_name="gpu_time"
+ description="Time elapsed on the GPU during the measurement."
+ data_type="uint64"
+ units="ns"
+ semantic_type="duration"
+ equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+ 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="GPU Busy"
+ symbol_name="GpuBusy"
+ underscore_name="gpu_busy"
+ description="The percentage of time in which the GPU has been processing GPU commands."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 0 READ 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="Tier1 Overview System Frame"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="VS Threads Dispatched"
+ symbol_name="VsThreads"
+ underscore_name="vs_threads"
+ description="The total number of vertex shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 1 READ"
+ mdapi_group="EU Array/Vertex Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="HS Threads Dispatched"
+ symbol_name="HsThreads"
+ underscore_name="hs_threads"
+ description="The total number of hull shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 2 READ"
+ mdapi_group="EU Array/Hull Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="DS Threads Dispatched"
+ symbol_name="DsThreads"
+ underscore_name="ds_threads"
+ description="The total number of domain shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 3 READ"
+ mdapi_group="EU Array/Domain Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="GS Threads Dispatched"
+ symbol_name="GsThreads"
+ underscore_name="gs_threads"
+ description="The total number of geometry shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 5 READ"
+ mdapi_group="EU Array/Geometry Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="FS Threads Dispatched"
+ symbol_name="PsThreads"
+ underscore_name="ps_threads"
+ description="The total number of fragment shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 6 READ"
+ mdapi_group="EU Array/Fragment Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="CS Threads Dispatched"
+ symbol_name="CsThreads"
+ underscore_name="cs_threads"
+ description="The total number of compute shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 4 READ"
+ mdapi_group="EU Array/Compute Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="Render Ring Busy"
+ symbol_name="RenderBusy"
+ underscore_name="render_busy"
+ description="The percentage of time when render command streamer was busy."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="C 1 READ 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="System Frame Batch"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="Compute Ring Busy"
+ symbol_name="ComputeBusy"
+ underscore_name="compute_busy"
+ description="The percentage of time when render command streamer was busy."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="C 0 READ 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="System Frame Batch"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="Render and compute engines are simultaneously busy"
+ symbol_name="RenderAndComputeBusy"
+ underscore_name="render_and_compute_busy"
+ description="The percentage of time when render and compute engines are simultaneously busy"
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="B 0 READ 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="GTI Read Throughput"
+ symbol_name="GtiReadThroughput"
+ underscore_name="gti_read_throughput"
+ description="The total number of GPU memory bytes read from GTI."
+ data_type="uint64"
+ max_equation="$GpuCoreClocks 64 UMUL"
+ units="bytes"
+ semantic_type="throughput"
+ equation="64 C 7 READ C 6 READ UADD C 5 READ UADD C 4 READ UADD UMUL"
+ mdapi_group="GTI"
+ mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="GTI Write Throughput"
+ symbol_name="GtiWriteThroughput"
+ underscore_name="gti_write_throughput"
+ description="The total number of GPU memory bytes written to GTI."
+ data_type="uint64"
+ max_equation="$GpuCoreClocks 64 UMUL"
+ units="bytes"
+ semantic_type="throughput"
+ equation="64 C 3 READ C 2 READ UADD UMUL"
+ mdapi_group="GTI"
+ mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="VS EM Pipe Active"
+ symbol_name="VsEmActive"
+ underscore_name="vs_em_active"
+ description="The percentage of time in which EU EM pipeline was actively processing a vertex shader instruction."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 7 READ A 8 READ FADD A 9 READ FADD A 10 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array/Vertex Shader"
+ mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="PS EM Pipe Active"
+ symbol_name="PsEmActive"
+ underscore_name="ps_em_active"
+ description="The percentage of time in which EU EM pipeline was actively processing a pixel shader instruction."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 11 READ A 12 READ FADD A 13 READ FADD A 14 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array/Pixel Shader"
+ mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="PS Send Pipeline Active"
+ symbol_name="PsSendActive"
+ underscore_name="ps_send_active"
+ description="The percentage of time in which EU send pipeline was actively processing a pixel shader instruction."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 15 READ A 16 READ FADD A 17 READ FADD A 18 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array/Pixel Shader"
+ mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <register_config type="NOA">
+ <register type="NOA" address="0x00000D04" value="0x00000200" />
+ <register type="NOA" address="0x00009840" value="0x00000000" />
+ <register type="NOA" address="0x00009884" value="0x00000000" />
+ <register type="NOA" address="0x00009888" value="0x0E0E1200" />
+ <register type="NOA" address="0x00009888" value="0x220E0009" />
+ <register type="NOA" address="0x00009888" value="0x1C0E0043" />
+ <register type="NOA" address="0x00009888" value="0x1E0E00B3" />
+ <register type="NOA" address="0x00009888" value="0x180E0000" />
+ <register type="NOA" address="0x00009888" value="0x160E0000" />
+ <register type="NOA" address="0x00009888" value="0x1E0F1400" />
+ <register type="NOA" address="0x00009888" value="0x1C104000" />
+ <register type="NOA" address="0x00009888" value="0x1E104000" />
+ <register type="NOA" address="0x00009888" value="0x2E020140" />
+ <register type="NOA" address="0x00009888" value="0x2C030005" />
+ <register type="NOA" address="0x00009888" value="0x38003600" />
+ <register type="NOA" address="0x00009888" value="0x1C0A8000" />
+ <register type="NOA" address="0x00009888" value="0x1E0A8000" />
+ <register type="NOA" address="0x00009884" value="0x00000003" />
+ <register type="NOA" address="0x00009888" value="0x05151D37" />
+ <register type="NOA" address="0x00009888" value="0x09151547" />
+ <register type="NOA" address="0x00009888" value="0x05351C00" />
+ <register type="NOA" address="0x00009888" value="0x09351400" />
+ <register type="NOA" address="0x00009888" value="0x5D101400" />
+ <register type="NOA" address="0x00009888" value="0x5B100BBB" />
+ <register type="NOA" address="0x00009888" value="0x1D140030" />
+ <register type="NOA" address="0x00009888" value="0x61111400" />
+ <register type="NOA" address="0x00009888" value="0x1D128000" />
+ <register type="NOA" address="0x00009888" value="0x1F128000" />
+ <register type="NOA" address="0x00009888" value="0x0D150136" />
+ <register type="NOA" address="0x00009888" value="0x01150000" />
+ <register type="NOA" address="0x00009888" value="0x03164000" />
+ <register type="NOA" address="0x00009888" value="0x05164000" />
+ <register type="NOA" address="0x00009888" value="0x07164000" />
+ <register type="NOA" address="0x00009888" value="0x03350137" />
+ <register type="NOA" address="0x00009888" value="0x07350147" />
+ <register type="NOA" address="0x00009888" value="0x0B350136" />
+ <register type="NOA" address="0x00009888" value="0x01350000" />
+ <register type="NOA" address="0x00009888" value="0x01368000" />
+ <register type="NOA" address="0x00009888" value="0x03368000" />
+ <register type="NOA" address="0x00009888" value="0x05368000" />
+ <register type="NOA" address="0x00009888" value="0x17100000" />
+ <register type="NOA" address="0x00009888" value="0x55100000" />
+ <register type="NOA" address="0x00009888" value="0x57100000" />
+ <register type="NOA" address="0x00009888" value="0x47103000" />
+ <register type="NOA" address="0x00009888" value="0x49103535" />
+ <register type="NOA" address="0x00009888" value="0x4B103535" />
+ <register type="NOA" address="0x00009888" value="0x4D100535" />
+ <register type="NOA" address="0x00009888" value="0x31100000" />
+ <register type="NOA" address="0x00009884" value="0x00000003" />
+ <register type="NOA" address="0x00009888" value="0x65100002" />
+ <register type="NOA" address="0x00009884" value="0x00000000" />
+ <register type="NOA" address="0x00009888" value="0x42000001" />
+ </register_config>
+ <register_config type="OA">
+ <register type="OA" address="0x0000D920" value="0x00000000" />
+ <register type="OA" address="0x0000D900" value="0x00000000" />
+ <register type="OA" address="0x0000D904" value="0x10800000" />
+ <register type="OA" address="0x0000D910" value="0x00000000" />
+ <register type="OA" address="0x0000D914" value="0x00800000" />
+ <register type="OA" address="0x0000DC40" value="0x00010000" />
+ <register type="OA" address="0x0000D940" value="0x00001802" />
+ <register type="OA" address="0x0000D944" value="0x0000FCFF" />
+ <register type="OA" address="0x0000DC00" value="0x00001802" />
+ <register type="OA" address="0x0000DC04" value="0x0000FCFF" />
+ </register_config>
+ <register_config type="FLEX">
+ <register type="FLEX" address="0x0000E458" value="0x00811711" />
+ <register type="FLEX" address="0x0000E558" value="0x00A11911" />
+ <register type="FLEX" address="0x0000E658" value="0x00851751" />
+ <register type="FLEX" address="0x0000E758" value="0x00A51951" />
+ <register type="FLEX" address="0x0000E45C" value="0x00852752" />
+ <register type="FLEX" address="0x0000E55C" value="0x00A52952" />
+ </register_config>
+ </set>
+
+ <set name="EuActivity4"
+ chipset="TGL"
+ symbol_name="EuActivity4"
+ underscore_name="eu_activity4"
+ mdapi_supported_apis="OGL OGL4 OCL MEDIA IO"
+ hw_config_guid="efb7e460-edff-4329-9123-bbccc93f5546"
+ >
+ <counter name="GPU Time Elapsed"
+ symbol_name="GpuTime"
+ underscore_name="gpu_time"
+ description="Time elapsed on the GPU during the measurement."
+ data_type="uint64"
+ units="ns"
+ semantic_type="duration"
+ equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+ 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="GPU Busy"
+ symbol_name="GpuBusy"
+ underscore_name="gpu_busy"
+ description="The percentage of time in which the GPU has been processing GPU commands."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 0 READ 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="Tier1 Overview System Frame"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="VS Threads Dispatched"
+ symbol_name="VsThreads"
+ underscore_name="vs_threads"
+ description="The total number of vertex shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 1 READ"
+ mdapi_group="EU Array/Vertex Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="HS Threads Dispatched"
+ symbol_name="HsThreads"
+ underscore_name="hs_threads"
+ description="The total number of hull shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 2 READ"
+ mdapi_group="EU Array/Hull Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="DS Threads Dispatched"
+ symbol_name="DsThreads"
+ underscore_name="ds_threads"
+ description="The total number of domain shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 3 READ"
+ mdapi_group="EU Array/Domain Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="GS Threads Dispatched"
+ symbol_name="GsThreads"
+ underscore_name="gs_threads"
+ description="The total number of geometry shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 5 READ"
+ mdapi_group="EU Array/Geometry Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="FS Threads Dispatched"
+ symbol_name="PsThreads"
+ underscore_name="ps_threads"
+ description="The total number of fragment shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 6 READ"
+ mdapi_group="EU Array/Fragment Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="CS Threads Dispatched"
+ symbol_name="CsThreads"
+ underscore_name="cs_threads"
+ description="The total number of compute shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 4 READ"
+ mdapi_group="EU Array/Compute Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="Render Ring Busy"
+ symbol_name="RenderBusy"
+ underscore_name="render_busy"
+ description="The percentage of time when render command streamer was busy."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="C 1 READ 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="System Frame Batch"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="Compute Ring Busy"
+ symbol_name="ComputeBusy"
+ underscore_name="compute_busy"
+ description="The percentage of time when render command streamer was busy."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="C 0 READ 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="System Frame Batch"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="Render and compute engines are simultaneously busy"
+ symbol_name="RenderAndComputeBusy"
+ underscore_name="render_and_compute_busy"
+ description="The percentage of time when render and compute engines are simultaneously busy"
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="B 0 READ 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="GTI Read Throughput"
+ symbol_name="GtiReadThroughput"
+ underscore_name="gti_read_throughput"
+ description="The total number of GPU memory bytes read from GTI."
+ data_type="uint64"
+ max_equation="$GpuCoreClocks 64 UMUL"
+ units="bytes"
+ semantic_type="throughput"
+ equation="64 C 7 READ C 6 READ UADD C 5 READ UADD C 4 READ UADD UMUL"
+ mdapi_group="GTI"
+ mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="GTI Write Throughput"
+ symbol_name="GtiWriteThroughput"
+ underscore_name="gti_write_throughput"
+ description="The total number of GPU memory bytes written to GTI."
+ data_type="uint64"
+ max_equation="$GpuCoreClocks 64 UMUL"
+ units="bytes"
+ semantic_type="throughput"
+ equation="64 C 3 READ C 2 READ UADD UMUL"
+ mdapi_group="GTI"
+ mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="HS FPU Pipe Active"
+ symbol_name="HsFpuActive"
+ underscore_name="hs_fpu_active"
+ description="The percentage of time in which EU FPU pipeline was actively processing a hull shader instruction."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 7 READ A 8 READ FADD A 9 READ FADD A 10 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array/Hull Shader"
+ mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="DS FPU Pipe Active"
+ symbol_name="DsFpuActive"
+ underscore_name="ds_fpu_active"
+ description="The percentage of time in which EU FPU pipeline was actively processing a domain shader instructions."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 11 READ A 12 READ FADD A 13 READ FADD A 14 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array/Domain Shader"
+ mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="VS Send Pipe Active"
+ symbol_name="VsSendActive"
+ underscore_name="vs_send_active"
+ description="The percentage of time in which EU send pipeline was actively processing a vertex shader instruction."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 15 READ A 16 READ FADD A 17 READ FADD A 18 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array/Vertex Shader"
+ mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <register_config type="NOA">
+ <register type="NOA" address="0x00000D04" value="0x00000200" />
+ <register type="NOA" address="0x00009840" value="0x00000000" />
+ <register type="NOA" address="0x00009884" value="0x00000000" />
+ <register type="NOA" address="0x00009888" value="0x0E0E1200" />
+ <register type="NOA" address="0x00009888" value="0x220E0009" />
+ <register type="NOA" address="0x00009888" value="0x1C0E0043" />
+ <register type="NOA" address="0x00009888" value="0x1E0E00B3" />
+ <register type="NOA" address="0x00009888" value="0x180E0000" />
+ <register type="NOA" address="0x00009888" value="0x160E0000" />
+ <register type="NOA" address="0x00009888" value="0x1E0F1400" />
+ <register type="NOA" address="0x00009888" value="0x1C104000" />
+ <register type="NOA" address="0x00009888" value="0x1E104000" />
+ <register type="NOA" address="0x00009888" value="0x2E020140" />
+ <register type="NOA" address="0x00009888" value="0x2C030005" />
+ <register type="NOA" address="0x00009888" value="0x38003600" />
+ <register type="NOA" address="0x00009888" value="0x1C0A8000" />
+ <register type="NOA" address="0x00009888" value="0x1E0A8000" />
+ <register type="NOA" address="0x00009884" value="0x00000003" />
+ <register type="NOA" address="0x00009888" value="0x05151D37" />
+ <register type="NOA" address="0x00009888" value="0x09151547" />
+ <register type="NOA" address="0x00009888" value="0x05351C00" />
+ <register type="NOA" address="0x00009888" value="0x09351400" />
+ <register type="NOA" address="0x00009888" value="0x5D101400" />
+ <register type="NOA" address="0x00009888" value="0x5B100BBB" />
+ <register type="NOA" address="0x00009888" value="0x1D140030" />
+ <register type="NOA" address="0x00009888" value="0x61111400" />
+ <register type="NOA" address="0x00009888" value="0x1D128000" />
+ <register type="NOA" address="0x00009888" value="0x1F128000" />
+ <register type="NOA" address="0x00009888" value="0x0D150136" />
+ <register type="NOA" address="0x00009888" value="0x01150000" />
+ <register type="NOA" address="0x00009888" value="0x03164000" />
+ <register type="NOA" address="0x00009888" value="0x05164000" />
+ <register type="NOA" address="0x00009888" value="0x07164000" />
+ <register type="NOA" address="0x00009888" value="0x03350137" />
+ <register type="NOA" address="0x00009888" value="0x07350147" />
+ <register type="NOA" address="0x00009888" value="0x0B350136" />
+ <register type="NOA" address="0x00009888" value="0x01350000" />
+ <register type="NOA" address="0x00009888" value="0x01368000" />
+ <register type="NOA" address="0x00009888" value="0x03368000" />
+ <register type="NOA" address="0x00009888" value="0x05368000" />
+ <register type="NOA" address="0x00009888" value="0x17100000" />
+ <register type="NOA" address="0x00009888" value="0x55100000" />
+ <register type="NOA" address="0x00009888" value="0x57100000" />
+ <register type="NOA" address="0x00009888" value="0x47103000" />
+ <register type="NOA" address="0x00009888" value="0x49103535" />
+ <register type="NOA" address="0x00009888" value="0x4B103535" />
+ <register type="NOA" address="0x00009888" value="0x4D100535" />
+ <register type="NOA" address="0x00009888" value="0x31100000" />
+ <register type="NOA" address="0x00009884" value="0x00000003" />
+ <register type="NOA" address="0x00009888" value="0x65100002" />
+ <register type="NOA" address="0x00009884" value="0x00000000" />
+ <register type="NOA" address="0x00009888" value="0x42000001" />
+ </register_config>
+ <register_config type="OA">
+ <register type="OA" address="0x0000D920" value="0x00000000" />
+ <register type="OA" address="0x0000D900" value="0x00000000" />
+ <register type="OA" address="0x0000D904" value="0x10800000" />
+ <register type="OA" address="0x0000D910" value="0x00000000" />
+ <register type="OA" address="0x0000D914" value="0x00800000" />
+ <register type="OA" address="0x0000DC40" value="0x00010000" />
+ <register type="OA" address="0x0000D940" value="0x00001802" />
+ <register type="OA" address="0x0000D944" value="0x0000FCFF" />
+ <register type="OA" address="0x0000DC00" value="0x00001802" />
+ <register type="OA" address="0x0000DC04" value="0x0000FCFF" />
+ </register_config>
+ <register_config type="FLEX">
+ <register type="FLEX" address="0x0000E458" value="0x00820720" />
+ <register type="FLEX" address="0x0000E558" value="0x00A20920" />
+ <register type="FLEX" address="0x0000E658" value="0x00830730" />
+ <register type="FLEX" address="0x0000E758" value="0x00A30930" />
+ <register type="FLEX" address="0x0000E45C" value="0x00812712" />
+ <register type="FLEX" address="0x0000E55C" value="0x00A12912" />
+ </register_config>
+ </set>
+
+ <set name="EuActivity5"
+ chipset="TGL"
+ symbol_name="EuActivity5"
+ underscore_name="eu_activity5"
+ mdapi_supported_apis="OGL OGL4 OCL MEDIA IO"
+ hw_config_guid="76566878-face-4c3e-b18e-9117e1662ed4"
+ >
+ <counter name="GPU Time Elapsed"
+ symbol_name="GpuTime"
+ underscore_name="gpu_time"
+ description="Time elapsed on the GPU during the measurement."
+ data_type="uint64"
+ units="ns"
+ semantic_type="duration"
+ equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+ 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="GPU Busy"
+ symbol_name="GpuBusy"
+ underscore_name="gpu_busy"
+ description="The percentage of time in which the GPU has been processing GPU commands."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 0 READ 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="Tier1 Overview System Frame"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="VS Threads Dispatched"
+ symbol_name="VsThreads"
+ underscore_name="vs_threads"
+ description="The total number of vertex shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 1 READ"
+ mdapi_group="EU Array/Vertex Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="HS Threads Dispatched"
+ symbol_name="HsThreads"
+ underscore_name="hs_threads"
+ description="The total number of hull shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 2 READ"
+ mdapi_group="EU Array/Hull Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="DS Threads Dispatched"
+ symbol_name="DsThreads"
+ underscore_name="ds_threads"
+ description="The total number of domain shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 3 READ"
+ mdapi_group="EU Array/Domain Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="GS Threads Dispatched"
+ symbol_name="GsThreads"
+ underscore_name="gs_threads"
+ description="The total number of geometry shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 5 READ"
+ mdapi_group="EU Array/Geometry Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="FS Threads Dispatched"
+ symbol_name="PsThreads"
+ underscore_name="ps_threads"
+ description="The total number of fragment shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 6 READ"
+ mdapi_group="EU Array/Fragment Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="CS Threads Dispatched"
+ symbol_name="CsThreads"
+ underscore_name="cs_threads"
+ description="The total number of compute shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 4 READ"
+ mdapi_group="EU Array/Compute Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="Render Ring Busy"
+ symbol_name="RenderBusy"
+ underscore_name="render_busy"
+ description="The percentage of time when render command streamer was busy."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="C 1 READ 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="System Frame Batch"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="Compute Ring Busy"
+ symbol_name="ComputeBusy"
+ underscore_name="compute_busy"
+ description="The percentage of time when render command streamer was busy."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="C 0 READ 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="System Frame Batch"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="Render and compute engines are simultaneously busy"
+ symbol_name="RenderAndComputeBusy"
+ underscore_name="render_and_compute_busy"
+ description="The percentage of time when render and compute engines are simultaneously busy"
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="B 0 READ 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="GTI Read Throughput"
+ symbol_name="GtiReadThroughput"
+ underscore_name="gti_read_throughput"
+ description="The total number of GPU memory bytes read from GTI."
+ data_type="uint64"
+ max_equation="$GpuCoreClocks 64 UMUL"
+ units="bytes"
+ semantic_type="throughput"
+ equation="64 C 7 READ C 6 READ UADD C 5 READ UADD C 4 READ UADD UMUL"
+ mdapi_group="GTI"
+ mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="GTI Write Throughput"
+ symbol_name="GtiWriteThroughput"
+ underscore_name="gti_write_throughput"
+ description="The total number of GPU memory bytes written to GTI."
+ data_type="uint64"
+ max_equation="$GpuCoreClocks 64 UMUL"
+ units="bytes"
+ semantic_type="throughput"
+ equation="64 C 3 READ C 2 READ UADD UMUL"
+ mdapi_group="GTI"
+ mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="HS EM Pipe Active"
+ symbol_name="HsEmActive"
+ underscore_name="hs_em_active"
+ description="The percentage of time in which EU EM pipeline was actively processing a hull shader instructions."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 7 READ A 8 READ FADD A 9 READ FADD A 10 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array/Hull Shader"
+ mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="DS EM Pipe Active"
+ symbol_name="DsEmActive"
+ underscore_name="ds_em_active"
+ description="The percentage of time in which EU EM pipeline was actively processing a domain shader instructions."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 11 READ A 12 READ FADD A 13 READ FADD A 14 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array/Domain Shader"
+ mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="HS Send Pipe Active"
+ symbol_name="HsSendActive"
+ underscore_name="hs_send_active"
+ description="The percentage of time in which EU send pipeline was actively processing a hull shader instruction."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 15 READ A 16 READ FADD A 17 READ FADD A 18 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array/Hull Shader"
+ mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <register_config type="NOA">
+ <register type="NOA" address="0x00000D04" value="0x00000200" />
+ <register type="NOA" address="0x00009840" value="0x00000000" />
+ <register type="NOA" address="0x00009884" value="0x00000000" />
+ <register type="NOA" address="0x00009888" value="0x0E0E1200" />
+ <register type="NOA" address="0x00009888" value="0x220E0009" />
+ <register type="NOA" address="0x00009888" value="0x1C0E0043" />
+ <register type="NOA" address="0x00009888" value="0x1E0E00B3" />
+ <register type="NOA" address="0x00009888" value="0x180E0000" />
+ <register type="NOA" address="0x00009888" value="0x160E0000" />
+ <register type="NOA" address="0x00009888" value="0x1E0F1400" />
+ <register type="NOA" address="0x00009888" value="0x1C104000" />
+ <register type="NOA" address="0x00009888" value="0x1E104000" />
+ <register type="NOA" address="0x00009888" value="0x2E020140" />
+ <register type="NOA" address="0x00009888" value="0x2C030005" />
+ <register type="NOA" address="0x00009888" value="0x38003600" />
+ <register type="NOA" address="0x00009888" value="0x1C0A8000" />
+ <register type="NOA" address="0x00009888" value="0x1E0A8000" />
+ <register type="NOA" address="0x00009884" value="0x00000003" />
+ <register type="NOA" address="0x00009888" value="0x05151D37" />
+ <register type="NOA" address="0x00009888" value="0x09151547" />
+ <register type="NOA" address="0x00009888" value="0x05351C00" />
+ <register type="NOA" address="0x00009888" value="0x09351400" />
+ <register type="NOA" address="0x00009888" value="0x5D101400" />
+ <register type="NOA" address="0x00009888" value="0x5B100BBB" />
+ <register type="NOA" address="0x00009888" value="0x1D140030" />
+ <register type="NOA" address="0x00009888" value="0x61111400" />
+ <register type="NOA" address="0x00009888" value="0x1D128000" />
+ <register type="NOA" address="0x00009888" value="0x1F128000" />
+ <register type="NOA" address="0x00009888" value="0x0D150136" />
+ <register type="NOA" address="0x00009888" value="0x01150000" />
+ <register type="NOA" address="0x00009888" value="0x03164000" />
+ <register type="NOA" address="0x00009888" value="0x05164000" />
+ <register type="NOA" address="0x00009888" value="0x07164000" />
+ <register type="NOA" address="0x00009888" value="0x03350137" />
+ <register type="NOA" address="0x00009888" value="0x07350147" />
+ <register type="NOA" address="0x00009888" value="0x0B350136" />
+ <register type="NOA" address="0x00009888" value="0x01350000" />
+ <register type="NOA" address="0x00009888" value="0x01368000" />
+ <register type="NOA" address="0x00009888" value="0x03368000" />
+ <register type="NOA" address="0x00009888" value="0x05368000" />
+ <register type="NOA" address="0x00009888" value="0x17100000" />
+ <register type="NOA" address="0x00009888" value="0x55100000" />
+ <register type="NOA" address="0x00009888" value="0x57100000" />
+ <register type="NOA" address="0x00009888" value="0x47103000" />
+ <register type="NOA" address="0x00009888" value="0x49103535" />
+ <register type="NOA" address="0x00009888" value="0x4B103535" />
+ <register type="NOA" address="0x00009888" value="0x4D100535" />
+ <register type="NOA" address="0x00009888" value="0x31100000" />
+ <register type="NOA" address="0x00009884" value="0x00000003" />
+ <register type="NOA" address="0x00009888" value="0x65100002" />
+ <register type="NOA" address="0x00009884" value="0x00000000" />
+ <register type="NOA" address="0x00009888" value="0x42000001" />
+ </register_config>
+ <register_config type="OA">
+ <register type="OA" address="0x0000D920" value="0x00000000" />
+ <register type="OA" address="0x0000D900" value="0x00000000" />
+ <register type="OA" address="0x0000D904" value="0x10800000" />
+ <register type="OA" address="0x0000D910" value="0x00000000" />
+ <register type="OA" address="0x0000D914" value="0x00800000" />
+ <register type="OA" address="0x0000DC40" value="0x00010000" />
+ <register type="OA" address="0x0000D940" value="0x00001802" />
+ <register type="OA" address="0x0000D944" value="0x0000FCFF" />
+ <register type="OA" address="0x0000DC00" value="0x00001802" />
+ <register type="OA" address="0x0000DC04" value="0x0000FCFF" />
+ </register_config>
+ <register_config type="FLEX">
+ <register type="FLEX" address="0x0000E458" value="0x00821721" />
+ <register type="FLEX" address="0x0000E558" value="0x00A21921" />
+ <register type="FLEX" address="0x0000E658" value="0x00831731" />
+ <register type="FLEX" address="0x0000E758" value="0x00A31931" />
+ <register type="FLEX" address="0x0000E45C" value="0x00822722" />
+ <register type="FLEX" address="0x0000E55C" value="0x00A22922" />
+ </register_config>
+ </set>
+
+ <set name="EuActivity6"
+ chipset="TGL"
+ symbol_name="EuActivity6"
+ underscore_name="eu_activity6"
+ mdapi_supported_apis="OGL OGL4 OCL MEDIA IO"
+ hw_config_guid="61ead329-10c0-48ad-8087-99cc9886197f"
+ >
+ <counter name="GPU Time Elapsed"
+ symbol_name="GpuTime"
+ underscore_name="gpu_time"
+ description="Time elapsed on the GPU during the measurement."
+ data_type="uint64"
+ units="ns"
+ semantic_type="duration"
+ equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+ 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="GPU Busy"
+ symbol_name="GpuBusy"
+ underscore_name="gpu_busy"
+ description="The percentage of time in which the GPU has been processing GPU commands."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 0 READ 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="Tier1 Overview System Frame"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="VS Threads Dispatched"
+ symbol_name="VsThreads"
+ underscore_name="vs_threads"
+ description="The total number of vertex shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 1 READ"
+ mdapi_group="EU Array/Vertex Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="HS Threads Dispatched"
+ symbol_name="HsThreads"
+ underscore_name="hs_threads"
+ description="The total number of hull shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 2 READ"
+ mdapi_group="EU Array/Hull Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="DS Threads Dispatched"
+ symbol_name="DsThreads"
+ underscore_name="ds_threads"
+ description="The total number of domain shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 3 READ"
+ mdapi_group="EU Array/Domain Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="GS Threads Dispatched"
+ symbol_name="GsThreads"
+ underscore_name="gs_threads"
+ description="The total number of geometry shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 5 READ"
+ mdapi_group="EU Array/Geometry Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="FS Threads Dispatched"
+ symbol_name="PsThreads"
+ underscore_name="ps_threads"
+ description="The total number of fragment shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 6 READ"
+ mdapi_group="EU Array/Fragment Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="CS Threads Dispatched"
+ symbol_name="CsThreads"
+ underscore_name="cs_threads"
+ description="The total number of compute shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 4 READ"
+ mdapi_group="EU Array/Compute Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="Render Ring Busy"
+ symbol_name="RenderBusy"
+ underscore_name="render_busy"
+ description="The percentage of time when render command streamer was busy."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="C 1 READ 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="System Frame Batch"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="Compute Ring Busy"
+ symbol_name="ComputeBusy"
+ underscore_name="compute_busy"
+ description="The percentage of time when render command streamer was busy."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="C 0 READ 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="System Frame Batch"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="Render and compute engines are simultaneously busy"
+ symbol_name="RenderAndComputeBusy"
+ underscore_name="render_and_compute_busy"
+ description="The percentage of time when render and compute engines are simultaneously busy"
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="B 0 READ 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="GTI Read Throughput"
+ symbol_name="GtiReadThroughput"
+ underscore_name="gti_read_throughput"
+ description="The total number of GPU memory bytes read from GTI."
+ data_type="uint64"
+ max_equation="$GpuCoreClocks 64 UMUL"
+ units="bytes"
+ semantic_type="throughput"
+ equation="64 C 7 READ C 6 READ UADD C 5 READ UADD C 4 READ UADD UMUL"
+ mdapi_group="GTI"
+ mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="GTI Write Throughput"
+ symbol_name="GtiWriteThroughput"
+ underscore_name="gti_write_throughput"
+ description="The total number of GPU memory bytes written to GTI."
+ data_type="uint64"
+ max_equation="$GpuCoreClocks 64 UMUL"
+ units="bytes"
+ semantic_type="throughput"
+ equation="64 C 3 READ C 2 READ UADD UMUL"
+ mdapi_group="GTI"
+ mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="GS FPU Pipe Active"
+ symbol_name="GsFpuActive"
+ underscore_name="gs_fpu_active"
+ description="The percentage of time in which EU FPU pipeline was actively processing a geometry shader instructions."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 7 READ A 8 READ FADD A 9 READ FADD A 10 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array/Geometry Shader"
+ mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="GS EM Pipe Active"
+ symbol_name="GsEmActive"
+ underscore_name="gs_em_active"
+ description="The percentage of time in which EU EM pipeline was actively processing a geometry shader instructions."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 11 READ A 12 READ FADD A 13 READ FADD A 14 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array/Geometry Shader"
+ mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="GS Send Pipe Active"
+ symbol_name="GsSendActive"
+ underscore_name="gs_send_active"
+ description="The percentage of time in which EU send pipeline was actively processing a geometry shader instruction."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 15 READ A 16 READ FADD A 17 READ FADD A 18 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array/Geometry Shader"
+ mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <register_config type="NOA">
+ <register type="NOA" address="0x00000D04" value="0x00000200" />
+ <register type="NOA" address="0x00009840" value="0x00000000" />
+ <register type="NOA" address="0x00009884" value="0x00000000" />
+ <register type="NOA" address="0x00009888" value="0x0E0E1200" />
+ <register type="NOA" address="0x00009888" value="0x220E0009" />
+ <register type="NOA" address="0x00009888" value="0x1C0E0043" />
+ <register type="NOA" address="0x00009888" value="0x1E0E00B3" />
+ <register type="NOA" address="0x00009888" value="0x180E0000" />
+ <register type="NOA" address="0x00009888" value="0x160E0000" />
+ <register type="NOA" address="0x00009888" value="0x1E0F1400" />
+ <register type="NOA" address="0x00009888" value="0x1C104000" />
+ <register type="NOA" address="0x00009888" value="0x1E104000" />
+ <register type="NOA" address="0x00009888" value="0x2E020140" />
+ <register type="NOA" address="0x00009888" value="0x2C030005" />
+ <register type="NOA" address="0x00009888" value="0x38003600" />
+ <register type="NOA" address="0x00009888" value="0x1C0A8000" />
+ <register type="NOA" address="0x00009888" value="0x1E0A8000" />
+ <register type="NOA" address="0x00009884" value="0x00000003" />
+ <register type="NOA" address="0x00009888" value="0x05151D37" />
+ <register type="NOA" address="0x00009888" value="0x09151547" />
+ <register type="NOA" address="0x00009888" value="0x05351C00" />
+ <register type="NOA" address="0x00009888" value="0x09351400" />
+ <register type="NOA" address="0x00009888" value="0x5D101400" />
+ <register type="NOA" address="0x00009888" value="0x5B100BBB" />
+ <register type="NOA" address="0x00009888" value="0x1D140030" />
+ <register type="NOA" address="0x00009888" value="0x61111400" />
+ <register type="NOA" address="0x00009888" value="0x1D128000" />
+ <register type="NOA" address="0x00009888" value="0x1F128000" />
+ <register type="NOA" address="0x00009888" value="0x0D150136" />
+ <register type="NOA" address="0x00009888" value="0x01150000" />
+ <register type="NOA" address="0x00009888" value="0x03164000" />
+ <register type="NOA" address="0x00009888" value="0x05164000" />
+ <register type="NOA" address="0x00009888" value="0x07164000" />
+ <register type="NOA" address="0x00009888" value="0x03350137" />
+ <register type="NOA" address="0x00009888" value="0x07350147" />
+ <register type="NOA" address="0x00009888" value="0x0B350136" />
+ <register type="NOA" address="0x00009888" value="0x01350000" />
+ <register type="NOA" address="0x00009888" value="0x01368000" />
+ <register type="NOA" address="0x00009888" value="0x03368000" />
+ <register type="NOA" address="0x00009888" value="0x05368000" />
+ <register type="NOA" address="0x00009888" value="0x17100000" />
+ <register type="NOA" address="0x00009888" value="0x55100000" />
+ <register type="NOA" address="0x00009888" value="0x57100000" />
+ <register type="NOA" address="0x00009888" value="0x47103000" />
+ <register type="NOA" address="0x00009888" value="0x49103535" />
+ <register type="NOA" address="0x00009888" value="0x4B103535" />
+ <register type="NOA" address="0x00009888" value="0x4D100535" />
+ <register type="NOA" address="0x00009888" value="0x31100000" />
+ <register type="NOA" address="0x00009884" value="0x00000003" />
+ <register type="NOA" address="0x00009888" value="0x65100002" />
+ <register type="NOA" address="0x00009884" value="0x00000000" />
+ <register type="NOA" address="0x00009888" value="0x42000001" />
+ </register_config>
+ <register_config type="OA">
+ <register type="OA" address="0x0000D920" value="0x00000000" />
+ <register type="OA" address="0x0000D900" value="0x00000000" />
+ <register type="OA" address="0x0000D904" value="0x10800000" />
+ <register type="OA" address="0x0000D910" value="0x00000000" />
+ <register type="OA" address="0x0000D914" value="0x00800000" />
+ <register type="OA" address="0x0000DC40" value="0x00010000" />
+ <register type="OA" address="0x0000D940" value="0x00001802" />
+ <register type="OA" address="0x0000D944" value="0x0000FCFF" />
+ <register type="OA" address="0x0000DC00" value="0x00001802" />
+ <register type="OA" address="0x0000DC04" value="0x0000FCFF" />
+ </register_config>
+ <register_config type="FLEX">
+ <register type="FLEX" address="0x0000E458" value="0x00840740" />
+ <register type="FLEX" address="0x0000E558" value="0x00A40940" />
+ <register type="FLEX" address="0x0000E658" value="0x00841741" />
+ <register type="FLEX" address="0x0000E758" value="0x00A41941" />
+ <register type="FLEX" address="0x0000E45C" value="0x00842742" />
+ <register type="FLEX" address="0x0000E55C" value="0x00A42942" />
+ </register_config>
+ </set>
+
+ <set name="EuActivity7"
+ chipset="TGL"
+ symbol_name="EuActivity7"
+ underscore_name="eu_activity7"
+ mdapi_supported_apis="OGL OGL4 OCL MEDIA IO"
+ hw_config_guid="f6992ed0-8c99-4613-8371-08560c271eb9"
+ >
+ <counter name="GPU Time Elapsed"
+ symbol_name="GpuTime"
+ underscore_name="gpu_time"
+ description="Time elapsed on the GPU during the measurement."
+ data_type="uint64"
+ units="ns"
+ semantic_type="duration"
+ equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+ 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="GPU Busy"
+ symbol_name="GpuBusy"
+ underscore_name="gpu_busy"
+ description="The percentage of time in which the GPU has been processing GPU commands."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 0 READ 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="Tier1 Overview System Frame"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="VS Threads Dispatched"
+ symbol_name="VsThreads"
+ underscore_name="vs_threads"
+ description="The total number of vertex shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 1 READ"
+ mdapi_group="EU Array/Vertex Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="HS Threads Dispatched"
+ symbol_name="HsThreads"
+ underscore_name="hs_threads"
+ description="The total number of hull shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 2 READ"
+ mdapi_group="EU Array/Hull Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="DS Threads Dispatched"
+ symbol_name="DsThreads"
+ underscore_name="ds_threads"
+ description="The total number of domain shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 3 READ"
+ mdapi_group="EU Array/Domain Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="GS Threads Dispatched"
+ symbol_name="GsThreads"
+ underscore_name="gs_threads"
+ description="The total number of geometry shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 5 READ"
+ mdapi_group="EU Array/Geometry Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="FS Threads Dispatched"
+ symbol_name="PsThreads"
+ underscore_name="ps_threads"
+ description="The total number of fragment shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 6 READ"
+ mdapi_group="EU Array/Fragment Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="CS Threads Dispatched"
+ symbol_name="CsThreads"
+ underscore_name="cs_threads"
+ description="The total number of compute shader hardware threads dispatched."
+ data_type="uint64"
+ units="threads"
+ semantic_type="event"
+ equation="A 4 READ"
+ mdapi_group="EU Array/Compute Shader"
+ mdapi_usage_flags="Tier3 Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="Render Ring Busy"
+ symbol_name="RenderBusy"
+ underscore_name="render_busy"
+ description="The percentage of time when render command streamer was busy."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="C 1 READ 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="System Frame Batch"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="Compute Ring Busy"
+ symbol_name="ComputeBusy"
+ underscore_name="compute_busy"
+ description="The percentage of time when render command streamer was busy."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="C 0 READ 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="System Frame Batch"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="Render and compute engines are simultaneously busy"
+ symbol_name="RenderAndComputeBusy"
+ underscore_name="render_and_compute_busy"
+ description="The percentage of time when render and compute engines are simultaneously busy"
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="B 0 READ 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="GPU"
+ mdapi_usage_flags="Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="GTI Read Throughput"
+ symbol_name="GtiReadThroughput"
+ underscore_name="gti_read_throughput"
+ description="The total number of GPU memory bytes read from GTI."
+ data_type="uint64"
+ max_equation="$GpuCoreClocks 64 UMUL"
+ units="bytes"
+ semantic_type="throughput"
+ equation="64 C 7 READ C 6 READ UADD C 5 READ UADD C 4 READ UADD UMUL"
+ mdapi_group="GTI"
+ mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="GTI Write Throughput"
+ symbol_name="GtiWriteThroughput"
+ underscore_name="gti_write_throughput"
+ description="The total number of GPU memory bytes written to GTI."
+ data_type="uint64"
+ max_equation="$GpuCoreClocks 64 UMUL"
+ units="bytes"
+ semantic_type="throughput"
+ equation="64 C 3 READ C 2 READ UADD UMUL"
+ mdapi_group="GTI"
+ mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <counter name="DS Send Pipe Active"
+ symbol_name="DsSendActive"
+ underscore_name="ds_send_active"
+ description="The percentage of time in which EU send pipeline was actively processing a domain shader instruction."
+ data_type="float"
+ max_equation="100"
+ units="percent"
+ semantic_type="duration"
+ equation="A 7 READ A 8 READ FADD A 9 READ FADD A 10 READ FADD $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
+ mdapi_group="EU Array/Domain Shader"
+ mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
+ mdapi_supported_apis=""
+ mdapi_hw_unit_type="gpu"
+ />
+ <register_config type="NOA">
+ <register type="NOA" address="0x00000D04" value="0x00000200" />
+ <register type="NOA" address="0x00009840" value="0x00000000" />
+ <register type="NOA" address="0x00009884" value="0x00000000" />
+ <register type="NOA" address="0x00009888" value="0x0E0E1200" />
+ <register type="NOA" address="0x00009888" value="0x220E0009" />
+ <register type="NOA" address="0x00009888" value="0x1C0E0043" />
+ <register type="NOA" address="0x00009888" value="0x1E0E00B3" />
+ <register type="NOA" address="0x00009888" value="0x180E0000" />
+ <register type="NOA" address="0x00009888" value="0x160E0000" />
+ <register type="NOA" address="0x00009888" value="0x1E0F1400" />
+ <register type="NOA" address="0x00009888" value="0x1C104000" />
+ <register type="NOA" address="0x00009888" value="0x1E104000" />
+ <register type="NOA" address="0x00009888" value="0x2E020140" />
+ <register type="NOA" address="0x00009888" value="0x2C030005" />
+ <register type="NOA" address="0x00009888" value="0x38003600" />
+ <register type="NOA" address="0x00009888" value="0x1C0A8000" />
+ <register type="NOA" address="0x00009888" value="0x1E0A8000" />
+ <register type="NOA" address="0x00009884" value="0x00000003" />
+ <register type="NOA" address="0x00009888" value="0x05151D37" />
+ <register type="NOA" address="0x00009888" value="0x09151547" />
+ <register type="NOA" address="0x00009888" value="0x05351C00" />
+ <register type="NOA" address="0x00009888" value="0x09351400" />
+ <register type="NOA" address="0x00009888" value="0x5D101400" />
+ <register type="NOA" address="0x00009888" value="0x5B100BBB" />
+ <register type="NOA" address="0x00009888" value="0x1D140030" />
+ <register type="NOA" address="0x00009888" value="0x61111400" />
+ <register type="NOA" address="0x00009888" value="0x1D128000" />
+ <register type="NOA" address="0x00009888" value="0x1F128000" />
+ <register type="NOA" address="0x00009888" value="0x0D150136" />
+ <register type="NOA" address="0x00009888" value="0x01150000" />
+ <register type="NOA" address="0x00009888" value="0x03164000" />
+ <register type="NOA" address="0x00009888" value="0x05164000" />
+ <register type="NOA" address="0x00009888" value="0x07164000" />
+ <register type="NOA" address="0x00009888" value="0x03350137" />
+ <register type="NOA" address="0x00009888" value="0x07350147" />
+ <register type="NOA" address="0x00009888" value="0x0B350136" />
+ <register type="NOA" address="0x00009888" value="0x01350000" />
+ <register type="NOA" address="0x00009888" value="0x01368000" />
+ <register type="NOA" address="0x00009888" value="0x03368000" />
+ <register type="NOA" address="0x00009888" value="0x05368000" />
+ <register type="NOA" address="0x00009888" value="0x17100000" />
+ <register type="NOA" address="0x00009888" value="0x55100000" />
+ <register type="NOA" address="0x00009888" value="0x57100000" />
+ <register type="NOA" address="0x00009888" value="0x47103000" />
+ <register type="NOA" address="0x00009888" value="0x49103535" />
+ <register type="NOA" address="0x00009888" value="0x4B103535" />
+ <register type="NOA" address="0x00009888" value="0x4D100535" />
+ <register type="NOA" address="0x00009888" value="0x31100000" />
+ <register type="NOA" address="0x00009884" value="0x00000003" />
+ <register type="NOA" address="0x00009888" value="0x65100002" />
+ <register type="NOA" address="0x00009884" value="0x00000000" />
+ <register type="NOA" address="0x00009888" value="0x42000001" />
+ </register_config>
+ <register_config type="OA">
+ <register type="OA" address="0x0000D920" value="0x00000000" />
+ <register type="OA" address="0x0000D900" value="0x00000000" />
+ <register type="OA" address="0x0000D904" value="0x10800000" />
+ <register type="OA" address="0x0000D910" value="0x00000000" />
+ <register type="OA" address="0x0000D914" value="0x00800000" />
+ <register type="OA" address="0x0000DC40" value="0x00010000" />
+ <register type="OA" address="0x0000D940" value="0x00001802" />
+ <register type="OA" address="0x0000D944" value="0x0000FCFF" />
+ <register type="OA" address="0x0000DC00" value="0x00001802" />
+ <register type="OA" address="0x0000DC04" value="0x0000FCFF" />
+ </register_config>
+ <register_config type="FLEX">
+ <register type="FLEX" address="0x0000E458" value="0x00832732" />
+ <register type="FLEX" address="0x0000E558" value="0x00A32932" />
</register_config>
</set>
@@ -8402,7 +10213,7 @@
<counter name="TestCounter9 - OAR enable"
symbol_name="Counter9"
underscore_name="counter9"
- description="HW test counter 9. Should be equal to 1 in OAR query mode."
+ description="HW test counter 9. Should be equal to 1 in query."
data_type="uint64"
units="events"
semantic_type="event"
--
2.25.1
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Intel-gfx] ✗ GitLab.Pipeline: warning for series starting with [v2,1/3] lib/i915/perf: remove generation code for mathml render
2020-03-12 11:15 [Intel-gfx] [PATCH i-g-t v2 1/3] lib/i915/perf: remove generation code for mathml render Lionel Landwerlin
2020-03-12 11:15 ` [Intel-gfx] [PATCH i-g-t v2 2/3] lib/i915/perf: break generated code in separate files Lionel Landwerlin
2020-03-12 11:15 ` [Intel-gfx] [PATCH i-g-t v2 3/3] lib/i915/perf: update TGL configs Lionel Landwerlin
@ 2020-03-12 11:43 ` Patchwork
2020-03-12 12:05 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2020-03-13 5:30 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
4 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2020-03-12 11:43 UTC (permalink / raw)
To: Lionel Landwerlin; +Cc: intel-gfx
== Series Details ==
Series: series starting with [v2,1/3] lib/i915/perf: remove generation code for mathml render
URL : https://patchwork.freedesktop.org/series/74641/
State : warning
== Summary ==
Did not get list of undocumented tests for this run, something is wrong!
Other than that, pipeline status: FAILED.
see https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/pipelines/119000 for the overview.
build:tests-debian-autotools has failed (https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/-/jobs/1913402):
make[2]: Leaving directory '/builds/gfx-ci/igt-ci-tags/lib'
make[1]: *** [Makefile:515: all-recursive] Error 1
make[1]: Leaving directory '/builds/gfx-ci/igt-ci-tags'
make: *** [Makefile:447: all] Error 2
make all-recursive
make[1]: Entering directory '/builds/gfx-ci/igt-ci-tags'
Making all in lib
make[2]: Entering directory '/builds/gfx-ci/igt-ci-tags/lib'
make[2]: Leaving directory '/builds/gfx-ci/igt-ci-tags/lib'
make[2]: *** No rule to make target 'i915/perf-configs/perf-codegen.py', needed by 'i915/i915_perf_metrics.h'. Stop.
make[1]: *** [Makefile:515: all-recursive] Error 1
make[1]: Leaving directory '/builds/gfx-ci/igt-ci-tags'
make: *** [Makefile:447: all] Error 2
section_end:1584013133:build_script
section_start:1584013133:after_script
section_end:1584013134:after_script
section_start:1584013134:upload_artifacts_on_failure
section_end:1584013136:upload_artifacts_on_failure
ERROR: Job failed: exit code 1
== Logs ==
For more details see: https://gitlab.freedesktop.org/gfx-ci/igt-ci-tags/pipelines/119000
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Intel-gfx] ✓ Fi.CI.BAT: success for series starting with [v2,1/3] lib/i915/perf: remove generation code for mathml render
2020-03-12 11:15 [Intel-gfx] [PATCH i-g-t v2 1/3] lib/i915/perf: remove generation code for mathml render Lionel Landwerlin
` (2 preceding siblings ...)
2020-03-12 11:43 ` [Intel-gfx] ✗ GitLab.Pipeline: warning for series starting with [v2,1/3] lib/i915/perf: remove generation code for mathml render Patchwork
@ 2020-03-12 12:05 ` Patchwork
2020-03-13 5:30 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
4 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2020-03-12 12:05 UTC (permalink / raw)
To: Lionel Landwerlin; +Cc: intel-gfx
== Series Details ==
Series: series starting with [v2,1/3] lib/i915/perf: remove generation code for mathml render
URL : https://patchwork.freedesktop.org/series/74641/
State : success
== Summary ==
CI Bug Log - changes from IGT_5506 -> IGTPW_4298
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/index.html
Known issues
------------
Here are the changes found in IGTPW_4298 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_selftest@live@execlists:
- fi-bxt-dsi: [PASS][1] -> [INCOMPLETE][2] ([fdo#103927] / [i915#656])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/fi-bxt-dsi/igt@i915_selftest@live@execlists.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/fi-bxt-dsi/igt@i915_selftest@live@execlists.html
#### Possible fixes ####
* igt@i915_selftest@live@active:
- fi-bxt-dsi: [DMESG-FAIL][3] ([i915#666]) -> [PASS][4]
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/fi-bxt-dsi/igt@i915_selftest@live@active.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/fi-bxt-dsi/igt@i915_selftest@live@active.html
* igt@i915_selftest@live@gt_heartbeat:
- fi-kbl-soraka: [DMESG-FAIL][5] ([fdo#112406]) -> [PASS][6]
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html
[fdo#103927]: https://bugs.freedesktop.org/show_bug.cgi?id=103927
[fdo#112406]: https://bugs.freedesktop.org/show_bug.cgi?id=112406
[i915#656]: https://gitlab.freedesktop.org/drm/intel/issues/656
[i915#666]: https://gitlab.freedesktop.org/drm/intel/issues/666
Participating hosts (47 -> 42)
------------------------------
Missing (5): fi-hsw-4200u fi-byt-squawks fi-bsw-cyan fi-kbl-7560u fi-byt-clapper
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_5506 -> IGTPW_4298
CI-20190529: 20190529
CI_DRM_8126: 2bd9e989a5653d4cd710e9dd2b42b0a080f1add8 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_4298: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/index.html
IGT_5506: 59fd8a0d01dac58dc6c7d86ef391ed4393ab5aae @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Intel-gfx] ✗ Fi.CI.IGT: failure for series starting with [v2,1/3] lib/i915/perf: remove generation code for mathml render
2020-03-12 11:15 [Intel-gfx] [PATCH i-g-t v2 1/3] lib/i915/perf: remove generation code for mathml render Lionel Landwerlin
` (3 preceding siblings ...)
2020-03-12 12:05 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
@ 2020-03-13 5:30 ` Patchwork
4 siblings, 0 replies; 6+ messages in thread
From: Patchwork @ 2020-03-13 5:30 UTC (permalink / raw)
To: Lionel Landwerlin; +Cc: intel-gfx
== Series Details ==
Series: series starting with [v2,1/3] lib/i915/perf: remove generation code for mathml render
URL : https://patchwork.freedesktop.org/series/74641/
State : failure
== Summary ==
CI Bug Log - changes from IGT_5506_full -> IGTPW_4298_full
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with IGTPW_4298_full absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_4298_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_4298/index.html
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_4298_full:
### IGT changes ###
#### Possible regressions ####
* igt@kms_atomic_transition@plane-primary-toggle-with-vblank-wait:
- shard-tglb: [PASS][1] -> [INCOMPLETE][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-tglb3/igt@kms_atomic_transition@plane-primary-toggle-with-vblank-wait.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-tglb6/igt@kms_atomic_transition@plane-primary-toggle-with-vblank-wait.html
Known issues
------------
Here are the changes found in IGTPW_4298_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_exec_balancer@smoke:
- shard-iclb: [PASS][3] -> [SKIP][4] ([fdo#110854])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-iclb4/igt@gem_exec_balancer@smoke.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-iclb6/igt@gem_exec_balancer@smoke.html
* igt@gem_exec_schedule@implicit-both-bsd1:
- shard-iclb: [PASS][5] -> [SKIP][6] ([fdo#109276] / [i915#677]) +1 similar issue
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-iclb1/igt@gem_exec_schedule@implicit-both-bsd1.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-iclb8/igt@gem_exec_schedule@implicit-both-bsd1.html
* igt@gem_exec_schedule@pi-shared-iova-bsd:
- shard-iclb: [PASS][7] -> [SKIP][8] ([i915#677]) +1 similar issue
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-iclb8/igt@gem_exec_schedule@pi-shared-iova-bsd.html
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-iclb2/igt@gem_exec_schedule@pi-shared-iova-bsd.html
* igt@gem_exec_schedule@preempt-other-chain-bsd:
- shard-iclb: [PASS][9] -> [SKIP][10] ([fdo#112146]) +7 similar issues
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-iclb8/igt@gem_exec_schedule@preempt-other-chain-bsd.html
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-iclb4/igt@gem_exec_schedule@preempt-other-chain-bsd.html
* igt@gem_ppgtt@flink-and-close-vma-leak:
- shard-kbl: [PASS][11] -> [FAIL][12] ([i915#644])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-kbl6/igt@gem_ppgtt@flink-and-close-vma-leak.html
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-kbl4/igt@gem_ppgtt@flink-and-close-vma-leak.html
* igt@i915_pm_dc@dc6-dpms:
- shard-iclb: [PASS][13] -> [FAIL][14] ([i915#454])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-iclb2/igt@i915_pm_dc@dc6-dpms.html
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-iclb2/igt@i915_pm_dc@dc6-dpms.html
* igt@i915_pm_rps@waitboost:
- shard-iclb: [PASS][15] -> [FAIL][16] ([i915#413])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-iclb7/igt@i915_pm_rps@waitboost.html
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-iclb6/igt@i915_pm_rps@waitboost.html
* igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic:
- shard-glk: [PASS][17] -> [FAIL][18] ([i915#72])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-glk6/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-glk1/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-atomic.html
* igt@kms_flip@flip-vs-expired-vblank:
- shard-glk: [PASS][19] -> [FAIL][20] ([i915#79])
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-glk1/igt@kms_flip@flip-vs-expired-vblank.html
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-glk1/igt@kms_flip@flip-vs-expired-vblank.html
* igt@kms_flip@flip-vs-suspend:
- shard-apl: [PASS][21] -> [DMESG-WARN][22] ([i915#180])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-apl8/igt@kms_flip@flip-vs-suspend.html
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-apl1/igt@kms_flip@flip-vs-suspend.html
* igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes:
- shard-kbl: [PASS][23] -> [DMESG-WARN][24] ([i915#180]) +1 similar issue
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-kbl1/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-kbl6/igt@kms_plane@plane-panning-bottom-right-suspend-pipe-a-planes.html
* igt@kms_psr2_su@frontbuffer:
- shard-iclb: [PASS][25] -> [SKIP][26] ([fdo#109642] / [fdo#111068])
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-iclb2/igt@kms_psr2_su@frontbuffer.html
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-iclb6/igt@kms_psr2_su@frontbuffer.html
* igt@kms_psr@psr2_suspend:
- shard-iclb: [PASS][27] -> [SKIP][28] ([fdo#109441]) +1 similar issue
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-iclb2/igt@kms_psr@psr2_suspend.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-iclb4/igt@kms_psr@psr2_suspend.html
* igt@kms_setmode@basic:
- shard-kbl: [PASS][29] -> [FAIL][30] ([i915#31])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-kbl7/igt@kms_setmode@basic.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-kbl3/igt@kms_setmode@basic.html
* igt@kms_vblank@pipe-c-ts-continuation-dpms-rpm:
- shard-glk: [PASS][31] -> [SKIP][32] ([fdo#109271])
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-glk6/igt@kms_vblank@pipe-c-ts-continuation-dpms-rpm.html
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-glk9/igt@kms_vblank@pipe-c-ts-continuation-dpms-rpm.html
- shard-tglb: [PASS][33] -> [SKIP][34] ([fdo#112015])
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-tglb7/igt@kms_vblank@pipe-c-ts-continuation-dpms-rpm.html
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-tglb6/igt@kms_vblank@pipe-c-ts-continuation-dpms-rpm.html
- shard-iclb: [PASS][35] -> [SKIP][36] ([fdo#109278])
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-iclb4/igt@kms_vblank@pipe-c-ts-continuation-dpms-rpm.html
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-iclb3/igt@kms_vblank@pipe-c-ts-continuation-dpms-rpm.html
* igt@perf_pmu@busy-accuracy-2-vcs1:
- shard-iclb: [PASS][37] -> [SKIP][38] ([fdo#112080]) +8 similar issues
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-iclb1/igt@perf_pmu@busy-accuracy-2-vcs1.html
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-iclb6/igt@perf_pmu@busy-accuracy-2-vcs1.html
* igt@prime_busy@hang-bsd2:
- shard-iclb: [PASS][39] -> [SKIP][40] ([fdo#109276]) +22 similar issues
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-iclb4/igt@prime_busy@hang-bsd2.html
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-iclb5/igt@prime_busy@hang-bsd2.html
#### Possible fixes ####
* igt@gem_busy@extended-parallel-vcs1:
- shard-iclb: [SKIP][41] ([fdo#112080]) -> [PASS][42] +9 similar issues
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-iclb7/igt@gem_busy@extended-parallel-vcs1.html
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-iclb2/igt@gem_busy@extended-parallel-vcs1.html
* igt@gem_ctx_isolation@vcs1-s3:
- shard-kbl: [DMESG-WARN][43] ([i915#180]) -> [PASS][44]
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-kbl2/igt@gem_ctx_isolation@vcs1-s3.html
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-kbl7/igt@gem_ctx_isolation@vcs1-s3.html
* igt@gem_ctx_persistence@close-replace-race:
- shard-iclb: [INCOMPLETE][45] ([i915#1402]) -> [PASS][46]
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-iclb4/igt@gem_ctx_persistence@close-replace-race.html
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-iclb4/igt@gem_ctx_persistence@close-replace-race.html
* igt@gem_ctx_shared@exec-single-timeline-bsd:
- shard-iclb: [SKIP][47] ([fdo#110841]) -> [PASS][48]
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-iclb1/igt@gem_ctx_shared@exec-single-timeline-bsd.html
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-iclb7/igt@gem_ctx_shared@exec-single-timeline-bsd.html
* igt@gem_exec_schedule@implicit-both-bsd:
- shard-iclb: [SKIP][49] ([i915#677]) -> [PASS][50] +1 similar issue
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-iclb1/igt@gem_exec_schedule@implicit-both-bsd.html
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-iclb3/igt@gem_exec_schedule@implicit-both-bsd.html
* igt@gem_exec_schedule@implicit-read-write-bsd1:
- shard-iclb: [SKIP][51] ([fdo#109276] / [i915#677]) -> [PASS][52] +1 similar issue
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-iclb3/igt@gem_exec_schedule@implicit-read-write-bsd1.html
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-iclb2/igt@gem_exec_schedule@implicit-read-write-bsd1.html
* igt@gem_exec_schedule@in-order-bsd:
- shard-iclb: [SKIP][53] ([fdo#112146]) -> [PASS][54] +2 similar issues
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-iclb2/igt@gem_exec_schedule@in-order-bsd.html
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-iclb6/igt@gem_exec_schedule@in-order-bsd.html
* igt@gem_exec_schedule@preempt-queue-bsd1:
- shard-iclb: [SKIP][55] ([fdo#109276]) -> [PASS][56] +17 similar issues
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-iclb8/igt@gem_exec_schedule@preempt-queue-bsd1.html
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-iclb1/igt@gem_exec_schedule@preempt-queue-bsd1.html
* igt@gem_exec_whisper@basic-fds-priority:
- shard-tglb: [INCOMPLETE][57] ([i915#1401]) -> [PASS][58]
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-tglb6/igt@gem_exec_whisper@basic-fds-priority.html
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-tglb2/igt@gem_exec_whisper@basic-fds-priority.html
* igt@gem_softpin@noreloc-s3:
- shard-hsw: [INCOMPLETE][59] ([i915#61]) -> [PASS][60]
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-hsw5/igt@gem_softpin@noreloc-s3.html
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-hsw5/igt@gem_softpin@noreloc-s3.html
* igt@gem_userptr_blits@sync-unmap:
- shard-snb: [DMESG-WARN][61] ([fdo#111870] / [i915#478]) -> [PASS][62]
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-snb6/igt@gem_userptr_blits@sync-unmap.html
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-snb6/igt@gem_userptr_blits@sync-unmap.html
- shard-hsw: [DMESG-WARN][63] ([fdo#111870]) -> [PASS][64]
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-hsw7/igt@gem_userptr_blits@sync-unmap.html
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-hsw6/igt@gem_userptr_blits@sync-unmap.html
* igt@gem_workarounds@suspend-resume-context:
- shard-apl: [DMESG-WARN][65] ([i915#180]) -> [PASS][66] +4 similar issues
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-apl6/igt@gem_workarounds@suspend-resume-context.html
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-apl7/igt@gem_workarounds@suspend-resume-context.html
* igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy:
- shard-glk: [FAIL][67] ([i915#72]) -> [PASS][68]
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-glk1/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html
[68]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-glk1/igt@kms_cursor_legacy@2x-long-flip-vs-cursor-legacy.html
* igt@kms_psr2_su@page_flip:
- shard-iclb: [SKIP][69] ([fdo#109642] / [fdo#111068]) -> [PASS][70]
[69]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-iclb6/igt@kms_psr2_su@page_flip.html
[70]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-iclb2/igt@kms_psr2_su@page_flip.html
* igt@kms_psr@psr2_cursor_mmap_cpu:
- shard-iclb: [SKIP][71] ([fdo#109441]) -> [PASS][72] +2 similar issues
[71]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-iclb7/igt@kms_psr@psr2_cursor_mmap_cpu.html
[72]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-iclb2/igt@kms_psr@psr2_cursor_mmap_cpu.html
#### Warnings ####
* igt@gem_userptr_blits@dmabuf-sync:
- shard-snb: [DMESG-WARN][73] ([fdo#111870] / [i915#478]) -> [DMESG-WARN][74] ([fdo#110789] / [fdo#111870] / [i915#478])
[73]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-snb2/igt@gem_userptr_blits@dmabuf-sync.html
[74]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-snb6/igt@gem_userptr_blits@dmabuf-sync.html
- shard-hsw: [DMESG-WARN][75] ([fdo#111870]) -> [DMESG-WARN][76] ([fdo#110789] / [fdo#111870])
[75]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-hsw6/igt@gem_userptr_blits@dmabuf-sync.html
[76]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-hsw4/igt@gem_userptr_blits@dmabuf-sync.html
* igt@gem_userptr_blits@sync-unmap-after-close:
- shard-snb: [DMESG-WARN][77] ([fdo#110789] / [fdo#111870] / [i915#478]) -> [DMESG-WARN][78] ([fdo#111870] / [i915#478])
[77]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-snb6/igt@gem_userptr_blits@sync-unmap-after-close.html
[78]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-snb2/igt@gem_userptr_blits@sync-unmap-after-close.html
* igt@runner@aborted:
- shard-hsw: ([FAIL][79], [FAIL][80], [FAIL][81], [FAIL][82], [FAIL][83], [FAIL][84]) ([fdo#111870]) -> ([FAIL][85], [FAIL][86], [FAIL][87], [FAIL][88], [FAIL][89], [FAIL][90], [FAIL][91], [FAIL][92]) ([fdo#111870] / [i915#478])
[79]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-hsw1/igt@runner@aborted.html
[80]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-hsw6/igt@runner@aborted.html
[81]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-hsw2/igt@runner@aborted.html
[82]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-hsw7/igt@runner@aborted.html
[83]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-hsw1/igt@runner@aborted.html
[84]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_5506/shard-hsw7/igt@runner@aborted.html
[85]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-hsw4/igt@runner@aborted.html
[86]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-hsw2/igt@runner@aborted.html
[87]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-hsw4/igt@runner@aborted.html
[88]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-hsw5/igt@runner@aborted.html
[89]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-hsw1/igt@runner@aborted.html
[90]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-hsw2/igt@runner@aborted.html
[91]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-hsw6/igt@runner@aborted.html
[92]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/shard-hsw6/igt@runner@aborted.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109276]: https://bugs.freedesktop.org/show_bug.cgi?id=109276
[fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
[fdo#110789]: https://bugs.freedesktop.org/show_bug.cgi?id=110789
[fdo#110841]: https://bugs.freedesktop.org/show_bug.cgi?id=110841
[fdo#110854]: https://bugs.freedesktop.org/show_bug.cgi?id=110854
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[fdo#111870]: https://bugs.freedesktop.org/show_bug.cgi?id=111870
[fdo#112015]: https://bugs.freedesktop.org/show_bug.cgi?id=112015
[fdo#112080]: https://bugs.freedesktop.org/show_bug.cgi?id=112080
[fdo#112146]: https://bugs.freedesktop.org/show_bug.cgi?id=112146
[i915#1401]: https://gitlab.freedesktop.org/drm/intel/issues/1401
[i915#1402]: https://gitlab.freedesktop.org/drm/intel/issues/1402
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#31]: https://gitlab.freedesktop.org/drm/intel/issues/31
[i915#413]: https://gitlab.freedesktop.org/drm/intel/issues/413
[i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
[i915#478]: https://gitlab.freedesktop.org/drm/intel/issues/478
[i915#61]: https://gitlab.freedesktop.org/drm/intel/issues/61
[i915#644]: https://gitlab.freedesktop.org/drm/intel/issues/644
[i915#677]: https://gitlab.freedesktop.org/drm/intel/issues/677
[i915#72]: https://gitlab.freedesktop.org/drm/intel/issues/72
[i915#79]: https://gitlab.freedesktop.org/drm/intel/issues/79
Participating hosts (8 -> 8)
------------------------------
No changes in participating hosts
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_5506 -> IGTPW_4298
CI-20190529: 20190529
CI_DRM_8126: 2bd9e989a5653d4cd710e9dd2b42b0a080f1add8 @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_4298: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/index.html
IGT_5506: 59fd8a0d01dac58dc6c7d86ef391ed4393ab5aae @ git://anongit.freedesktop.org/xorg/app/intel-gpu-tools
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_4298/index.html
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2020-03-13 5:30 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-03-12 11:15 [Intel-gfx] [PATCH i-g-t v2 1/3] lib/i915/perf: remove generation code for mathml render Lionel Landwerlin
2020-03-12 11:15 ` [Intel-gfx] [PATCH i-g-t v2 2/3] lib/i915/perf: break generated code in separate files Lionel Landwerlin
2020-03-12 11:15 ` [Intel-gfx] [PATCH i-g-t v2 3/3] lib/i915/perf: update TGL configs Lionel Landwerlin
2020-03-12 11:43 ` [Intel-gfx] ✗ GitLab.Pipeline: warning for series starting with [v2,1/3] lib/i915/perf: remove generation code for mathml render Patchwork
2020-03-12 12:05 ` [Intel-gfx] ✓ Fi.CI.BAT: success " Patchwork
2020-03-13 5:30 ` [Intel-gfx] ✗ Fi.CI.IGT: failure " Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).