lavapipe: don't remove xfb outputs
cc: mesa-stable fixes: dEQP-VK.transform_feedback.simple.multiquery_omit_write_1 dEQP-VK.transform_feedback.simple.multiquery_omit_write_3 dEQP-VK.transform_feedback.simple.query_omit_write_0_127_32bits dEQP-VK.transform_feedback.simple.query_omit_write_0_127_64bits dEQP-VK.transform_feedback.simple.query_omit_write_0_251_32bits dEQP-VK.transform_feedback.simple.query_omit_write_0_251_64bits dEQP-VK.transform_feedback.simple.query_omit_write_0_4_32bits dEQP-VK.transform_feedback.simple.query_omit_write_0_4_64bits dEQP-VK.transform_feedback.simple.query_omit_write_0_509_32bits dEQP-VK.transform_feedback.simple.query_omit_write_0_509_64bits dEQP-VK.transform_feedback.simple.query_omit_write_0_61_32bits dEQP-VK.transform_feedback.simple.query_omit_write_0_61_64bits dEQP-VK.transform_feedback.simple.query_omit_write_line_list_0_126_32bits dEQP-VK.transform_feedback.simple.query_omit_write_line_list_0_126_64bits dEQP-VK.transform_feedback.simple.query_omit_write_line_list_0_250_32bits dEQP-VK.transform_feedback.simple.query_omit_write_line_list_0_250_64bits dEQP-VK.transform_feedback.simple.query_omit_write_line_list_0_508_32bits dEQP-VK.transform_feedback.simple.query_omit_write_line_list_0_508_64bits dEQP-VK.transform_feedback.simple.query_omit_write_line_list_0_60_32bits dEQP-VK.transform_feedback.simple.query_omit_write_line_list_0_60_64bits dEQP-VK.transform_feedback.simple.query_omit_write_line_list_0_6_32bits dEQP-VK.transform_feedback.simple.query_omit_write_line_list_0_6_64bits dEQP-VK.transform_feedback.simple.query_omit_write_line_list_with_adjacency_0_124_32bits dEQP-VK.transform_feedback.simple.query_omit_write_line_list_with_adjacency_0_124_64bits dEQP-VK.transform_feedback.simple.query_omit_write_line_list_with_adjacency_0_248_32bits dEQP-VK.transform_feedback.simple.query_omit_write_line_list_with_adjacency_0_248_64bits dEQP-VK.transform_feedback.simple.query_omit_write_line_list_with_adjacency_0_4_32bits dEQP-VK.transform_feedback.simple.query_omit_write_line_list_with_adjacency_0_4_64bits dEQP-VK.transform_feedback.simple.query_omit_write_line_list_with_adjacency_0_508_32bits dEQP-VK.transform_feedback.simple.query_omit_write_line_list_with_adjacency_0_508_64bits dEQP-VK.transform_feedback.simple.query_omit_write_line_list_with_adjacency_0_60_32bits dEQP-VK.transform_feedback.simple.query_omit_write_line_list_with_adjacency_0_60_64bits dEQP-VK.transform_feedback.simple.query_omit_write_line_strip_0_127_32bits dEQP-VK.transform_feedback.simple.query_omit_write_line_strip_0_127_64bits dEQP-VK.transform_feedback.simple.query_omit_write_line_strip_0_251_32bits dEQP-VK.transform_feedback.simple.query_omit_write_line_strip_0_251_64bits dEQP-VK.transform_feedback.simple.query_omit_write_line_strip_0_509_32bits dEQP-VK.transform_feedback.simple.query_omit_write_line_strip_0_509_64bits dEQP-VK.transform_feedback.simple.query_omit_write_line_strip_0_61_32bits dEQP-VK.transform_feedback.simple.query_omit_write_line_strip_0_61_64bits dEQP-VK.transform_feedback.simple.query_omit_write_line_strip_0_6_32bits dEQP-VK.transform_feedback.simple.query_omit_write_line_strip_0_6_64bits dEQP-VK.transform_feedback.simple.query_omit_write_line_strip_with_adjacency_0_127_32bits dEQP-VK.transform_feedback.simple.query_omit_write_line_strip_with_adjacency_0_127_64bits dEQP-VK.transform_feedback.simple.query_omit_write_line_strip_with_adjacency_0_251_32bits dEQP-VK.transform_feedback.simple.query_omit_write_line_strip_with_adjacency_0_251_64bits dEQP-VK.transform_feedback.simple.query_omit_write_line_strip_with_adjacency_0_509_32bits dEQP-VK.transform_feedback.simple.query_omit_write_line_strip_with_adjacency_0_509_64bits dEQP-VK.transform_feedback.simple.query_omit_write_line_strip_with_adjacency_0_61_32bits dEQP-VK.transform_feedback.simple.query_omit_write_line_strip_with_adjacency_0_61_64bits dEQP-VK.transform_feedback.simple.query_omit_write_line_strip_with_adjacency_0_6_32bits dEQP-VK.transform_feedback.simple.query_omit_write_line_strip_with_adjacency_0_6_64bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_fan_0_127_32bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_fan_0_127_64bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_fan_0_251_32bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_fan_0_251_64bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_fan_0_509_32bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_fan_0_509_64bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_fan_0_61_32bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_fan_0_61_64bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_fan_0_6_32bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_fan_0_6_64bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_list_0_126_32bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_list_0_126_64bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_list_0_249_32bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_list_0_249_64bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_list_0_507_32bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_list_0_507_64bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_list_0_60_32bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_list_0_60_64bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_list_0_6_32bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_list_0_6_64bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_list_with_adjacency_0_126_32bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_list_with_adjacency_0_126_64bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_list_with_adjacency_0_246_32bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_list_with_adjacency_0_246_64bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_list_with_adjacency_0_504_32bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_list_with_adjacency_0_504_64bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_list_with_adjacency_0_60_32bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_list_with_adjacency_0_60_64bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_list_with_adjacency_0_6_32bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_list_with_adjacency_0_6_64bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_strip_0_127_32bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_strip_0_127_64bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_strip_0_251_32bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_strip_0_251_64bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_strip_0_509_32bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_strip_0_509_64bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_strip_0_61_32bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_strip_0_61_64bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_strip_0_6_32bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_strip_0_6_64bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_strip_with_adjacency_0_126_32bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_strip_with_adjacency_0_126_64bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_strip_with_adjacency_0_250_32bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_strip_with_adjacency_0_250_64bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_strip_with_adjacency_0_508_32bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_strip_with_adjacency_0_508_64bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_strip_with_adjacency_0_60_32bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_strip_with_adjacency_0_60_64bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_strip_with_adjacency_0_6_32bits dEQP-VK.transform_feedback.simple.query_omit_write_triangle_strip_with_adjacency_0_6_64bits Reviewed-by: Dave Airlie <airlied@redhat.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17299>
This commit is contained in:

