diff options
author | Rob Clark <robdclark@chromium.org> | 2022-02-25 09:08:34 -0800 |
---|---|---|
committer | Marge Bot <emma+marge@anholt.net> | 2022-03-04 22:16:20 +0000 |
commit | d2e498b6a5db61e27a44c1db55ec657d5396558b (patch) | |
tree | ebe3d8e0d23afe600b3582991eef86cb0636769b /src/egl/drivers | |
parent | 1e25f3b2825d416d4cf49e7b7a97582ce3af64fd (diff) |
egl+libsync: Add helper to complain about invalid fence fd's
Debugging fd lifetime issues can be hard. Add a helper for debug builds
to print out an error if an fd is not a fence fd, and sprinkle it around
Signed-off-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15094>
Diffstat (limited to 'src/egl/drivers')
-rw-r--r-- | src/egl/drivers/dri2/platform_android.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/egl/drivers/dri2/platform_android.c b/src/egl/drivers/dri2/platform_android.c index ec60e277014..e0ec9ae795c 100644 --- a/src/egl/drivers/dri2/platform_android.c +++ b/src/egl/drivers/dri2/platform_android.c @@ -41,6 +41,7 @@ #include "util/compiler.h" #include "util/os_file.h" +#include "util/libsync.h" #include "loader.h" #include "egl_dri2.h" @@ -470,6 +471,8 @@ handle_in_fence_fd(struct dri2_egl_surface *dri2_surf, __DRIimage *img) if (dri2_surf->in_fence_fd < 0) return; + validate_fence_fd(dri2_surf->in_fence_fd); + if (dri2_dpy->image->base.version >= 21 && dri2_dpy->image->setInFenceFd != NULL) { dri2_dpy->image->setInFenceFd(img, dri2_surf->in_fence_fd); @@ -481,6 +484,7 @@ handle_in_fence_fd(struct dri2_egl_surface *dri2_surf, __DRIimage *img) static void close_in_fence_fd(struct dri2_egl_surface *dri2_surf) { + validate_fence_fd(dri2_surf->in_fence_fd); if (dri2_surf->in_fence_fd >= 0) close(dri2_surf->in_fence_fd); dri2_surf->in_fence_fd = -1; @@ -497,6 +501,8 @@ droid_window_dequeue_buffer(struct dri2_egl_surface *dri2_surf) close_in_fence_fd(dri2_surf); + validate_fence_fd(fence_fd); + dri2_surf->in_fence_fd = fence_fd; /* Record all the buffers created by ANativeWindow and update back buffer @@ -1448,6 +1454,7 @@ droid_display_shared_buffer(__DRIdrawable *driDrawable, int fence_fd, } close_in_fence_fd(dri2_surf); + validate_fence_fd(fence_fd); dri2_surf->in_fence_fd = fence_fd; handle_in_fence_fd(dri2_surf, dri2_surf->dri_image_back); } |