From: Conor McCarthy cmccarthy@codeweavers.com
--- include/vkd3d_shader.h | 1 + libs/vkd3d-shader/d3d_asm.c | 6 ++++++ 2 files changed, 7 insertions(+)
diff --git a/include/vkd3d_shader.h b/include/vkd3d_shader.h index 2f4478a79..b4a68df53 100644 --- a/include/vkd3d_shader.h +++ b/include/vkd3d_shader.h @@ -147,6 +147,7 @@ enum vkd3d_shader_compile_option_formatting_flags VKD3D_SHADER_COMPILE_OPTION_FORMATTING_OFFSETS = 0x00000004, VKD3D_SHADER_COMPILE_OPTION_FORMATTING_HEADER = 0x00000008, VKD3D_SHADER_COMPILE_OPTION_FORMATTING_RAW_IDS = 0x00000010, + VKD3D_SHADER_COMPILE_OPTION_FORMATTING_NUMBERS = 0x00000020,
VKD3D_FORCE_32_BIT_ENUM(VKD3D_SHADER_COMPILE_OPTION_FORMATTING_FLAGS), }; diff --git a/libs/vkd3d-shader/d3d_asm.c b/libs/vkd3d-shader/d3d_asm.c index dd96b7fa5..bfe6ef1c7 100644 --- a/libs/vkd3d-shader/d3d_asm.c +++ b/libs/vkd3d-shader/d3d_asm.c @@ -2097,6 +2097,9 @@ enum vkd3d_result vkd3d_dxbc_binary_to_text(const struct vsir_program *program, buffer = &compiler.buffer; vkd3d_string_buffer_init(buffer);
+ if (formatting & VKD3D_SHADER_COMPILE_OPTION_FORMATTING_NUMBERS) + vkd3d_string_buffer_printf(buffer, " "); + compiler.shader_version = *shader_version; shader_version = &compiler.shader_version; vkd3d_string_buffer_printf(buffer, "%s%s_%u_%u%s\n", compiler.colours.version, @@ -2108,6 +2111,9 @@ enum vkd3d_result vkd3d_dxbc_binary_to_text(const struct vsir_program *program, { struct vkd3d_shader_instruction *ins = &program->instructions.elements[i];
+ if (formatting & VKD3D_SHADER_COMPILE_OPTION_FORMATTING_NUMBERS) + vkd3d_string_buffer_printf(buffer, "%4u: ", i + 1); + switch (ins->handler_idx) { case VKD3DSIH_ELSE: