From 0bd9593ee21a79c0ae1c12c830f860672ac45225 Mon Sep 17 00:00:00 2001 From: IndecisiveTurtle <47210458+raphaelthegreat@users.noreply.github.com> Date: Thu, 18 Jul 2024 23:59:04 +0300 Subject: [PATCH] spirv: Use correct index --- .../backend/spirv/emit_spirv_context_get_set.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 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 430836b9d..aa8e72e37 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 @@ -215,13 +215,13 @@ Id EmitLoadBufferU32(EmitContext& ctx, IR::Inst* inst, u32 handle, Id address) { return EmitLoadBufferF32(ctx, inst, handle, address); } -template +template static Id EmitLoadBufferF32xN(EmitContext& ctx, u32 handle, Id address) { const auto& buffer = ctx.buffers[handle]; Id index = ctx.OpShiftRightLogical(ctx.U32[1], address, ctx.ConstU32(2u)); if constexpr (N == 1) { const Id ptr{ - ctx.OpAccessChain(buffer.pointer_type, buffer.id, ctx.u32_zero_value, address)}; + ctx.OpAccessChain(buffer.pointer_type, buffer.id, ctx.u32_zero_value, index)}; return ctx.OpLoad(buffer.data_types->Get(1), ptr); } else { boost::container::static_vector ids; @@ -394,7 +394,7 @@ static Id GetBufferFormatValue(EmitContext& ctx, u32 handle, Id address, u32 com } } -template +template static Id EmitLoadBufferFormatF32xN(EmitContext& ctx, IR::Inst* inst, u32 handle, Id address) { if constexpr (N == 1) { return GetBufferFormatValue(ctx, handle, address, 0); @@ -423,7 +423,7 @@ Id EmitLoadBufferFormatF32x4(EmitContext& ctx, IR::Inst* inst, u32 handle, Id ad return EmitLoadBufferFormatF32xN<4>(ctx, inst, handle, address); } -template +template static void EmitStoreBufferF32xN(EmitContext& ctx, u32 handle, Id address, Id value) { const auto& buffer = ctx.buffers[handle]; Id index = ctx.OpShiftRightLogical(ctx.U32[1], address, ctx.ConstU32(2u));