swr: [rasterizer scripts] Knob scripts tweaks
authorTim Rowley <timothy.o.rowley@intel.com>
Wed, 6 Apr 2016 18:30:14 +0000 (12:30 -0600)
committerTim Rowley <timothy.o.rowley@intel.com>
Fri, 22 Apr 2016 23:48:47 +0000 (18:48 -0500)
Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
src/gallium/drivers/swr/rasterizer/scripts/knob_defs.py
src/gallium/drivers/swr/rasterizer/scripts/templates/knobs.template

index 3832b91d93eedbd7937752b34255b0776dbb222c..ab6ec565804b93233a0888ccd260c7cbe6564e0e 100644 (file)
@@ -239,4 +239,6 @@ KNOBS = [
                        'NOTE: Requires KNOB_ENABLE_TOSS_POINTS to be enabled in core/knobs.h'],
         'category'  : 'perf',
         'advanced'  : 'true',
-    }],]
+    }],
+    
+    ]
index 521346ca83302d5a3443b35312bf997f86b59d44..9b34592aaad95a38cbdc2c01ba67fa304b072a6b 100644 (file)
@@ -8,6 +8,20 @@
     def space_knob(knob):
         knob_len = len('KNOB_' + knob)
         return ' '*(max_len - knob_len)
+
+    def calc_max_name_len(choices_array):
+        _max_len = 0
+        for choice in choices_array:
+            if len(choice['name']) > _max_len: _max_len = len(choice['name'])
+
+        if _max_len % 4: _max_len += 4 - (_max_len % 4)
+        return _max_len
+
+    def space_name(name, max_len):
+        name_len = len(name)
+        return ' '*(max_len - name_len)
+
+
 %>/******************************************************************************
 *
 * Copyright 2015-2016
@@ -77,6 +91,15 @@ struct GlobalKnobs
     % for line in knob[1]['desc']:
     // ${line}
     % endfor
+    % if knob[1].get('choices'):
+    <%
+    choices = knob[1].get('choices')
+    _max_len = calc_max_name_len(choices) %>//
+    % for i in range(len(choices)):
+    //     ${choices[i]['name']}${space_name(choices[i]['name'], _max_len)} = ${format(choices[i]['value'], '#010x')}
+    % endfor
+    % endif
+    //
     % if knob[1]['type'] == 'std::string':
     DEFINE_KNOB(${knob[0]}, ${knob[1]['type']}, "${repr(knob[1]['default'])[1:-1]}");
     % else:
@@ -90,7 +113,7 @@ struct GlobalKnobs
 extern GlobalKnobs g_GlobalKnobs;
 
 % for knob in knobs:
-#define KNOB_${knob[0]}${space_knob(knob[0])}GET_KNOB(${knob[0]})
+#define KNOB_${knob[0]}${space_knob(knob[0])} GET_KNOB(${knob[0]})
 % endfor