Age | Commit message (Collapse) | Author |
|
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
|
|
|
|
|
|
When an app loads libEGL.so dynamically with RTLD_LOCAL, loading DRI
drivers would fail because of missing glapi symbols. This commit makes
egl_dri2 load libglapi.so with RTLD_GLOBAL to export glapi symbols for
future symbol resolutions.
The same trick can be found in GLX. However, egl_dri2 can only do so
when --enable-shared-glapi is given. Because, otherwise, both libGL.so
and libglapi.so define glapi symbols and egl_dri2 cannot tell which
library to load.
|
|
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.
|
|
The driver struct is zeroed after dri2_load. Oops.
|
|
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 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.
|
|
|
|
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>
|
|
Remove all _egl<Res>IsLinked and _egl<Res>IsBound. Update
_eglBindContext and drivers to do reference counting.
|
|
Mainly to rename _eglAddConfig to _eglLinkConfig, along with a few clean
ups.
|
|
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.
|
|
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>
|
|
Point about needing a better way to do this validated.
|
|
Allows KMS EGL driver to load. We need a better way of doing this.
|
|
In other words, skip the __GLcontextModes middle man.
|
|
This driver doesn't work with any of the DRI drivers in the source tree.
|
|
|
|
|
|
|
|
This lets the egl_dri2 driver initialize on just a DRM fd.
|
|
|
|
This commit introduces type-safe platform displays internally. A
platform display consists of a generic pointer and an enum that
specifies the platform.
An EGLDisplay is created from a platform display. Native displays
become platform displays whose platform is determined by
_eglGetNativePlatform(). Platform windows and pixmaps may also be
introduced if needed.
|
|
|
|
It always returns a valid xcb_connection_t, but if connection failed, it's in the
error state.
|
|
|
|
Drivers need symbols from libEGL. Without back-linking, the build fails
on Cygwin.
|
|
This extension allows a color buffer to be used for both rendering and
texturing. EGL allows the use of color buffers of pbuffer drawables
for texturing, this extension extends this to allow the use of color
buffers of pixmaps too.
|
|
|
|
This extension adds a new function which provides an alternative to
eglSwapBuffers. eglSwapBuffersRegionNOK accepts two new parameters in
addition to those in eglSwapBuffers. The new parameters consist of a
pointer to a list of 4-integer blocks defining rectangles (x, y,
width, height) and an integer specifying the number of rectangles in
the list.
|
|
Don't want to shutdown everything if egl_dri2 fails to initialize.
|
|
Otherwise testing ->Probe for non-NULL and calling it goes boom.
|