mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 09:08:10 +02:00
mesa/st: call memobj_destroy only if there is memory imported
Something may go wrong during import which leaves pointer to null and when ctx and it's shared state gets destroyed we will attempt to call memobj_destroy. Instead of forcing every driver to handle it, add check here. Fixes crashes with Piglit test: ext_external_objects_fd-memory-object-api-errors Fixes:99cf910834("mesa/st: Actually free the driver part of memory objects on destruction.") Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Reviewed-by: Eleni Maria Stea <estea@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7403> (cherry picked from commite02e1ccbee)
This commit is contained in:
parent
18a9762691
commit
3ed72705b3
2 changed files with 3 additions and 2 deletions
|
|
@ -5143,7 +5143,7 @@
|
|||
"description": "mesa/st: call memobj_destroy only if there is memory imported",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"master_sha": null,
|
||||
"because_sha": "99cf9108340c2ccf7c1b05ec6f951e2e91b9c76c"
|
||||
},
|
||||
|
|
|
|||
|
|
@ -59,7 +59,8 @@ st_memoryobj_free(struct gl_context *ctx,
|
|||
struct pipe_context *pipe = st->pipe;
|
||||
struct pipe_screen *screen = pipe->screen;
|
||||
|
||||
screen->memobj_destroy(screen, st_obj->memory);
|
||||
if (st_obj->memory)
|
||||
screen->memobj_destroy(screen, st_obj->memory);
|
||||
_mesa_delete_memory_object(ctx, obj);
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue