summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/backend/glasm/emit_glasm_image.cpp
diff options
context:
space:
mode:
authorGravatar liamwhite2023-02-01 22:38:00 -0500
committerGravatar GitHub2023-02-01 22:38:00 -0500
commita9a860a4f7fbf192435107ce9855d84c9fe1f475 (patch)
tree5063c9bbadfdfa449e590f2d945e55233e9f090a /src/shader_recompiler/backend/glasm/emit_glasm_image.cpp
parentMerge pull request #9696 from german77/please_forgive_me_for_this_sin (diff)
parentspirv: Fix TXQ with MSAA textures (diff)
downloadyuzu-a9a860a4f7fbf192435107ce9855d84c9fe1f475.tar.gz
yuzu-a9a860a4f7fbf192435107ce9855d84c9fe1f475.tar.xz
yuzu-a9a860a4f7fbf192435107ce9855d84c9fe1f475.zip
Merge pull request #9703 from ameerj/txq-ms
shaders: Fix TXQ with MSAA textures
Diffstat (limited to 'src/shader_recompiler/backend/glasm/emit_glasm_image.cpp')
-rw-r--r--src/shader_recompiler/backend/glasm/emit_glasm_image.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/shader_recompiler/backend/glasm/emit_glasm_image.cpp b/src/shader_recompiler/backend/glasm/emit_glasm_image.cpp
index b7bc11416..85ee27333 100644
--- a/src/shader_recompiler/backend/glasm/emit_glasm_image.cpp
+++ b/src/shader_recompiler/backend/glasm/emit_glasm_image.cpp
@@ -59,6 +59,13 @@ std::string Image(EmitContext& ctx, IR::TextureInstInfo info,
59 } 59 }
60} 60}
61 61
62bool IsTextureMsaa(EmitContext& ctx, const IR::TextureInstInfo& info) {
63 if (info.type == TextureType::Buffer) {
64 return false;
65 }
66 return ctx.info.texture_descriptors.at(info.descriptor_index).is_multisample;
67}
68
62std::string_view TextureType(IR::TextureInstInfo info, bool is_ms = false) { 69std::string_view TextureType(IR::TextureInstInfo info, bool is_ms = false) {
63 if (info.is_depth) { 70 if (info.is_depth) {
64 switch (info.type) { 71 switch (info.type) {
@@ -535,7 +542,8 @@ void EmitImageQueryDimensions(EmitContext& ctx, IR::Inst& inst, const IR::Value&
535 ScalarS32 lod, [[maybe_unused]] const IR::Value& skip_mips) { 542 ScalarS32 lod, [[maybe_unused]] const IR::Value& skip_mips) {
536 const auto info{inst.Flags<IR::TextureInstInfo>()}; 543 const auto info{inst.Flags<IR::TextureInstInfo>()};
537 const std::string texture{Texture(ctx, info, index)}; 544 const std::string texture{Texture(ctx, info, index)};
538 const std::string_view type{TextureType(info)}; 545 const bool is_msaa{IsTextureMsaa(ctx, info)};
546 const std::string_view type{TextureType(info, is_msaa)};
539 ctx.Add("TXQ {},{},{},{};", inst, lod, texture, type); 547 ctx.Add("TXQ {},{},{},{};", inst, lod, texture, type);
540} 548}
541 549