From 942c759059eba4d0bcaca532e25700f9311d4b06 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Fri, 19 Jul 2019 17:23:26 -0500 Subject: [PATCH] intel: Use NIR to lower 64-bit varying access Reviewed-by: Matt Turner --- src/intel/compiler/brw_nir.c | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/intel/compiler/brw_nir.c b/src/intel/compiler/brw_nir.c index 3260376ad1c..9f56644ce41 100644 --- a/src/intel/compiler/brw_nir.c +++ b/src/intel/compiler/brw_nir.c @@ -171,7 +171,8 @@ brw_nir_lower_vs_inputs(nir_shader *nir, * loaded as one vec4 or dvec4 per element (or matrix column), depending on * whether it is a double-precision type or not. */ - nir_lower_io(nir, nir_var_shader_in, type_size_vec4, 0); + nir_lower_io(nir, nir_var_shader_in, type_size_vec4, + nir_lower_io_lower_64bit_to_32); /* This pass needs actual constants */ nir_opt_constant_folding(nir); @@ -294,7 +295,8 @@ brw_nir_lower_vue_inputs(nir_shader *nir, } /* Inputs are stored in vec4 slots, so use type_size_vec4(). */ - nir_lower_io(nir, nir_var_shader_in, type_size_vec4, 0); + nir_lower_io(nir, nir_var_shader_in, type_size_vec4, + nir_lower_io_lower_64bit_to_32); /* This pass needs actual constants */ nir_opt_constant_folding(nir); @@ -345,7 +347,8 @@ brw_nir_lower_tes_inputs(nir_shader *nir, const struct brw_vue_map *vue_map) var->data.driver_location = var->data.location; } - nir_lower_io(nir, nir_var_shader_in, type_size_vec4, 0); + nir_lower_io(nir, nir_var_shader_in, type_size_vec4, + nir_lower_io_lower_64bit_to_32); /* This pass needs actual constants */ nir_opt_constant_folding(nir); @@ -396,7 +399,7 @@ brw_nir_lower_fs_inputs(nir_shader *nir, } } - nir_lower_io_options lower_io_options = 0; + nir_lower_io_options lower_io_options = nir_lower_io_lower_64bit_to_32; if (key->persample_interp) lower_io_options |= nir_lower_io_force_sample_interpolation; @@ -417,7 +420,8 @@ brw_nir_lower_vue_outputs(nir_shader *nir) var->data.driver_location = var->data.location; } - nir_lower_io(nir, nir_var_shader_out, type_size_vec4, 0); + nir_lower_io(nir, nir_var_shader_out, type_size_vec4, + nir_lower_io_lower_64bit_to_32); } void @@ -428,7 +432,8 @@ brw_nir_lower_tcs_outputs(nir_shader *nir, const struct brw_vue_map *vue_map, var->data.driver_location = var->data.location; } - nir_lower_io(nir, nir_var_shader_out, type_size_vec4, 0); + nir_lower_io(nir, nir_var_shader_out, type_size_vec4, + nir_lower_io_lower_64bit_to_32); /* This pass needs actual constants */ nir_opt_constant_folding(nir); -- 2.30.2