summaryrefslogtreecommitdiff
path: root/src/glx/x11/dri_glx.c
AgeCommit message (Collapse)Author
2008-11-11Don't mess with emacs tab width.Kristian Høgsberg
2008-10-14Update DRI2 implementation according to new specification.Kristian Høgsberg
2008-10-14Revert pointless reindents to avoid merge conflicts.Kristian Høgsberg
Why are we reindenting code that's work in progress...
2008-10-13glx: indent -br -i3 -npcs --no-tabs dri_glx.cRALOVICH, Kristóf
2008-10-13glx: add a line of Emacs helping variablesRALOVICH, Kristóf
2008-09-18glx: remove #include "glheader.h" linesBrian Paul
Was only used to get the PUBLIC/USED macros. Also, replace "GL_FALSE" with "False" in a couple places.
2008-08-29DRI2: Drop sarea, implement swap buffers in the X server.Kristian Høgsberg
2008-08-20glx: free context in driDestroyContext()Kristof Ralovich
2008-07-13glx/dri: only report DRI2 extensions when DRI2 is enabled.Dave Airlie
Fixes bug 15477
2008-06-13glx: load swrast_dri.soGeorge Sapountzis
caveats: - does not work with old (i.e. libGLcore) xserver: - made unbindContext a noop - extensions: GLX_SGI_make_current_read GLX_EXT_texture_from_pixmap GLX_MESA_copy_sub_buffer
2008-06-13glx: use ErrorMessageFGeorge Sapountzis
2008-06-09glx: use goto's vs. nested if's ala xserverGeorge Sapountzis
compile tested only
2008-06-09glx: add dri_common.c ala xserverGeorge Sapountzis
also drop driFilterModes which is unused in preparation of loading swrast_dri.so
2008-05-09Default DRI driver directory to match X.Org xserverDan Nicholson
Since the only valid consumer of the DRI drivers is the X.Org xserver, this changes the default DRI driver directory to match xorg-server: ${libdir}/dri. The old default of /usr/X11R6/modules/dri was wrong for nearly all current systems.
2008-04-23include <X11/Xlib.h>Alan Hourihane
2008-04-23glx: split out current context codeGeorge Sapountzis
also clean header inclusion after code movement
2008-04-08Handle fbconfig comparison correctly for attributes the X server didn't send.Jie Luo
2008-04-08Only convert configs if screen creation was successful.Kristian Høgsberg
Thanks to Adam Jackson for pointing it out.
2008-04-02Initialize GLX_EXT_texture_from_pixmap attributes correctly.Kristian Høgsberg
2008-03-31DRI interface changes and DRI2 direct rendering support.Kristian Høgsberg
Add DRI2 direct rendering support to libGL and add DRI2 client side protocol code. Extend the GLX 1.3 create drawable functions in glx_pbuffer.c to call into the DRI driver when possible. Introduce __DRIconfig, opaque struct that represents a DRI driver configuration. Get's rid of the open coded __GLcontextModes in the DRI driver interface and the context modes create and destroy functions that the loader was requires to provide. glcore.h is no longer part of the DRI driver interface. The DRI config is GL binding agnostic, that is, not specific to GLX, EGL or other bindings. The core API is now also an extension, and the driver exports a list of extensions as the symbol __driDriverExtensions, which the loader must dlsym() for. The list of extension will always include the DRI core extension, which allows creating and manipulating DRI screens, drawables and contexts. The DRI legacy extension, when available, provides alternative entry points for creating the DRI objects that work with the XF86DRI infrastructure. Change DRI2 client code to not use drm drawables or contexts. We never used drm_drawable_t's and the only use for drm_context_t was as a unique identifier when taking the lock. We now just allocate a unique lock ID out of the DRILock sarea block. Once we get rid of the lock entirely, we can drop this hack. Change the interface between dri_util.c and the drivers, so that the drivers now export the DriverAPI struct as driDriverAPI instead of the InitScreen entry point. This lets us avoid dlsym()'ing for the DRI2 init screen function to see if DRI2 is supported by the driver.
2008-03-15Test createNewScreen for NULL, not createNewScreenName in driCreateScreen().Kristian Høgsberg
2008-03-14glx: fix rotation regression. bug #14963Xiang, Haihao
2008-03-12libGL: Pull the drawable hash back out in the generic code.Kristian Høgsberg
This will be shared between dri and dri2 code.
2008-03-10dri: fix function call to add new parameter.Dave Airlie
This may not be correct but it should get the build going.
2008-03-09Properly revert the libGL loader path breakage.Kristian Høgsberg
2008-03-09libGL: Fall back to DEFAULT_DRIVER_DIR properly.Kristian Høgsberg
After commit 6fd82f6fbd208dc7b1839ea408a5fb28589ee622, we would overwrite the libPath default value with NULL if libGL was running non-setuid and none of the env vars were set. Thanks to Magnus Kessler <Magnus.Kessler@gmx.net> for spotting it.
2008-03-08Use _X_HIDDEN to hide a bunch of leaked symbols.Kristian Høgsberg
2008-03-08Move DRI context functions into dri_glx.c.Kristian Høgsberg
Also drop isDirect flag; if gc->driContext is non-NULL, it's direct.
2008-03-08Move DRI drawable creation into dri_glx.c.Kristian Høgsberg
2008-03-08Introduce __GLXDRIscreen so we can start moving function pointers in there.Kristian Høgsberg
Temporarily rename the __DRIscreen member to __driScreen. Eventually, we'll move that into __GLXDRIscreen and only access it in dri_glx.c.
2008-03-08Move DRI specific parts of CreateContext into dri_glx.c.Kristian Høgsberg
2008-03-08Convert driCreateScreen and driDestroyScreen to function pointers.Kristian Høgsberg
We avoid leaking the symbols and will be able to replace them with DRI2 implementation later on.
2008-03-08Abstract __DRIdisplayPrivateRec away in dri_glx.c.Kristian Høgsberg
This patch moves __DRIdisplayPrivateRec definition into dri_glx.c and let's dri_glx.c allocate the __DRIdisplay struct pointer to from __GLXdisplayPrivate. A small step towards moving more of the dri functionality into dri_glx.c.
2008-03-08Simplify LIBGL_DRIVERS_PATH walking.Kristian Høgsberg
2008-03-08Simplify dri loading code by eliminating dlopen "cache".Kristian Høgsberg
No need to jump through hoops to track __DRIdrivers and avoid dlopening the same .so more than twice, dlopen() does this internally. Besides, we were already bypassing this and dlopening drivers for each screen, whether or not they were already dlopened.
2008-03-08libGL: Consolidate DRI initialization in dri_glx.cKristian Høgsberg
Move a lot of code over from glx_ext.c.
2007-12-06Minor followup fixes for the previous commit.Michel Dänzer
2007-12-06Always call dlopen in DriverOpen.George Nassas
This increases the reference count for the driver binary, preventing it from getting unloaded prematurely in driDestroyDisplay. See https://bugs.freedesktop.org/show_bug.cgi?id=13541 .
2007-10-05Add macros to generate CreateNewScreen entrypoint.Kristian Høgsberg
2007-10-05Remove XIDs from DRI interface (see #5714).Kristian Høgsberg
2007-04-08Make sure GLX entrypoints are marked PUBLIC.Adam Jackson
Fedora bug #229808.
2007-03-27always print error messages, unless LIBGL_DEBUG=quietBernardo Innocenti
2007-02-05fix mem leaksPanagiotis Papadakos
2007-02-05break if we removed driver from Drivers list in driDestroyDisplayPanagiotis Papadakos
Else we read memory we just released, in for statement.
2007-02-01driDestroyDisplay: Fix comment, it is called now.Michel Dänzer
2007-02-01driDestroyDisplay: Remove Drivers list entry when dlclosing its handle.Michel Dänzer
This fixes a regression from commit f81b1dbe374fe446f6ef676e70a72952ffb47d4e: Since then, driDestroyDisplay gets called from __glXFreeDisplayPrivate. It dlcloses the handles associated with the display but fails to remove their references from the Drivers list, so subsequent calls to OpenDriver return a stale handle and an invalid createNewScreenFunc pointer. The attempt to call the latter results in a segfault when running amoeba, e.g.
2006-08-14Bug #7169: Attempt to make libGL symbols visible to drivers.Michel Dänzer
Some applications end up dlopening libGL without RTLD_GLOBAL, so the libGL symbols referenced by the driver can't be unresolved when libGL dlopens it. This attempts to make the libGL symbols visible to the driver by dlopening libGL (again) with RTLD_GLOBAL before dlopening the driver and dlclosing the obtained handle afterwards.
2006-07-12New config var DRI_DRIVER_SEARCH_DIR to specify where libGL should searchBrian Paul
(at runtime) for the DRI drivers. See bug 2372.
2005-08-11fix X #includes so they're relative to X11/ directory (bug 4047)Brian Paul
2005-07-28Major rip-up of internal function insertion interface. The oldIan Romanick
_glapi_add_entrypoint has been replaced by a new routine called _glapi_add_dispatch. This new routine dynamically assignes dispatch offsets to functions added. This allows IHVs to add support for extension functions that do not have assigned dispatch offsets. It also means that a driver has no idea what offset will be assigned to a function. The vast majority of the changes in this commit account for that. An additional table, driDispatchRemapTable, is added. Functions not in the Linux OpenGL ABI (i.e., anything not in GL 1.2 + ARB_multitexture) has a fixed offset in this new table. The entry in this table specifies the offset in of the function in the real dispatch table. The internal interface was also bumped from version 20050725 to 20050727. This has been tested with various programs in progs/demos on: radeon (Radeon Mobility M6) r128 (Rage 128 Pro) mga (G400)