v3dv: split fragment shader array outputs

Our backend expects that our output variables are not arrays so we can
track the variable that writes to each output location separately.

Fixes:
dEQP-VK.glsl.440.linkage.*

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6766>
This commit is contained in:
Iago Toral Quiroga
2020-03-10 09:51:48 +01:00
committed by Marge Bot
parent 51c53969cd
commit 236e5a7c35
+4
View File
@@ -531,6 +531,10 @@ lower_pipeline_layout_info(nir_shader *shader,
static void
lower_fs_io(nir_shader *nir)
{
/* Our backend doesn't handle array fragment shader outputs */
NIR_PASS_V(nir, nir_lower_io_arrays_to_elements_no_indirects, false);
NIR_PASS_V(nir, nir_remove_dead_variables, nir_var_shader_out, NULL);
nir_assign_io_var_locations(nir, nir_var_shader_in, &nir->num_inputs,
MESA_SHADER_FRAGMENT);