diff options
Diffstat (limited to 'Ryujinx.Graphics.OpenGL')
-rw-r--r-- | Ryujinx.Graphics.OpenGL/Image/TextureBase.cs | 6 | ||||
-rw-r--r-- | Ryujinx.Graphics.OpenGL/Pipeline.cs | 5 |
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; |