summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers
Commit message (Collapse)AuthorAgeFilesLines
* st/dri: Track drawable context bindingsJakob Bornecrantz2011-02-204-2/+14
| | | | | | | | | | | | | | | | | | | 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.
* st/python: add usage parameter to pipe_buffer_createVinson Lee2011-02-152-2/+3
| | | | | | This is a follow-up to commit eafb7f234d11a290b00dcaf5492b9bdad1cf5148. Fixes Linux SCons build.
* gallium: add usage parameter to pipe_buffer_createMarek Olšák2011-02-153-2/+6
| | | | | And set a reasonable buffer usage flag everywhere instead of just PIPE_USAGE_DEFAULT.
* st/python: remove pipe_vertex_buffer::max_indexVinson Lee2011-02-141-3/+0
| | | | This is a follow-up to commit cdca3c58aa2d9549f5188910e2a77b438516714f.
* gallium: remove pipe_vertex_buffer::max_indexMarek Olšák2011-02-143-4/+0
| | | | | This is redundant to pipe_draw_info::max_index and doesn't really fit in the optimizations I plan.
* gallium: always save and restore vertex buffers using cso_cacheMarek Olšák2011-02-142-4/+4
|
* st/egl wayland: Sync front buffer releaseBenjamin Franzke2011-02-102-1/+33
|
* st/dri: Set render_buffer in dri_fill_st_visualBenjamin Franzke2011-02-101-2/+4
| | | | | st/mesa/st_managaer.c needs render_buffer in order to determinde which buffer should be rendered to.
* st/dri: img_from_renderbuf: Fix incorrect usage of dri_context()Benjamin Franzke2011-02-101-1/+1
|
* st/dri: Fix surfaceless gl using contexts with previous bound surfacesBenjamin Franzke2011-02-101-2/+6
| | | | | | | | | | | 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; }
* st/egl wayland: Set color_format according to wl_visualBenjamin Franzke2011-02-101-5/+6
|
* st/egl: Fix platform selectionBenjamin Franzke2011-02-081-0/+1
| | | | | A break for case _EGL_PLATFORM_X11 is missing. introduced by: 381ea0d67a6d84a34d23571c49bbf4339ffda364
* st/egl: Add wayland platformBenjamin Franzke2011-02-075-0/+715
|
* st/egl: drm_image: Check for MESA_drm_imageBenjamin Franzke2011-02-071-2/+2
| | | | | MESA_drm_image isnt limited to drm platform, others can enable the extension too.
* st/egl: native_helper: Add resource_surface_import_resourceBenjamin Franzke2011-02-072-0/+13
|
* st/dri: Implement dri2::{Allocate,Release}BufferBenjamin Franzke2011-02-072-0/+111
|
* st/vega: Disable blending when the paint is opaque.Chia-I Wu2011-01-308-5/+37
| | | | | | | 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.
* st/vega: Remove an invalid sanity check.Chia-I Wu2011-01-301-6/+0
| | | | | Before create_handle returns, obj->handle is 0. Calling handle_to_object will fail.
* st/vega: s/vg[A-Z]/vega[A-Z]/.Chia-I Wu2011-01-304-42/+42
|
* st/egl: Downgrade warning to debug when we can't create a drm screenKristian Høgsberg2011-01-262-2/+2
| | | | We try to load a DRI driver if this fails so don't confuse users.
* vega: implement handler/pointer conversion using a hash tableBrian Paul2011-01-249-9/+175
| | | | Before, we were just casting between 32-bit VGHandles and 64-bit pointers.
* vega: remove redundant functions found elsewhereBrian Paul2011-01-241-10/+0
|
* vega: replace casts with pointer/handle conversion functionsBrian Paul2011-01-2411-165/+297
| | | | | | | | | 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...
* st/xorg: Fix build failure against xserver with XF86_CRTC_VERSION < 3.Michel Dänzer2011-01-241-4/+2
| | | | Reported by Vinson Lee.
* vega: sort filenames in Makefile, SConscriptBrian Paul2011-01-232-23/+24
|
* scons: Add support for GLES.Chia-I Wu2011-01-222-0/+6
| | | | | | | | | | | | | | | | | | 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/dri: Fix warningJakob Bornecrantz2011-01-211-0/+1
|
* Remove executables from source tree.José Fonseca2011-01-185-0/+0
|
* d3d1x: Fix broken build.Chia-I Wu2011-01-161-1/+6
| | | | | st/egl native.h changed its interface in a22a332fc7cc54d4d0973dcd21a90159cc51de1a.
* egl: Improve driver selection.Chia-I Wu2011-01-136-63/+96
| | | | | | | | | | | | | | | | | | | | | | | 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.
* egl: Simplify driver matching.Chia-I Wu2011-01-131-8/+3
| | | | | | Add initialization options that drv->API.Initialize should support. Replace drv->Probe by TestOnly initialization option and simplify _eglMatchDriver.
* egl: Cleanup _EGLDisplay initialization.Chia-I Wu2011-01-131-9/+8
| | | | | Reorder/rename and document the fields that should be set by the driver during initialization. Drop the major/minor arguments from drv->API.Initialize.
* scons: Updates for targets/egl-static.Chia-I Wu2011-01-121-11/+27
| | | | | | | | 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.
* st/egl: Fix a void pointer arithmetic warning.Chia-I Wu2011-01-101-1/+1
|
* st/xorg: Flesh out colour map support and support depth 8.Michel Dänzer2011-01-053-1/+80
|
* st/egl: Fix eglChooseConfig when configs is NULL.Chia-I Wu2010-12-261-4/+4
| | | | | When configs is NULL, the app wants to know the number of matching configs.
* st/egl: Remove unnecessary header.Vinson Lee2010-12-231-1/+0
|
* st/vega: Remove unnecessary headers.Vinson Lee2010-12-226-12/+0
|
* st/egl: Assorted fixes for dri2_display_get_configs.Chia-I Wu2010-12-221-4/+36
| | | | | | 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.
* st/egl: Fix eglCopyBuffers.Chia-I Wu2010-12-221-6/+5
| | | | Flush before presenting.
* st/egl: Plug pbuffer leaks.Chia-I Wu2010-12-221-8/+2
| | | | Unreference validated resources or remove unnecessary validations.
* st/egl: Allow single-buffered pixmaps.Chia-I Wu2010-12-222-26/+17
| | | | | | | 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.
* st/egl: Remove native_config::samples.Chia-I Wu2010-12-223-5/+1
| | | | Multisample buffers are never requested.
* st/egl: Remove native_config::slow_config.Chia-I Wu2010-12-225-9/+0
| | | | | In direct rendering scenario, it is not needed until an EGLDisplay can support both HW and SW pipe screens.
* st/egl: Remove unnecessary egl_g3d_find_pixmap_config.Chia-I Wu2010-12-223-36/+2
| | | | | | 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.
* st/egl: Make config optional for create_pixmap_surface.Chia-I Wu2010-12-223-46/+79
| | | | | | eglCopyBuffers or EGL_KHR_image_pixmap require creating a pixmap surface without a config. Make it just work without relying on is_pixmap_supported.
* st/python: remove unused 'buf' parameter in pipe_buffer_unmapVinson Lee2010-12-201-1/+1
| | | | | | This is a follow-up to commit ec51092a72e2dff1e9b1362d813fe4691cda89b7. Fixes SCons build.
* mapi: Rewrite mapi_abi.py to get rid of preprocessor magic.Chia-I Wu2010-12-065-21/+20
| | | | | | | | 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.
* egl: _eglFilterArray should not allocate.Chia-I Wu2010-12-061-2/+13
| | | | | Otherwise, when it is called from within a driver, the caller cannot free the returned data (on Windows).
* r300g: cleanup winsysMarek Olšák2010-12-051-1/+1
|