[Mesa-dev] [PATCH 25/28] i965/fs: add support for shader float control to remove_extra_rounding_modes()
Samuel Iglesias Gonsálvez
siglesias at igalia.com
Wed Dec 5 15:55:40 UTC 2018
The remove_extra_rounding_modes() optimization will remove duplicated
rounding mode changes.
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias at igalia.com>
---
src/intel/compiler/brw_fs.cpp | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp
index 18dcd92219c..eb253679930 100644
--- a/src/intel/compiler/brw_fs.cpp
+++ b/src/intel/compiler/brw_fs.cpp
@@ -3457,10 +3457,15 @@ bool
fs_visitor::remove_extra_rounding_modes()
{
bool progress = false;
+ unsigned execution_mode = this->nir->info.shader_float_controls_execution_mode;
- foreach_block (block, cfg) {
- brw_rnd_mode prev_mode = BRW_RND_MODE_UNSPECIFIED;
+ brw_rnd_mode prev_mode = BRW_RND_MODE_UNSPECIFIED;
+ if (execution_mode & SHADER_ROUNDING_MODE_RTE)
+ prev_mode = BRW_RND_MODE_RTNE;
+ if (execution_mode & SHADER_ROUNDING_MODE_RTZ)
+ prev_mode = BRW_RND_MODE_RTZ;
+ foreach_block (block, cfg) {
foreach_inst_in_block_safe (fs_inst, inst, block) {
if (inst->opcode == SHADER_OPCODE_RND_MODE) {
assert(inst->src[0].file == BRW_IMMEDIATE_VALUE);
--
2.19.1
More information about the mesa-dev
mailing list