diff --git a/patches/vkd3d-latest/0001-Updated-vkd3d-to-e69f3da089d472b723b016ef67c04c0f954.patch b/patches/vkd3d-latest/0001-Updated-vkd3d-to-e69f3da089d472b723b016ef67c04c0f954.patch index 0d001cc8..bf0c30ec 100644 --- a/patches/vkd3d-latest/0001-Updated-vkd3d-to-e69f3da089d472b723b016ef67c04c0f954.patch +++ b/patches/vkd3d-latest/0001-Updated-vkd3d-to-e69f3da089d472b723b016ef67c04c0f954.patch @@ -1,4 +1,4 @@ -From 12f8d6b72e24fcc4d9615b265012eafb9dd3d5e5 Mon Sep 17 00:00:00 2001 +From 45ec4834e0dc9c581ad36f702f0b46344599451b Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Mon, 26 May 2025 07:03:34 +1000 Subject: [PATCH] Updated vkd3d to e69f3da089d472b723b016ef67c04c0f954fa792. diff --git a/patches/vkd3d-latest/0002-Updated-vkd3d-to-cd64aa69c886c7dd7148072ee69b6e70bff.patch b/patches/vkd3d-latest/0002-Updated-vkd3d-to-cd64aa69c886c7dd7148072ee69b6e70bff.patch index c6f2fc78..43ae63be 100644 --- a/patches/vkd3d-latest/0002-Updated-vkd3d-to-cd64aa69c886c7dd7148072ee69b6e70bff.patch +++ b/patches/vkd3d-latest/0002-Updated-vkd3d-to-cd64aa69c886c7dd7148072ee69b6e70bff.patch @@ -1,4 +1,4 @@ -From 24d99375765726eaf4253baa12237035ef1f3ef2 Mon Sep 17 00:00:00 2001 +From 9b60d920c564bef944c2e4becd92dd61775ea468 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Tue, 7 Oct 2025 08:00:36 +1100 Subject: [PATCH] Updated vkd3d to cd64aa69c886c7dd7148072ee69b6e70bff2f064. diff --git a/patches/vkd3d-latest/0003-Updated-vkd3d-to-b5b5c67b34be0c54bb4ee8a5439d65c2d1d.patch b/patches/vkd3d-latest/0003-Updated-vkd3d-to-b5b5c67b34be0c54bb4ee8a5439d65c2d1d.patch index 54879280..6a85730c 100644 --- a/patches/vkd3d-latest/0003-Updated-vkd3d-to-b5b5c67b34be0c54bb4ee8a5439d65c2d1d.patch +++ b/patches/vkd3d-latest/0003-Updated-vkd3d-to-b5b5c67b34be0c54bb4ee8a5439d65c2d1d.patch @@ -1,4 +1,4 @@ -From 4d48ac8b83085df9b1690392323665db907217b8 Mon Sep 17 00:00:00 2001 +From 55e98ca5107db1afba25205f66972abed9ff9f1c Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Tue, 14 Oct 2025 10:43:27 +1100 Subject: [PATCH] Updated vkd3d to b5b5c67b34be0c54bb4ee8a5439d65c2d1d6ba5d. diff --git a/patches/vkd3d-latest/0004-Updated-vkd3d-to-40bdaa43af3414d25e43b477bf813b81827.patch b/patches/vkd3d-latest/0004-Updated-vkd3d-to-40bdaa43af3414d25e43b477bf813b81827.patch index 313f4225..c221ca3b 100644 --- a/patches/vkd3d-latest/0004-Updated-vkd3d-to-40bdaa43af3414d25e43b477bf813b81827.patch +++ b/patches/vkd3d-latest/0004-Updated-vkd3d-to-40bdaa43af3414d25e43b477bf813b81827.patch @@ -1,4 +1,4 @@ -From 9f47509c12b50d2d39f192dfc66b8a711ca70b27 Mon Sep 17 00:00:00 2001 +From c2d961c5158c255d753f41664c8aa2a5ec04f7e0 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Wed, 15 Oct 2025 07:43:18 +1100 Subject: [PATCH] Updated vkd3d to 40bdaa43af3414d25e43b477bf813b81827633b3. diff --git a/patches/vkd3d-latest/0005-Updated-vkd3d-to-507990d3c5a7b61ad5df63a17bbd122d8dc.patch b/patches/vkd3d-latest/0005-Updated-vkd3d-to-507990d3c5a7b61ad5df63a17bbd122d8dc.patch index 58c9444e..fff8c28e 100644 --- a/patches/vkd3d-latest/0005-Updated-vkd3d-to-507990d3c5a7b61ad5df63a17bbd122d8dc.patch +++ b/patches/vkd3d-latest/0005-Updated-vkd3d-to-507990d3c5a7b61ad5df63a17bbd122d8dc.patch @@ -1,4 +1,4 @@ -From 7deb0d9351a2645eb2828fb177e1bc3f46bfc688 Mon Sep 17 00:00:00 2001 +From 84eb0cbafd4a64b81f4da5c0dbdc38242baf2ce5 Mon Sep 17 00:00:00 2001 From: Alistair Leslie-Hughes Date: Thu, 16 Oct 2025 06:52:58 +1100 Subject: [PATCH] Updated vkd3d to 507990d3c5a7b61ad5df63a17bbd122d8dc7e2e3. diff --git a/patches/vkd3d-latest/0006-Updated-vkd3d-to-86b8f2de3546603c67e1f2828a68b1cd0aa.patch b/patches/vkd3d-latest/0006-Updated-vkd3d-to-86b8f2de3546603c67e1f2828a68b1cd0aa.patch new file mode 100644 index 00000000..9063f251 --- /dev/null +++ b/patches/vkd3d-latest/0006-Updated-vkd3d-to-86b8f2de3546603c67e1f2828a68b1cd0aa.patch @@ -0,0 +1,370 @@ +From f59dd7827d7a6d436fecc303aea3a4241802d869 Mon Sep 17 00:00:00 2001 +From: Alistair Leslie-Hughes +Date: Sat, 18 Oct 2025 15:15:36 +1100 +Subject: [PATCH] Updated vkd3d to 86b8f2de3546603c67e1f2828a68b1cd0aa049df. + +--- + libs/vkd3d/libs/vkd3d-shader/glsl.c | 31 ++------------------ + libs/vkd3d/libs/vkd3d-shader/ir.c | 44 ++++++++++++++++++++++++---- + libs/vkd3d/libs/vkd3d-shader/msl.c | 34 ++------------------- + libs/vkd3d/libs/vkd3d-shader/spirv.c | 27 +++-------------- + 4 files changed, 49 insertions(+), 87 deletions(-) + +diff --git a/libs/vkd3d/libs/vkd3d-shader/glsl.c b/libs/vkd3d/libs/vkd3d-shader/glsl.c +index ab45c4d1e73..073282db129 100644 +--- a/libs/vkd3d/libs/vkd3d-shader/glsl.c ++++ b/libs/vkd3d/libs/vkd3d-shader/glsl.c +@@ -392,7 +392,7 @@ static void shader_glsl_print_src(struct vkd3d_string_buffer *buffer, struct vkd + const struct vkd3d_shader_src_param *vsir_src, uint32_t mask, enum vsir_data_type data_type) + { + const struct vkd3d_shader_register *reg = &vsir_src->reg; +- struct vkd3d_string_buffer *register_name, *str; ++ struct vkd3d_string_buffer *register_name; + enum vsir_data_type src_data_type; + unsigned int size; + +@@ -409,25 +409,11 @@ static void shader_glsl_print_src(struct vkd3d_string_buffer *buffer, struct vkd + + shader_glsl_print_register_name(register_name, gen, reg); + +- if (!vsir_src->modifiers) +- str = buffer; +- else +- str = vkd3d_string_buffer_get(&gen->string_buffers); +- + size = reg->dimension == VSIR_DIMENSION_VEC4 ? 4 : 1; +- shader_glsl_print_bitcast(str, gen, register_name->buffer, data_type, src_data_type, size); ++ shader_glsl_print_bitcast(buffer, gen, register_name->buffer, data_type, src_data_type, size); + if (reg->dimension == VSIR_DIMENSION_VEC4) +- shader_glsl_print_swizzle(str, vsir_src->swizzle, mask); ++ shader_glsl_print_swizzle(buffer, vsir_src->swizzle, mask); + +- if (vsir_src->modifiers) +- { +- vkd3d_string_buffer_printf(buffer, "(%s)", vsir_src->modifiers, str->buffer); +- vkd3d_glsl_compiler_error(gen, VKD3D_SHADER_ERROR_GLSL_INTERNAL, +- "Internal compiler error: Unhandled source modifier(s) %#x.", vsir_src->modifiers); +- } +- +- if (str != buffer) +- vkd3d_string_buffer_release(&gen->string_buffers, str); + vkd3d_string_buffer_release(&gen->string_buffers, register_name); + } + +@@ -489,23 +475,14 @@ static void VKD3D_PRINTF_FUNC(4, 0) shader_glsl_vprint_assignment(struct vkd3d_g + struct glsl_dst *dst, enum vsir_data_type data_type, const char *format, va_list args) + { + struct vkd3d_string_buffer *buffer = gen->buffer; +- uint32_t modifiers = dst->vsir->modifiers; + bool close = true; + +- /* It is always legitimate to ignore _pp. */ +- modifiers &= ~VKD3DSPDM_PARTIALPRECISION; +- + if (dst->vsir->shift) + vkd3d_glsl_compiler_error(gen, VKD3D_SHADER_ERROR_GLSL_INTERNAL, + "Internal compiler error: Unhandled destination shift %#x.", dst->vsir->shift); +- if (modifiers & ~VKD3DSPDM_SATURATE) +- vkd3d_glsl_compiler_error(gen, VKD3D_SHADER_ERROR_GLSL_INTERNAL, +- "Internal compiler error: Unhandled destination modifier(s) %#x.", modifiers); + + shader_glsl_print_indent(buffer, gen->indent); + vkd3d_string_buffer_printf(buffer, "%s%s = ", dst->register_name->buffer, dst->mask->buffer); +- if (modifiers & VKD3DSPDM_SATURATE) +- vkd3d_string_buffer_printf(buffer, "clamp("); + + switch (data_type) + { +@@ -530,8 +507,6 @@ static void VKD3D_PRINTF_FUNC(4, 0) shader_glsl_vprint_assignment(struct vkd3d_g + + if (close) + vkd3d_string_buffer_printf(buffer, ")"); +- if (modifiers & VKD3DSPDM_SATURATE) +- vkd3d_string_buffer_printf(buffer, ", 0.0, 1.0)"); + vkd3d_string_buffer_printf(buffer, ";\n"); + } + +diff --git a/libs/vkd3d/libs/vkd3d-shader/ir.c b/libs/vkd3d/libs/vkd3d-shader/ir.c +index 82901c6fb34..000c78aeed3 100644 +--- a/libs/vkd3d/libs/vkd3d-shader/ir.c ++++ b/libs/vkd3d/libs/vkd3d-shader/ir.c +@@ -2173,6 +2173,7 @@ static enum vkd3d_result vsir_program_lower_modifiers(struct vsir_program *progr + { + struct vsir_program_iterator it = vsir_program_iterator(&program->instructions), new_it; + struct vkd3d_shader_instruction *ins, *new_ins; ++ enum vkd3d_result ret = VKD3D_OK; + unsigned int i, j; + + for (ins = vsir_program_iterator_head(&it); ins; ins = vsir_program_iterator_next(&it)) +@@ -2182,9 +2183,11 @@ static enum vkd3d_result vsir_program_lower_modifiers(struct vsir_program *progr + enum vkd3d_shader_opcode new_opcodes[2] = {VSIR_OP_NOP, VSIR_OP_NOP}; + struct vkd3d_shader_src_param *src = &ins->src[i]; + +- /* TODO: support other modifiers, including destination modifiers. */ + switch (src->modifiers) + { ++ case VKD3DSPSM_NONE: ++ continue; ++ + case VKD3DSPSM_ABS: + new_opcodes[0] = VSIR_OP_ABS; + break; +@@ -2199,6 +2202,9 @@ static enum vkd3d_result vsir_program_lower_modifiers(struct vsir_program *progr + break; + + default: ++ vkd3d_shader_error(ctx->message_context, &ins->location, VKD3D_SHADER_ERROR_VSIR_NOT_IMPLEMENTED, ++ "Aborting due to unimplemented feature: Source modifier %#x.", src->modifiers); ++ ret = VKD3D_ERROR_NOT_IMPLEMENTED; + continue; + } + +@@ -2234,12 +2240,23 @@ static enum vkd3d_result vsir_program_lower_modifiers(struct vsir_program *progr + { + struct vkd3d_shader_dst_param *dst = &ins->dst[i]; + ++ /* It is always legitimate to ignore _pp. */ ++ dst->modifiers &= ~VKD3DSPDM_PARTIALPRECISION; ++ ++ if (dst->modifiers & ~VKD3DSPDM_SATURATE) ++ { ++ vkd3d_shader_error(ctx->message_context, &ins->location, VKD3D_SHADER_ERROR_VSIR_NOT_IMPLEMENTED, ++ "Aborting due to unimplemented feature: Destination modifier %#x.", dst->modifiers); ++ ret = VKD3D_ERROR_NOT_IMPLEMENTED; ++ continue; ++ } ++ + if (dst->modifiers & VKD3DSPDM_SATURATE) + { + if (!vsir_program_iterator_insert_after(&it, 1)) + return VKD3D_ERROR_OUT_OF_MEMORY; +- ins = vsir_program_iterator_current(&it); + new_ins = vsir_program_iterator_next(&it); ++ ins = vsir_program_iterator_prev(&it); + + if (!vsir_instruction_init_with_params(program, new_ins, &ins->location, VSIR_OP_SATURATE, 1, 1)) + { +@@ -2248,7 +2265,7 @@ static enum vkd3d_result vsir_program_lower_modifiers(struct vsir_program *progr + } + + new_ins->dst[0] = *dst; +- new_ins->dst[0].modifiers &= ~VKD3DSPDM_NONE; ++ new_ins->dst[0].modifiers &= ~VKD3DSPDM_SATURATE; + + dst_param_init_ssa(dst, program->ssa_count, dst->reg.data_type, dst->reg.dimension); + src_param_init_ssa(&new_ins->src[0], program->ssa_count, dst->reg.data_type, dst->reg.dimension); +@@ -2264,7 +2281,7 @@ static enum vkd3d_result vsir_program_lower_modifiers(struct vsir_program *progr + } + } + +- return VKD3D_OK; ++ return ret; + } + + static enum vkd3d_result vsir_program_lower_instructions(struct vsir_program *program, +@@ -5064,6 +5081,7 @@ static enum vkd3d_result vsir_program_materialise_phi_ssas_to_temps_in_function( + for (ins = vsir_program_iterator_current(it); ins; ins = vsir_program_iterator_next(it)) + { + struct vkd3d_shader_instruction *mov_ins; ++ struct vkd3d_shader_location loc; + bool finish = false; + size_t j; + +@@ -5083,6 +5101,7 @@ static enum vkd3d_result vsir_program_materialise_phi_ssas_to_temps_in_function( + case VSIR_OP_SWITCH_MONOLITHIC: + info = &block_info[current_label - 1]; + ++ loc = ins->location; + if (!(mov_ins = vsir_program_iterator_insert_before_and_move(it, info->incoming_count))) + goto fail; + VKD3D_ASSERT(mov_ins); +@@ -5091,7 +5110,7 @@ static enum vkd3d_result vsir_program_materialise_phi_ssas_to_temps_in_function( + { + struct phi_incoming_to_temp *incoming = &info->incomings[j]; + +- if (!vsir_instruction_init_with_params(program, mov_ins, &ins->location, VSIR_OP_MOV, 1, 0)) ++ if (!vsir_instruction_init_with_params(program, mov_ins, &loc, VSIR_OP_MOV, 1, 0)) + { + vkd3d_shader_instruction_make_nop(mov_ins); + goto fail; +@@ -9311,6 +9330,7 @@ struct temp_allocator + enum vkd3d_shader_register_type type; + unsigned int idx; + bool force_first; ++ bool fixed_mask; + } *ssa_regs, *temp_regs; + size_t ssa_count, temp_count; + unsigned int new_temp_count; +@@ -9339,6 +9359,9 @@ static void temp_allocator_set_src(struct temp_allocator *allocator, struct vkd3 + src->reg.type = VKD3DSPR_TEMP; + src->reg.dimension = VSIR_DIMENSION_VEC4; + src->reg.idx[0].offset = reg->temp_id; ++ ++ if (reg->fixed_mask) ++ return; + src->swizzle = vsir_combine_swizzles(vsir_swizzle_from_writemask(reg->allocated_mask), src->swizzle); + } + +@@ -9430,7 +9453,16 @@ static void temp_allocator_set_dst(struct temp_allocator *allocator, + dst->reg.type = VKD3DSPR_TEMP; + dst->reg.dimension = VSIR_DIMENSION_VEC4; + dst->reg.idx[0].offset = reg->temp_id; ++ ++ if (reg->fixed_mask) ++ { ++ VKD3D_ASSERT((reg->allocated_mask & dst->write_mask) == dst->write_mask); ++ return; ++ } ++ + remapped_mask = vsir_combine_write_masks(reg->allocated_mask, dst->write_mask); ++ VKD3D_ASSERT(vkd3d_popcount(remapped_mask) == vkd3d_popcount(dst->write_mask)); ++ + if (dst->write_mask != remapped_mask) + { + dst->write_mask = remapped_mask; +@@ -9508,6 +9540,7 @@ static void temp_allocator_open_register(struct temp_allocator *allocator, struc + { + reg->temp_id = i; + reg->allocated_mask = liveness_reg->mask; ++ reg->fixed_mask = true; + current_allocation[i] |= reg->allocated_mask; + allocator->new_temp_count = max(allocator->new_temp_count, i + 1); + TRACE("Allocated r%u%s for %s (liveness %u-%u).\n", +@@ -9534,6 +9567,7 @@ static void temp_allocator_open_register(struct temp_allocator *allocator, struc + + reg->temp_id = i; + reg->allocated_mask = vsir_combine_write_masks(available_mask, mask); ++ reg->fixed_mask = false; + current_allocation[i] |= reg->allocated_mask; + allocator->new_temp_count = max(allocator->new_temp_count, i + 1); + TRACE("Allocated r%u%s for %s (liveness %u-%u).\n", +diff --git a/libs/vkd3d/libs/vkd3d-shader/msl.c b/libs/vkd3d/libs/vkd3d-shader/msl.c +index f2d28acbe38..3e7bf831e48 100644 +--- a/libs/vkd3d/libs/vkd3d-shader/msl.c ++++ b/libs/vkd3d/libs/vkd3d-shader/msl.c +@@ -583,7 +583,7 @@ static void msl_print_src_with_type(struct vkd3d_string_buffer *buffer, struct m + const struct vkd3d_shader_src_param *vsir_src, uint32_t mask, enum vsir_data_type data_type) + { + const struct vkd3d_shader_register *reg = &vsir_src->reg; +- struct vkd3d_string_buffer *register_name, *str; ++ struct vkd3d_string_buffer *register_name; + enum msl_data_type src_data_type; + + register_name = vkd3d_string_buffer_get(&gen->string_buffers); +@@ -592,25 +592,10 @@ static void msl_print_src_with_type(struct vkd3d_string_buffer *buffer, struct m + msl_compiler_error(gen, VKD3D_SHADER_ERROR_MSL_INTERNAL, + "Internal compiler error: Unhandled 'non-uniform' modifier."); + +- if (!vsir_src->modifiers) +- str = buffer; +- else +- str = vkd3d_string_buffer_get(&gen->string_buffers); +- + src_data_type = msl_print_register_name(register_name, gen, reg); +- msl_print_bitcast(str, gen, register_name->buffer, data_type, src_data_type, reg->dimension); ++ msl_print_bitcast(buffer, gen, register_name->buffer, data_type, src_data_type, reg->dimension); + if (reg->dimension == VSIR_DIMENSION_VEC4) +- msl_print_swizzle(str, vsir_src->swizzle, mask); +- +- if (vsir_src->modifiers) +- { +- vkd3d_string_buffer_printf(buffer, "(%s)", vsir_src->modifiers, str->buffer); +- msl_compiler_error(gen, VKD3D_SHADER_ERROR_MSL_INTERNAL, +- "Internal compiler error: Unhandled source modifier(s) %#x.", vsir_src->modifiers); +- } +- +- if (str != buffer) +- vkd3d_string_buffer_release(&gen->string_buffers, str); ++ msl_print_swizzle(buffer, vsir_src->swizzle, mask); + } + + static void msl_src_init(struct msl_src *msl_src, struct msl_generator *gen, +@@ -674,32 +659,19 @@ static void msl_print_subscript(struct vkd3d_string_buffer *buffer, struct msl_g + static void VKD3D_PRINTF_FUNC(3, 4) msl_print_assignment( + struct msl_generator *gen, struct msl_dst *dst, const char *format, ...) + { +- uint32_t modifiers = dst->vsir->modifiers; + va_list args; + +- /* It is always legitimate to ignore _pp. */ +- modifiers &= ~VKD3DSPDM_PARTIALPRECISION; +- + if (dst->vsir->shift) + msl_compiler_error(gen, VKD3D_SHADER_ERROR_MSL_INTERNAL, + "Internal compiler error: Unhandled destination shift %#x.", dst->vsir->shift); +- if (modifiers & ~VKD3DSPDM_SATURATE) +- msl_compiler_error(gen, VKD3D_SHADER_ERROR_MSL_INTERNAL, +- "Internal compiler error: Unhandled destination modifier(s) %#x.", modifiers); + + msl_print_indent(gen->buffer, gen->indent); + vkd3d_string_buffer_printf(gen->buffer, "%s%s = ", dst->register_name->buffer, dst->mask->buffer); + +- if (modifiers & VKD3DSPDM_SATURATE) +- vkd3d_string_buffer_printf(gen->buffer, "saturate("); +- + va_start(args, format); + vkd3d_string_buffer_vprintf(gen->buffer, format, args); + va_end(args); + +- if (modifiers & VKD3DSPDM_SATURATE) +- vkd3d_string_buffer_printf(gen->buffer, ")"); +- + vkd3d_string_buffer_printf(gen->buffer, ";\n"); + } + +diff --git a/libs/vkd3d/libs/vkd3d-shader/spirv.c b/libs/vkd3d/libs/vkd3d-shader/spirv.c +index a1572f69438..0f5df228121 100644 +--- a/libs/vkd3d/libs/vkd3d-shader/spirv.c ++++ b/libs/vkd3d/libs/vkd3d-shader/spirv.c +@@ -4823,10 +4823,6 @@ static void spirv_compiler_emit_execution_mode1(struct spirv_compiler *compiler, + static uint32_t spirv_compiler_emit_load_src(struct spirv_compiler *compiler, + const struct vkd3d_shader_src_param *src, uint32_t write_mask) + { +- if (src->modifiers) +- spirv_compiler_error(compiler, VKD3D_SHADER_ERROR_SPV_NOT_IMPLEMENTED, +- "Unhandled source modifier(s) %#x.", src->modifiers); +- + return spirv_compiler_emit_load_reg(compiler, &src->reg, src->swizzle, write_mask); + } + +@@ -4981,25 +4977,6 @@ static uint32_t spirv_compiler_emit_sat(struct spirv_compiler *compiler, + static void spirv_compiler_emit_store_dst(struct spirv_compiler *compiler, + const struct vkd3d_shader_dst_param *dst, uint32_t val_id) + { +- uint32_t modifiers = dst->modifiers; +- +- /* It is always legitimate to ignore _pp. */ +- modifiers &= ~VKD3DSPDM_PARTIALPRECISION; +- +- if (modifiers & VKD3DSPDM_SATURATE) +- { +- val_id = spirv_compiler_emit_sat(compiler, &dst->reg, dst->write_mask, val_id); +- modifiers &= ~VKD3DSPDM_SATURATE; +- } +- +- if (dst->modifiers & VKD3DSPDM_MSAMPCENTROID) +- { +- FIXME("Ignoring _centroid modifier.\n"); +- modifiers &= ~VKD3DSPDM_MSAMPCENTROID; +- } +- +- VKD3D_ASSERT(!modifiers); +- + spirv_compiler_emit_store_reg(compiler, &dst->reg, dst->write_mask, val_id); + } + +@@ -11052,7 +11029,11 @@ static int spirv_compiler_generate_spirv(struct spirv_compiler *compiler, + } + + if (compiler->failed) ++ { ++ vkd3d_shader_free_shader_code(spirv); ++ + return VKD3D_ERROR_INVALID_SHADER; ++ } + + if (compile_info->target_type == VKD3D_SHADER_TARGET_SPIRV_TEXT) + { +-- +2.51.0 +