Age | Commit message (Collapse) | Author |
|
|
|
|
|
When the user sets EGL_DRIVER to egl_dri2 (or egl_glx), make sure the
built-in driver is used. The user might leave the outdated egl_dri2.so
(or egl_glx.so) on the filesystem and we do not want to load it.
|
|
Fix a copy-and-paste error in a4a38dcf61f141297a083ccac217200947d57b0d.
|
|
dpy->ClientAPIs was renamed in a4a38dcf61f141297a083ccac217200947d57b0d.
|
|
|
|
The idea is to be able to match a driver using the following order
try egl_gallium with hw renderer
try egl_dri2
try egl_gallium with sw renderer
try egl_glx
given the module list
egl_gallium
egl_dri2
egl_glx
For that, UseFallback initialization option is added. The module list
is matched twice: with the option unset and with the option set. In the
first pass, egl_gallium skips its sw renderer and egl_glx rejects to
initialize since UseFallback is not set. In the second pass,
egl_gallium skips its hw renderer and egl_dri2 rejects to initialize
since UseFallback is set. The process stops at the first driver that
initializes the display.
|
|
Add initialization options that drv->API.Initialize should support.
Replace drv->Probe by TestOnly initialization option and simplify
_eglMatchDriver.
|
|
Reorder/rename and document the fields that should be set by the driver during
initialization. Drop the major/minor arguments from drv->API.Initialize.
|
|
Setting EGL_DRIVER forces the driver to be loaded, as documented. There
should be no fallbacks.
|
|
So that libEGL is rebuilt whenever LOCAL_LIBS changes.
|
|
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.
|
|
|
|
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).
|
|
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.
|
|
|
|
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.
|
|
_EGLConfig can be directly dereferenced now. Since egl_glx is the last
user of the macros, drop the macros too.
|
|
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.
|
|
The main use of the backend is to support EGL_MESA_drm_display. drm
should be a better name.
|
|
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);
|
|
In other words, skip the __GLcontextModes middle man.
|
|
_EGL_CHECK_DISPLAY checks the display and returns from eglCreateContext
on error.
|
|
This fixes several NULL dereferences.
|
|
Create EGLImages from DRM buffer handles.
|
|
The API of the context was not checked against EGL_RENDERABLE_TYPE when there
was no attribute list. Move the check to _eglInitContext, and be verbose about
common mistakes (EGL_RENDERABLE_TYPE not set, EGL_CONTEXT_CLIENT_VERSION not
set, or eglBindAPI not called).
|
|
Without the .def file, function names are decorated and cannot be
queried by GetProcAddress easily.
|
|
When _EGL_GET_CORE_ADDRESSES is defined, eglGetProcAddress can be used to query
core functions. This is non-standard, but some apps expect it.
|
|
Add new source files to SConscripts.
|
|
Individual drivers still need to support and enable the extension.
|
|
Individual drivers still need to support and enable the extension.
|