summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | 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
* | Document epoxy_set_resolver_failure_handler()Emmanuele Bassi2018-02-231-0/+7
| |
* | Add epoxy_glsl_version()Emmanuele Bassi2018-02-232-4/+30
| | | | | | | | | | | | | | | | Epoxy should provide a function that returns the version of the GL shading language in use, in the same vein as it allows to get the version of GL. Closes: #145
* | meson: Rename the configuration optionsEmmanuele Bassi2018-02-233-8/+9
| | | | | | | | | | | | | | The `enable-` prefix is an Autotool-ism; idiomatic naming for Meson projects should just use the name of the option, and rely on the type to convey meaning, especially because Meson does not have `disable` aliases that avoid the explicit `enable-foo=no` cases.
* | docs: Update the supported GL version to 4.6Emmanuele Bassi2018-02-232-2/+2
| |
* | Allow building Epoxy without X11Emmanuele Bassi2018-02-235-8/+48
| | | | | | | | | | | | | | | | | | Epoxy can be compiled with GLX and X11 native resources on EGL. We can disable the former, but the latter is always built in when enabling EGL support. Some platforms do not support X11 at all, so we need a way to disable X11 when configuring Epoxy.
* | Add gl and egl private dependenciesEmmanuele Bassi2018-02-233-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the system we're building Epoxy on has GL and EGL pkg-config modules, then we should add them to the Requires.private field of the pkg-config file. The Requires.private field does not contribute to the linker flags generated by pkg-config, unless we're doing a static build; it does, however, contribute to the compiler flags generated by pkg-config, which means that platforms that specify ad hoc compiler flags for their GL and EGL implementations via pkg-config will be able to propagate them through Epoxy. Closes: #139
* | meson: Remove unnecessary configuration_data objectEmmanuele Bassi2018-02-231-14/+0
| | | | | | | | | | | | We generate the pkg-config file using Meson's pkgconfig module as of commit b1119d8fcfe646f3ff108a3bf3685dfce6f049e4, but we're still setting up a configuration_data object.
* | ci: Add Docker image filesEmmanuele Bassi2018-02-234-3/+66
| | | | | | | | | | There's no real benefit in hosting the Dockerfile in an external repository.
* | Update registryEmmanuele Bassi2018-02-234-1601/+4182
| | | | | | | | | | - OpenGL: dc62ac39930726183c0f0ad007e4ce6499597664 - EGL: 0fa0d37da846998aa838ed2b784a340c28dadff3
* | meson: Generate the pkg-config fileEmmanuele Bassi2018-02-232-34/+35
| | | | | | | | | | | | | | | | Instead of using a template file, and filling in the blanks, we can use the Meson pkgconfig module to generate the pkg-config file mostly from the library object itself — including dependencies and flags. The template file remains in tree for the Autotools build.
* | Bump up the Meson dependencyEmmanuele Bassi2018-02-231-1/+1
| | | | | | | | | | | | Use the latest stable release; we're going to use its features to generate the pkg-config file for Epoxy, instead of using a template file.
* | Include Xlib.h when using Xlib APIEmmanuele Bassi2018-02-231-0/+1
| | | | | | | | | | | | The common EGL testing code uses XOpenDisplay(), which means we need to explicitly include the Xlib.h header file, instead of relying on something else stringing it along.
* | travis: Drop conditional on LinuxEmmanuele Bassi2018-02-231-7/+7
| | | | | | | | | | | | | | We currently run CI on Linux only, given that the macOS builders in Travis are always fairly overwhelmed; thus, there's no need to complicate the Travis script with a conditional that is always going to be true.