From d274328c3192fd85b9eec661b00f1599d673776c Mon Sep 17 00:00:00 2001
From: gdk <gab.dark.100@gmail.com>
Date: Sun, 10 Nov 2019 11:03:38 -0300
Subject: Fix image units bindings and shader dump in the presence of NOPs

---
 Ryujinx.Graphics.Gpu/Engine/ShaderCache.cs | 28 ++++++++++++++++++++++++----
 1 file changed, 24 insertions(+), 4 deletions(-)

(limited to 'Ryujinx.Graphics.Gpu/Engine/ShaderCache.cs')

diff --git a/Ryujinx.Graphics.Gpu/Engine/ShaderCache.cs b/Ryujinx.Graphics.Gpu/Engine/ShaderCache.cs
index d280ea6f..922f4a44 100644
--- a/Ryujinx.Graphics.Gpu/Engine/ShaderCache.cs
+++ b/Ryujinx.Graphics.Gpu/Engine/ShaderCache.cs
@@ -117,7 +117,13 @@ namespace Ryujinx.Graphics.Gpu.Engine
 
             program = Translator.Translate(code, translationConfig);
 
-            _dumper.Dump(gpuVa, compute : true);
+            _dumper.Dump(code, compute : true, out string fullPath, out string codePath);
+
+            if (fullPath != null && codePath != null)
+            {
+                program.Prepend("// " + codePath);
+                program.Prepend("// " + fullPath);
+            }
 
             return program;
         }
@@ -144,8 +150,16 @@ namespace Ryujinx.Graphics.Gpu.Engine
 
                 program = Translator.Translate(codeA, codeB, translationConfig);
 
-                _dumper.Dump(gpuVaA, compute: false);
-                _dumper.Dump(gpuVa,  compute: false);
+                _dumper.Dump(codeA, compute: false, out string fullPathA, out string codePathA);
+                _dumper.Dump(codeB, compute: false, out string fullPathB, out string codePathB);
+
+                if (fullPathA != null && fullPathB != null && codePathA != null && codePathB != null)
+                {
+                    program.Prepend("// " + codePathB);
+                    program.Prepend("// " + fullPathB);
+                    program.Prepend("// " + codePathA);
+                    program.Prepend("// " + fullPathA);
+                }
             }
             else
             {
@@ -153,7 +167,13 @@ namespace Ryujinx.Graphics.Gpu.Engine
 
                 program = Translator.Translate(code, translationConfig);
 
-                _dumper.Dump(gpuVa, compute: false);
+                _dumper.Dump(code, compute: false, out string fullPath, out string codePath);
+
+                if (fullPath != null && codePath != null)
+                {
+                    program.Prepend("// " + codePath);
+                    program.Prepend("// " + fullPath);
+                }
             }
 
             if (program.Stage == ShaderStage.Geometry)
-- 
cgit v1.2.3-70-g09d2