summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAbdiel Janulgue <[email protected]>2014-12-08 13:31:29 +0200
committerAbdiel Janulgue <[email protected]>2014-12-08 20:14:17 +0200
commit4ea8c8d56ca8d6b4af36e7750186821b4973355a (patch)
tree304f9da4a03bddaa872f28f3b6d759d48041008a /src
parent39f7b72428d1a55357a24cd26c43880595602090 (diff)
glsl: Don't optimize min/max into saturate when EmitNoSat is set
v3: Fix multi-line comment format (Ian) Reviewed-by: Matt Turner <[email protected]> Signed-off-by: Abdiel Janulgue <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/glsl/opt_algebraic.cpp2
-rw-r--r--src/mesa/main/mtypes.h1
2 files changed, 2 insertions, 1 deletions
diff --git a/src/glsl/opt_algebraic.cpp b/src/glsl/opt_algebraic.cpp
index c4f883b9a8e..c6f4a9c786d 100644
--- a/src/glsl/opt_algebraic.cpp
+++ b/src/glsl/opt_algebraic.cpp
@@ -689,7 +689,7 @@ ir_algebraic_visitor::handle_expression(ir_expression *ir)
case ir_binop_min:
case ir_binop_max:
- if (ir->type->base_type != GLSL_TYPE_FLOAT)
+ if (ir->type->base_type != GLSL_TYPE_FLOAT || options->EmitNoSat)
break;
/* Replace min(max) operations and its commutative combinations with
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 7389baa1d02..cee11a39120 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -2990,6 +2990,7 @@ struct gl_shader_compiler_options
GLboolean EmitNoMainReturn; /**< Emit CONT/RET opcodes? */
GLboolean EmitNoNoise; /**< Emit NOISE opcodes? */
GLboolean EmitNoPow; /**< Emit POW opcodes? */
+ GLboolean EmitNoSat; /**< Emit SAT opcodes? */
GLboolean LowerClipDistance; /**< Lower gl_ClipDistance from float[8] to vec4[2]? */
/**