mirror of
https://github.com/cemu-project/Cemu.git
synced 2025-01-08 08:00:44 +01:00
always use blit commands for buffer copies on non-apple GPUs
This commit is contained in:
parent
a4ff855585
commit
2403cf948a
@ -161,7 +161,8 @@ MetalRenderer::MetalRenderer()
|
|||||||
auto copyTextureToColorPipelineDescriptor = MTL::RenderPipelineDescriptor::alloc()->init();
|
auto copyTextureToColorPipelineDescriptor = MTL::RenderPipelineDescriptor::alloc()->init();
|
||||||
|
|
||||||
// Hybrid pipelines
|
// Hybrid pipelines
|
||||||
m_copyBufferToBufferPipeline = new MetalHybridComputePipeline(this, utilityLibrary, "vertexCopyBufferToBuffer");
|
if (m_isAppleGPU)
|
||||||
|
m_copyBufferToBufferPipeline = new MetalHybridComputePipeline(this, utilityLibrary, "vertexCopyBufferToBuffer");
|
||||||
//m_copyTextureToTexturePipeline = new MetalHybridComputePipeline(this, utilityLibrary, "vertexCopyTextureToTexture");
|
//m_copyTextureToTexturePipeline = new MetalHybridComputePipeline(this, utilityLibrary, "vertexCopyTextureToTexture");
|
||||||
m_restrideBufferPipeline = new MetalHybridComputePipeline(this, utilityLibrary, "vertexRestrideBuffer");
|
m_restrideBufferPipeline = new MetalHybridComputePipeline(this, utilityLibrary, "vertexRestrideBuffer");
|
||||||
utilityLibrary->release();
|
utilityLibrary->release();
|
||||||
@ -171,7 +172,8 @@ MetalRenderer::MetalRenderer()
|
|||||||
|
|
||||||
MetalRenderer::~MetalRenderer()
|
MetalRenderer::~MetalRenderer()
|
||||||
{
|
{
|
||||||
delete m_copyBufferToBufferPipeline;
|
if (m_isAppleGPU)
|
||||||
|
delete m_copyBufferToBufferPipeline;
|
||||||
//delete m_copyTextureToTexturePipeline;
|
//delete m_copyTextureToTexturePipeline;
|
||||||
delete m_restrideBufferPipeline;
|
delete m_restrideBufferPipeline;
|
||||||
|
|
||||||
@ -778,7 +780,8 @@ void MetalRenderer::bufferCache_copy(uint32 srcOffset, uint32 dstOffset, uint32
|
|||||||
|
|
||||||
void MetalRenderer::bufferCache_copyStreamoutToMainBuffer(uint32 srcOffset, uint32 dstOffset, uint32 size)
|
void MetalRenderer::bufferCache_copyStreamoutToMainBuffer(uint32 srcOffset, uint32 dstOffset, uint32 size)
|
||||||
{
|
{
|
||||||
if (m_encoderType == MetalEncoderType::Render)
|
// Do the copy in a vertex shader on Apple GPUs
|
||||||
|
if (m_isAppleGPU && m_encoderType == MetalEncoderType::Render)
|
||||||
{
|
{
|
||||||
auto renderCommandEncoder = static_cast<MTL::RenderCommandEncoder*>(m_commandEncoder);
|
auto renderCommandEncoder = static_cast<MTL::RenderCommandEncoder*>(m_commandEncoder);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user