Age | Commit message (Collapse) | Author |
|
So that libEGL is rebuilt whenever LOCAL_LIBS changes.
|
|
The driver struct is zeroed after dri2_load. Oops.
|
|
Update SConscripts to re-enable or add support for EGL on windows and
x11 platforms respectively. targets/egl-gdi is replaced by
targets/egl-static, where "-static" means pipe drivers and state
trackers are linked to statically by egl_gallium, and egl_gallium is a
built-in driver of libEGL. There is no more egl_gallium.dll on Windows.
|
|
This target is based on and replaces egl-gdi. It is suitable for both
windows and x11.
|
|
These two drivers are small in size. Making them built-in should
simplify packaging.
|
|
This is a step forward for compatibility with really old GLX. But the
real reason for making this change now is so that we can make egl_glx a
built-in driver without having to link to libGL.
|
|
In preparation for making egl_dri2 built-in. It also handles
symbol lookup error: /usr/local/lib/egl/egl_dri2.so: undefined symbol:
_glapi_get_proc_address
more gracefully.
|
|
Add release function for texture_from_pixmap extension.
Some platform need to release texture image for texture_from_pixmap
extension, add this interface for those platforms.
|
|
|
|
When the driver is the last reference to libEGL.so, unloading it will
cause libEGL.so to be unmapped and give problems. Disable the unloading
for now. Still have to figure out the right timing to unload drivers.
|
|
Otherwise, when it is called from within a driver, the caller cannot
free the returned data (on Windows).
|
|
When a context was made current to another surface, the old code did
this
dri2_dpy->core->bindContext(cctx, ddraw, rdraw);
dri2_dpy->core->unbindContext(old_cctx);
and there will be no current context due to the second line.
unbindContext should be called only when bindContext is not. This fixes
a regression since d19afc57. Thanks to Neil Roberts for noticing the
issue and creating a test case.
|
|
Signed-off-by: Robert Hooker <robert.hooker@canonical.com>
|
|
Correctly set __DRI_API_OPENGL flag.
|
|
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
|
|
|
|
Added for completeness. It makes sense to have such mechanism, but I am
not aware of any user of that..
|
|
We have to rely on the pthread key destructor to free the current thread
info when a thread exits.
|
|
So that the directory part of EGL_DRIVER, if exists, is prepended to the
search path. This commit also adds a sanity check to _eglLog.
|
|
Use scons target and dependency system instead of ad-hoc options.
Now is simply a matter of naming what to build. For example:
scons libgl-xlib
scons libgl-gdi
scons graw-progs
scons llvmpipe
and so on. And there is also the possibility of scepcified subdirs, e.g.
scons src/gallium/drivers
If nothing is specified then everything will be build.
There might be some rough corners over the next days. Please bare with me.
|
|
|
|
We want to call glFlush when there is a current context. That is,
old_ctx. This is a regression introduced by
d19afc57fe49816f3f3290410e0124d326577be2.
|
|
Ensure -L$(TOP)/$(LIB_DIR) (the staging dir for build products), appears
in the link line before any -L in $LDFLAGS, so that we link driver we are
building with libEGL we have just built, and not an installed version
[olv: make a similar change to targets/egl]
Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
|
|
This call sequence
eglMakeCurrent(dpy, surf, surf, ctx1);
eglMakeCurrent(dpy, surf, surf, ctx2);
should be valid if ctx1 and ctx2 have the same client API and are not
current in another thread.
|
|
Remove all _egl<Res>IsLinked and _egl<Res>IsBound. Update
_eglBindContext and drivers to do reference counting.
|
|
This is a really simple mechanism. There is no atomicity and the caller
is expected to hold the display lock.
|
|
Internally a mode belongs to a screen. But functions like
eglGetModeAttribMESA treat a mode as a display resource: a mode can be
looked up without a screen. Considering how KMS works, it is better to
stick to the current implementation.
To properly support looking up a mode without a screen, this commit
assigns each mode (of all screens) a unique ID.
|
|
Make _eglInitScreen take a display and rename _eglAddScreen to
_eglLinkScreen. Remove unused functions.
|
|
Mainly to rename _eglAddConfig to _eglLinkConfig, along with a few clean
ups.
|
|
All display resources are already initialized with a display. Linking
simply links a resource to its display.
|
|
We do not want them to be all over the places.
|
|
Avoid code duplications.
|
|
The opaque nature of EGLImage implies that extensions almost always
define their own attributes. Move attributes in _EGLImage to
_EGLImageAttribs and add a helper function to parse attribute lists.
|
|
The driver was broken since 6eda3f311bc24999835003e404d5eda5599bc5de.
All configs fail to pass _eglValidateConfig.
|
|
_EGLConfig can be directly dereferenced now. Since egl_glx is the last
user of the macros, drop the macros too.
|
|
_EGLConfig can be directly dereferenced now.
|
|
Replace SET_CONFIG_ATTRIB/GET_CONFIG_ATTRIB by direct dereferences.
|
|
This makes _EGLConfig more accessible and scales better when new
attributes are added.
|
|
Remove duplicated include.
Signed-off-by: Brian Paul <brianp@vmware.com>
|
|
Do not call into the driver if the extension for the called function is
not enabled.
|
|
I hate GCC for requiring the (int) cast on sizeof.
|
|
|
|
|
|
|
|
We will typically have a current context when we need to lookup the image,
but the lookup implementation don't need it so drop it.
|
|
We can't expect to have a context when this is called, and we don't need one
so just require a __DRIscreen instead.
Reported by Yu Dai <yu.dai@intel.com>
|
|
The main use of the backend is to support EGL_MESA_drm_display. drm
should be a better name.
|
|
Point about needing a better way to do this validated.
|
|
Allows KMS EGL driver to load. We need a better way of doing this.
|
|
Remove the hard-to-get-right _eglBindContextToSurfaces. As well as fix
an assertion failure from b90a3e7d8b1bcd412ddbf2a4803de2756dacd436 when
such call sequence is hit
eglMakeCurrent(dpy, surf1, surf1, ctx1);
eglMakeCurrent(dpy, surf2, surf2, ctx2);
eglMakeCurrent(dpy, surf1, surf1, ctx1);
|