--- src/mesa/drivers/dri/i965/brw_ir_fs.h | 11 +++++++++++ src/mesa/drivers/dri/i965/brw_ir_svec4.h | 15 +++++++++++++++ src/mesa/drivers/dri/i965/brw_ir_vec4.h | 11 +++++++++++ 3 files changed, 37 insertions(+)
diff --git a/src/mesa/drivers/dri/i965/brw_ir_fs.h b/src/mesa/drivers/dri/i965/brw_ir_fs.h index d6f40ee..7e5083c 100644 --- a/src/mesa/drivers/dri/i965/brw_ir_fs.h +++ b/src/mesa/drivers/dri/i965/brw_ir_fs.h @@ -362,4 +362,15 @@ exec_condmod(enum brw_conditional_mod mod, fs_inst *inst) return inst; } +/** + * Clamp the result of \p inst to the saturation range of its destination + * datatype. + */ +static inline fs_inst * +exec_saturate(bool saturate, fs_inst *inst) +{ + inst->saturate = saturate; + return inst; +} + #endif diff --git a/src/mesa/drivers/dri/i965/brw_ir_svec4.h b/src/mesa/drivers/dri/i965/brw_ir_svec4.h index 4be3554..508ed5e 100644 --- a/src/mesa/drivers/dri/i965/brw_ir_svec4.h +++ b/src/mesa/drivers/dri/i965/brw_ir_svec4.h @@ -424,6 +424,21 @@ namespace brw { return inst; } + + /** + * Clamp the result of \p inst to the saturation range of its destination + * datatype. + */ + inline svec4_inst * + exec_saturate(bool saturate, svec4_inst *inst) + { + for (unsigned i = 0; i < ARRAY_SIZE(inst->v); ++i) { + if (inst->v[i]) + exec_saturate(saturate, inst->v[i]); + } + + return inst; + } } #endif diff --git a/src/mesa/drivers/dri/i965/brw_ir_vec4.h b/src/mesa/drivers/dri/i965/brw_ir_vec4.h index c4021d8..a407ec4 100644 --- a/src/mesa/drivers/dri/i965/brw_ir_vec4.h +++ b/src/mesa/drivers/dri/i965/brw_ir_vec4.h @@ -363,6 +363,17 @@ exec_condmod(enum brw_conditional_mod mod, vec4_instruction *inst) inst->conditional_mod = mod; return inst; } + +/** + * Clamp the result of \p inst to the saturation range of its destination + * datatype. + */ +inline vec4_instruction * +exec_saturate(bool saturate, vec4_instruction *inst) +{ + inst->saturate = saturate; + return inst; +} } /* namespace brw */ #endif -- 2.3.5 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev