summaryrefslogtreecommitdiffstats
path: root/src/gallium/state_trackers
Commit message (Collapse)AuthorAgeFilesLines
* st/xlib: Notify the context when the front/back buffers are swapped.Chia-I Wu2010-09-163-4/+21
| | | | | | | | The current context should be notified when the the front/back buffers of the current drawable are swapped. The notification was skipped when xmesa_strict_invalidate is false (the default). This fixes fdo bug #29774.
* st/egl: Use profiles to create OpenGL ES contexts.Chia-I Wu2010-09-104-48/+26
| | | | | | | Replace all uses of ST_API_OPENGL_ES{1,2} by profiles. Having 3 st_api's to provide OpenGL, OpenGL ES 1.1, and OpenGL ES 2.0 is not a sane abstraction, since all of them share glapi for current context/dispatch management.
* st/dri: Use profiles to create OpenGL ES contexts.Chia-I Wu2010-09-104-46/+14
| | | | | | Having 3 st_api's to provide OpenGL, OpenGL ES 1.1, and OpenGL ES 2.0 is not a sane abstraction, since all of them share glapi for current context/dispatch management.
* gallium: Add context profile support to st_api.Chia-I Wu2010-09-105-9/+50
| | | | | | | | | | | | | | | Add struct st_context_attribs to describe context profiles and attributes. Modify st_api::create_context to take the new struct instead of an st_visual. st_context_attribs can be used to support GLX_ARB_create_context_profile and GLX_EXT_create_context_es2_profile in the future. But the motivation for doing it now is to be able to replace ST_API_OPENGL_ES1 and ST_API_OPENGL_ES2 by profiles. Having 3 st_api's to provide OpenGL, OpenGL ES 1.1, and OpenGL ES 2.0 is not a sane abstraction, since all of them share glapi for current context/dispatch management.
* st/dri: support EGL_MESA_image_drm: queryImageben2010-09-091-0/+30
| | | | Signed-off-by: Jakob Bornecrantz <[email protected]>
* st/dri: support EGL_MESA_image_drm: createImageben2010-09-091-0/+58
| | | | Signed-off-by: Jakob Bornecrantz <[email protected]>
* st/dri: Call dri_init_extensions only for API_OPENGL.Chia-I Wu2010-09-081-1/+9
| | | | | | | | libmesagallium.a that this state tracker will be linked to expects OpenGL's _glapi_table. That is, it expects libGL.so instead of libGLESv1_CM.so or libGLESv2.so. As there is no clean way to know the shared library the app links to, use the api as a simple check. It might be as well to simply remove this function call though.
* st/dri: Use enum st_api_type internally.Chia-I Wu2010-09-085-27/+39
|
* st/dri: Add multi-api supportnobled2010-09-085-13/+46
| | | | | | | | | | Make st/dri screens capable of creating OpenGL ES and OpenGL ES2 contexts. TODO: Figure out the "get_current" problem with multiple st_api's for real. (s/API_OPENGLES1/API_OPENGLES/ by Chia-I Wu)
* st/dri: Make clear which API's are supportednobled2010-09-081-1/+4
| | | | | If the caller requests a GLES context, don't silently create a desktop GL context in its place.
* st/glx: added some commentsBrian Paul2010-09-031-0/+8
|
* st/glx: re-order destruction of buffers, visualsBrian Paul2010-09-011-1/+1
| | | | | Free the buffers before the visuals. Fixes valgrind warning reported in fd.o bug 29919.
* st/egl: Enable EGL_MESA_drm_display.Chia-I Wu2010-08-311-1/+3
|
* st/egl: Add support for EGL_MESA_image_drm.Chia-I Wu2010-08-264-0/+260
|
* st/egl: Add support for EGL_KHR_surfaceless_*.Chia-I Wu2010-08-262-9/+16
|
* st/egl: Make KMS support optional in KMS backend.Chia-I Wu2010-08-261-22/+24
| | | | It should be called DRM backend now.
* st/egl: Fix r300/r600 support in KMS backend.Chia-I Wu2010-08-242-3/+32
| | | | | When the kernel driver name is radeon, ask the loader for r300 or r600 depending on the PCI ID.
* st/dri: Remove unnecessary main/mtype.h.Chia-I Wu2010-08-241-1/+0
|
* st/wgl: Include main/core.h.Chia-I Wu2010-08-244-7/+3
| | | | Make st/wgl include only main/core.h from core mesa.
* st/glx: Include main/core.h.Chia-I Wu2010-08-245-21/+38
| | | | Make st/glx include only main/core.h from core mesa.
* glx/xlib: configurable strict/non-strict buffer size invalidateKeith Whitwell2010-08-223-4/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Introduce a new configuration option XMESA_STRICT_INVALIDATE to switch between swapbuffers-based and glViewport-based buffer invalidation. Default strict invalidate to false, ie glViewport-based invalidation, aka ST_MANAGER_BROKEN_INVALIDATE. This means we will not call XGetGeometry after every swapbuffers, which allows swapbuffers to remain asynchronous. For apps running at 100fps with synchronous swapping, a 10% boost is typical. For gears, I see closer to 20% speedup. Note that the work of copying data on swapbuffers doesn't disappear - this change just allows the X server to execute the PutImage asynchronously without us effectively blocked until its completion. This applies even to llvmpipe's threaded rasterization as the swapbuffers operation was a large part of the serial component of an llvmpipe frame. The downside of this is correctness - applications which don't call glViewport on window resizes will get incorrect rendering, unless XMESA_STRICT_INVALIDATE is set. The ultimate solution would be to have per-frame but asynchronous invalidation. Xcb almost looks as if it could provide this, but the API doesn't seem to quite be there.
* glx/xlib: remove another XSyncKeith Whitwell2010-08-221-1/+0
| | | | | With this change, xmesa_get_window_size still does one round trip, but that's better than doing two.
* glx/xlib: no need to call XSync from XMesaFlushKeith Whitwell2010-08-221-1/+1
| | | | Try to eliminate some unnecessary X server round trips.
* st/glx: use PIPE_TEXTURE_RECT if appropriateLuca Barbieri2010-08-201-1/+6
|
* st/dri: use PIPE_TEXTURE_RECT if appropriateLuca Barbieri2010-08-204-3/+9
|
* st/egl: Fix win32 build.Chia-I Wu2010-08-191-0/+1
| | | | Add new source files to SConscripts.
* st/egl: Add support for EGL_KHR_fence_sync.Chia-I Wu2010-08-173-0/+71
| | | | The extension is implemented by pipe_fence_handle.
* st/egl: Add support for EGL_KHR_reusable_sync.Chia-I Wu2010-08-175-0/+297
| | | | The extension is implemented by pipe_condvar.
* st/dri: make dri_drawable_validate_att staticGeorge Sapountzis2010-08-132-7/+2
|
* st/dri: move TFP code to dri_drawable.cGeorge Sapountzis2010-08-133-52/+55
| | | | | | | | | | | | | | | | | | | | This is based on a patch by nobled <[email protected]> and allows the TFP extension to be enabled for DRISW also. This patch does not enable TFP for DRISW though, because testing on xephyr segfaults here (for both classic and gallium): Program received signal SIGSEGV, Segmentation fault. 0x00786a4a in _mesa_GenTextures (n=1, textures=0xbfffee4c) at main/texobj.c:788 788 ASSERT_OUTSIDE_BEGIN_END(ctx); (gdb) (gdb) where \#0 0x00786a4a in _mesa_GenTextures (n=1, textures=0xbfffee4c) at main/texobj.c:788 \#1 0x0817a004 in __glXDisp_GenTextures () \#2 0x08168498 in __glXDispatch () \#3 0x0808b6ce in Dispatch () \#4 0x08084435 in main () The TFP code is generic except for the teximage call. We need to verify that DRISW correclty implements whatever hook teximage finally calls.
* st/dri: Fix segmentation fault in sw driversnobled2010-08-131-2/+2
|
* st/dri: dri_drawable_get_format is shared between DRI2 and DRISWGeorge Sapountzis2010-08-131-31/+2
|
* st/dri: fix crash when dri2_drawable_get_buffers failsMarek Olšák2010-08-041-1/+2
| | | | | | | | | | | | | | | | | It's easily reproducible with Compiz with its Resize window mode set to Normal (which is usually not the default mode). https://bugs.freedesktop.org/show_bug.cgi?id=28658 https://bugs.freedesktop.org/show_bug.cgi?id=29303 This is actually a workaround to prevent Compiz crashes. Instead, a completely white titlebar might show up during resizing transparent windows (a rare case). The underlying cause should be fixed by someone who has more knowledge about the code. (dri2_drawable_get_buffers should not return NULL) Acked-By: Jakob Bornecrantz <[email protected]>
* egl: Add checks for EGL_MESA_screen_surface.Chia-I Wu2010-07-312-4/+10
| | | | | This allows Mesa EGL to be compiled with eglext.h that does not define EGL_MESA_screen_surface.
* st/dri: Remove unnecessary headers.Vinson Lee2010-07-312-2/+0
|
* st/dri: move backend hooks to appropriate objectGeorge Sapountzis2010-07-307-29/+78
|
* st/dri: drop dri1_helperGeorge Sapountzis2010-07-3013-229/+23
|
* st/dri: mv driDriverAPI to backendsGeorge Sapountzis2010-07-306-130/+49
|
* st/python: Adapt to interface change.Chia-I Wu2010-07-291-21/+18
| | | | This is only compile tested.
* gallium: Use unified pipe_context::draw_vbo.Chia-I Wu2010-07-291-2/+1
| | | | Update u_draw_quad, st/vega, and st/mesa to use pipe_context::draw_vbo.
* Untangle gallium/egl/glx source sharing mess and make it compile againKristian Høgsberg2010-07-283-114/+58
|
* swrastg: Add SWRAST_NO_PRESENT option to not send updates to X serverJakob Bornecrantz2010-07-271-1/+9
| | | | | There seem to be a problem with this path and freeglut where the window wont open if SWRAST_NO_PRESENT is set to true.
* st/egl: Fix debug linenobled2010-07-261-1/+1
| | | | Acked-by: Jakob Bornecrantz <[email protected]>
* st/xorg: fix use-after-freenobled2010-07-261-1/+1
| | | | Acked-by: Jakob Bornecrantz <[email protected]>
* st/xorg: Init the Gallium3D / libkms resources in pre-init.Thomas Hellstrom2010-07-232-86/+75
| | | | | | | | This makes it possible to prune modes already in pre-init. We also keep these resources alive across server generations, and they are implicitly closed on server exit. Signed-off-by: Thomas Hellstrom <[email protected]>
* st/xorg: Kill a couple of compilation warningsThomas Hellstrom2010-07-232-2/+2
| | | | Signed-off-by: Thomas Hellstrom <[email protected]>
* st/xorg vmwgfx/xorg: Add a pre-init customizer callbackThomas Hellstrom2010-07-232-2/+6
| | | | | | | | Add a customizer callback just before initial config setting, so that the customizer code can initialize the mode validator using the drm file-descriptor. Signed-off-by: Thomas Hellstrom <[email protected]>
* st/xorg: Add a possibility to prune modes and limit fb allocation size based ↵Thomas Hellstrom2010-07-233-0/+23
| | | | | | on max fb size. Signed-off-by: Thomas Hellstrom <[email protected]>
* st/egl: Fixes for recent GLX cleanup.Chia-I Wu2010-07-202-19/+45
| | | | | Mainly, the type of __GLXdisplayPrivateRec::screenConfigs has changed from "__GLXscreenConfigs *" to "__GLXscreenConfigs **".
* st/dri: Remove driFrameTrackingExtension.Chia-I Wu2010-07-201-1/+0
| | | | | The extension has been removed in 22266c391fbe17603b15a83d4ccf5fa9455ccf8d.