|
|
@@ -5893,7 +5893,7 @@ namespace bgfx { namespace d3d12
|
|
|
|
|
|
bool wasCompute = false;
|
|
|
bool viewHasScissor = false;
|
|
|
- bool restoreScissor = false;
|
|
|
+ bool scissorEnabled = false;
|
|
|
Rect viewScissorRect;
|
|
|
viewScissorRect.clear();
|
|
|
|
|
|
@@ -6033,7 +6033,6 @@ namespace bgfx { namespace d3d12
|
|
|
rc.right = viewScissorRect.m_x + viewScissorRect.m_width;
|
|
|
rc.bottom = viewScissorRect.m_y + viewScissorRect.m_height;
|
|
|
m_commandList->RSSetScissorRects(1, &rc);
|
|
|
- restoreScissor = false;
|
|
|
|
|
|
Clear& clr = _render->m_view[view].m_clear;
|
|
|
if (BGFX_CLEAR_NONE != clr.m_flags)
|
|
|
@@ -6530,10 +6529,9 @@ namespace bgfx { namespace d3d12
|
|
|
|
|
|
if (UINT16_MAX == scissor)
|
|
|
{
|
|
|
- if (restoreScissor
|
|
|
- || viewHasScissor)
|
|
|
+ scissorEnabled = viewHasScissor;
|
|
|
+ if (viewHasScissor)
|
|
|
{
|
|
|
- restoreScissor = false;
|
|
|
D3D12_RECT rc;
|
|
|
rc.left = viewScissorRect.m_x;
|
|
|
rc.top = viewScissorRect.m_y;
|
|
|
@@ -6544,14 +6542,11 @@ namespace bgfx { namespace d3d12
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
- restoreScissor = true;
|
|
|
+
|
|
|
Rect scissorRect;
|
|
|
scissorRect.setIntersect(viewScissorRect, _render->m_frameCache.m_rectCache.m_cache[scissor]);
|
|
|
- if (scissorRect.isZeroArea() )
|
|
|
- {
|
|
|
- continue;
|
|
|
- }
|
|
|
|
|
|
+ scissorEnabled = true;
|
|
|
D3D12_RECT rc;
|
|
|
rc.left = scissorRect.m_x;
|
|
|
rc.top = scissorRect.m_y;
|