vkd3d-shader/d3d-asm: Include the I/O signatures when tracing vsir code.

This commit is contained in:
Henri Verbeet
2024-10-05 22:02:12 +02:00
committed by Henri Verbeet
parent 24e61cf74e
commit f4e10ea9d5
Notes: Henri Verbeet 2025-04-14 22:03:34 +02:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1446
2 changed files with 11 additions and 9 deletions

View File

@@ -2271,6 +2271,10 @@ enum vkd3d_result d3d_asm_compile(const struct vsir_program *program,
indent_str = " ";
else
indent_str = "";
/* The signatures we emit only make sense for DXBC shaders. d3dbc doesn't
* even have an explicit concept of signature. */
if (formatting & VKD3D_SHADER_COMPILE_OPTION_FORMATTING_IO_SIGNATURES && shader_version->major >= 4)
compiler.flags |= VSIR_ASM_FLAG_DUMP_SIGNATURES;
buffer = &compiler.buffer;
vkd3d_string_buffer_init(buffer);
@@ -2281,16 +2285,12 @@ enum vkd3d_result d3d_asm_compile(const struct vsir_program *program,
shader_get_type_prefix(shader_version->type), shader_version->major,
shader_version->minor, compiler.colours.reset);
/* The signatures we emit only make sense for DXBC shaders. D3DBC
* doesn't even have an explicit concept of signature. */
if (formatting & VKD3D_SHADER_COMPILE_OPTION_FORMATTING_IO_SIGNATURES && shader_version->major >= 4)
{
if ((result = dump_dxbc_signatures(&compiler, program)) < 0)
if (compiler.flags & VSIR_ASM_FLAG_DUMP_SIGNATURES
&& (result = dump_dxbc_signatures(&compiler, program)) < 0)
{
vkd3d_string_buffer_cleanup(buffer);
return result;
}
}
indent = 0;
for (i = 0; i < program->instructions.count; ++i)
@@ -2417,7 +2417,8 @@ static void trace_io_declarations(const struct vsir_program *program)
void vsir_program_trace(const struct vsir_program *program)
{
const unsigned int flags = VSIR_ASM_FLAG_DUMP_TYPES | VSIR_ASM_FLAG_DUMP_ALL_INDICES;
const unsigned int flags = VSIR_ASM_FLAG_DUMP_TYPES | VSIR_ASM_FLAG_DUMP_ALL_INDICES
| VSIR_ASM_FLAG_DUMP_SIGNATURES;
struct vkd3d_shader_code code;
const char *p, *q, *end;

View File

@@ -1564,6 +1564,7 @@ enum vsir_asm_flags
VSIR_ASM_FLAG_NONE = 0,
VSIR_ASM_FLAG_DUMP_TYPES = 0x1,
VSIR_ASM_FLAG_DUMP_ALL_INDICES = 0x2,
VSIR_ASM_FLAG_DUMP_SIGNATURES = 0x4,
};
enum vkd3d_result d3d_asm_compile(const struct vsir_program *program,