mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 15:58:05 +02:00
egl/android: Remove our own reference to buffers.
We currently doesn't maintain it correctly and the buffer gets leaked if surface is destroyed before calling swapping buffers. From Android frameworks/native/libs/nativewindow/include/system/window.h: The window holds a reference to the buffer between dequeueBuffer and either queueBuffer or cancelBuffer, so clients only need their own reference if they might use the buffer after queueing or canceling it. v2: Remove our own reference. Fixes:0212db3504("egl/android: Cancel any outstanding ANativeBuffer in surface destructor") Reviewed-by: Chia-I Wu <olvaffe@gmail.com> (v1) Reviewed-By: Tapani Pälli <tapani.palli@intel.com> Signed-off-by: Lepton Wu <lepton@chromium.org> (cherry picked from commitf4ba31ff50)
This commit is contained in:
parent
cb0215a6fb
commit
35b900310b
1 changed files with 1 additions and 3 deletions
|
|
@ -231,8 +231,6 @@ droid_window_dequeue_buffer(struct dri2_egl_surface *dri2_surf)
|
|||
close(fence_fd);
|
||||
}
|
||||
|
||||
dri2_surf->buffer->common.incRef(&dri2_surf->buffer->common);
|
||||
|
||||
/* Record all the buffers created by ANativeWindow and update back buffer
|
||||
* for updating buffer's age in swap_buffers.
|
||||
*/
|
||||
|
|
@ -289,7 +287,6 @@ droid_window_enqueue_buffer(_EGLDisplay *disp, struct dri2_egl_surface *dri2_sur
|
|||
dri2_surf->window->queueBuffer(dri2_surf->window, dri2_surf->buffer,
|
||||
fence_fd);
|
||||
|
||||
dri2_surf->buffer->common.decRef(&dri2_surf->buffer->common);
|
||||
dri2_surf->buffer = NULL;
|
||||
dri2_surf->back = NULL;
|
||||
|
||||
|
|
@ -312,6 +309,7 @@ droid_window_cancel_buffer(struct dri2_egl_surface *dri2_surf)
|
|||
dri2_surf->out_fence_fd = -1;
|
||||
ret = dri2_surf->window->cancelBuffer(dri2_surf->window,
|
||||
dri2_surf->buffer, fence_fd);
|
||||
dri2_surf->buffer = NULL;
|
||||
if (ret < 0) {
|
||||
_eglLog(_EGL_WARNING, "ANativeWindow::cancelBuffer failed");
|
||||
dri2_surf->base.Lost = EGL_TRUE;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue