From 285a2192f93f09f5dc806dce0326281768539f55 Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Tue, 25 Jul 2017 17:19:08 +0100 Subject: i965: perf: factorize code for availability Signed-off-by: Lionel Landwerlin Reviewed-by: Kenneth Graunke --- src/mesa/drivers/dri/i965/brw_oa.py | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/mesa/drivers/dri/i965/brw_oa.py b/src/mesa/drivers/dri/i965/brw_oa.py index 91f7ecb5731..8c35923462f 100644 --- a/src/mesa/drivers/dri/i965/brw_oa.py +++ b/src/mesa/drivers/dri/i965/brw_oa.py @@ -325,6 +325,21 @@ semantic_type_map = { "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_counter_report(set, counter, current_offset): data_type = counter.get('data_type') data_type_uc = data_type.upper() @@ -343,18 +358,7 @@ def output_counter_report(set, counter, current_offset): availability = counter.get('availability') if availability: - expression = splice_rpn_expression(set, counter, 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) + output_availability(set, availability, counter.get('name')) c_indent(3) c("counter = &query->counters[query->n_counters++];\n") -- cgit v1.2.3