Merge pull request #14435 from Simonx22/fix/metal-early-stop-shutdown
Metal: Always run endEncoding on command encoders
This commit is contained in:
@@ -383,11 +383,14 @@ void Metal::StateTracker::EndRenderPass()
|
|||||||
|
|
||||||
void Metal::StateTracker::FlushEncoders()
|
void Metal::StateTracker::FlushEncoders()
|
||||||
{
|
{
|
||||||
if (!m_current_render_cmdbuf)
|
const bool needs_submit = m_current_render_cmdbuf;
|
||||||
return;
|
if (needs_submit)
|
||||||
|
{
|
||||||
EndRenderPass();
|
EndRenderPass();
|
||||||
for (int i = 0; i <= static_cast<int>(UploadBuffer::Last); ++i)
|
for (int i = 0; i <= static_cast<int>(UploadBuffer::Last); ++i)
|
||||||
Sync(m_upload_buffers[i]);
|
Sync(m_upload_buffers[i]);
|
||||||
|
}
|
||||||
|
|
||||||
if (!m_manual_buffer_upload)
|
if (!m_manual_buffer_upload)
|
||||||
{
|
{
|
||||||
ASSERT(!m_upload_cmdbuf && "Should never be used!");
|
ASSERT(!m_upload_cmdbuf && "Should never be used!");
|
||||||
@@ -407,6 +410,10 @@ void Metal::StateTracker::FlushEncoders()
|
|||||||
m_texture_upload_encoder = nullptr;
|
m_texture_upload_encoder = nullptr;
|
||||||
m_texture_upload_cmdbuf = nullptr;
|
m_texture_upload_cmdbuf = nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!needs_submit)
|
||||||
|
return;
|
||||||
|
|
||||||
[m_current_render_cmdbuf
|
[m_current_render_cmdbuf
|
||||||
addCompletedHandler:[backref = m_backref, draw = m_current_draw,
|
addCompletedHandler:[backref = m_backref, draw = m_current_draw,
|
||||||
q = std::move(m_current_perf_query)](id<MTLCommandBuffer> buf) {
|
q = std::move(m_current_perf_query)](id<MTLCommandBuffer> buf) {
|
||||||
|
|||||||
Reference in New Issue
Block a user