Age | Commit message (Collapse) | Author |
|
All the DRI driver did was call the createDrawable callback immediately
upon entry to DRIscreen::createNewDrawable to get the drm_drawable_t.
We can just call that before calling into the DRI driver and pass the
returned drm_drawable_t as an argument to the DRI entry point.
Likewise for destroyDrawable.
Also, DRIdrawablePrivate::draw isn't used anywhere, and since the
driver no longer needs the XID of the drawable we can now drop that.
|
|
Many DRI entry points took a __DRInativeDisplay pointer and a screen
index as arguments. The only use for the native display pointer was to
pass it back to the loader when looking up the __DRIscreen for the given
screen index.
Instead, let's just pass in the __DRIscreen pointer directly, which
let's drop the __DRInativeDisplay type and the getScreen function.
The assumption is now that the loader will be able to retrieve context
from the __DRIscreen pointer when necessary.
|
|
|
|
Not doing this could lead to double frees under rare circumstances.
|
|
To be used by AIGLX for GLX_EXT_texture_from_pixmap without several
additional data copies.
|
|
|
|
|
|
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).
|
|
to the same drawable in a multithreading environment. This one slipped out
of the texman merge.
|
|
|
|
to date.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
destroy __GLcontextModes structures. This eliminates the need for DRI
drivers to ever link with glcontextmodes.c.
|
|
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...
|
|
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.
|
|
|
|
|
|
Calculated fbBPP
|
|
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
|
|
|
|
|
|
__driGarbageCollectDrawables which would get confused while walking
the hash values.
|
|
|
|
|
|
export it via glXGetProcAddress. These are not supported anymore, so print
an error message to that effect.
|
|
Submitted by: John Lightsey <john@nixnuts.net>
|
|
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.
|
|
_mesa_malloc / _mesa_free. Replace Bool with GLboolean.
|
|
|
|
__glXGetDrawableInfo. Make sure driCreateNewDrawable sets
pdraw->private to NULL for all failure paths.
|
|
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.
|
|
drm_handle_t, drm_context_t, drm_drawable_t, drm_magic_t.
|
|
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'.
|
|
interface, it must be available from libGL, and the the typedef in
dri_util.h was wrong.
|
|
|
|
|
|
glxext.h.
|
|
|