mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 17:30:12 +01:00
panfrost: Stop mixing depth and number of samples
Texture depth and MSAA are two different concepts even if they are exclusive on Mali GPUs (depth field is repurposed for sample index there). Let's not mix them and adjust the slice_full_size calculation to take both into account. Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8125>
This commit is contained in:
parent
728069485d
commit
e9e823ec83
1 changed files with 5 additions and 12 deletions
|
|
@ -331,14 +331,9 @@ panfrost_setup_slices(struct panfrost_device *dev,
|
|||
/* MSAA is implemented as a 3D texture with z corresponding to the
|
||||
* sample #, horrifyingly enough */
|
||||
|
||||
bool msaa = res->nr_samples > 1;
|
||||
unsigned nr_samples = MAX2(res->nr_samples, 1);
|
||||
|
||||
if (msaa) {
|
||||
assert(depth == 1);
|
||||
depth = res->nr_samples;
|
||||
}
|
||||
|
||||
assert(depth > 0);
|
||||
assert(depth == 1 || nr_samples == 1);
|
||||
|
||||
/* Tiled operates blockwise; linear is packed. Also, anything
|
||||
* we render to has to be tile-aligned. Maybe not strictly
|
||||
|
|
@ -399,7 +394,8 @@ panfrost_setup_slices(struct panfrost_device *dev,
|
|||
slice->row_stride = stride * (tile_h >> tile_shift);
|
||||
|
||||
unsigned slice_one_size = slice->line_stride * effective_height;
|
||||
unsigned slice_full_size = slice_one_size * effective_depth;
|
||||
unsigned slice_full_size =
|
||||
slice_one_size * effective_depth * nr_samples;
|
||||
|
||||
slice->surface_stride = slice_one_size;
|
||||
|
||||
|
|
@ -430,10 +426,7 @@ panfrost_setup_slices(struct panfrost_device *dev,
|
|||
|
||||
width = u_minify(width, 1);
|
||||
height = u_minify(height, 1);
|
||||
|
||||
/* Don't mipmap the sample count */
|
||||
if (!msaa)
|
||||
depth = u_minify(depth, 1);
|
||||
depth = u_minify(depth, 1);
|
||||
}
|
||||
|
||||
assert(res->array_size);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue