Changed the default vendor config paths to be based on the directory options
for configure. libEGL will now look under the sysconfigdir and datadir paths,
in a "glvnd/egl_vendor.d" subdirectory.
Added the "datadir" variable to the pkg-config file, so that other packages can
find the expected location of the JSON files.
eglGetDisplay will now check for EGL_PLATFORM_DEVICE_EXT and
EGL_PLATFORM_WAYLAND_KHR.
For EGL_PLATFORM_DEVICE_EXT, it will just check if the native display is a
valid EGLDeviceEXT handle.
For EGL_PLATFORM_WAYLAND_KHR, it will check the actual pointer, using similar
logic to Mesa.
The implementation is mostly based off of libGLX.
Unlike GLX, libEGL will load all vendor libraries up front. This is necessary
for dealing with eglGetPlatformDisplay, as well as many client extensions.
Dispatching EGL functions is generally simpler than GLX. All display extension
functions by definition can be dispatched based on an EGLDisplay handle, so
it doesn't need to provide lookup functions for contexts or surfaces, and
vendor libraries don't have to add any EGL objects to tracking.
Only OpenGL and OpenGL ES and a handful of client extensions are supported so
far.
Fix the warnings that autogen.sh spits out.
Added libtool convenience libraries for the source files in src/util instead of
including them directly in other makefiles. This avoids a bunch of
subdir-objects warnings.
Added libtool convenience libraries for each of the glapi builds.
Flattened the vnd-glapi directory. In theory, just setting the subdir-objects
flag should be enough, but that causes failures where "make distcheck" doesn't
build all of the source files.
Removed the header file and the script to generate the __glXDispatchNoopPtr
table.
Also removed the dependency on Perl from configure.ac, since the rest of the
scripts are in Python.
Reviewed-by: aplattner@nvidia.com
Fixed a few order and variable name warnings.
Defined convenience libraries for the source files under src/util, to avoid the
subdir-objects warning from them.
Delete the x11glvnd directory.
Commented out the two tests that depend on it, testx11glvndproto and
testglxnscreens. Eventually, they should be rewritten to use the
GLX_EXT_libglvnd extension instead.
The code was disabled due to a glibc bug 16272. which as of this point
remains open.
As n alternative solution is already in place and fix for the mentioned
issue is unlikely to land in order distributions, it does not make it a
viable solution that we can use (in the near future).
Drop the code for now, to prevent anyone building a completely broken
library.
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
All the functionality that this macro sets is either available or
superseded by the PKG_CHECK_MODULES(..., xorg-server) call.
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Similar to previous commit - all of these have been part of the POSIX
and/or ISO C89/C99 standard for a decade or more. Additionally none of
the respective HAVE_ macros are checked.
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Pretty much all of those are required by either POSIX 2001 or C99. Some
are even deprecated (gettimeofday). Furthermore neither one's HAVE_
macro is checked in existing code.
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
The code does not rely on the GNUC specific behaviour (return valid
pointer if requested size is zero) nor does it check the relevant HAVE_
macros.
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
... as opposed to hardcoding it. While we're here tweak the whole
command to use the standard - AM_V_at and @D, as opposed to @ and dir $@
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Some of the BSD platforms (OpenBSD and DragonFly come to mind) do not
have a python2 symlink.
Inspired by an identical patch for mesa by Jonathan Gray.
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Since the code is no longer around we should not be lying to the user
that such a thing exists.
v2: tweak commit message (Arthur Huillet)
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
The file in question does not exist (any more) in tree. Thus the only
reason behind this workaround/quirk is now gone :-)
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
Moved glvnd_pthread.h and glvnd_pthread.c into src/utils, and removed the
separate makefile for them. The other makefiles now just grab the source file
directly instead.
Reviewed-by: Andy Ritger <aritger@nvidia.com>
Two header files (libglxabi.h and GLdispatchABI.h) are public -- intended to be
used by vendor libraries, while the other headers are all internal to libglvnd.
Move the public header files to a new directory, include/glvnd.
Add a makefile so that the public headers are installed by make install.
Added a Makefile to build libGLESv1_CM.so. It's copied and adapted from the one
for libOpenGL.so.
The GLESv1 library currently exports all of the core functions in gl.xml for
GLES version 1.0.
Added a Makefile to build libGLESv2.so. It's copied and adapted from the one
for libOpenGL.so.
The GLESv2 library currently exports all of the core functions in gl.xml for
GLES versions 2.0 through 3.2, inclusive.
Fixed a couple lines in the libOpenGL makefile where it was using the wrong
variable name.
Added an explicit -version-info flag for libGLdispatch and libGLX.
Added the --no-undefined linker flag for libOpenGL, libGL, libGLdispatch, and
libGLX on systems where it's available.
This commit adds static and dynamic TSD stubs generation support for ARMv7.
Testing coverage includes all ARM / Thumb mode combinations between
libglvnd and a vendor implementation.
Use the AX_CHECK_ENABLE_DEBUG macro to add an --enable-debug option to the
configure script.
Silence an unused variable warning in libglx.c. A variable in CommonMakeCurrent
is only used in asserts, so setting NDEBUG means it's set but never used.
Remove the dbg_configure.sh script.
Added a new file entry_x86-64_tsd.h. It's just a copy of entry_x86_tsd.h for
now, since that's the interface that it has to match.
Updated entry.c to use the new file depending on the GLX_USE_TLS macro, just
like it does for x86.
Added a __GLDISPATCH_STUB_X86_64_TSD enum to GLdispatchABI.h, and a
matching ENTRY_X86_64_TSD enum to entry.h.
Added a "--disable-tls" flag to the configure script to tell it not to use a
TLS version.
Added #ifdefs for the assembler implementations for the __sync intrinsics.
Check the return value of malloc in glvnd_asprintf.
Change x11glvndclient.c back to using a (const char *) for the extension name.
- Add a config check for ((constructor)) and ((destructor)) funciton
attributes.
- Add missing GL/glxmd.h header.
- For sufficiently old gcc versions, revert to inline asm
implementations of Atomic{Increment,Swap,CompareAndSwap}()
- Add a local implementation of asprintf.
- entry_x86_tsd.h: Add missing cast to (char *) in entry_get_public
- glvnd_pthread.[ch]: Only use pthread_rwlock_t if it's available, and fall
back to pthread_mutex_t otherwise.
- trace.c: Add missing _GNU_SOURCE define
- uthash.h: Fix a -Wcast-qual warning
- x11glvndclient.c: Fix a -Wcast-qual warning by using a writable
array for storing the XGLV_EXTENSION_NAME
Based on a patch by Brian Nguyen.