mirror of
https://github.com/Ryujinx/Ryujinx.git
synced 2025-08-06 06:22:33 -07:00
Don’t do inline vertex buffer updates
Somehow broke zero buff MTLVertexDescriptor, but fixes broken geoemtry so I’m pushing anyway
This commit is contained in:
committed by
Isaac Marovitz
parent
6f6ccb7898
commit
6aff6401fb
@@ -179,6 +179,7 @@ namespace Ryujinx.Graphics.Metal
|
||||
{
|
||||
if (_currentState.Dirty.HasFlag(DirtyFlags.RenderPipeline))
|
||||
{
|
||||
SetVertexBuffers(renderCommandEncoder, _currentState.VertexBuffers);
|
||||
SetRenderPipelineState(renderCommandEncoder);
|
||||
}
|
||||
|
||||
@@ -222,11 +223,6 @@ namespace Ryujinx.Graphics.Metal
|
||||
SetScissors(renderCommandEncoder);
|
||||
}
|
||||
|
||||
if (_currentState.Dirty.HasFlag(DirtyFlags.VertexBuffers))
|
||||
{
|
||||
SetVertexBuffers(renderCommandEncoder, _currentState.VertexBuffers);
|
||||
}
|
||||
|
||||
if (_currentState.Dirty.HasFlag(DirtyFlags.Buffers))
|
||||
{
|
||||
SetRenderBuffers(renderCommandEncoder, _currentState.UniformBuffers, _currentState.StorageBuffers);
|
||||
@@ -683,15 +679,8 @@ namespace Ryujinx.Graphics.Metal
|
||||
// Update the buffers on the pipeline
|
||||
UpdatePipelineVertexState(_currentState.VertexBuffers, _currentState.VertexAttribs);
|
||||
|
||||
// Inline update
|
||||
if (_pipeline.Encoders.TryGetRenderEncoder(out MTLRenderCommandEncoder renderCommandEncoder))
|
||||
{
|
||||
SetVertexBuffers(renderCommandEncoder, _currentState.VertexBuffers);
|
||||
return;
|
||||
}
|
||||
|
||||
// Mark dirty
|
||||
_currentState.Dirty |= DirtyFlags.RenderPipeline | DirtyFlags.VertexBuffers;
|
||||
_currentState.Dirty |= DirtyFlags.RenderPipeline;
|
||||
}
|
||||
|
||||
public void UpdateUniformBuffers(ReadOnlySpan<BufferAssignment> buffers)
|
||||
|
Reference in New Issue
Block a user