CommandBufferBarrier

This commit is contained in:
Isaac Marovitz 2024-06-27 22:51:12 +01:00
parent 5f1d3fd744
commit b950e12ab8
No known key found for this signature in database
GPG Key ID: 97250B2B09A132E1
1 changed files with 7 additions and 8 deletions

View File

@ -285,14 +285,10 @@ namespace Ryujinx.Graphics.Metal
{
var computeCommandEncoder = GetOrCreateComputeEncoder();
// TODO: Should there be a barrier on render targets?
var scope = MTLBarrierScope.Buffers | MTLBarrierScope.Textures;
var scope = MTLBarrierScope.Buffers | MTLBarrierScope.Textures | MTLBarrierScope.RenderTargets;;
computeCommandEncoder.MemoryBarrier(scope);
break;
}
default:
Logger.Warning?.Print(LogClass.Gpu, "Barrier called outside of a render or compute pass");
break;
}
}
@ -344,7 +340,7 @@ namespace Ryujinx.Graphics.Metal
public void CommandBufferBarrier()
{
Logger.Warning?.Print(LogClass.Gpu, "Not Implemented!");
Barrier();
}
public void CopyBuffer(BufferHandle src, BufferHandle dst, int srcOffset, int dstOffset, int size)
@ -701,9 +697,12 @@ namespace Ryujinx.Graphics.Metal
public void TextureBarrier()
{
var renderCommandEncoder = GetOrCreateRenderEncoder();
if (CurrentEncoderType == EncoderType.Render)
{
var renderCommandEncoder = GetOrCreateRenderEncoder();
renderCommandEncoder.MemoryBarrier(MTLBarrierScope.Textures, MTLRenderStages.RenderStageFragment, MTLRenderStages.RenderStageFragment);
renderCommandEncoder.MemoryBarrier(MTLBarrierScope.Textures, MTLRenderStages.RenderStageFragment, MTLRenderStages.RenderStageFragment);
}
}
public void TextureBarrierTiled()