summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2016-04-07GLESv1: Statically export glPointSizePointerOES.HEADmasterKyle Brenneman1-3/+9
Add GL_OES_point_size_array to the set of features and extensions that are exported from libGLESv1_CM.so. According to the OpenGL ES 1.1 spec, all required extensions are supposed to be statically exported from the library. GL_OES_point_size_array is the only required extension that defines any functions.
2016-04-06GLX: Ignore passing NULL to glXDestroyContextKyle Brenneman1-1/+11
If glXDestroyContext is called with NULL for the GLXContext, then it will now report an error using glvndAppErrorCheckReportError but it won't generate a GLXBadContext error. Some existing drivers (NVIDIA, Mesa, and possibly others) will just silently return in that case, and some applications depend on that behavior.
2016-04-05GLX: Add app_error_check.c to libGLX.Kyle Brenneman2-0/+3
Added app_error_check.c to libGLX, and initialize it from __glxInit.
2016-04-04Merge pull request #83 from 1ace/masterKyle Brenneman3-3/+3
Fix spelling mistakes.
2016-04-03Fix spelling mistakesEric Engestrom3-3/+3
2016-04-01GLX: Don't call into the vendor library from __glXFini.Kyle Brenneman1-6/+19
By the time __glXFini is called, the destructors in the vendor libraries may have already been called, so it's not safe to call any functions in the vendor library. __glXFini will now check for a fork and go through fork recovery, but it won't call __glDispatchCheckMultithreaded. If there was a current context, then __glDispatchCheckMultithreaded might call the vendor's thread attach callback.
2016-03-30GLX: Fix the version number macros.Kyle Brenneman2-5/+13
Fix the reversed GLX_VENDOR_ABI_GET_MAJOR_VERSION and GLX_VENDOR_ABI_GET_MINOR_VERSION macros. Add individual #defines for libglvnd's major and minor version for better readability.
2016-03-30Merge pull request #80 from kbrenneman/app-error-check-settingKyle Brenneman6-9/+173
Add support for reporting application errors.
2016-03-30Merge pull request #77 from nwnk/public_entry_visibilityKyle Brenneman4-0/+8
GLdispatch: Emit public_entry_{start,end} as hidden symbols
2016-03-29Add support for reporting application errors.Kyle Brenneman6-9/+173
The libglvnd libraries will now check for a new environment variable, __GLVND_APP_ERROR_CHECKING. If it's set to a non-zero value, then libglvnd will check for and report some application errors. Many non-libglvnd implementations of libGL.so have been fairly tolerant of certain application bugs. Libglvnd has to be similarly tolerant to support existing apps that the developers can't or won't fix. The new __GLVND_APP_ERROR_CHECKING provides a way to check for some of those errors, so that hopefully there will be fewer broken apps in the future. In addition to the setting itself, this updates the no-op stubs in libGLdispatch to report an error when the app tries to call an OpenGL function without a current context. Later changes will likely add other error checks.
2016-03-28Merge pull request #79 from kbrenneman/replace-x11glvnd-v2.Kyle Brenneman14-1205/+317
Replace x11glvnd with GLX_EXT_libglvnd extension.
2016-03-28Merge pull request #74 from kbrenneman/libglx-abi-version-1.Kyle Brenneman16-288/+475
Updates to libGLX vendor library interface.
2016-03-28GLX: A few more ABI fixes.Kyle Brenneman2-23/+26
Fix the return type in the __GLX_MAIN_PROTO macro. In GLX_dummy.c, check the major and minor version numbers like a real vendor library might. In addition, GLX_dummy.c now keeps a pointer to the __GLXapiExports struct instead of a copy of it.
2016-03-24Remove the x11glvnd extension.Kyle Brenneman9-1107/+19
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.
2016-03-24GLX: Use GLX_EXT_libglvnd instead of x11glvnd.Kyle Brenneman4-27/+46
Reworked libGLX.so to use the GLX_EXT_libglvnd extension instead of x11glvnd. In __glXLookupVendorByScreen, use __glXQueryServerString to look up the vendor name string, and then split it up with strtok_r.
2016-03-24GLX: Add functions for the GLX_EXT_libglvnd extension.Kyle Brenneman3-1/+247
Add some functions to handle requests for looking up vendor names and screen numbers using the GLX_EXT_libglvnd extension.
2016-03-24GLX: Move the display pointer to __GLXdisplayInfo.Kyle Brenneman3-8/+9
Move the display pointer from __GLXdisplayInfoHash to __GLXdisplayInfo, so that we don't have to pass around both the Display and __GLXdisplayInfo pointers to a function that needs both of them.
2016-03-24GLX: Remove __glXFreeDisplay.Kyle Brenneman2-22/+0
__glXFreeDisplay is defined but not used anywhere.
2016-03-24GLX: Use XESetCloseDisplay for the close display callback.Kyle Brenneman5-81/+37
libGLX will now use XAddExtension and XESetCloseDisplay to register a callback when a display is closed. Removed XGLVRegisterCloseDisplayCallback and XGLVUnregisterCloseDisplayCallbacks from the x11glvnd client library. This is in preparation for removing the x11glvnd extension.
2016-03-24GLdispatch: Rename the API state structures.Kyle Brenneman5-195/+211
Rename __GLdispatchAPIState to __GLdispatchThreadState, to make it clearer that the structure contains thread-specific data. Updated some out-of-date comments.
2016-03-21Merge pull request #71 from evelikov/use-glprotoKyle Brenneman3-2776/+1
build: use system glproto headers
2016-03-21Merge pull request #72 from evelikov/remove-elf-filteringKyle Brenneman4-53/+2
2016-03-14Fix an uninitialized variable in glXGetFBConfigs.Kyle Brenneman1-1/+1
2016-03-14Merge pull request #70 from evelikov/build-cleanups-round2Kyle Brenneman14-1663/+68
Build cleanups.
2016-03-10GLX: Add the patch callbacks directly to __GLXapiImports.Kyle Brenneman7-123/+175
Added the function pointers for entrypoint rewriting as members of __GLXapiImports, instead of using a separate __GLdispatchPatchCallbacks pointer. Moved the __GLdispatchPatchCallbacks struct to GLdispatch.h.
2016-03-10GLX: Change __glx_Main to use the libGLX-allocated __GLXapiImports table.Kyle Brenneman5-62/+87
__glx_Main now takes a pointer to the __GLXapiImports struct and fills it in. The __GLXapiImports struct is now allocated and zeroed by libGLX. This makes it possible to add an optional element to the end of the struct without breaking backward compatibility.
2016-03-09GLdispatch: Emit public_entry_{start,end} as hidden symbolsAdam Jackson4-0/+8
2016-03-03GLX: Change libGLX to use its own copy of the __GLXapiImports struct.Kyle Brenneman1-2/+29
libGLX now allocates its own copy of the __GLXapiImports struct for each vendor library. This is in preparation for providing an allocated and zeroed struct to __glx_Main to fill in.
2016-03-03GLX: Change the __glx_Main function prototype.Kyle Brenneman3-29/+45
Removed the vendorID and vendorName parameters from the __glx_Main function, since neither one is useful to a vendor. Instead, __glx_Main now takes the __GLXvendorInfo pointer as a parameter. We can use that to look up any additional per-vendor information that might be added in the future.
2016-03-02Bump the package version to 0.1.0.Kyle Brenneman1-1/+1
2016-03-02GLX: Change the ABI version number to a (major, minor) pair.Kyle Brenneman1-1/+11
The version number for the libGLX vendor library interface now uses a major and minor version number in the high- and low-order 16 bits. The major version is used for changes that break existing vendor libraries, and the minor version is for changes where existing vendor libraries will still work.
2016-03-02Update a comment in GLdispatchABI.h.Kyle Brenneman1-2/+2
2016-03-02Remove auxiliary ELF symbol filteringEmil Velikov4-51/+2
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>
2016-03-02Remove unneeded entries from toplevel .gitignoreEmil Velikov1-36/+8
Left-overs as the file was copied from mesa. Sort the remainder while we're here. Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2016-03-02Add missing files to .gitignore thoughout the projectEmil Velikov9-0/+29
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2016-03-02configure.ac: remove unneeded AC_PATH_XEmil Velikov1-3/+0
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>
2016-03-02configure.ac: remove unneeded AC_CHECK_HEADERS callEmil Velikov1-1/+0
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>
2016-03-02configure.ac: remove useless AC_CHECK_FUNCS lineEmil Velikov1-1/+0
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>
2016-03-02configure.ac: remove posix type checksEmil Velikov1-3/+0
All three types are part of the POSIX standard. Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2016-03-02configure.ac: remove malloc/realloc function checksEmil Velikov1-2/+0
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>
2016-03-02configure.ac: remove checks for types/keywords part of the C99 standardEmil Velikov1-5/+0
We require C99 capable compiler so we don't need these. Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
2016-03-02configure.ac: make use of MKDIR_P macroEmil Velikov2-5/+6
... 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>
2016-03-02configure.ac: remove unneeded AC_PROG_AWKEmil Velikov1-1/+0
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2016-03-02configure.ac: use standard macro to set compiler C99 modeEmil Velikov1-1/+6
v2: s/libdrm/libglvnd/ (Kyle) v3: fix grammar in error message (Arthur Huillet) Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2016-03-02configure.ac: check for python2.7 exectableEmil Velikov1-1/+1
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>
2016-03-02configure.ac: fix comment typoEmil Velikov1-1/+1
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2016-03-02configure.ac: remove unused conditionalsEmil Velikov1-6/+0
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2016-03-02configure.ac: remove sparc asm handlingEmil Velikov1-12/+0
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>
2016-02-29GLdispatch: Change the stub type enums.Kyle Brenneman9-60/+59
Removed the distinction between TSD and TLS stubs, since that doesn't matter to a vendor library. There's now a single type for the x86 stubs and a single type for the x86-64 stubs. Added a separate type enum for normal ARM and thumb stubs. As with x86, there's no distinction between TLS and TSD. Changed the __GLDISPATCH_STUB_PURE_C enum to a more generic __GLDISPATCH_STUB_UNKNOWN. Also removed the internal ENTRY_* enums and changed everything to use the __GLDISPATCH_STUB_* enums instead.
2016-02-29Rename a couple of functions in the ABI's.Kyle Brenneman5-6/+6
Renamed __GLdispatchPatchCallbacks::checkPatchSupported to isPatchSupported, and renamed __GLXapiImports::checkSupportsScreen to isScreenSupported.