Age | Commit message (Collapse) | Author |
|
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.
|
|
All single-buffered configs were ignored before to make sure
EGL_RENDER_BUFFER is settable for window surfaces. It is better to
allow single-buffered configs and set EGL_WINDOW_BIT only for
double-buffered ones. This way there can be single-buffered pixmaps.
|
|
Multisample buffers are never requested.
|
|
In direct rendering scenario, it is not needed until an EGLDisplay can
support both HW and SW pipe screens.
|
|
It was used to find a compatible config for a given pixmap. Now that a
config is optional for pixmap surface creation, the function is not
needed.
|
|
eglCopyBuffers or EGL_KHR_image_pixmap require creating a pixmap surface
without a config. Make it just work without relying on
is_pixmap_supported.
|
|
This is a follow-up to commit ec51092a72e2dff1e9b1362d813fe4691cda89b7.
Fixes SCons build.
|
|
The preprocessor magic in mapi was nothing but obfuscation. Rewrite
mapi_abi.py to generate real C code.
This commit removes the hack added in
43121f20866bb89e8dac92bd92ec85a943704b7e.
|
|
Otherwise, when it is called from within a driver, the caller cannot
free the returned data (on Windows).
|
|
|