mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-03-07 03:20:28 +01:00
panvk: Set unused attribute buffers descriptors to zero
We assume two attribute buffer slot for each attribute buffer. Let's fill unused slots with zeros so we don't risk unexpected read accesses if the slot contains garbage. Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com> Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28927>
This commit is contained in:
parent
a195486e6f
commit
5a37a62bed
1 changed files with 8 additions and 2 deletions
|
|
@ -831,6 +831,7 @@ panvk_draw_emit_attrib_buf(const struct panvk_draw_info *draw,
|
|||
mali_ptr addr = buf->address & ~63ULL;
|
||||
unsigned size = buf->size + (buf->address & 63);
|
||||
unsigned divisor = draw->padded_vertex_count * buf_info->instance_divisor;
|
||||
void *buf_ext = desc + pan_size(ATTRIBUTE_BUFFER);
|
||||
|
||||
/* TODO: support instanced arrays */
|
||||
if (draw->instance_count <= 1) {
|
||||
|
|
@ -879,12 +880,17 @@ panvk_draw_emit_attrib_buf(const struct panvk_draw_info *draw,
|
|||
cfg.divisor_e = divisor_e;
|
||||
}
|
||||
|
||||
desc += pan_size(ATTRIBUTE_BUFFER);
|
||||
pan_pack(desc, ATTRIBUTE_BUFFER_CONTINUATION_NPOT, cfg) {
|
||||
pan_pack(buf_ext, ATTRIBUTE_BUFFER_CONTINUATION_NPOT, cfg) {
|
||||
cfg.divisor_numerator = divisor_num;
|
||||
cfg.divisor = buf_info->instance_divisor;
|
||||
}
|
||||
|
||||
buf_ext = NULL;
|
||||
}
|
||||
|
||||
/* If the buffer extension wasn't used, memset(0) */
|
||||
if (buf_ext)
|
||||
memset(buf_ext, 0, pan_size(ATTRIBUTE_BUFFER));
|
||||
}
|
||||
|
||||
static void
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue