| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
Shaves another 14k off the binary:
1114236 56800 160 1171196 11defc providernames.so
1099948 56800 160 1156908 11a72c enumstrings.so
Fixes #202
|
|
|
|
|
|
|
|
| |
Saves 7k of text from the binary. You can already tell what kind of
extension it is from the prefix on the extension name anyway.
1121212 56800 160 1178172 11fa3c master.so
1114236 56800 160 1171196 11defc providernames.so
|
|
|
|
| |
This will distinguish them from the exposed extension presence
|
|\
| |
| | |
test: Add unit tests for epoxy_gl_version() and epoxy_glsl_version().
|
|/
|
|
|
|
| |
Based on a bug report I got on IRC.
v2: Drop glx includes, add to automake.
|
| |
|
| |
|
|\
| |
| | |
Ensure Autotools enables EGL-X11 support
|
| |
| |
| |
| |
| |
| |
| |
| | |
The X11 support in the Autotools build is missing the definition of the
ENABLE_X11 pre-processor symbol. Without it, we're missing the X11
platform definitions for EGL.
Fixes #188
|
|\ \
| | |
| | | |
Require a newer version of Meson
|
| | |
| | |
| | |
| | | |
Meson complains even in the face of a version check.
|
| |/
| |
| |
| |
| | |
We're using functionality introduced after 0.44, so we might as well
update to a more recent version of Meson.
|
|\ \
| |/
|/| |
gitignore: Don't ignore .patch files
|
|/
|
|
|
| |
This makes things a bit awkward for distros that
keep their packaging in git and use patch files
|
|\
| |
| |
| |
| | |
dispatch_common: fix conditional compilation
Symbols are always defined, but they are set to 0 or 1; this means we can't use `ifdef`.
|
|/ |
|
|
|
|
|
| |
Looking for a symbol named "libGLESv2.so.2" is probably not going to
work very well.
|
|\
| |
| | |
Define _GNU_SOURCE for strdup()
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| | |
Just like the one we use for EGL.
|
| |
| |
| |
| |
| | |
A basic test, to check that we're actually capable of working on macOS
without GLX enabled.
|
| |
| |
| |
| |
| | |
We need to see what failed, as Meson's test harness will just show the
result.
|
|\ \
| |/
|/| |
Fix build of Epoxy on macOS
|
| |
| |
| |
| |
| | |
Use Travis's macOS builder to check if Epoxy is building on that
platform.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|/
|
|
| |
EGL is not available on macOS, except through Objective C.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
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.
|
|\
| |
| | |
Fix dlwrap for FreeBSD
|
| |
| |
| |
| |
| | |
This fixes dlwrap_real_dlsym on FreeBSD, but tests still fail because we
currently don't have libglvnd.
|
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| |/
|/| |
Make epoxy_load_{egl,glx} load libraries if they exist
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|/
|
|
|
|
|
| |
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>
|
|\
| |
| | |
Even more gentle glx detection
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
| |
We're missing a dash.
|
| |
|
|
|
|
|
| |
Instead of calling docker multiple times ourselves, use the `env` stanza
to control the build options.
|
|
|
|
| |
The has_header() function does not have a `required` argument.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
The correct answer for systems with different EGL and GLX driver
implementations is to use GLVND.`
Closes #165
|
|\
| |
| | |
dispatch: assert, not errx, when we have no context
|
|/
|
|
|
|
| |
errx() calls exit(), you'd rather get a backtrace.
Signed-off-by: Adam Jackson <ajax@redhat.com>
|
|\
| |
| | |
meson: simplify build_{glx,egl} logic
|
|/
|
|
| |
Signed-off-by: Eric Engestrom <eric.engestrom@imgtec.com>
|