From 0d999519a4265aebc530a4cf78f85b3d4b8d313a Mon Sep 17 00:00:00 2001 From: CamilleLaVey Date: Sun, 16 Nov 2025 02:03:46 -0400 Subject: [PATCH] [spir-v] Include more cases for ColorArray1D --- .../backend/spirv/emit_spirv_image.cpp | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_image.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_image.cpp index 89b0212fcc..7db6d220a4 100644 --- a/src/shader_recompiler/backend/spirv/emit_spirv_image.cpp +++ b/src/shader_recompiler/backend/spirv/emit_spirv_image.cpp @@ -370,18 +370,29 @@ void AddOffsetToCoordinates(EmitContext& ctx, const IR::TextureInstInfo& info, I } switch (info.type) { - case TextureType::Color1D: + case TextureType::Color1D: { // Convert scalar → vec2(x, 0.0) return ctx.OpCompositeConstruct(ctx.F32[2], coords, ctx.f32_zero_value); - case TextureType::ColorArray1D: + } + case TextureType::ColorArray1D: { // Convert vec2(x, layer) → vec3(x, 0.0, layer) // ColorArray1D coords are always vec2 in IR const Id x = ctx.OpCompositeExtract(ctx.F32[1], coords, 0); const Id layer = ctx.OpCompositeExtract(ctx.F32[1], coords, 1); return ctx.OpCompositeConstruct(ctx.F32[3], x, ctx.f32_zero_value, layer); - default: + } + case TextureType::Color2D: + case TextureType::ColorArray2D: + case TextureType::Color3D: + case TextureType::ColorCube: + case TextureType::ColorArrayCube: + case TextureType::Buffer: + case TextureType::Color2DRect: + // No adjustment needed for non-1D textures return coords; } + + return coords; // Unreachable, but silences -Werror=return-type } } // Anonymous namespace