Skip to content
Snippets Groups Projects

vkd3d-shader/ir: Prepare the CFG structurizer for handling Hull Shaders.

Merged Giovanni Mascellani requested to merge giomasce/vkd3d:stromboli into master
3 unresolved threads
1 file
+ 19
11
Compare changes
  • Side-by-side
  • Inline
+ 19
11
@@ -4769,6 +4769,24 @@ done:
return VKD3D_OK;
}
static enum vkd3d_result vsir_program_materialize_undominated_ssas_to_temps(struct vsir_program *program,
struct vkd3d_shader_message_context *message_context)
{
enum vkd3d_result result;
struct vsir_cfg cfg;
if ((result = vsir_cfg_init(&cfg, program, message_context)) < 0)
return result;
vsir_cfg_compute_dominators(&cfg);
result = vsir_cfg_materialize_undominated_ssas_to_temps(&cfg);
vsir_cfg_cleanup(&cfg);
return result;
}
struct validation_context
{
struct vkd3d_shader_message_context *message_context;
@@ -5646,8 +5664,6 @@ enum vkd3d_result vsir_program_normalise(struct vsir_program *program, uint64_t
if (program->shader_version.major >= 6)
{
struct vsir_cfg cfg;
if ((result = vsir_program_materialise_phi_ssas_to_temps(program)) < 0)
return result;
@@ -5660,15 +5676,7 @@ enum vkd3d_result vsir_program_normalise(struct vsir_program *program, uint64_t
if ((result = vsir_program_flatten_control_flow_constructs(program, message_context)) < 0)
return result;
if ((result = vsir_cfg_init(&cfg, program, message_context)) < 0)
return result;
vsir_cfg_compute_dominators(&cfg);
result = vsir_cfg_materialize_undominated_ssas_to_temps(&cfg);
vsir_cfg_cleanup(&cfg);
if (result < 0)
if ((result = vsir_program_materialize_undominated_ssas_to_temps(program, message_context)) < 0)
return result;
}
else
Loading