summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Rowley <[email protected]>2016-06-10 10:18:45 -0600
committerTim Rowley <[email protected]>2016-06-23 10:50:36 -0500
commitc867c22d855163ecbf18d5606b27c9d2cb50a148 (patch)
tree613c1c2581470b11b22c23137637718d832882f2
parent0f025eb478bfcca3f13c52fe7bc77f510bfc4486 (diff)
swr: [rasterizer core] stop single threaded crash exit crash
Function static destructors were getting called by exit handlers before context teardown. Reviewed-by: Bruce Cherniak <[email protected]>
-rw-r--r--src/gallium/drivers/swr/rasterizer/core/api.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/gallium/drivers/swr/rasterizer/core/api.cpp b/src/gallium/drivers/swr/rasterizer/core/api.cpp
index 2e6f8b3a16d..22a94fbf731 100644
--- a/src/gallium/drivers/swr/rasterizer/core/api.cpp
+++ b/src/gallium/drivers/swr/rasterizer/core/api.cpp
@@ -181,6 +181,8 @@ void WakeAllThreads(SWR_CONTEXT *pContext)
pContext->FifosNotEmpty.notify_all();
}
+static TileSet gSingleThreadLockedTiles;
+
template<bool IsDraw>
void QueueWork(SWR_CONTEXT *pContext)
{
@@ -213,10 +215,9 @@ void QueueWork(SWR_CONTEXT *pContext)
if (IsDraw)
{
- static TileSet lockedTiles;
uint64_t curDraw[2] = { pContext->pCurDrawContext->drawId, pContext->pCurDrawContext->drawId };
WorkOnFifoFE(pContext, 0, curDraw[0]);
- WorkOnFifoBE(pContext, 0, curDraw[1], lockedTiles, 0, 0);
+ WorkOnFifoBE(pContext, 0, curDraw[1], gSingleThreadLockedTiles, 0, 0);
}
else
{