Graphics: Use debug regions inside render pass to fix an issue with OpenGL context switch
This commit is contained in:
@@ -62,11 +62,11 @@ namespace Nz
|
||||
builder.TextureBarrier(textureTransition.srcStageMask, textureTransition.dstStageMask, textureTransition.srcAccessMask, textureTransition.dstAccessMask, textureTransition.oldLayout, textureTransition.newLayout, *texture);
|
||||
}
|
||||
|
||||
builder.BeginRenderPass(*passData.framebuffer, *passData.renderPass, passData.renderRect);
|
||||
|
||||
if (!passData.name.empty())
|
||||
builder.BeginDebugRegion(passData.name, Nz::Color::Green);
|
||||
|
||||
builder.BeginRenderPass(*passData.framebuffer, *passData.renderPass, passData.renderRect);
|
||||
|
||||
bool first = true;
|
||||
for (auto& subpass : passData.subpasses)
|
||||
{
|
||||
@@ -78,10 +78,10 @@ namespace Nz
|
||||
subpass.commandCallback(builder, passData.renderRect);
|
||||
}
|
||||
|
||||
builder.EndRenderPass();
|
||||
|
||||
if (!passData.name.empty())
|
||||
builder.EndDebugRegion();
|
||||
|
||||
builder.EndRenderPass();
|
||||
});
|
||||
|
||||
passData.forceCommandBufferRegeneration = false;
|
||||
|
||||
@@ -348,9 +348,9 @@ namespace Nz
|
||||
clearValues[1].depth = 1.f;
|
||||
clearValues[1].stencil = 0;
|
||||
|
||||
builder.BeginDebugRegion("Main window rendering", Color::Green);
|
||||
builder.BeginRenderPass(renderTarget.GetFramebuffer(renderFrame.GetFramebufferIndex()), renderTarget.GetRenderPass(), renderRegion, { clearValues[0], clearValues[1] });
|
||||
{
|
||||
builder.BeginRenderPass(renderTarget.GetFramebuffer(renderFrame.GetFramebufferIndex()), renderTarget.GetRenderPass(), renderRegion, { clearValues[0], clearValues[1] });
|
||||
builder.BeginDebugRegion("Main window rendering", Color::Green);
|
||||
{
|
||||
builder.SetScissor(renderRegion);
|
||||
builder.SetViewport(renderRegion);
|
||||
@@ -361,9 +361,9 @@ namespace Nz
|
||||
|
||||
builder.Draw(3);
|
||||
}
|
||||
builder.EndRenderPass();
|
||||
builder.EndDebugRegion();
|
||||
}
|
||||
builder.EndDebugRegion();
|
||||
builder.EndRenderPass();
|
||||
|
||||
}, QueueType::Graphics);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user