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

Samuel Iglesias Gonsálvez siglesias at igalia.com
Wed Feb 6 10:45:06 UTC 2019


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 809c7971c94..dfa6176340a 100644
--- a/src/intel/compiler/brw_fs.cpp
+++ b/src/intel/compiler/brw_fs.cpp
@@ -6661,6 +6661,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)
@@ -6730,6 +6732,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();
 
@@ -6781,6 +6784,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)
@@ -6830,6 +6835,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();
@@ -6920,6 +6927,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)
@@ -6975,6 +6984,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