summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Rowley <[email protected]>2017-06-08 14:44:32 -0500
committerTim Rowley <[email protected]>2017-06-16 16:20:16 -0500
commitbea00a7b6ef9483f7ced507df863259e89c8c09c (patch)
tree0f0f74b1ac3c7edbedf44918eebed3d8d9119af1
parent5c08bfbd174646ab8e113f56ca8332e754539ab4 (diff)
swr/rast: Don't transition hottile resolved->dirty during store tiles
Fixes crash when dumping render targets and RT surface has been deleted. Reviewed-by: Bruce Cherniak <[email protected]>
-rw-r--r--src/gallium/drivers/swr/rasterizer/core/backend.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/gallium/drivers/swr/rasterizer/core/backend.cpp b/src/gallium/drivers/swr/rasterizer/core/backend.cpp
index ca9a8b40449..524c4f4e609 100644
--- a/src/gallium/drivers/swr/rasterizer/core/backend.cpp
+++ b/src/gallium/drivers/swr/rasterizer/core/backend.cpp
@@ -386,7 +386,10 @@ void ProcessStoreTileBE(DRAW_CONTEXT *pDC, uint32_t workerId, uint32_t macroTile
if (pHotTile->state == HOTTILE_DIRTY || pHotTile->state == HOTTILE_RESOLVED)
{
- pHotTile->state = (HOTTILE_STATE)pDesc->postStoreTileState;
+ if (!(pDesc->postStoreTileState == HOTTILE_DIRTY && pHotTile->state == HOTTILE_RESOLVED))
+ {
+ pHotTile->state = (HOTTILE_STATE)pDesc->postStoreTileState;
+ }
}
}
AR_END(BEStoreTiles, 1);