panfrost: Reserve, but do not upload, shader padding

Fixes invalid read errors reported by valgrind.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
This commit is contained in:
Alyssa Rosenzweig 2019-07-23 10:14:46 -07:00
parent b2a3ca6bd5
commit a9c73e825a
1 changed files with 3 additions and 3 deletions

View File

@ -151,10 +151,10 @@ panfrost_upload_transient(struct panfrost_context *ctx, const void *data, size_t
mali_ptr
panfrost_upload(struct panfrost_memory *mem, const void *data, size_t sz)
{
sz = ALIGN_POT(sz, ALIGNMENT);
size_t aligned_sz = ALIGN_POT(sz, ALIGNMENT);
/* Bounds check */
if ((mem->stack_bottom + sz) >= mem->bo->size) {
if ((mem->stack_bottom + aligned_sz) >= mem->bo->size) {
printf("Out of memory, tried to upload %zd but only %zd available\n",
sz, mem->bo->size - mem->stack_bottom);
assert(0);
@ -163,6 +163,6 @@ panfrost_upload(struct panfrost_memory *mem, const void *data, size_t sz)
memcpy((uint8_t *) mem->bo->cpu + mem->stack_bottom, data, sz);
mali_ptr gpu = mem->bo->gpu + mem->stack_bottom;
mem->stack_bottom += sz;
mem->stack_bottom += aligned_sz;
return gpu;
}