diff --git a/src/shader_recompiler/backend/spirv/emit_spirv.h b/src/shader_recompiler/backend/spirv/emit_spirv.h index 6bb8596925..06c72fc494 100644 --- a/src/shader_recompiler/backend/spirv/emit_spirv.h +++ b/src/shader_recompiler/backend/spirv/emit_spirv.h @@ -1,4 +1,4 @@ -// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project +// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project // SPDX-License-Identifier: GPL-3.0-or-later // SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project @@ -31,7 +31,7 @@ struct RenderAreaLayout { }; constexpr u32 RESCALING_LAYOUT_WORDS_OFFSET = offsetof(RescalingLayout, rescaling_textures); constexpr u32 RESCALING_LAYOUT_DOWN_FACTOR_OFFSET = offsetof(RescalingLayout, down_factor); -constexpr u32 RENDERAREA_LAYOUT_OFFSET = offsetof(RenderAreaLayout, render_area); +constexpr u32 RENDERAREA_LAYOUT_OFFSET = sizeof(RescalingLayout); [[nodiscard]] std::vector EmitSPIRV(const Profile& profile, const RuntimeInfo& runtime_info, IR::Program& program, Bindings& bindings, bool optimize); diff --git a/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp b/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp index ffa9aa7e1a..aaa278ccd2 100644 --- a/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp +++ b/src/shader_recompiler/backend/spirv/spirv_emit_context.cpp @@ -1096,7 +1096,8 @@ void EmitContext::DefineRenderArea(const Info& info) { Decorate(push_constant_struct, spv::Decoration::Block); Name(push_constant_struct, "RenderAreaInfo"); - MemberDecorate(push_constant_struct, render_are_member_index, spv::Decoration::Offset, 0); + MemberDecorate(push_constant_struct, render_are_member_index, spv::Decoration::Offset, + RENDERAREA_LAYOUT_OFFSET); MemberName(push_constant_struct, render_are_member_index, "render_area"); const Id pointer_type{TypePointer(spv::StorageClass::PushConstant, push_constant_struct)};