diff options
author | Tim Rowley <[email protected]> | 2017-08-07 20:33:24 -0500 |
---|---|---|
committer | Tim Rowley <[email protected]> | 2017-08-16 14:20:22 -0500 |
commit | b333bc753e2dd1ed1a676606046a4289e7d58187 (patch) | |
tree | f9a785725ccd4e4f954a7207e4cbc611da095fb7 | |
parent | a44b334e48f24060064eac49c73d8c767c2becf7 (diff) |
swr/rast: Fix invalid casting for calls to Interlocked* functions
CID: 1416243, 1416244, 1416255
CC: [email protected]
Reviewed-by: Bruce Cherniak <[email protected]>
-rw-r--r-- | src/gallium/drivers/swr/rasterizer/core/api.cpp | 2 | ||||
-rw-r--r-- | src/gallium/drivers/swr/rasterizer/core/context.h | 8 | ||||
-rw-r--r-- | src/gallium/drivers/swr/rasterizer/core/threads.cpp | 4 |
3 files changed, 7 insertions, 7 deletions
diff --git a/src/gallium/drivers/swr/rasterizer/core/api.cpp b/src/gallium/drivers/swr/rasterizer/core/api.cpp index 8dc9ac24a74..ccb6dfb7a19 100644 --- a/src/gallium/drivers/swr/rasterizer/core/api.cpp +++ b/src/gallium/drivers/swr/rasterizer/core/api.cpp @@ -189,7 +189,7 @@ void QueueWork(SWR_CONTEXT *pContext) if (IsDraw) { - InterlockedIncrement((volatile long*)&pContext->drawsOutstandingFE); + InterlockedIncrement(&pContext->drawsOutstandingFE); } _ReadWriteBarrier(); diff --git a/src/gallium/drivers/swr/rasterizer/core/context.h b/src/gallium/drivers/swr/rasterizer/core/context.h index 131b3cbbb03..bcd5801a3b6 100644 --- a/src/gallium/drivers/swr/rasterizer/core/context.h +++ b/src/gallium/drivers/swr/rasterizer/core/context.h @@ -409,12 +409,12 @@ struct DRAW_CONTEXT bool dependent; // Backend work is dependent on all previous BE bool isCompute; // Is this DC a compute context? bool cleanupState; // True if this is the last draw using an entry in the state ring. - volatile bool doneFE; // Is FE work done for this draw? FE_WORK FeWork; + volatile OSALIGNLINE(bool) doneFE; // Is FE work done for this draw? volatile OSALIGNLINE(uint32_t) FeLock; - volatile int32_t threadsDone; + volatile OSALIGNLINE(uint32_t) threadsDone; SYNC_DESC retireCallback; // Call this func when this DC is retired. }; @@ -503,9 +503,9 @@ struct SWR_CONTEXT // Scratch space for workers. uint8_t** ppScratch; - volatile int32_t drawsOutstandingFE; + volatile OSALIGNLINE(uint32_t) drawsOutstandingFE; - CachingAllocator cachingArenaAllocator; + OSALIGNLINE(CachingAllocator) cachingArenaAllocator; uint32_t frameCount; uint32_t lastFrameChecked; diff --git a/src/gallium/drivers/swr/rasterizer/core/threads.cpp b/src/gallium/drivers/swr/rasterizer/core/threads.cpp index 70bde027ee0..b704d23f547 100644 --- a/src/gallium/drivers/swr/rasterizer/core/threads.cpp +++ b/src/gallium/drivers/swr/rasterizer/core/threads.cpp @@ -393,7 +393,7 @@ INLINE void ExecuteCallbacks(SWR_CONTEXT* pContext, uint32_t workerId, DRAW_CONT // inlined-only version INLINE int32_t CompleteDrawContextInl(SWR_CONTEXT* pContext, uint32_t workerId, DRAW_CONTEXT* pDC) { - int32_t result = InterlockedDecrement((volatile long*)&pDC->threadsDone); + int32_t result = static_cast<int32_t>(InterlockedDecrement(&pDC->threadsDone)); SWR_ASSERT(result >= 0); AR_FLUSH(pDC->drawId); @@ -639,7 +639,7 @@ INLINE void CompleteDrawFE(SWR_CONTEXT* pContext, uint32_t workerId, DRAW_CONTEX _mm_mfence(); pDC->doneFE = true; - InterlockedDecrement((volatile long*)&pContext->drawsOutstandingFE); + InterlockedDecrement(&pContext->drawsOutstandingFE); } void WorkOnFifoFE(SWR_CONTEXT *pContext, uint32_t workerId, uint32_t &curDrawFE) |