From d5bfc630886d98ed77959a9771c67293244aff0e Mon Sep 17 00:00:00 2001
From: FernandoS27 <fsahmkow27@gmail.com>
Date: Mon, 29 Mar 2021 02:00:43 +0200
Subject: shader: Implement ImageGradient

---
 src/shader_recompiler/ir_opt/texture_pass.cpp | 5 +++++
 1 file changed, 5 insertions(+)

(limited to 'src/shader_recompiler/ir_opt/texture_pass.cpp')

diff --git a/src/shader_recompiler/ir_opt/texture_pass.cpp b/src/shader_recompiler/ir_opt/texture_pass.cpp
index 6eb286b838..da8977b76c 100644
--- a/src/shader_recompiler/ir_opt/texture_pass.cpp
+++ b/src/shader_recompiler/ir_opt/texture_pass.cpp
@@ -60,6 +60,9 @@ IR::Opcode IndexedInstruction(const IR::Inst& inst) {
     case IR::Opcode::BoundImageQueryLod:
     case IR::Opcode::BindlessImageQueryLod:
         return IR::Opcode::ImageQueryLod;
+    case IR::Opcode::BoundImageGradient:
+    case IR::Opcode::BindlessImageGradient:
+        return IR::Opcode::ImageGradient;
     default:
         return IR::Opcode::Void;
     }
@@ -76,6 +79,7 @@ bool IsBindless(const IR::Inst& inst) {
     case IR::Opcode::BindlessImageFetch:
     case IR::Opcode::BindlessImageQueryDimensions:
     case IR::Opcode::BindlessImageQueryLod:
+    case IR::Opcode::BindlessImageGradient:
         return true;
     case IR::Opcode::BoundImageSampleImplicitLod:
     case IR::Opcode::BoundImageSampleExplicitLod:
@@ -86,6 +90,7 @@ bool IsBindless(const IR::Inst& inst) {
     case IR::Opcode::BoundImageFetch:
     case IR::Opcode::BoundImageQueryDimensions:
     case IR::Opcode::BoundImageQueryLod:
+    case IR::Opcode::BoundImageGradient:
         return false;
     default:
         throw InvalidArgument("Invalid opcode {}", inst.Opcode());
-- 
cgit v1.2.3-70-g09d2