softpipe: fix texture view crashes
I noticed we crashed piglit arb_texture_view-rendering-formats
when run on softpipe.
This fixes the clear tiles to use the surface format not the
underlying storage format.
This fixes a bunch of srgb piglits as well.
Fixes: 396ac41fc2 (softpipe: add integer support)
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
This commit is contained in:
@@ -373,17 +373,18 @@ sp_tile_cache_flush_clear(struct softpipe_tile_cache *tc, int layer)
|
||||
if (util_format_is_pure_uint(tc->surface->format)) {
|
||||
pipe_put_tile_ui_format(pt, tc->transfer_map[layer],
|
||||
x, y, TILE_SIZE, TILE_SIZE,
|
||||
pt->resource->format,
|
||||
tc->surface->format,
|
||||
(unsigned *) tc->tile->data.colorui128);
|
||||
} else if (util_format_is_pure_sint(tc->surface->format)) {
|
||||
pipe_put_tile_i_format(pt, tc->transfer_map[layer],
|
||||
x, y, TILE_SIZE, TILE_SIZE,
|
||||
pt->resource->format,
|
||||
tc->surface->format,
|
||||
(int *) tc->tile->data.colori128);
|
||||
} else {
|
||||
pipe_put_tile_rgba(pt, tc->transfer_map[layer],
|
||||
x, y, TILE_SIZE, TILE_SIZE,
|
||||
(float *) tc->tile->data.color);
|
||||
pipe_put_tile_rgba_format(pt, tc->transfer_map[layer],
|
||||
x, y, TILE_SIZE, TILE_SIZE,
|
||||
tc->surface->format,
|
||||
(float *) tc->tile->data.color);
|
||||
}
|
||||
}
|
||||
numCleared++;
|
||||
|
||||
Reference in New Issue
Block a user