summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | dispatch: Fix GLES3 symbol lookupAdam Jackson2018-07-061-1/+1
| | | | | | | | | | Looking for a symbol named "libGLESv2.so.2" is probably not going to work very well.
* | Merge pull request #182 from anholt/issue-181Emmanuele Bassi2018-06-182-0/+2
|\ \ | | | | | | Define _GNU_SOURCE for strdup()
| * | Define _GNU_SOURCE for strdup()issue-181Emmanuele Bassi2018-06-182-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | The strdup() function is available on uClibc if _XOPEN_SOURCE_EXTENDED is defined; since we're using _GNU_SOURCE elsewhere to enable extended libc features, and uClibc will set _XOPEN_SOURCE_EXTENDED if _GNU_SOURCE is set, let's use that. Closes #181
* | | Add a CGL test for the Epoxy APIEmmanuele Bassi2018-06-042-0/+84
| | | | | | | | | | | | Just like the one we use for EGL.
* | | Add a CoreGraphics OpenGL test for macOSEmmanuele Bassi2018-06-042-0/+77
| | | | | | | | | | | | | | | A basic test, to check that we're actually capable of working on macOS without GLX enabled.
* | | ci: Dump the test log on failureEmmanuele Bassi2018-06-043-10/+28
| | | | | | | | | | | | | | | We need to see what failed, as Meson's test harness will just show the result.
* | | Merge pull request #178 from ebassi/osx-ciEmmanuele Bassi2018-05-305-19/+61
|\ \ \ | |/ / |/| | Fix build of Epoxy on macOS
| * | ci: Enable builds on macOSEmmanuele Bassi2018-05-293-5/+42
| | | | | | | | | | | | | | | Use Travis's macOS builder to check if Epoxy is building on that platform.
| * | Use the appropriate symbols on __APPLE__Emmanuele Bassi2018-05-291-13/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When building on macOS we don't have access to EGL, and GLX support is conditional. We should ensure we're using the appropriate paths depending on the platform, and protect our use of macros to avoid undefined symbols. Closes: #176
| * | Disable EGL on macOSEmmanuele Bassi2018-05-291-1/+1
|/ / | | | | | | EGL is not available on macOS, except through Objective C.
* | Post-release version bump to 1.5.3Emmanuele Bassi2018-05-192-2/+2
| |
* | dispatch: Try harder to avoid calling the resolver1.5.2Adam Jackson2018-05-171-3/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Our caller may load (eg) epoxy_glAlphaFunc, which is a function pointer, and then call through that value multiple times. Until the caller re-examines the value of that function pointer, which is a copy relocation in the executable, repeated calls mean repeated work resolving the GL function. We can't make the caller reinspect the variable, but the resolver function can avoid doing redundant work. Fixes: anholt/libepoxy#171 Signed-off-by: Adam Jackson <ajax@redhat.com>
* | Use -Bsymbolic-functions instead of -BsymbolicEmmanuele Bassi2018-05-172-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | Epoxy updates the function pointers in order to avoid calling the resolver multiple times, but with -Bsymbolic we're going to update the copy inside libepoxy, instead of the relocated copy in the code using libepoxy. This leads to libepoxy constantly querying the function resolver code instead of just once. We still want to avoid intra-library relocations for our functions, but we need to live with them for our global function pointers. See issue #171
* | Use abort() instead of exit(1)Emmanuele Bassi2018-05-171-3/+3
| | | | | | | | | | | | We want to consistently handle exceptions for the internal state checks; calling `exit()` does not allow us to attach a debugger and get a proper trace.
* | Merge pull request #172 from lantw44/masterEmmanuele Bassi2018-05-052-2/+6
|\ \ | | | | | | Fix dlwrap for FreeBSD
| * | dlwrap: Add FBSD_1.0 version for FreeBSDTing-Wei Lan2018-05-051-1/+2
| | | | | | | | | | | | | | | This fixes dlwrap_real_dlsym on FreeBSD, but tests still fail because we currently don't have libglvnd.
| * | meson: Don't define _POSIX_C_SOURCE when dlvsym is foundTing-Wei Lan2018-05-041-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | FreeBSD hides declarations of non-POSIX functions when POSIX macros, such as _POSIX_C_SOURCE or _XOPEN_SOURCE, is defined. This causes test/dlwrap.c to fail to compile because it uses dlvsym and asprintf. Fixes: #169
* | | Merge pull request #170 from nwnk/epoxy-load-fooEmmanuele Bassi2018-05-054-47/+77
|\ \ \ | |/ / |/| | Make epoxy_load_{egl,glx} load libraries if they exist
| * | dispatch: Load EGL/GLX provider lib from epoxy_has_{egl,glx}()Adam Jackson2018-05-014-28/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | Now that we're being conservative about probing libraries, these entrypoints would not succeed unless the caller had already dlopened stuff themselves, or had explicitly linked against the provider library. Both of those are exactly not what we want. Signed-off-by: Adam Jackson <ajax@redhat.com>
| * | dispatch: Stop implicitly loading libraries from do_dlsymAdam Jackson2018-05-011-32/+55
|/ / | | | | | | | | | | | | Mostly this is to get all the calls to get_dlopen_handle nicely isolated so they're easier to reason about. Signed-off-by: Adam Jackson <ajax@redhat.com>
* | Merge pull request #168 from nwnk/even-more-gentle-glx-detectionEmmanuele Bassi2018-04-301-44/+17
|\ \ | | | | | | Even more gentle glx detection
| * | dispatch: Be even gentler about probing for GLXAdam Jackson2018-04-301-34/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dlsym(NULL) can only see (symbols in) libraries that are loaded RTLD_GLOBAL, but our dlopen()s are RTLD_LOCAL and probably so was the one the app did if it did one. So use RTLD_NOLOAD to probe for the library even if it's LOCAL, iff the lookup is non-fatal. Having done that, don't ever load any libraries on this path. We only perform this check while resolving rendering API functions, and the window system resolution paths already load the appropriate library if they need to. Since you have to have gone through a winsys to get a context, and our resolvers only run when a function is _called_, this would only introduce a failure mode if you tried to call a function without a context bound. Signed-off-by: Adam Jackson <ajax@redhat.com>
| * | dispatch: Query the EGL context version when bootstrapping on GLESAdam Jackson2018-04-301-10/+10
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | We're about to change our dlopen paths to do RTLD_NOLOAD more aggressively. The issue then is we can create an EGL GLES context without libGLES* ever being loaded. test/egl_gles2_without_glx will fail in such a world: the first gentle probe for libGLESv2 will fail, then the less-gentle probe for libGLESv1_CM will be shot down by the test, and we exit. Fortunately by the time we've gotten to this point the context exists, so we can query its version via EGL instead. Signed-off-by: Adam Jackson <ajax@redhat.com>
* | test/glx_public_api_core: Fail softer if core contexts aren't availableAdam Jackson2018-04-301-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | If you've built Mesa with --disable-texture-float, and try to run the tests against Xvfb, glx_public_api_core will fail: creating a direct context with llvmpipe will fail because you don't have ARB_texture_float, and the internal fallback to an indirect context will fail because indirect only supports through 1.4. So the server will throw GLXBadFBConfig at you to say "I don't support core contexts", which we should interpret as a skip not a failure. Signed-off-by: Adam Jackson <ajax@redhat.com>
* | meson: Fix the -z,relro flagEmmanuele Bassi2018-04-251-1/+1
| | | | | | | | We're missing a dash.
* | Post-release version bump to 1.5.2Emmanuele Bassi2018-04-252-2/+2
| |
* | ci: Use envvars to control the build options1.5.1Emmanuele Bassi2018-04-251-4/+7
| | | | | | | | | | Instead of calling docker multiple times ourselves, use the `env` stanza to control the build options.
* | meson: Remove unsupported keywordEmmanuele Bassi2018-04-251-1/+1
| | | | | | | | The has_header() function does not have a `required` argument.
* | meson: Conditionally test for linker flagsEmmanuele Bassi2018-04-251-6/+6
| | | | | | | | | | | | | | | | Meson 0.46 introduced a function to check for linker flags passed to the compiler; since the version is really brand new, I don't want to bump the dependency on Meson just yet, so we're going to conditionally use get_supported_link_arguments() only if we're building with Meson 0.46 or later.
* | Remove the "EGL/GLX have different pointers" testsEmmanuele Bassi2018-04-123-300/+0
| | | | | | | | | | | | | | The correct answer for systems with different EGL and GLX driver implementations is to use GLVND.` Closes #165
* | Merge pull request #166 from nwnk/assertEmmanuele Bassi2018-04-121-1/+1
|\ \ | | | | | | dispatch: assert, not errx, when we have no context
| * | dispatch: assert, not errx, when we have no contextAdam Jackson2018-04-121-1/+1
|/ / | | | | | | | | | | errx() calls exit(), you'd rather get a backtrace. Signed-off-by: Adam Jackson <ajax@redhat.com>
* | Merge pull request #162 from 1ace/meson-simplifyEmmanuele Bassi2018-03-131-28/+6
|\ \ | | | | | | meson: simplify build_{glx,egl} logic
| * | meson: simplify build_{glx,egl} logicEric Engestrom2018-03-131-28/+6
|/ / | | | | | | Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com>
* | Merge pull request #156 from tschoonj/fix-gl-pkgconfig-macosEmmanuele Bassi2018-03-121-2/+2
|\ \ | | | | | | meson: do not add gl to pkg-config file on macOS
| * | meson: do not add gl to pkg-config file on macOSTom Schoonjans2018-03-041-2/+2
| | | | | | | | | | | | | | | | | | | | | Even though meson will find the dependency gl on macOS, this does not mean that there is a pkg-config file for it, as meson does not use pkg-config to establish its presence. It should therefore not be added to the libepoxy pkg-config file as a (private) requirement.
* | | Merge pull request #159 from luzpaz/misc-typosEmmanuele Bassi2018-03-123-3/+3
|\ \ \ | | | | | | | | Trival misc. typo fixes
| * | | Trival misc. typo fixesluz.paz2018-03-053-3/+3
| |/ /
* | | Merge pull request #158 from rossburton/masterEmmanuele Bassi2018-03-126-17/+24
|\ \ \ | | | | | | | | Improvements to the test suite
| * | | autotools: check for dlvsymRoss Burton2018-03-123-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | As per the previous commit, instead of assuming that Apple doesn't have dlvsym but everywhere else does, actually check for dlvsym() existing as that function is glibc-specific.
| * | | meson: generalise build_apple to has_dlvsymRoss Burton2018-03-122-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | build_apple was introduced in 756dca as a proxy for the fact that Apple's libc doesn't have dlvsym(), which is glibc-specific so also isn't present in other libc implementations such as musl. Instead of detecting whether we are building for Apple or not, just probe the to see if we have dlvsym.
| * | | meson: add option to enable/disable the test suiteRoss Burton2018-03-122-1/+8
|/ / /
* | | test: Avoid egl_without_glx crash on NVIDIAJan Alexander Steffens (heftig)2018-03-081-6/+8
|/ / | | | | | | | | The NVIDIA driver calls dlopen with NULL as filename; strcmp is not NULL-safe.
* | Post-release version bump to 1.5.1Emmanuele Bassi2018-02-282-2/+2
| |
* | tests: Add EGL test for Epoxy API1.5.0Emmanuele Bassi2018-02-243-0/+147
| | | | | | | | | | | | | | We have a few public entry points that we ought to test properly. Using the EGL API is easier to set up a test case, so let's just do that.
* | Support encoding minor versions bigger than 10Emmanuele Bassi2018-02-241-3/+9
| | | | | | | | | | | | | | | | | | | | | | The GL version minor numbers haven't hit 10, yet, but if they do we're going to get non-sensical encoded versions when calling epoxy_gl_version(), like we're getting right now, with the GLSL version numbers. If the minor number is larger than the multiplication factor used for the major number, we should bump up the factor to the next order of magnitude.
* | meson: Use get_supported_arguments()Emmanuele Bassi2018-02-241-6/+1
| | | | | | | | | | | | | | Instead of iterating over the list of compiler flags, we should use the get_supported_arguments() method of the compiler object, which does it for us — and maybe, in the future, will be optimised to do the checks in parallel.
* | Fix epoxy_internal_gl_version()Emmanuele Bassi2018-02-241-1/+1
| | | | | | | | The glGetString() function takes a GLenum, so we should too.
* | ci: Update the version of Meson for AppveyorEmmanuele Bassi2018-02-231-6/+6
| | | | | | | | We require a newer version than 0.39.1.
* | Do not use OPENGL_LIB on AndroidEmmanuele Bassi2018-02-231-0/+2
| | | | | | | | | | | | | | | | When building on Android we end up in the Linux branch of the symbol loading logic, but the __ANDROID__ conditional does not have the OPENGL_LIB symbol defined, and that breaks the build. Closes: #152