Skip to content
Snippets Groups Projects
ir.c 219 KiB
Newer Older
        if ((result = vsir_program_materialize_undominated_ssas_to_temps(program, message_context)) < 0)
    }
    else
    {
        if (program->shader_version.type != VKD3D_SHADER_TYPE_PIXEL)
        {
            if ((result = vsir_program_remap_output_signature(program, compile_info, message_context)) < 0)
                return result;
        }

        if (program->shader_version.type == VKD3D_SHADER_TYPE_HULL)
        {
            if ((result = instruction_array_flatten_hull_shader_phases(&program->instructions)) < 0)
                return result;

            if ((result = instruction_array_normalise_hull_shader_control_point_io(&program->instructions,
                    &program->input_signature)) < 0)
                return result;
        }

        if ((result = vsir_program_normalise_io_registers(program)) < 0)
            return result;

        if ((result = instruction_array_normalise_flat_constants(program)) < 0)
            return result;

        remove_dead_code(program);

        if ((result = vsir_program_normalise_combined_samplers(program, message_context)) < 0)
            return result;

        if (compile_info->target_type != VKD3D_SHADER_TARGET_GLSL
                && (result = vsir_program_flatten_control_flow_constructs(program, message_context)) < 0)

    if (TRACE_ON())
        vkd3d_shader_trace(program);

    if ((result = vsir_program_validate(program, config_flags,
            compile_info->source_name, message_context)) < 0)
        return result;

    return result;
}