@@ -4,6 +4,8 @@ namespace Ryujinx.Graphics.GAL
{
public interface IPipeline
+ void Barrier();
+
void ClearRenderTargetColor(int index, uint componentMask, ColorF color);
void ClearRenderTargetDepthStencil(
@@ -18,8 +18,6 @@ namespace Ryujinx.Graphics.GAL
ISampler CreateSampler(SamplerCreateInfo info);
ITexture CreateTexture(TextureCreateInfo info);
- void FlushPipelines();
-
Capabilities GetCapabilities();
ulong GetCounter(CounterType type);
@@ -154,7 +154,7 @@ namespace Ryujinx.Graphics.Gpu
_context.Methods.PerformDeferredDraws();
- _context.Renderer.FlushPipelines();
+ _context.Renderer.Pipeline.Barrier();
break;
}
@@ -37,6 +37,11 @@ namespace Ryujinx.Graphics.OpenGL
_clipDepthMode = ClipDepthMode.NegativeOneToOne;
+ public void Barrier()
+ {
+ GL.MemoryBarrier(MemoryBarrierFlags.AllBarrierBits);
+ }
public void ClearRenderTargetColor(int index, uint componentMask, ColorF color)
GL.ColorMask(
@@ -55,11 +55,6 @@ namespace Ryujinx.Graphics.OpenGL
return new TextureStorage(this, info).CreateDefaultView();
- public void FlushPipelines()
- {
- GL.Finish();
- }
public Capabilities GetCapabilities()
return new Capabilities(