summaryrefslogtreecommitdiffstats
path: root/src/mapi/glapi/gen/gl_genexec.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mapi/glapi/gen/gl_genexec.py')
-rw-r--r--src/mapi/glapi/gen/gl_genexec.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/mapi/glapi/gen/gl_genexec.py b/src/mapi/glapi/gen/gl_genexec.py
index 3a75419a752..37b1cc6be0d 100644
--- a/src/mapi/glapi/gen/gl_genexec.py
+++ b/src/mapi/glapi/gen/gl_genexec.py
@@ -232,8 +232,16 @@ class PrintCode(gl_XML.gl_print_base):
# This function is not implemented, or is dispatched
# dynamically.
continue
- settings_by_condition[condition].append(
- 'SET_{0}(exec, {1}{0});'.format(f.name, prefix, f.name))
+ if f.has_no_error_variant:
+ no_error_condition = '_mesa_is_no_error_enabled(ctx) && ({0})'.format(condition)
+ error_condition = '!_mesa_is_no_error_enabled(ctx) && ({0})'.format(condition)
+ settings_by_condition[no_error_condition].append(
+ 'SET_{0}(exec, {1}{0}_no_error);'.format(f.name, prefix, f.name))
+ settings_by_condition[error_condition].append(
+ 'SET_{0}(exec, {1}{0});'.format(f.name, prefix, f.name))
+ else:
+ settings_by_condition[condition].append(
+ 'SET_{0}(exec, {1}{0});'.format(f.name, prefix, f.name))
# Print out an if statement for each unique condition, with
# the SET_* calls nested inside it.
for condition in sorted(settings_by_condition.keys()):