In order to support the (currently unregistered) Chromium-specific EGL extension eglGetSyncValuesCHROMIUM on Intel systems, we need to import the Chromium header that defines it. The file was downloaded from
https://chromium.googlesource.com/chromium/chromium/+/trunk/ui/gl/EGL/eglextchromium.h It is subject to the license found at https://chromium.googlesource.com/chromium/chromium/+/trunk/LICENSE I have imported the header file and added the license text to the top. The only change was to remove the Chromium specific defines for GPU_EGL_EGLEXTCHROMIUM_H_ If I leave them in, compiling Mesa fails: make[2]: Entering directory `/home/sarah/git/mesa/src/egl/drivers/dri2' CC egl_dri2.lo In file included from ../../../../include/EGL/eglext.h:649:0, from ../../../../src/egl/main/egltypedefs.h:37, from ../../../../src/egl/main/eglconfig.h:37, from egl_dri2.h:67, from egl_dri2.c:52: ../../../../include/EGL/eglextchromium.h:60:38: error: no macro name given in #define directive #define // GPU_EGL_EGLEXTCHROMIUM_H_ ^ ../../../../include/EGL/eglextchromium.h:31:0: error: unterminated #ifndef #ifndef GPU_EGL_EGLEXTCHROMIUM_H_ ^ make[2]: *** [egl_dri2.lo] Error 1 make[2]: Leaving directory `/home/sarah/git/mesa/src/egl/drivers/dri2' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/home/sarah/git/mesa/src' make: *** [all-recursive] Error 1 Signed-off-by: Sarah Sharp <sarah.a.sh...@linux.intel.com> Cc: Chad Versace <chad.vers...@linux.intel.com> Cc: Jamey Sharp <ja...@minilop.net> Cc: Ian Romanick <i...@freedesktop.org> Cc: Stéphane Marchesin <stephane.marche...@gmail.com> --- include/EGL/eglext.h | 1 + include/EGL/eglextchromium.h | 55 ++++++++++++++++++++++++++++++++++++++++++++ src/egl/main/Makefile.am | 1 + 3 files changed, 57 insertions(+) create mode 100644 include/EGL/eglextchromium.h diff --git a/include/EGL/eglext.h b/include/EGL/eglext.h index 243da4a..88b39db 100644 --- a/include/EGL/eglext.h +++ b/include/EGL/eglext.h @@ -646,6 +646,7 @@ EGLAPI EGLuint64NV EGLAPIENTRY eglGetSystemTimeNV (void); #endif /* EGL_NV_system_time */ #include <EGL/eglmesaext.h> +#include <EGL/eglextchromium.h> #ifdef __cplusplus } diff --git a/include/EGL/eglextchromium.h b/include/EGL/eglextchromium.h new file mode 100644 index 0000000..20daf56 --- /dev/null +++ b/include/EGL/eglextchromium.h @@ -0,0 +1,55 @@ +// Copyright (c) 2013 The Chromium Authors. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are +// met: +// +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above +// copyright notice, this list of conditions and the following disclaimer +// in the documentation and/or other materials provided with the +// distribution. +// * Neither the name of Google Inc. nor the names of its +// contributors may be used to endorse or promote products derived from +// this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +// This file contains Chromium-specific EGL extensions declarations. + +#ifdef __cplusplus +extern "C" { +#endif + +#include <EGL/eglplatform.h> + +/* EGLSyncControlCHROMIUM requires 64-bit uint support */ +#if KHRONOS_SUPPORT_INT64 +#ifndef EGL_CHROMIUM_sync_control +#define EGL_CHROMIUM_sync_control 1 +typedef khronos_uint64_t EGLuint64CHROMIUM; +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglGetSyncValuesCHROMIUM( + EGLDisplay dpy, EGLSurface surface, EGLuint64CHROMIUM *ust, + EGLuint64CHROMIUM *msc, EGLuint64CHROMIUM *sbc); +#endif /* EGL_EGLEXT_PROTOTYPES */ +typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCVALUESCHROMIUMPROC) + (EGLDisplay dpy, EGLSurface surface, EGLuint64CHROMIUM *ust, + EGLuint64CHROMIUM *msc, EGLuint64CHROMIUM *sbc); +#endif +#endif + +#ifdef __cplusplus +} +#endif diff --git a/src/egl/main/Makefile.am b/src/egl/main/Makefile.am index 2858913..23207db 100644 --- a/src/egl/main/Makefile.am +++ b/src/egl/main/Makefile.am @@ -126,5 +126,6 @@ egldir = $(includedir)/EGL egl_HEADERS = \ $(top_srcdir)/include/EGL/eglext.h \ $(top_srcdir)/include/EGL/egl.h \ + $(top_srcdir)/include/EGL/eglextchromium.h \ $(top_srcdir)/include/EGL/eglmesaext.h \ $(top_srcdir)/include/EGL/eglplatform.h -- 1.8.3.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev