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:
parent
b2a3ca6bd5
commit
a9c73e825a
|
@ -151,10 +151,10 @@ panfrost_upload_transient(struct panfrost_context *ctx, const void *data, size_t
|
||||||
mali_ptr
|
mali_ptr
|
||||||
panfrost_upload(struct panfrost_memory *mem, const void *data, size_t sz)
|
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 */
|
/* 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",
|
printf("Out of memory, tried to upload %zd but only %zd available\n",
|
||||||
sz, mem->bo->size - mem->stack_bottom);
|
sz, mem->bo->size - mem->stack_bottom);
|
||||||
assert(0);
|
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);
|
memcpy((uint8_t *) mem->bo->cpu + mem->stack_bottom, data, sz);
|
||||||
mali_ptr gpu = mem->bo->gpu + mem->stack_bottom;
|
mali_ptr gpu = mem->bo->gpu + mem->stack_bottom;
|
||||||
|
|
||||||
mem->stack_bottom += sz;
|
mem->stack_bottom += aligned_sz;
|
||||||
return gpu;
|
return gpu;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue