libweston: Add check and fallback for linux/sync_file.h

The sync file functionality is required by the upcoming GPU render
timeline work, but it's only available in relatively new linux kernel
versions (4.7 and above).

This commit provides a "sanitized" version of the required sync file
definitions.  On systems that don't have the sync file header (due to
having an older kernel), we will be able to fall back to our own
definitions when building.

Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
dev
Alexandros Frantzis 7 years ago committed by Pekka Paalanen
parent 7192b17f3e
commit e39eb8f896
  1. 1
      Makefile.am
  2. 1
      configure.ac
  3. 30
      libweston/weston-sync-file.h

@ -334,6 +334,7 @@ gl_renderer_la_SOURCES = \
libweston/gl-renderer.c \
libweston/vertex-clipping.c \
libweston/vertex-clipping.h \
libweston/weston-sync-file.h \
shared/helpers.h
endif

@ -142,6 +142,7 @@ if test x$enable_egl = xyes; then
AC_DEFINE([ENABLE_EGL], [1], [Build Weston with EGL support])
PKG_CHECK_MODULES(EGL, [egl glesv2])
PKG_CHECK_MODULES([EGL_TESTS], [egl glesv2 wayland-client wayland-egl])
AC_CHECK_HEADERS([linux/sync_file.h])
fi
COMPOSITOR_MODULES="$COMPOSITOR_MODULES xkbcommon >= 0.3.0"

@ -0,0 +1,30 @@
/* Sync file Linux kernel UAPI */
#ifndef WESTON_SYNC_FILE_H
#define WESTON_SYNC_FILE_H
#include <linux/ioctl.h>
#include <linux/types.h>
struct sync_fence_info {
char obj_name[32];
char driver_name[32];
__s32 status;
__u32 flags;
__u64 timestamp_ns;
};
struct sync_file_info {
char name[32];
__s32 status;
__u32 flags;
__u32 num_fences;
__u32 pad;
__u64 sync_fence_info;
};
#define SYNC_IOC_MAGIC '>'
#define SYNC_IOC_FILE_INFO _IOWR(SYNC_IOC_MAGIC, 4, struct sync_file_info)
#endif
Loading…
Cancel
Save