mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-04-20 05:40:39 +02:00
etnaviv: fix ts size calculation
The size of the TS is screen->specs.bits_per_tile bits per tile, with each tile being 64 bytes of the resource. This gives the same result for 32bpp formats, but reduces the size of TS for 16bpp formats by 2. Signed-off-by: Jonathan Marek <jonathan@marek.ca> Reviewed-by: Christian Gmeiner <christian.gmeiner@gmail.com>
This commit is contained in:
parent
2f540745ad
commit
bc5ae6a330
1 changed files with 3 additions and 4 deletions
|
|
@ -84,13 +84,12 @@ etna_screen_resource_alloc_ts(struct pipe_screen *pscreen,
|
|||
struct etna_resource *rsc)
|
||||
{
|
||||
struct etna_screen *screen = etna_screen(pscreen);
|
||||
size_t rt_ts_size, ts_layer_stride, pixels;
|
||||
size_t rt_ts_size, ts_layer_stride;
|
||||
|
||||
assert(!rsc->ts_bo);
|
||||
|
||||
/* TS only for level 0 -- XXX is this formula correct? */
|
||||
pixels = rsc->levels[0].layer_stride / util_format_get_blocksize(rsc->base.format);
|
||||
ts_layer_stride = align(pixels * screen->specs.bits_per_tile / 0x80,
|
||||
ts_layer_stride = align(DIV_ROUND_UP(rsc->levels[0].layer_stride,
|
||||
64 * 8 / screen->specs.bits_per_tile),
|
||||
0x100 * screen->specs.pixel_pipes);
|
||||
rt_ts_size = ts_layer_stride * rsc->base.array_size;
|
||||
if (rt_ts_size == 0)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue