Age | Commit message (Collapse) | Author |
|
This hopefully fixes wayland-egl's dependency
resolution for autogenerated wayland-drm headers.
|
|
|
|
When doing copy swapbuffers using drm, throttle on outstanding copy operations.
Introduces a new environment variable, EGL_THROTTLE_FENCES that the
user can use to indicate the desired number of outstanding swapbuffers, or
disable throttling using EGL_THROTTLE_FENCES=0.
This can and perhaps should be extended to the pageflip case as well, since
with some hardware pageflips can be pipelined. In case the pageflip syncs, the
throttle operation will be a no-op anyway.
Update copyright notices.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
|
|
Use the pageflip ioctl when available.
Otherwise, or when the backbuffer contents need to be preserved,
fall back to a copy operation.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
|
|
The copy swap can be used when we need to preserve the contents of
the back buffer or when there is no way to do native page-flipping.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
|
|
This makes it usable also for native helpers.
Also add inline functions to access the context and to
uninit the native display structure.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
|
|
whats one more between friends.
again bnf on irc.
|
|
Init array size to 1,
reported by bnf on irc.
|
|
reported by bnf on irc.
|
|
Needs to track this ourself since because we get into a race condition with
the dri_util.c code on make current when rendering to the front buffer.
This is what happens:
Old context is rendering to the front buffer.
App calls MakeCurrent with a new context. dri_util.c sets
drawable->driContextPriv to the new context and then calls the driver make
current. st/dri make current flushes the old context, which calls back into
st/dri via the flush frontbuffer hook. st/dri calls dri loader flush
frontbuffer, which calls invalidate buffer on the drawable into st/dri.
This is where things gets wrong. st/dri grabs the context from the dri
drawable (which now points to the new context) and calls invalidate
framebuffer to the new context which has not yet set the new drawable as its
framebuffers since we have not called make current yet, it asserts.
|
|
This is a follow-up to commit eafb7f234d11a290b00dcaf5492b9bdad1cf5148.
Fixes Linux SCons build.
|
|
And set a reasonable buffer usage flag everywhere instead of
just PIPE_USAGE_DEFAULT.
|
|
This is a follow-up to commit cdca3c58aa2d9549f5188910e2a77b438516714f.
|
|
This is redundant to pipe_draw_info::max_index and doesn't really fit
in the optimizations I plan.
|
|
|
|
|
|
st/mesa/st_managaer.c needs render_buffer in order
to determinde which buffer should be rendered to.
|
|
|
|
ctx->dPriv might be != NULL then draw which is NULL is accessed:
struct dri_drawable *draw = dri_drawable(driDrawPriv);
[..]
if (ctx->dPriv != driDrawPriv) {
ctx->dPriv = driDrawPriv;
draw->texture_stamp = driDrawPriv->lastStamp - 1;
}
|
|
|
|
A break for case _EGL_PLATFORM_X11 is missing.
introduced by: 381ea0d67a6d84a34d23571c49bbf4339ffda364
|
|
|
|
MESA_drm_image isnt limited to drm platform,
others can enable the extension too.
|
|
|
|
|
|
When the paint is opaque (currently, solid color with alpha 1.0f), no
blending is needed for VG_BLEND_SRC_OVER. This eliminates the serious
performance hit introduced by 859106f196ade77f59f8787b071739901cd1a843
for a common scenario.
|
|
Before create_handle returns, obj->handle is 0. Calling
handle_to_object will fail.
|
|
|
|
We try to load a DRI driver if this fails so don't confuse users.
|
|
Before, we were just casting between 32-bit VGHandles and 64-bit pointers.
|
|
|
|
Per the spec, all OpenVG handles are 32-bit. We can't just cast them
to/from integers on 64-bit systems.
Start fixing that mess by introducing a set of handle/pointer conversion
functions in handle.h. The next step is to implement a handle/pointer
hash table...
|
|
Reported by Vinson Lee.
|
|
|
|
GLES can be enabled by running scons with
$ scons gles=yes
When gles=yes is given, the build is changed in three ways. First,
libmesa.a will be built with FEATURE_ES1 and FEATURE_ES2. This makes
DRI drivers and libEGL support and advertise GLES support. Second, GLES
libraries will be created. They are libGLESv1_CM, libGLESv2, and
libglapi. Last, libGL or opengl32 will link to libglapi. This change
is required as _glapi_* will be declared as __declspec(dllimport) in
libmesa.a on windows. libmesa.a expects those symbols to be defined in
another DLL. Due to this change to GL, GLES support is marked
experimental.
Note that GLES requires libxml2-python to generate some of its sources.
|
|
|
|
|
|
st/egl native.h changed its interface in
a22a332fc7cc54d4d0973dcd21a90159cc51de1a.
|
|
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.
|
|
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.
|
|
|
|
|
|
When configs is NULL, the app wants to know the number of matching
configs.
|
|
|
|
|
|
Set window_bit only when the visual id is greater than zero. Correct
visual types. Skip slow configs as they are not relevant. Finally, do
not return duplicated configs.
|
|
Flush before presenting.
|
|
Unreference validated resources or remove unnecessary validations.
|