committed by
Marge Bot

parent
6004293f19
commit
1334d39b36
@@ -918,6 +918,12 @@ lvp_shader_optimize(nir_shader *nir)
|
||||
nir_sweep(nir);
|
||||
}
|
||||
|
||||
static bool
|
||||
can_remove_var(nir_variable *var, void *data)
|
||||
{
|
||||
return var->data.mode != nir_var_shader_out || (!var->data.explicit_xfb_buffer && !var->data.explicit_xfb_stride);
|
||||
}
|
||||
|
||||
static void
|
||||
lvp_shader_compile_to_ir(struct lvp_pipeline *pipeline,
|
||||
uint32_t size,
|
||||
@@ -1023,8 +1029,10 @@ lvp_shader_compile_to_ir(struct lvp_pipeline *pipeline,
|
||||
NIR_PASS_V(nir, nir_split_var_copies);
|
||||
NIR_PASS_V(nir, nir_split_per_member_structs);
|
||||
|
||||
nir_remove_dead_variables_options var_opts = {0};
|
||||
var_opts.can_remove_var = can_remove_var;
|
||||
NIR_PASS_V(nir, nir_remove_dead_variables,
|
||||
nir_var_shader_in | nir_var_shader_out | nir_var_system_value, NULL);
|
||||
nir_var_shader_in | nir_var_shader_out | nir_var_system_value, &var_opts);
|
||||
|
||||
if (stage == MESA_SHADER_FRAGMENT)
|
||||
lvp_lower_input_attachments(nir, false);
|
||||
|
Reference in New Issue
Block a user