summaryrefslogtreecommitdiff
path: root/src/egl/drivers
diff options
context:
space:
mode:
authorRob Clark <robdclark@chromium.org>2022-02-25 09:08:34 -0800
committerMarge Bot <emma+marge@anholt.net>2022-03-04 22:16:20 +0000
commitd2e498b6a5db61e27a44c1db55ec657d5396558b (patch)
treeebe3d8e0d23afe600b3582991eef86cb0636769b /src/egl/drivers
parent1e25f3b2825d416d4cf49e7b7a97582ce3af64fd (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.c7
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);
}