pDC->pTileMgr->getTileIndices(tileID, x, y);
if (((x ^ y) & numaMask) != numaNode)
{
+ _mm_pause();
continue;
}
if (!tile->getNumQueued())
{
+ _mm_pause();
continue;
}
// can only work on this draw if it's not in use by other threads
if (lockedTiles.get(tileID))
{
+ _mm_pause();
continue;
}
// This tile is already locked. So let's add it to our locked tiles set. This way we
// don't try locking this one again.
lockedTiles.set(tileID);
+ _mm_pause();
}
}
}
uint32_t dcSlot = curDraw % pContext->MAX_DRAWS_IN_FLIGHT;
DRAW_CONTEXT* pDC = &pContext->dcRing[dcSlot];
- if (!pDC->isCompute && !pDC->FeLock)
+ if (!pDC->FeLock && !pDC->isCompute)
{
if (CheckDependencyFE(pContext, pDC, lastRetiredFE))
{
CompleteDrawFE(pContext, workerId, pDC);
}
+ else
+ {
+ _mm_pause();
+ }
+ }
+ else
+ {
+ _mm_pause();
}
+
curDraw++;
}
}