mirror of
https://github.com/cemu-project/Cemu.git
synced 2025-07-09 00:11:17 +12:00
do vertex buffer restride in a void vertex function
This commit is contained in:
parent
5e9537c777
commit
27925a4fd9
5 changed files with 94 additions and 21 deletions
|
@ -80,7 +80,11 @@ public:
|
|||
MetalVertexBufferCache(class MetalRenderer* metalRenderer) : m_mtlr{metalRenderer} {}
|
||||
~MetalVertexBufferCache();
|
||||
|
||||
// Vertex buffer cache
|
||||
void SetRestrideBufferPipeline(class MetalHybridComputePipeline* restrideBufferPipeline)
|
||||
{
|
||||
m_restrideBufferPipeline = restrideBufferPipeline;
|
||||
}
|
||||
|
||||
void TrackVertexBuffer(uint32 bufferIndex, size_t offset, size_t size, MetalRestrideInfo* restrideInfo)
|
||||
{
|
||||
m_bufferRanges[bufferIndex] = MetalVertexBufferRange{offset, size, restrideInfo};
|
||||
|
@ -101,6 +105,8 @@ public:
|
|||
private:
|
||||
class MetalRenderer* m_mtlr;
|
||||
|
||||
class MetalHybridComputePipeline* m_restrideBufferPipeline = nullptr;
|
||||
|
||||
MetalVertexBufferRange m_bufferRanges[LATTE_MAX_VERTEX_BUFFERS] = {};
|
||||
|
||||
void MemoryRangeChanged(size_t offset, size_t size);
|
||||
|
@ -112,6 +118,12 @@ public:
|
|||
MetalMemoryManager(class MetalRenderer* metalRenderer) : m_mtlr{metalRenderer}, m_bufferAllocator(metalRenderer), m_vertexBufferCache(metalRenderer) {}
|
||||
~MetalMemoryManager();
|
||||
|
||||
// Pipelines
|
||||
void SetRestrideBufferPipeline(class MetalHybridComputePipeline* restrideBufferPipeline)
|
||||
{
|
||||
m_vertexBufferCache.SetRestrideBufferPipeline(restrideBufferPipeline);
|
||||
}
|
||||
|
||||
void ResetTemporaryBuffers()
|
||||
{
|
||||
m_bufferAllocator/*s[m_bufferAllocatorIndex]*/.ResetTemporaryBuffers();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue