From e97c3e96536ce5cb622151931f7988dc0b616edc Mon Sep 17 00:00:00 2001 From: Lander Gallastegi Date: Mon, 21 Apr 2025 10:39:08 +0200 Subject: [PATCH] Offset in bytes --- .../backend/spirv/emit_spirv_context_get_set.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 6056df2e7..47ac5ce03 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 @@ -167,7 +167,8 @@ Id EmitReadConst(EmitContext& ctx, IR::Inst* inst, Id addr, Id offset) { const Id base_hi = ctx.OpUConvert(ctx.U64, ctx.OpCompositeExtract(ctx.U32[1], addr, 1)); const Id base_sift = ctx.OpShiftLeftLogical(ctx.U64, base_hi, ctx.ConstU32(32u)); const Id base = ctx.OpBitwiseOr(ctx.U64, base_lo, base_sift); - const Id address = ctx.OpIAdd(ctx.U64, base, ctx.OpUConvert(ctx.U64, offset)); + const Id offset_bytes = ctx.OpShiftLeftLogical(ctx.U32[1], offset, ctx.ConstU32(2u)); + const Id address = ctx.OpIAdd(ctx.U64, base, ctx.OpUConvert(ctx.U64, offset_bytes)); return ctx.EmitMemoryAccess(ctx.U32[1], address, [&]() { const u32 flatbuf_off_dw = inst->Flags(); if (flatbuf_off_dw == 0) {