Always defer memory free in swr_resource_destroy
Defer delete on regular resources. This ensures that any work being done on the resource is completed before freeing up the resource's memory. Reviewed-by: Bruce Cherniak <bruce.cherniak@intel.com>
This commit is contained in:
parent
ce44501ea8
commit
a61528fa33
|
@ -880,18 +880,11 @@ swr_resource_destroy(struct pipe_screen *p_screen, struct pipe_resource *pt)
|
|||
winsys->displaytarget_destroy(winsys, spr->display_target);
|
||||
|
||||
} else {
|
||||
/* For regular resources, if the resource is being used, defer deletion
|
||||
* (use aligned-free) */
|
||||
if (pipe && spr->status) {
|
||||
swr_resource_unused(pt);
|
||||
swr_fence_work_free(screen->flush_fence,
|
||||
spr->swr.pBaseAddress, true);
|
||||
swr_fence_work_free(screen->flush_fence,
|
||||
spr->secondary.pBaseAddress, true);
|
||||
} else {
|
||||
AlignedFree(spr->swr.pBaseAddress);
|
||||
AlignedFree(spr->secondary.pBaseAddress);
|
||||
}
|
||||
/* For regular resources, defer deletion */
|
||||
swr_resource_unused(pt);
|
||||
swr_fence_work_free(screen->flush_fence, spr->swr.pBaseAddress, true);
|
||||
swr_fence_work_free(screen->flush_fence,
|
||||
spr->secondary.pBaseAddress, true);
|
||||
}
|
||||
|
||||
FREE(spr);
|
||||
|
|
Loading…
Reference in New Issue