mesa: fix refcnt imbalance related to egl_image_target_texture()

Indeed, the locally allocated "stimg" reference was not freed
on a specific code path.

For instance, this issue is triggered on radeonsi or r600 with:
"piglit/bin/egl-ext_egl_image_storage -auto -fbo"
while setting GALLIUM_REFCNT_LOG=refcnt.log.

Fixes: 6a3f5c6512 ("mesa: simplify st_egl_image binding process for texture storage")
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23165>
(cherry picked from commit 83cd7d23a2)
This commit is contained in:
Patrick Lerda 2023-05-08 18:02:44 +02:00 committed by Eric Engestrom
parent d3ae7a755f
commit 46afe552b0
2 changed files with 2 additions and 1 deletions

View file

@ -913,7 +913,7 @@
"description": "mesa: fix refcnt imbalance related to egl_image_target_texture()",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "6a3f5c65128b82b87c5fadcf1d42484f6489b11b"
},

View file

@ -3562,6 +3562,7 @@ egl_image_target_texture(struct gl_context *ctx,
!(target == GL_TEXTURE_2D || target == GL_TEXTURE_EXTERNAL_OES)) {
_mesa_error(ctx, GL_INVALID_OPERATION,
"%s(texture is imported from dmabuf)", caller);
pipe_resource_reference(&stimg.texture, NULL);
_mesa_unlock_texture(ctx, texObj);
return;
}