[Mesa-dev] [PATCH 23/28] i965/fs: emit shader float controls execution modes as first instruction of shaders

Samuel Iglesias Gonsálvez siglesias at igalia.com
Wed Dec 5 15:55:38 UTC 2018


Signed-off-by: Samuel Iglesias Gonsálvez <siglesias at igalia.com>
---
 src/intel/compiler/brw_fs.cpp | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp
index 32e0817ce02..18dcd92219c 100644
--- a/src/intel/compiler/brw_fs.cpp
+++ b/src/intel/compiler/brw_fs.cpp
@@ -6671,6 +6671,8 @@ fs_visitor::run_vs()
    if (shader_time_index >= 0)
       emit_shader_time_begin();
 
+   emit_shader_float_controls_execution_mode();
+
    emit_nir_code();
 
    if (failed)
@@ -6741,6 +6743,7 @@ fs_visitor::run_tcs_single_patch()
               brw_imm_ud(nir->info.tess.tcs_vertices_out), BRW_CONDITIONAL_L);
       bld.IF(BRW_PREDICATE_NORMAL);
    }
+   emit_shader_float_controls_execution_mode();
 
    emit_nir_code();
 
@@ -6793,6 +6796,8 @@ fs_visitor::run_tes()
    if (shader_time_index >= 0)
       emit_shader_time_begin();
 
+   emit_shader_float_controls_execution_mode();
+
    emit_nir_code();
 
    if (failed)
@@ -6843,6 +6848,8 @@ fs_visitor::run_gs()
    if (shader_time_index >= 0)
       emit_shader_time_begin();
 
+   emit_shader_float_controls_execution_mode();
+
    emit_nir_code();
 
    emit_gs_thread_end();
@@ -6934,6 +6941,8 @@ fs_visitor::run_fs(bool allow_spilling, bool do_rep_send)
                  retype(dispatch_mask, BRW_REGISTER_TYPE_UW));
       }
 
+      emit_shader_float_controls_execution_mode();
+
       emit_nir_code();
 
       if (failed)
@@ -6990,6 +6999,8 @@ fs_visitor::run_cs(unsigned min_dispatch_width)
                suboffset(retype(brw_vec1_grf(0, 0), BRW_REGISTER_TYPE_UW), 1));
    }
 
+   emit_shader_float_controls_execution_mode();
+
    emit_nir_code();
 
    if (failed)
-- 
2.19.1



More information about the mesa-dev mailing list