Mesa (master): softpipe: Support non-depth-stencil formats in sp_tile_cache_flush_clear().
MichaŠKról
michal at kemper.freedesktop.org
Tue Jul 20 13:01:49 UTC 2010
Module: Mesa
Branch: master
Commit: 3b2ca688a7016fe504768ecb72f2e42c7b2905ac
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=3b2ca688a7016fe504768ecb72f2e42c7b2905ac
Author: Michal Krol <michal at vmware.com>
Date: Tue Jul 20 15:00:28 2010 +0200
softpipe: Support non-depth-stencil formats in sp_tile_cache_flush_clear().
---
src/gallium/drivers/softpipe/sp_tile_cache.c | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/gallium/drivers/softpipe/sp_tile_cache.c b/src/gallium/drivers/softpipe/sp_tile_cache.c
index f4db6f6..05a3294 100644
--- a/src/gallium/drivers/softpipe/sp_tile_cache.c
+++ b/src/gallium/drivers/softpipe/sp_tile_cache.c
@@ -284,7 +284,11 @@ sp_tile_cache_flush_clear(struct softpipe_tile_cache *tc)
assert(pt->resource);
/* clear the scratch tile to the clear value */
- clear_tile(&tc->tile, pt->resource->format, tc->clear_val);
+ if (tc->depth_stencil) {
+ clear_tile(&tc->tile, pt->resource->format, tc->clear_val);
+ } else {
+ clear_tile_rgba(&tc->tile, pt->resource->format, tc->clear_color);
+ }
/* push the tile to all positions marked as clear */
for (y = 0; y < h; y += TILE_SIZE) {
@@ -292,10 +296,11 @@ sp_tile_cache_flush_clear(struct softpipe_tile_cache *tc)
union tile_address addr = tile_address(x, y);
if (is_clear_flag_set(tc->clear_flags, addr)) {
+ /* write the scratch tile to the surface */
pipe_put_tile_raw(tc->pipe,
pt,
x, y, TILE_SIZE, TILE_SIZE,
- tc->tile.data.color32, 0/*STRIDE*/);
+ tc->tile.data.any, 0/*STRIDE*/);
numCleared++;
}
More information about the mesa-commit
mailing list