mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-01-28 13:05:02 -08:00
vkd3d-shader/ir: Run tracing and validation for DXIL code too.
This commit is contained in:
parent
6df725718a
commit
4b869f73bb
Notes:
Alexandre Julliard
2024-01-23 23:04:04 +01:00
Approved-by: Giovanni Mascellani (@giomasce) Approved-by: Francisco Casas (@fcasas) Approved-by: Henri Verbeet (@hverbeet) Approved-by: Alexandre Julliard (@julliard) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/574
@ -2257,39 +2257,39 @@ enum vkd3d_result vkd3d_shader_normalise(struct vkd3d_shader_parser *parser,
|
|||||||
struct vkd3d_shader_instruction_array *instructions = &parser->program.instructions;
|
struct vkd3d_shader_instruction_array *instructions = &parser->program.instructions;
|
||||||
enum vkd3d_result result = VKD3D_OK;
|
enum vkd3d_result result = VKD3D_OK;
|
||||||
|
|
||||||
if (parser->shader_desc.is_dxil)
|
if (!parser->shader_desc.is_dxil)
|
||||||
return result;
|
|
||||||
|
|
||||||
if (parser->program.shader_version.type != VKD3D_SHADER_TYPE_PIXEL)
|
|
||||||
{
|
{
|
||||||
if ((result = remap_output_signature(parser, compile_info)) < 0)
|
if (parser->program.shader_version.type != VKD3D_SHADER_TYPE_PIXEL)
|
||||||
|
{
|
||||||
|
if ((result = remap_output_signature(parser, compile_info)) < 0)
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (parser->program.shader_version.type == VKD3D_SHADER_TYPE_HULL)
|
||||||
|
{
|
||||||
|
if ((result = instruction_array_flatten_hull_shader_phases(instructions)) < 0)
|
||||||
|
return result;
|
||||||
|
|
||||||
|
if ((result = instruction_array_normalise_hull_shader_control_point_io(instructions,
|
||||||
|
&parser->shader_desc.input_signature)) < 0)
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((result = shader_normalise_io_registers(parser)) < 0)
|
||||||
|
return result;
|
||||||
|
|
||||||
|
if ((result = instruction_array_normalise_flat_constants(&parser->program)) < 0)
|
||||||
|
return result;
|
||||||
|
|
||||||
|
remove_dead_code(&parser->program);
|
||||||
|
|
||||||
|
if ((result = flatten_control_flow_constructs(parser)) < 0)
|
||||||
|
return result;
|
||||||
|
|
||||||
|
if ((result = normalise_combined_samplers(parser)) < 0)
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (parser->program.shader_version.type == VKD3D_SHADER_TYPE_HULL)
|
|
||||||
{
|
|
||||||
if ((result = instruction_array_flatten_hull_shader_phases(instructions)) < 0)
|
|
||||||
return result;
|
|
||||||
|
|
||||||
if ((result = instruction_array_normalise_hull_shader_control_point_io(instructions,
|
|
||||||
&parser->shader_desc.input_signature)) < 0)
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((result = shader_normalise_io_registers(parser)) < 0)
|
|
||||||
return result;
|
|
||||||
|
|
||||||
if ((result = instruction_array_normalise_flat_constants(&parser->program)) < 0)
|
|
||||||
return result;
|
|
||||||
|
|
||||||
remove_dead_code(&parser->program);
|
|
||||||
|
|
||||||
if ((result = flatten_control_flow_constructs(parser)) < 0)
|
|
||||||
return result;
|
|
||||||
|
|
||||||
if ((result = normalise_combined_samplers(parser)) < 0)
|
|
||||||
return result;
|
|
||||||
|
|
||||||
if (TRACE_ON())
|
if (TRACE_ON())
|
||||||
vkd3d_shader_trace(&parser->program);
|
vkd3d_shader_trace(&parser->program);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user