aboutsummaryrefslogtreecommitdiff
path: root/src/shader_recompiler/backend/spirv/emit_spirv_image.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2023-01-25 22:28:18 -0800
committerGitHub <noreply@github.com>2023-01-25 22:28:18 -0800
commit58ba508e9a2c794bdb8bbf10e42a7865c48b9b77 (patch)
treef223fa57dd2419cab12ccda44d29f09bd58febc0 /src/shader_recompiler/backend/spirv/emit_spirv_image.cpp
parent2158ccda3b52d53b7485b954dc878735a58de085 (diff)
parent76a4356e55d0725d288866a04743f1e991ec3e36 (diff)
Merge pull request #9652 from liamwhite/ms
spirv: fix multisampled image fetch
Diffstat (limited to 'src/shader_recompiler/backend/spirv/emit_spirv_image.cpp')
-rw-r--r--src/shader_recompiler/backend/spirv/emit_spirv_image.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/shader_recompiler/backend/spirv/emit_spirv_image.cpp b/src/shader_recompiler/backend/spirv/emit_spirv_image.cpp
index fb5799c42..c898ce12f 100644
--- a/src/shader_recompiler/backend/spirv/emit_spirv_image.cpp
+++ b/src/shader_recompiler/backend/spirv/emit_spirv_image.cpp
@@ -436,6 +436,10 @@ Id EmitImageFetch(EmitContext& ctx, IR::Inst* inst, const IR::Value& index, Id c
if (info.type == TextureType::Buffer) {
lod = Id{};
}
+ if (Sirit::ValidId(ms)) {
+ // This image is multisampled, lod must be implicit
+ lod = Id{};
+ }
const ImageOperands operands(offset, lod, ms);
return Emit(&EmitContext::OpImageSparseFetch, &EmitContext::OpImageFetch, ctx, inst, ctx.F32[4],
TextureImage(ctx, info, index), coords, operands.MaskOptional(), operands.Span());