swr/rast: Fix invalid casting for calls to Interlocked* functions

CID: 1416243, 1416244, 1416255
CC: mesa-stable@lists.freedesktop.org
Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
(cherry picked from commit b333bc753e)
[Emil Velikov: resolve trivial conflicts - LONG -> long]
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>

Conflicts:
	src/gallium/drivers/swr/rasterizer/core/api.cpp
	src/gallium/drivers/swr/rasterizer/core/threads.cpp
This commit is contained in:
Tim Rowley 2017-08-07 20:33:24 -05:00 committed by Emil Velikov
parent 47507ec1fd
commit bdab7c69f5
3 changed files with 7 additions and 7 deletions

View file

@ -189,7 +189,7 @@ void QueueWork(SWR_CONTEXT *pContext)
if (IsDraw)
{
InterlockedIncrement((volatile LONG*)&pContext->drawsOutstandingFE);
InterlockedIncrement(&pContext->drawsOutstandingFE);
}
_ReadWriteBarrier();

View file

@ -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;

View file

@ -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)