swr: [rasterizer core] change threadsDone to be a 32-bit value.
authorTim Rowley <timothy.o.rowley@intel.com>
Wed, 3 Aug 2016 21:22:20 +0000 (15:22 -0600)
committerTim Rowley <timothy.o.rowley@intel.com>
Wed, 10 Aug 2016 16:07:53 +0000 (11:07 -0500)
Signed-off-by: Tim Rowley <timothy.o.rowley@intel.com>
src/gallium/drivers/swr/rasterizer/core/context.h
src/gallium/drivers/swr/rasterizer/core/threads.cpp
src/gallium/drivers/swr/rasterizer/core/threads.h

index b36154bee533e6c9b5c539c1510d1d4710d2d66f..48cd7991084d111c74add8cdad7bc92d4c1f20aa 100644 (file)
@@ -399,7 +399,7 @@ struct DRAW_CONTEXT
     FE_WORK         FeWork;
 
     volatile OSALIGNLINE(uint32_t)   FeLock;
-    volatile int64_t    threadsDone;
+    volatile int32_t    threadsDone;
 
     SYNC_DESC       retireCallback; // Call this func when this DC is retired.
 };
index e87e732fc8559495ae423f4ee281d3a769b261a2..ea7cbab364744ae23aff0ade3260d6bbd075de5c 100644 (file)
@@ -343,9 +343,9 @@ INLINE void ExecuteCallbacks(SWR_CONTEXT* pContext, DRAW_CONTEXT* pDC)
 }
 
 // inlined-only version
-INLINE int64_t CompleteDrawContextInl(SWR_CONTEXT* pContext, DRAW_CONTEXT* pDC)
+INLINE int32_t CompleteDrawContextInl(SWR_CONTEXT* pContext, DRAW_CONTEXT* pDC)
 {
-    int64_t result = InterlockedDecrement64(&pDC->threadsDone);
+    int32_t result = InterlockedDecrement((volatile LONG*)&pDC->threadsDone);
     SWR_ASSERT(result >= 0);
 
     if (result == 0)
@@ -372,7 +372,7 @@ INLINE int64_t CompleteDrawContextInl(SWR_CONTEXT* pContext, DRAW_CONTEXT* pDC)
 }
 
 // available to other translation modules
-int64_t CompleteDrawContext(SWR_CONTEXT* pContext, DRAW_CONTEXT* pDC)
+int32_t CompleteDrawContext(SWR_CONTEXT* pContext, DRAW_CONTEXT* pDC)
 {
     return CompleteDrawContextInl(pContext, pDC);
 }
index e7b4924f0e8ede304c7b62ba5303c26003bf6934..215c699a9d315c43ae1bd49b5df3744c57f995f8 100644 (file)
@@ -67,4 +67,4 @@ void DestroyThreadPool(SWR_CONTEXT *pContext, THREAD_POOL *pPool);
 void WorkOnFifoFE(SWR_CONTEXT *pContext, uint32_t workerId, uint32_t &curDrawFE);
 void WorkOnFifoBE(SWR_CONTEXT *pContext, uint32_t workerId, uint32_t &curDrawBE, TileSet &usedTiles, uint32_t numaNode, uint32_t numaMask);
 void WorkOnCompute(SWR_CONTEXT *pContext, uint32_t workerId, uint32_t &curDrawBE);
-int64_t CompleteDrawContext(SWR_CONTEXT* pContext, DRAW_CONTEXT* pDC);
\ No newline at end of file
+int32_t CompleteDrawContext(SWR_CONTEXT* pContext, DRAW_CONTEXT* pDC);