mirror of
https://github.com/bkaradzic/bgfx.git
synced 2026-09-09 12:08:21 +00:00
Metal: Fixed depth/stencil store action on the main swap chain when using MSAA. (#3683)
This commit is contained in:
committed by
GitHub
parent
50bf41b224
commit
d6458ee253
@@ -4751,17 +4751,15 @@ static_assert(BX_COUNTOF(s_accessNames) == Access::Count, "Invalid s_accessNames
|
||||
desc->setLoadAction(MTL::LoadActionLoad);
|
||||
}
|
||||
|
||||
if (NULL != m_capture
|
||||
&& !isValid(fbh)
|
||||
&& m_hasStoreActionStoreAndMultisampleResolve)
|
||||
{
|
||||
desc->setStoreAction(desc->texture()->sampleCount() > 1 ? MTL::StoreActionStoreAndMultisampleResolve : MTL::StoreActionStore);
|
||||
const MTL::StoreAction multisampleStoreAction = m_hasStoreActionStoreAndMultisampleResolve
|
||||
? MTL::StoreActionStoreAndMultisampleResolve
|
||||
: MTL::StoreActionMultisampleResolve
|
||||
;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
desc->setStoreAction(desc->texture()->sampleCount() > 1 ? MTL::StoreActionMultisampleResolve : MTL::StoreActionStore);
|
||||
}
|
||||
desc->setStoreAction(desc->texture()->sampleCount() > 1
|
||||
? multisampleStoreAction
|
||||
: MTL::StoreActionStore
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4774,10 +4772,7 @@ static_assert(BX_COUNTOF(s_accessNames) == Access::Count, "Invalid s_accessNames
|
||||
? MTL::LoadActionClear
|
||||
: MTL::LoadActionLoad)
|
||||
;
|
||||
depthAttachment->setStoreAction(NULL != m_mainFrameBuffer.m_swapChain && NULL != m_mainFrameBuffer.m_swapChain->m_backBufferColorMsaa
|
||||
? MTL::StoreActionDontCare
|
||||
: MTL::StoreActionStore)
|
||||
;
|
||||
depthAttachment->setStoreAction(MTL::StoreActionStore);
|
||||
}
|
||||
|
||||
MTL::RenderPassStencilAttachmentDescriptor* stencilAttachment = renderPassDescriptor->stencilAttachment();
|
||||
@@ -4789,10 +4784,7 @@ static_assert(BX_COUNTOF(s_accessNames) == Access::Count, "Invalid s_accessNames
|
||||
? MTL::LoadActionClear
|
||||
: MTL::LoadActionLoad)
|
||||
;
|
||||
stencilAttachment->setStoreAction(NULL != m_mainFrameBuffer.m_swapChain && NULL != m_mainFrameBuffer.m_swapChain->m_backBufferColorMsaa
|
||||
? MTL::StoreActionDontCare
|
||||
: MTL::StoreActionStore)
|
||||
;
|
||||
stencilAttachment->setStoreAction(MTL::StoreActionStore);
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -4804,17 +4796,15 @@ static_assert(BX_COUNTOF(s_accessNames) == Access::Count, "Invalid s_accessNames
|
||||
{
|
||||
desc->setLoadAction(MTL::LoadActionLoad);
|
||||
|
||||
if (NULL != m_capture
|
||||
&& !isValid(fbh)
|
||||
&& m_hasStoreActionStoreAndMultisampleResolve)
|
||||
{
|
||||
desc->setStoreAction(desc->texture()->sampleCount() > 1 ? MTL::StoreActionStoreAndMultisampleResolve : MTL::StoreActionStore);
|
||||
const MTL::StoreAction multisampleStoreAction = m_hasStoreActionStoreAndMultisampleResolve
|
||||
? MTL::StoreActionStoreAndMultisampleResolve
|
||||
: MTL::StoreActionMultisampleResolve
|
||||
;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
desc->setStoreAction(desc->texture()->sampleCount() > 1 ? MTL::StoreActionMultisampleResolve : MTL::StoreActionStore);
|
||||
}
|
||||
desc->setStoreAction(desc->texture()->sampleCount() > 1
|
||||
? multisampleStoreAction
|
||||
: MTL::StoreActionStore
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user