* Don't dispatch vertices directly to MMIO; queue them up in dma-like buffers
first. This makes things more uniform between AGP and MMIO paths, cleans up
some locking ugliness, and makes the driver look more like other drivers.
* Don't use the AGP Cmd buffer provided by the server. Instead allocate one in
the client, which avoids the need for lots of synchronization stuff.
* Mark some MMIO accesses volatile that should have been.
* Disable the AGP submission path by default (agp_disable=true) due to
unresolved issues in the new code. The old code had its own (serious) errors
with AGP, so this is not really a step backwards.
GL_EXT_blend_subtract was already enabled via GL_ARB_imaging, but now
one of the added modes is supported in hardware. GL_NV_blend_square
was tested with progs/tests/blendsquare on an Rage128 Pro with PCI ID
1002:5046. I know there are some differences with some versions of
the chip.
drivers when DRI_NEW_INTERFACE_ONLY is defined. #ifndef it away in
that situation.
Add a new function, driCheckDriDdxDrmVersion2, that is passed in the
version information that is already supplied to __driCreateNewScreen.
Part of the reason that information is supplied to
__driCreateNewScreen is so that the driver doesn't have to make those
calls to get it!
Modify all drivers that support the new interface to use the new
function instead of the old. As soon as all drivers support the new
interface, driCheckDriDdxDrmVersion can be removed.
by explicit 0. Several functions that are not needed with
DRI_NEW_INTERFACE_ONLY are blocked with '#ifndef DRI_NEW_INTERFACE_ONLY'.
Some further work is still required to make it build without any X
include files, though.
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.
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'.