summaryrefslogtreecommitdiff
path: root/src/mesa/drivers/dri/common/dri_util.c
AgeCommit message (Collapse)Author
2007-01-05Add reporting of damage by DRI drivers when the extension support is available.Eric Anholt
With this, tools like ximagesrc in gstreamer correctly see updates from GL rendering. Support requires that the Xdamage library be current (but will be disabled if not present) plus a new X Server with support for the new XDamagePost request. libGL now has a new interface version, and also links against libXdamage and libXfixes to support it, but backwards compatibility is retained. Currently, all drivers report damage at SwapBuffers time through common code -- front buffer rendering doesn't result in damage being reported. Also, the damage is against the root window, as our drivers don't yet render to backing store when they should (composited environments).
2006-12-01Fix an infinite loop error that may occur when many contexts are boundThomas Hellström
to the same drawable in a multithreading environment. This one slipped out of the texman merge.
2006-11-01Merge texmem-0-3-branch.Keith Whitwell
2006-10-16Track the currently bound read drawable and make sure its info is upIan Romanick
to date.
2006-07-12fix another memleakTilman Sauerbeck
2006-03-31Dave Reveman's patch for GLX_MESA_copy_sub_buffer supportBrian Paul
2006-03-28Revert merge of new/experimental code from texmem branch.Keith Whitwell
2006-03-26merge from texman branchBrian Paul
2006-03-23fix coverity 926: use before NULL checkDave Airlie
2005-11-29assorted fixes for server-side direct rendering (bug 5199)Brian Paul
2005-09-04just formatting clean-upsBrian Paul
2005-08-05Fixes bugzillla #812.Ian Romanick
The weak version of _glapi_DispatchTSD was removed from dri_util.c. As stated in the bug report, this was only needed to support versions of libGL that did not have this symbol. Versions of libGL without this symbol are no longer supported at all, so it is totally irrelevant.
2005-07-28Use the routines supplied in the __DRIinterfaceMethods structure to create aIan Romanick
destroy __GLcontextModes structures. This eliminates the need for DRI drivers to ever link with glcontextmodes.c.
2005-07-26Fixes the glXGetProcAddress portion of the interface. Most of the functionsIan Romanick
that are currently obtained via glXGetProcAddress and all of the XF86DRI functions are replaced with a funciton table. This table will be passed to __driCreateNewScreen. One of the functions in the table is getProcAddress. This allows some loaders to expose functionality not in all loaders. This will be immediatly used for glxEnableExtension (formerly known to drivers as __glXScrEnableExtension). libGL (and in the future libglx) expose this function so that drivers can enable GLX extensions. libEGL should exposed eglEnableExtension to enable EGL extensions. The same function cannot be used for both because the extensions have different names and (possibly) different semantics. Drivers can optionally use one, both, or neither. The key parts are in the __DRIinterfaceMethodsRec structure in dri_interface.h. A pointer to one of these structures is passed into __driCreateNewScreen. Because of this, the version of the API is bumped to 20050725. Since the previous version(s) were never in a release, their existance is erased. I was actually a little surprised by how much code this cuts from the drivers. A lot of glXGetProcAddress calls disappear, and a lot of version checks go with them. Nice. The one thing I'm not sure of is removing __glXInitialize. For some reason that function was in the glXGetProcAddress table, but *nothing* in the Mesa tree used it. Did something with DRI conf. use this function? It seems odd...
2005-07-24All elements of pre-DRI_NEW_INTERFACE_ONLY are removed. This allowsIan Romanick
1,402 lines of code to be removed from Mesa (drivers and libGL). The big winner is dri_util.c. Primary changes are: 1. Remove all "deprecated" entry-points from the various structures in dri_interface.h. 2. Rename the remaining fields to removed "version numbers." So, bindContext3 becomes bindContext. Functions with "New" in the name (e.g., CreateNewContext) were *not* changed, but that is an option. Having "New" in the name is less annoying to me than having "3" in the name. 3. Remove all compatibility code that handles cases where the driver or the loader is too old to support the latest interfaces. 4. Append the API version to the __driCreateNewScreen function name. This is currently done by hand. In the future (i.e., the next time we make an incompatible change to the interface) we'll want to come up with a better way to do this. This prevents old loaders from being able to load new (incompatible) drivers. 5. Bump the API version to 20050722. All drivers (by way of dri_util.c) require this version. 6. All drivers are *required* to expose GLX_SGIX_fbconfig and GLX_OML_swap_method (or the moral equivalents). Support for these functions in implicit in the use of the "new" interface. 7. Some cases still exist that need to be compiled differently in a loader or core Mesa versus in a driver. These are identified by the define IN_DRI_DRIVER.
2005-06-02oops, undo previous changeBrian Paul
2005-06-02start removing old (pre-renderbuffer) span codeBrian Paul
2005-05-05Fix up origin in dri/fb driverJon Smirl
Calculated fbBPP
2005-04-13Revert revision 1.13. This allows server-side libGLcore (in X.org) to buildIan Romanick
with Mesa CVS. This change was wrong in the first place, and the issue that necessitated it has been resolved. For more background on the problem see: http://marc.theaimsgroup.com/?l=mesa3d-dev&m=111333880529935&w=2
2005-02-14fix some signed vs unsigned warningsDave Airlie
2005-01-31Bug #2428: #ifdef GLX_DIRECT_RENDERING in DRI drivers is pointless.Adam Jackson
2005-01-12Simplify usage of drmHash functions and fix bug inKeith Whitwell
__driGarbageCollectDrawables which would get confused while walking the hash values.
2004-12-14uint*t -> u_int*t changesAlan Hourihane
2004-12-08Use union type to avoid strict aliasing problems.Alan Hourihane
2004-10-27Bug #1713: Some rare libGL's have __glXFindDRIScreen defined but do notAdam Jackson
export it via glXGetProcAddress. These are not supported anymore, so print an error message to that effect.
2004-08-12Fix dri_util.c build with new headers.Eric Anholt
Submitted by: John Lightsey <john@nixnuts.net>
2004-06-29First phase of TLS work. At this point SPARC assembly dispatch isIan Romanick
broken, but it will be fixed "shortly." This is pretty much the same as the patch I sent to the dri-devel list on 22-Jun-2004.
2004-06-07Fix up some remaining include issues. Replace Xmalloc / Xfree withIan Romanick
_mesa_malloc / _mesa_free. Replace Bool with GLboolean.
2004-06-02Removed need for sarea.h, various touch ups to get rid of type mismatches.Jon Smirl
2004-06-02Require libGL API version 20040602, which actually exportsIan Romanick
__glXGetDrawableInfo. Make sure driCreateNewDrawable sets pdraw->private to NULL for all failure paths.
2004-06-02XF86DRIDestroyContext, XF86DRICreateDrawable, andIan Romanick
XF86DRIDestroyDrawable are all called directly from DRI drivers using the new interface. Therefore, prototypes, using available datatypes, must be available in dri_interface.h. Since the prototypes are available there, xf86dri.h is no longer needed for DRI_NEW_INTERFACE_ONLY builds.
2004-06-02Replace drmHandle, drmContext, drmDrawable, drmMagic and related types withIan Romanick
drm_handle_t, drm_context_t, drm_drawable_t, drm_magic_t.
2004-06-01Convert 'Display *' to '__DRInativeDisplay *'. Only portions of theIan Romanick
interface that are not *strictly* part of the old interface were changed. Replace GetDrawableInfo type (dri_util.h) with PFNGLXGETDRAWABLEINFOPROC (dri_interface.h). Wrap __driCreateScreen (in drivers that use the new interface) with '#ifndef DRI_NEW_INTERFACE_ONLY'.
2004-06-01Fix a couple issues related to GetDrawableInfo. In the new DRIIan Romanick
interface, it must be available from libGL, and the the typedef in dri_util.h was wrong.
2004-06-01Replace occurances of GLXDrawable and Drawable with __DRIid.Ian Romanick
2004-06-01Fix a couple typos that prevent building with DRI_NEW_INTERFACE_ONLY.Ian Romanick
2004-05-27Define PFNGLXGETMSCRATEOMLPROC so that DRI will build without includingIan Romanick
glxext.h.
2004-05-27Move dri_util.[ch] and glcontextmodes.[ch] from dri_client to common.Ian Romanick