mirror of
https://github.com/cemu-project/Cemu.git
synced 2025-07-04 22:11:18 +12:00
bind resources to shaders
This commit is contained in:
parent
cb525b22ff
commit
7ea18d8a5f
5 changed files with 271 additions and 14 deletions
|
@ -24,3 +24,36 @@ MetalBufferAllocation MetalMemoryManager::GetBufferAllocation(size_t size)
|
|||
|
||||
return allocation;
|
||||
}
|
||||
|
||||
void MetalMemoryManager::InitBufferCache(size_t size)
|
||||
{
|
||||
if (m_bufferCache)
|
||||
{
|
||||
printf("MetalMemoryManager::InitBufferCache: buffer cache already initialized\n");
|
||||
return;
|
||||
}
|
||||
|
||||
m_bufferCache = m_mtlr->GetDevice()->newBuffer(size, MTL::ResourceStorageModeShared);
|
||||
}
|
||||
|
||||
void MetalMemoryManager::UploadToBufferCache(const void* data, size_t offset, size_t size)
|
||||
{
|
||||
if (!m_bufferCache)
|
||||
{
|
||||
printf("MetalMemoryManager::UploadToBufferCache: buffer cache not initialized\n");
|
||||
return;
|
||||
}
|
||||
|
||||
memcpy((uint8*)m_bufferCache->contents() + offset, data, size);
|
||||
}
|
||||
|
||||
void MetalMemoryManager::CopyBufferCache(size_t srcOffset, size_t dstOffset, size_t size)
|
||||
{
|
||||
if (!m_bufferCache)
|
||||
{
|
||||
printf("MetalMemoryManager::CopyBufferCache: buffer cache not initialized\n");
|
||||
return;
|
||||
}
|
||||
|
||||
memcpy((uint8*)m_bufferCache->contents() + dstOffset, (uint8*)m_bufferCache->contents() + srcOffset, size);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue