panfrost: Handle disabled/empty UBOs
Prevents an assert(0) later in this (not so edge) case. We still have to have a dummy there. Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
This commit is contained in:
parent
bd2fc60a8a
commit
f28e9e868b
1 changed files with 13 additions and 1 deletions
|
|
@ -1311,9 +1311,21 @@ panfrost_emit_for_draw(struct panfrost_context *ctx, bool with_vertex_data)
|
|||
/* The rest are honest-to-goodness UBOs */
|
||||
|
||||
for (unsigned ubo = 1; ubo < ubo_count; ++ubo) {
|
||||
mali_ptr gpu = panfrost_map_constant_buffer_gpu(ctx, buf, ubo);
|
||||
size_t sz = buf->cb[ubo].buffer_size;
|
||||
|
||||
bool enabled = buf->enabled_mask & (1 << ubo);
|
||||
bool empty = sz == 0;
|
||||
|
||||
if (!enabled || empty) {
|
||||
/* Stub out disabled UBOs to catch accesses */
|
||||
|
||||
ubos[ubo].size = 0;
|
||||
ubos[ubo].ptr = 0xDEAD0000;
|
||||
continue;
|
||||
}
|
||||
|
||||
mali_ptr gpu = panfrost_map_constant_buffer_gpu(ctx, buf, ubo);
|
||||
|
||||
unsigned bytes_per_field = 16;
|
||||
unsigned aligned = ALIGN(sz, bytes_per_field);
|
||||
unsigned fields = aligned / bytes_per_field;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue