summaryrefslogtreecommitdiffstats
path: root/src/shader_recompiler/ir_opt
diff options
context:
space:
mode:
authorFernandoS27 <fsahmkow27@gmail.com>2021-03-28 19:47:52 +0200
committerameerj <52414509+ameerj@users.noreply.github.com>2021-07-23 03:51:25 +0200
commit613b48c4a2ce71a0d0eaba17fe164f4a2e4a3db5 (patch)
treea8d2d2eb8284f1b35184e4ee07e25709ecce0596 /src/shader_recompiler/ir_opt
parentshader: Implement TLDS (diff)
downloadyuzu-613b48c4a2ce71a0d0eaba17fe164f4a2e4a3db5.tar
yuzu-613b48c4a2ce71a0d0eaba17fe164f4a2e4a3db5.tar.gz
yuzu-613b48c4a2ce71a0d0eaba17fe164f4a2e4a3db5.tar.bz2
yuzu-613b48c4a2ce71a0d0eaba17fe164f4a2e4a3db5.tar.lz
yuzu-613b48c4a2ce71a0d0eaba17fe164f4a2e4a3db5.tar.xz
yuzu-613b48c4a2ce71a0d0eaba17fe164f4a2e4a3db5.tar.zst
yuzu-613b48c4a2ce71a0d0eaba17fe164f4a2e4a3db5.zip
Diffstat (limited to 'src/shader_recompiler/ir_opt')
-rw-r--r--src/shader_recompiler/ir_opt/collect_shader_info_pass.cpp3
-rw-r--r--src/shader_recompiler/ir_opt/texture_pass.cpp5
2 files changed, 7 insertions, 1 deletions
diff --git a/src/shader_recompiler/ir_opt/collect_shader_info_pass.cpp b/src/shader_recompiler/ir_opt/collect_shader_info_pass.cpp
index 3b00d7c8c..04e3a4f53 100644
--- a/src/shader_recompiler/ir_opt/collect_shader_info_pass.cpp
+++ b/src/shader_recompiler/ir_opt/collect_shader_info_pass.cpp
@@ -383,7 +383,8 @@ void VisitUsages(Info& info, IR::Inst& inst) {
case IR::Opcode::ImageGather:
case IR::Opcode::ImageGatherDref:
case IR::Opcode::ImageFetch:
- case IR::Opcode::ImageQueryDimensions: {
+ case IR::Opcode::ImageQueryDimensions:
+ case IR::Opcode::ImageQueryLod: {
const TextureType type{inst.Flags<IR::TextureInstInfo>().type};
info.uses_sampled_1d |= type == TextureType::Color1D || type == TextureType::ColorArray1D ||
type == TextureType::Shadow1D || type == TextureType::ShadowArray1D;
diff --git a/src/shader_recompiler/ir_opt/texture_pass.cpp b/src/shader_recompiler/ir_opt/texture_pass.cpp
index dfacf848f..6eb286b83 100644
--- a/src/shader_recompiler/ir_opt/texture_pass.cpp
+++ b/src/shader_recompiler/ir_opt/texture_pass.cpp
@@ -57,6 +57,9 @@ IR::Opcode IndexedInstruction(const IR::Inst& inst) {
case IR::Opcode::BoundImageQueryDimensions:
case IR::Opcode::BindlessImageQueryDimensions:
return IR::Opcode::ImageQueryDimensions;
+ case IR::Opcode::BoundImageQueryLod:
+ case IR::Opcode::BindlessImageQueryLod:
+ return IR::Opcode::ImageQueryLod;
default:
return IR::Opcode::Void;
}
@@ -72,6 +75,7 @@ bool IsBindless(const IR::Inst& inst) {
case IR::Opcode::BindlessImageGatherDref:
case IR::Opcode::BindlessImageFetch:
case IR::Opcode::BindlessImageQueryDimensions:
+ case IR::Opcode::BindlessImageQueryLod:
return true;
case IR::Opcode::BoundImageSampleImplicitLod:
case IR::Opcode::BoundImageSampleExplicitLod:
@@ -81,6 +85,7 @@ bool IsBindless(const IR::Inst& inst) {
case IR::Opcode::BoundImageGatherDref:
case IR::Opcode::BoundImageFetch:
case IR::Opcode::BoundImageQueryDimensions:
+ case IR::Opcode::BoundImageQueryLod:
return false;
default:
throw InvalidArgument("Invalid opcode {}", inst.Opcode());