From fd0c5655c49bb54f83e9e3b32c8f4d056c8e803d Mon Sep 17 00:00:00 2001 From: John Date: Mon, 6 Apr 2026 21:48:22 +0200 Subject: [PATCH] Fixes [shader_recompiler] fix CBuf get/set VUUID due to using composite for U32[1], F32[1] (#3790) (#3823) Fixes Megaman Starforce Legacy Collection crashing. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3823 Reviewed-by: crueter Reviewed-by: CamilleLaVey Co-authored-by: John Co-committed-by: John --- .../backend/spirv/emit_spirv_context_get_set.cpp | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp index 378d2cd0ec..fb9d3dbbb2 100644 --- a/src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp +++ b/src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp @@ -140,14 +140,8 @@ Id GetCbuf(EmitContext& ctx, Id result_type, Id UniformDefinitions::*member_ptr, return val; } - const auto is_float = UniformDefinitions::IsFloat(member_ptr); - const auto num_elements = UniformDefinitions::NumElements(member_ptr); - auto const zero_const = is_float ? ctx.Const(0.0f) : ctx.Const(0u); - const std::array zero_vec{zero_const, zero_const, zero_const, zero_const}; const Id cond = ctx.OpULessThanEqual(ctx.TypeBool(), buffer_offset, ctx.Const(0xFFFFu)); - const Id zero = num_elements > 1 - ? ctx.OpCompositeConstruct(result_type, std::span(zero_vec.data(), num_elements)) - : zero_const; + const Id zero = ctx.ConstantNull(result_type); return ctx.OpSelect(result_type, cond, val, zero); }