From: Alyssa Rosenzweig Date: Fri, 15 Feb 2019 00:28:46 +0000 (+0000) Subject: panfrost: Swap order of tiled texture (de)alloc X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=a94463732af9e483045abe8b48555fd9211b827e;p=mesa.git panfrost: Swap order of tiled texture (de)alloc Signed-off-by: Alyssa Rosenzweig --- diff --git a/src/gallium/drivers/panfrost/pan_resource.c b/src/gallium/drivers/panfrost/pan_resource.c index 26f4782a4ad..ce603dfac92 100644 --- a/src/gallium/drivers/panfrost/pan_resource.c +++ b/src/gallium/drivers/panfrost/pan_resource.c @@ -414,12 +414,6 @@ panfrost_tile_texture(struct panfrost_screen *screen, struct panfrost_resource * int swizzled_sz = panfrost_swizzled_size(width, height, bytes_per_pixel); - /* Allocate the transfer given that known size but do not copy */ - struct pb_slab_entry *entry = pb_slab_alloc(&screen->slabs, swizzled_sz, HEAP_TEXTURE); - struct panfrost_memory_entry *p_entry = (struct panfrost_memory_entry *) entry; - struct panfrost_memory *backing = (struct panfrost_memory *) entry->slab; - uint8_t *swizzled = backing->cpu + p_entry->offset; - /* Save the entry. But if there was already an entry here (from a * previous upload of the resource), free that one so we don't leak */ @@ -428,6 +422,12 @@ panfrost_tile_texture(struct panfrost_screen *screen, struct panfrost_resource * pb_slab_free(&screen->slabs, &bo->entry[level]->base); } + /* Allocate the transfer given that known size but do not copy */ + struct pb_slab_entry *entry = pb_slab_alloc(&screen->slabs, swizzled_sz, HEAP_TEXTURE); + struct panfrost_memory_entry *p_entry = (struct panfrost_memory_entry *) entry; + struct panfrost_memory *backing = (struct panfrost_memory *) entry->slab; + uint8_t *swizzled = backing->cpu + p_entry->offset; + bo->entry[level] = p_entry; bo->gpu[level] = backing->gpu + p_entry->offset;