[Mesa-dev] [PATCH v2 08/14] swr: [rasterizer core] stop single threaded crash exit crash

Tim Rowley timothy.o.rowley at intel.com
Mon Jun 20 21:37:02 UTC 2016


Function static destructors were getting called by exit
handlers before context teardown.
---
 src/gallium/drivers/swr/rasterizer/core/api.cpp | 5 +++--
 1 file 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 2e6f8b3..22a94fb 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
         {
-- 
1.9.1



More information about the mesa-dev mailing list