mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 21:50:12 +01:00
panfrost: Include sample count in payload estimates
Otherwise we might not reserve enough space. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5929>
This commit is contained in:
parent
5c65a27adc
commit
6088891ef7
3 changed files with 7 additions and 1 deletions
|
|
@ -986,6 +986,7 @@ panfrost_create_sampler_view_bo(struct panfrost_sampler_view *so,
|
|||
so->base.u.tex.last_level,
|
||||
so->base.u.tex.first_layer,
|
||||
so->base.u.tex.last_layer,
|
||||
texture->nr_samples,
|
||||
type, prsrc->layout);
|
||||
|
||||
so->bo = panfrost_bo_create(device, size, 0);
|
||||
|
|
@ -1013,6 +1014,7 @@ panfrost_create_sampler_view_bo(struct panfrost_sampler_view *so,
|
|||
so->base.u.tex.last_level,
|
||||
so->base.u.tex.first_layer,
|
||||
so->base.u.tex.last_layer,
|
||||
texture->nr_samples,
|
||||
type, prsrc->layout);
|
||||
size += sizeof(struct mali_texture_descriptor);
|
||||
|
||||
|
|
|
|||
|
|
@ -125,6 +125,7 @@ static unsigned
|
|||
panfrost_texture_num_elements(
|
||||
unsigned first_level, unsigned last_level,
|
||||
unsigned first_layer, unsigned last_layer,
|
||||
unsigned nr_samples,
|
||||
bool is_cube, bool manual_stride)
|
||||
{
|
||||
unsigned first_face = 0, last_face = 0;
|
||||
|
|
@ -137,7 +138,7 @@ panfrost_texture_num_elements(
|
|||
unsigned levels = 1 + last_level - first_level;
|
||||
unsigned layers = 1 + last_layer - first_layer;
|
||||
unsigned faces = 1 + last_face - first_face;
|
||||
unsigned num_elements = levels * layers * faces;
|
||||
unsigned num_elements = levels * layers * faces * MAX2(nr_samples, 1);
|
||||
|
||||
if (manual_stride)
|
||||
num_elements *= 2;
|
||||
|
|
@ -155,6 +156,7 @@ unsigned
|
|||
panfrost_estimate_texture_payload_size(
|
||||
unsigned first_level, unsigned last_level,
|
||||
unsigned first_layer, unsigned last_layer,
|
||||
unsigned nr_samples,
|
||||
enum mali_texture_type type, enum mali_texture_layout layout)
|
||||
{
|
||||
/* Assume worst case */
|
||||
|
|
@ -163,6 +165,7 @@ panfrost_estimate_texture_payload_size(
|
|||
unsigned elements = panfrost_texture_num_elements(
|
||||
first_level, last_level,
|
||||
first_layer, last_layer,
|
||||
nr_samples,
|
||||
type == MALI_TEX_CUBE, manual_stride);
|
||||
|
||||
return sizeof(mali_ptr) * elements;
|
||||
|
|
|
|||
|
|
@ -72,6 +72,7 @@ unsigned
|
|||
panfrost_estimate_texture_payload_size(
|
||||
unsigned first_level, unsigned last_level,
|
||||
unsigned first_layer, unsigned last_layer,
|
||||
unsigned nr_samples,
|
||||
enum mali_texture_type type, enum mali_texture_layout layout);
|
||||
|
||||
void
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue