aboutsummaryrefslogtreecommitdiff
path: root/Ryujinx.Graphics.OpenGL
diff options
context:
space:
mode:
Diffstat (limited to 'Ryujinx.Graphics.OpenGL')
-rw-r--r--Ryujinx.Graphics.OpenGL/Image/TextureBase.cs6
-rw-r--r--Ryujinx.Graphics.OpenGL/Pipeline.cs5
2 files changed, 11 insertions, 0 deletions
diff --git a/Ryujinx.Graphics.OpenGL/Image/TextureBase.cs b/Ryujinx.Graphics.OpenGL/Image/TextureBase.cs
index 2e70fa82..2ab9dffb 100644
--- a/Ryujinx.Graphics.OpenGL/Image/TextureBase.cs
+++ b/Ryujinx.Graphics.OpenGL/Image/TextureBase.cs
@@ -34,5 +34,11 @@ namespace Ryujinx.Graphics.OpenGL.Image
GL.ActiveTexture(TextureUnit.Texture0 + unit);
GL.BindTexture(target, Handle);
}
+
+ public static void ClearBinding(int unit)
+ {
+ GL.ActiveTexture(TextureUnit.Texture0 + unit);
+ GL.BindTextureUnit(unit, 0);
+ }
}
}
diff --git a/Ryujinx.Graphics.OpenGL/Pipeline.cs b/Ryujinx.Graphics.OpenGL/Pipeline.cs
index 5f224625..5911758e 100644
--- a/Ryujinx.Graphics.OpenGL/Pipeline.cs
+++ b/Ryujinx.Graphics.OpenGL/Pipeline.cs
@@ -919,6 +919,7 @@ namespace Ryujinx.Graphics.OpenGL
if (texture == null)
{
+ GL.BindImageTexture(binding, 0, 0, true, 0, TextureAccess.ReadWrite, SizedInternalFormat.Rgba8);
return;
}
@@ -1275,6 +1276,10 @@ namespace Ryujinx.Graphics.OpenGL
((TextureBase)texture).Bind(binding);
}
}
+ else
+ {
+ TextureBase.ClearBinding(binding);
+ }
Sampler glSampler = (Sampler)sampler;