Module: Mesa Branch: mesa_7_7_branch Commit: 842351dd7640fe6b71819e8c39fbbe99a55b3bfc URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=842351dd7640fe6b71819e8c39fbbe99a55b3bfc
Author: Brian Paul <[email protected]> Date: Mon Mar 8 11:40:40 2010 -0700 softpipe: zero-out entire clear_flags array in sp_tile_cache_flush_clear() Before, we only cleared the flags for the active tiles (the ones inside the framebuffer bound). The problem is if we later bound a different, larger surface to the tile cache we'd have some stale clear-flags still set (and mistakenly clear some tiles in the new surface). Fixes fd.o bug 26932. (cherry picked from commit e1762fb870f86afc4f6bd000b4a1c059d161f10d) --- src/gallium/drivers/softpipe/sp_tile_cache.c | 7 ++++--- 1 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/softpipe/sp_tile_cache.c b/src/gallium/drivers/softpipe/sp_tile_cache.c index 65872ce..4edc44e 100644 --- a/src/gallium/drivers/softpipe/sp_tile_cache.c +++ b/src/gallium/drivers/softpipe/sp_tile_cache.c @@ -297,13 +297,14 @@ sp_tile_cache_flush_clear(struct softpipe_tile_cache *tc) x, y, TILE_SIZE, TILE_SIZE, tc->tile.data.color32, 0/*STRIDE*/); - /* do this? */ - clear_clear_flag(tc->clear_flags, addr); - numCleared++; } } } + + /* reset all clear flags to zero */ + memset(tc->clear_flags, 0, sizeof(tc->clear_flags)); + #if 0 debug_printf("num cleared: %u\n", numCleared); #endif _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
