summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2015-02-03 00:50:23 -0800
committerKenneth Graunke <[email protected]>2015-02-04 00:34:57 -0800
commitccbe15f3325d7a6d04d0ea18227a08f53decec16 (patch)
treef8afa6e2e5f019ac208f42232d041250baf89f2b
parent1b029f8a4aa85546a8932f9005373c6c34a0eb7a (diff)
i965/fs: Fix saturate on MAD and LRP with the NIR backend.
Fixes misrendering in "Witcher 2" with INTEL_USE_NIR=1, and probably many other programs. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Jason Ekstrand <[email protected]> Reviewed-by: Matt Turner <[email protected]>
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs_nir.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
index c3c268ca1b3..da81b61a98a 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_nir.cpp
@@ -1049,12 +1049,14 @@ fs_visitor::nir_emit_alu(nir_alu_instr *instr)
break;
case nir_op_ffma:
- emit(MAD(result, op[2], op[1], op[0]));
+ inst = emit(MAD(result, op[2], op[1], op[0]));
+ inst->saturate = instr->dest.saturate;
break;
case nir_op_flrp:
/* TODO emulate for gen < 6 */
- emit(LRP(result, op[2], op[1], op[0]));
+ inst = emit(LRP(result, op[2], op[1], op[0]));
+ inst->saturate = instr->dest.saturate;
break;
case nir_op_bcsel: