[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xserver-xorg-video-ati: Changes to 'debian-experimental'



 ChangeLog                |  132 +++++++++
 configure                |   20 -
 configure.ac             |    2 
 debian/changelog         |    6 
 man/ati.man              |    2 
 src/Makefile.am          |   13 
 src/Makefile.in          |  116 +++----
 src/ati.c                |  689 ++++++++++++-----------------------------------
 src/ati.h                |   74 -----
 src/atibus.c             |    1 
 src/atichip.c            |    4 
 src/atichip.h            |   30 ++
 src/aticonsole.c         |    9 
 src/atidri.c             |    8 
 src/atii2c.c             |    3 
 src/atiload.c            |  173 -----------
 src/atiload.h            |   37 --
 src/atimach64probe.c     |   58 +++
 src/atimach64probe.h     |    6 
 src/atimach64version.h   |   59 ++++
 src/atimisc.c            |   87 -----
 src/atimode.c            |    9 
 src/atimodule.c          |   35 --
 src/atimodule.h          |   30 --
 src/atipreinit.c         |    6 
 src/atiprobe.c           |   24 -
 src/atombios_output.c    |   78 +++--
 src/r128.h               |    6 
 src/r128_cursor.c        |    2 
 src/r128_dri.c           |   16 -
 src/r128_driver.c        |  275 ++++--------------
 src/r128_misc.c          |    6 
 src/r128_probe.c         |   17 -
 src/r128_probe.h         |    5 
 src/r128_video.c         |    8 
 src/radeon.h             |    2 
 src/radeon_accelfuncs.c  |   10 
 src/radeon_atombios.c    |    8 
 src/radeon_bios.c        |  115 -------
 src/radeon_commonfuncs.c |  136 +++++++++
 src/radeon_crtc.c        |    2 
 src/radeon_driver.c      |  216 --------------
 src/radeon_exa.c         |   17 +
 src/radeon_exa_funcs.c   |   15 -
 src/radeon_exa_render.c  |  404 ++++++++++++++++++++++++++-
 src/radeon_misc.c        |    6 
 src/radeon_mm_i2c.c      |   14 
 src/radeon_output.c      |   42 +-
 src/radeon_probe.c       |   17 -
 src/radeon_probe.h       |   21 -
 src/radeon_reg.h         |  203 +++++++++++++
 src/radeon_video.c       |    3 
 src/theatre.h            |   38 --
 src/theatre_detect.h     |   11 
 54 files changed, 1533 insertions(+), 1793 deletions(-)

New commits:
commit bb0cd83d5d24aeb0b906b3a9e7b289a3b5d55dab
Author: Brice Goglin <bgoglin@debian.org>
Date:   Thu Jan 17 11:31:12 2008 +0100

    New upstream snapshot, containing commits up to 6bd510a2

diff --git a/ChangeLog b/ChangeLog
index 17760f7..870f936 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,135 @@
+commit 6bd510a211f25d52e74791e4a429cd2218ced541
+Author: Alex Deucher <alex@samba.(none)>
+Date:   Wed Jan 16 18:09:49 2008 -0500
+
+    RADEON: add a message about render accel on newer cards
+
+commit 85bf3439fe2579aec48f5cd8d65a9d51b1ae8535
+Author: Alex Deucher <alex@samba.(none)>
+Date:   Wed Jan 16 17:52:06 2008 -0500
+
+    R300: only init3d on r3xx
+
+commit dbb2ca471dfbff245b30c5055871dee0dc0e3d15
+Author: Alex Deucher <alex@samba.(none)>
+Date:   Wed Jan 16 17:10:02 2008 -0500
+
+    R300: only enable render accel on non-IGP r3xx/r4xx chips for now
+
+commit 3c72b100bcfacee600644669b586e86cfd32754e
+Author: Alex Deucher <alex@samba.(none)>
+Date:   Wed Jan 16 16:55:42 2008 -0500
+
+    R300: First pass at render accel
+    
+    This first pass is pretty limited.  All it currently supports
+    is transforms for rotation.  No blending yet.
+    
+    Based on inital implementation from Wolke Liu with
+    additional lock-up fixes by Dave Airlie.
+
+commit 2ba3562d2af911fdd90881049599e239d27260bc
+Author: George Sapountzis <gsap7@yahoo.gr>
+Date:   Sat Jan 12 17:11:59 2008 +0200
+
+    ati wrapper: xf86PciInfo.h is enough
+
+commit c2caeb11a97dad5379d70881c5c0fd834a8c3d54
+Author: George Sapountzis <gsap7@yahoo.gr>
+Date:   Sat Jan 12 16:18:34 2008 +0200
+
+    ati wrapper: add DriverRec's and use them
+
+commit 19e1b180fec6f83a474e125465bc60111c0f43e0
+Author: George Sapountzis <gsap7@yahoo.gr>
+Date:   Sat Jan 12 16:18:07 2008 +0200
+
+    mach64: load for both "ati" and "mach64" as driver names
+    
+    similar to r128/radeon
+
+commit 92f54400d5450b29b3a76d5ecc927cf0d73e156e
+Author: George Sapountzis <gsap7@yahoo.gr>
+Date:   Sat Jan 12 16:17:47 2008 +0200
+
+    mach64: add version (need not match with ati)
+    
+    similar to r128/radeon
+
+commit 311ec7b6c54a50a4b8a5a445f7283da2b0b2e0f5
+Author: George Sapountzis <gsap7@yahoo.gr>
+Date:   Sat Jan 12 16:17:21 2008 +0200
+
+    atimisc: rename to mach64
+
+commit 5244e235262290eab8a3546f449295c12ed8f6c7
+Author: Alex Deucher <alex@samba.(none)>
+Date:   Mon Jan 14 16:11:09 2008 -0500
+
+    ATOMBIOS: disable the scaler by default on avivo cards
+    
+    Fixes bug 14001
+
+commit 729da30c80d6545b75c8faea44754634f477cc09
+Merge: 000741e... 625a885...
+Author: Alex Deucher <alex@samba.(none)>
+Date:   Mon Jan 14 10:05:01 2008 -0500
+
+    Merge branch 'master' of ssh://agd5f@git.freedesktop.org/git/xorg/driver/xf86-video-ati
+
+commit 625a885a964488da2a35065eb597a17ee57b22a9
+Author: George Sapountzis <gsap7@yahoo.gr>
+Date:   Wed Jan 9 17:39:56 2008 +0200
+
+    ati wrapper: use pci ids
+
+commit 48865200ca9f1daf87e52620b9f8175f88dd886f
+Author: George Sapountzis <gsap7@yahoo.gr>
+Date:   Wed Jan 9 19:01:04 2008 +0200
+
+    radeon: remove stray include
+
+commit a5a6b873353611cb7e46e5e375f039957c7051a7
+Author: George Sapountzis <gsap7@yahoo.gr>
+Date:   Wed Jan 9 13:03:32 2008 +0200
+
+    radeon: remove stray _X_EXPORT
+
+commit 80c9974b6cdc0147d777df6990b3f3aacd87969d
+Author: George Sapountzis <gsap7@yahoo.gr>
+Date:   Tue Jan 8 18:15:47 2008 +0200
+
+    r128: pci-rework conversion
+    
+    compile-tested only
+
+commit cd4b39403d74f314e1c2cfa4cf0e4fe542891dc3
+Author: George Sapountzis <gsap7@yahoo.gr>
+Date:   Sat Mar 10 23:12:15 2007 +0200
+
+    Drop symbol lists from r128, radeon, theatre.
+    
+    compile-tested only
+
+commit 63b4b8213fabc5a57f897b60b6eaa9f78d86e6ff
+Author: George Sapountzis <gsap7@yahoo.gr>
+Date:   Wed Mar 21 20:24:22 2007 +0200
+
+    [mach64] Drop symbol lists.
+    
+    egrep LOADER\|SymLists\|Symbols src/*.[hc]
+    
+    not needed after server commit bca9364f3f4a2376edbcf57a34f704ce28be21ba, i.e.
+    xserver 1.2
+    
+    compile-tested only
+
+commit 000741e250e54122b0adc91694eb4bfa320a70fb
+Author: Alex Deucher <alex@samba.(none)>
+Date:   Thu Jan 10 14:49:48 2008 -0500
+
+    RADEON: clean up output handling
+
 commit 10e7636c02478b8ffe183bb0c46229ca0d6584e1
 Author: Kristian Høgsberg <krh@bitplanet.net>
 Date:   Wed Jan 9 12:47:39 2008 -0500
diff --git a/configure b/configure
index a017758..d391cf8 100755
--- a/configure
+++ b/configure
@@ -20786,12 +20786,12 @@ if test -n "$PKG_CONFIG"; then
         pkg_cv_XORG_CFLAGS="$XORG_CFLAGS"
     else
         if test -n "$PKG_CONFIG" && \
-    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xorg-server xproto fontsproto \$REQUIRED_MODULES\"") >&5
-  ($PKG_CONFIG --exists --print-errors "xorg-server xproto fontsproto $REQUIRED_MODULES") 2>&5
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xorg-server >= 1.2 xproto fontsproto \$REQUIRED_MODULES\"") >&5
+  ($PKG_CONFIG --exists --print-errors "xorg-server >= 1.2 xproto fontsproto $REQUIRED_MODULES") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-  pkg_cv_XORG_CFLAGS=`$PKG_CONFIG --cflags "xorg-server xproto fontsproto $REQUIRED_MODULES" 2>/dev/null`
+  pkg_cv_XORG_CFLAGS=`$PKG_CONFIG --cflags "xorg-server >= 1.2 xproto fontsproto $REQUIRED_MODULES" 2>/dev/null`
 else
   pkg_failed=yes
 fi
@@ -20804,12 +20804,12 @@ if test -n "$PKG_CONFIG"; then
         pkg_cv_XORG_LIBS="$XORG_LIBS"
     else
         if test -n "$PKG_CONFIG" && \
-    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xorg-server xproto fontsproto \$REQUIRED_MODULES\"") >&5
-  ($PKG_CONFIG --exists --print-errors "xorg-server xproto fontsproto $REQUIRED_MODULES") 2>&5
+    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xorg-server >= 1.2 xproto fontsproto \$REQUIRED_MODULES\"") >&5
+  ($PKG_CONFIG --exists --print-errors "xorg-server >= 1.2 xproto fontsproto $REQUIRED_MODULES") 2>&5
   ac_status=$?
   echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
-  pkg_cv_XORG_LIBS=`$PKG_CONFIG --libs "xorg-server xproto fontsproto $REQUIRED_MODULES" 2>/dev/null`
+  pkg_cv_XORG_LIBS=`$PKG_CONFIG --libs "xorg-server >= 1.2 xproto fontsproto $REQUIRED_MODULES" 2>/dev/null`
 else
   pkg_failed=yes
 fi
@@ -20828,14 +20828,14 @@ else
         _pkg_short_errors_supported=no
 fi
         if test $_pkg_short_errors_supported = yes; then
-	        XORG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xorg-server xproto fontsproto $REQUIRED_MODULES"`
+	        XORG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "xorg-server >= 1.2 xproto fontsproto $REQUIRED_MODULES"`
         else
-	        XORG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xorg-server xproto fontsproto $REQUIRED_MODULES"`
+	        XORG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "xorg-server >= 1.2 xproto fontsproto $REQUIRED_MODULES"`
         fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$XORG_PKG_ERRORS" >&5
 
-	{ { echo "$as_me:$LINENO: error: Package requirements (xorg-server xproto fontsproto $REQUIRED_MODULES) were not met:
+	{ { echo "$as_me:$LINENO: error: Package requirements (xorg-server >= 1.2 xproto fontsproto $REQUIRED_MODULES) were not met:
 
 $XORG_PKG_ERRORS
 
@@ -20846,7 +20846,7 @@ Alternatively, you may set the environment variables XORG_CFLAGS
 and XORG_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details.
 " >&5
-echo "$as_me: error: Package requirements (xorg-server xproto fontsproto $REQUIRED_MODULES) were not met:
+echo "$as_me: error: Package requirements (xorg-server >= 1.2 xproto fontsproto $REQUIRED_MODULES) were not met:
 
 $XORG_PKG_ERRORS
 
diff --git a/debian/changelog b/debian/changelog
index 65530c9..38e951f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xserver-xorg-video-ati (1:6.7.198~git20080117.6bd510a2-1) experimental; urgency=low
+
+  * New upstream snapshot, containing commits up to 6bd510a2.
+
+ -- Brice Goglin <bgoglin@debian.org>  Thu, 17 Jan 2008 10:54:03 +0100
+
 xserver-xorg-video-ati (1:6.7.198~git20080109.10e7636c-1) experimental; urgency=low
 
   * New upstream snapshot, containing commits up to 10e7636c.
diff --git a/src/Makefile.in b/src/Makefile.in
index 421abf8..c4edf53 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -79,19 +79,19 @@ am__vpath_adj = case $$p in \
   esac;
 am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
 am__installdirs = "$(DESTDIR)$(ati_drv_ladir)" \
-	"$(DESTDIR)$(atimisc_drv_ladir)" "$(DESTDIR)$(r128_drv_ladir)" \
+	"$(DESTDIR)$(mach64_drv_ladir)" "$(DESTDIR)$(r128_drv_ladir)" \
 	"$(DESTDIR)$(radeon_drv_ladir)" \
 	"$(DESTDIR)$(theatre200_drv_ladir)" \
 	"$(DESTDIR)$(theatre_detect_drv_ladir)" \
 	"$(DESTDIR)$(theatre_drv_ladir)" "$(DESTDIR)$(pcidatadir)"
 ati_drv_laLTLIBRARIES_INSTALL = $(INSTALL)
-atimisc_drv_laLTLIBRARIES_INSTALL = $(INSTALL)
+mach64_drv_laLTLIBRARIES_INSTALL = $(INSTALL)
 r128_drv_laLTLIBRARIES_INSTALL = $(INSTALL)
 radeon_drv_laLTLIBRARIES_INSTALL = $(INSTALL)
 theatre200_drv_laLTLIBRARIES_INSTALL = $(INSTALL)
 theatre_detect_drv_laLTLIBRARIES_INSTALL = $(INSTALL)
 theatre_drv_laLTLIBRARIES_INSTALL = $(INSTALL)
-LTLIBRARIES = $(ati_drv_la_LTLIBRARIES) $(atimisc_drv_la_LTLIBRARIES) \
+LTLIBRARIES = $(ati_drv_la_LTLIBRARIES) $(mach64_drv_la_LTLIBRARIES) \
 	$(r128_drv_la_LTLIBRARIES) $(radeon_drv_la_LTLIBRARIES) \
 	$(theatre200_drv_la_LTLIBRARIES) \
 	$(theatre_detect_drv_la_LTLIBRARIES) \
@@ -102,8 +102,8 @@ ati_drv_la_OBJECTS = $(am_ati_drv_la_OBJECTS)
 ati_drv_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(ati_drv_la_LDFLAGS) $(LDFLAGS) -o $@
-atimisc_drv_la_LIBADD =
-am__atimisc_drv_la_SOURCES_DIST = atibus.c atichip.c atiprobe.c \
+mach64_drv_la_LIBADD =
+am__mach64_drv_la_SOURCES_DIST = atibus.c atichip.c atiprobe.c \
 	atividmem.c atiadjust.c atiaudio.c aticlock.c aticonfig.c \
 	aticonsole.c atidac.c atidecoder.c atidsp.c atii2c.c atilock.c \
 	atimach64.c atimach64accel.c atimach64cursor.c atimach64i2c.c \
@@ -117,7 +117,7 @@ am__atimisc_drv_la_SOURCES_DIST = atibus.c atichip.c atiprobe.c \
 @ATIMISC_DGA_TRUE@am__objects_2 = atidga.lo
 @DRI_TRUE@am__objects_3 = atidri.lo
 @USE_EXA_TRUE@am__objects_4 = atimach64exa.lo
-am_atimisc_drv_la_OBJECTS = atibus.lo atichip.lo atiprobe.lo \
+am_mach64_drv_la_OBJECTS = atibus.lo atichip.lo atiprobe.lo \
 	atividmem.lo atiadjust.lo atiaudio.lo aticlock.lo aticonfig.lo \
 	aticonsole.lo atidac.lo atidecoder.lo atidsp.lo atii2c.lo \
 	atilock.lo atimach64.lo atimach64accel.lo atimach64cursor.lo \
@@ -126,25 +126,21 @@ am_atimisc_drv_la_OBJECTS = atibus.lo atichip.lo atiprobe.lo \
 	atituner.lo atiutil.lo ativalid.lo atiload.lo atimisc.lo \
 	atimach64probe.lo $(am__objects_1) $(am__objects_2) \
 	$(am__objects_3) $(am__objects_4)
-atimisc_drv_la_OBJECTS = $(am_atimisc_drv_la_OBJECTS)
-atimisc_drv_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+mach64_drv_la_OBJECTS = $(am_mach64_drv_la_OBJECTS)
+mach64_drv_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
-	$(atimisc_drv_la_LDFLAGS) $(LDFLAGS) -o $@
+	$(mach64_drv_la_LDFLAGS) $(LDFLAGS) -o $@
 r128_drv_la_LIBADD =
 am__r128_drv_la_SOURCES_DIST = r128_accel.c r128_cursor.c r128_dga.c \
 	r128_driver.c r128_video.c r128_misc.c r128_probe.c r128_dri.c
 @DRI_TRUE@am__objects_5 = r128_dri.lo
-@XSERVER_LIBPCIACCESS_FALSE@am_r128_drv_la_OBJECTS = r128_accel.lo \
-@XSERVER_LIBPCIACCESS_FALSE@	r128_cursor.lo r128_dga.lo \
-@XSERVER_LIBPCIACCESS_FALSE@	r128_driver.lo r128_video.lo \
-@XSERVER_LIBPCIACCESS_FALSE@	r128_misc.lo r128_probe.lo \
-@XSERVER_LIBPCIACCESS_FALSE@	$(am__objects_5)
+am_r128_drv_la_OBJECTS = r128_accel.lo r128_cursor.lo r128_dga.lo \
+	r128_driver.lo r128_video.lo r128_misc.lo r128_probe.lo \
+	$(am__objects_5)
 r128_drv_la_OBJECTS = $(am_r128_drv_la_OBJECTS)
 r128_drv_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(r128_drv_la_LDFLAGS) $(LDFLAGS) -o $@
-@XSERVER_LIBPCIACCESS_FALSE@am_r128_drv_la_rpath = -rpath \
-@XSERVER_LIBPCIACCESS_FALSE@	$(r128_drv_ladir)
 radeon_drv_la_LIBADD =
 am__radeon_drv_la_SOURCES_DIST = radeon_accel.c radeon_cursor.c \
 	radeon_dga.c radeon_driver.c radeon_video.c radeon_bios.c \
@@ -217,12 +213,11 @@ CCLD = $(CC)
 LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
 	$(LDFLAGS) -o $@
-SOURCES = $(ati_drv_la_SOURCES) $(atimisc_drv_la_SOURCES) \
+SOURCES = $(ati_drv_la_SOURCES) $(mach64_drv_la_SOURCES) \
 	$(r128_drv_la_SOURCES) $(radeon_drv_la_SOURCES) \
 	$(theatre200_drv_la_SOURCES) $(theatre_detect_drv_la_SOURCES) \
 	$(theatre_drv_la_SOURCES)
-DIST_SOURCES = $(ati_drv_la_SOURCES) \
-	$(am__atimisc_drv_la_SOURCES_DIST) \
+DIST_SOURCES = $(ati_drv_la_SOURCES) $(am__mach64_drv_la_SOURCES_DIST) \
 	$(am__r128_drv_la_SOURCES_DIST) \
 	$(am__radeon_drv_la_SOURCES_DIST) $(theatre200_drv_la_SOURCES) \
 	$(theatre_detect_drv_la_SOURCES) $(theatre_drv_la_SOURCES)
@@ -405,7 +400,7 @@ XMODE_SRCS = \
 @ATIMISC_DGA_TRUE@ATIMISC_DGA_SOURCES = atidga.c
 @USE_EXA_TRUE@ATIMISC_EXA_SOURCES = atimach64exa.c
 @USE_EXA_TRUE@RADEON_EXA_SOURCES = radeon_exa.c
-AM_CFLAGS = @XORG_CFLAGS@ @DRI_CFLAGS@ @XMODES_CFLAGS@ -DDISABLE_EASF -DENABLE_ALL_SERVICE_FUNCTIONS -DATOM_BIOS -DATOM_BIOS_PARSER
+AM_CFLAGS = @XORG_CFLAGS@ @DRI_CFLAGS@ @XMODES_CFLAGS@ -DDISABLE_EASF -DENABLE_ALL_SERVICE_FUNCTIONS -DATOM_BIOS -DATOM_BIOS_PARSER -DFGL_LINUX -DDRIVER_PARSER
 INCLUDES = -I$(srcdir)/AtomBios/includes
 ati_drv_la_LTLIBRARIES = ati_drv.la
 ati_drv_la_LDFLAGS = -module -avoid-version
@@ -413,10 +408,10 @@ ati_drv_ladir = @moduledir@/drivers
 ati_drv_la_SOURCES = \
 	ati.c atimodule.c
 
-atimisc_drv_la_LTLIBRARIES = atimisc_drv.la
-atimisc_drv_la_LDFLAGS = -module -avoid-version
-atimisc_drv_ladir = @moduledir@/drivers
-atimisc_drv_la_SOURCES = \
+mach64_drv_la_LTLIBRARIES = mach64_drv.la
+mach64_drv_la_LDFLAGS = -module -avoid-version
+mach64_drv_ladir = @moduledir@/drivers
+mach64_drv_la_SOURCES = \
 	atibus.c atichip.c atiprobe.c atividmem.c \
 	atiadjust.c atiaudio.c aticlock.c aticonfig.c aticonsole.c \
 	atidac.c atidecoder.c atidsp.c atii2c.c \
@@ -426,14 +421,12 @@ atimisc_drv_la_SOURCES = \
 	atiload.c atimisc.c atimach64probe.c $(ATIMISC_CPIO_SOURCES) \
 	$(ATIMISC_DGA_SOURCES) $(ATIMISC_DRI_SRCS) $(ATIMISC_EXA_SOURCES)
 
-
-# r128 has not been ported yet
-@XSERVER_LIBPCIACCESS_FALSE@r128_drv_la_LTLIBRARIES = r128_drv.la
-@XSERVER_LIBPCIACCESS_FALSE@r128_drv_la_LDFLAGS = -module -avoid-version
-@XSERVER_LIBPCIACCESS_FALSE@r128_drv_ladir = @moduledir@/drivers
-@XSERVER_LIBPCIACCESS_FALSE@r128_drv_la_SOURCES = \
-@XSERVER_LIBPCIACCESS_FALSE@	r128_accel.c r128_cursor.c r128_dga.c r128_driver.c \
-@XSERVER_LIBPCIACCESS_FALSE@	r128_video.c r128_misc.c r128_probe.c $(R128_DRI_SRCS)
+r128_drv_la_LTLIBRARIES = r128_drv.la
+r128_drv_la_LDFLAGS = -module -avoid-version
+r128_drv_ladir = @moduledir@/drivers
+r128_drv_la_SOURCES = \
+	r128_accel.c r128_cursor.c r128_dga.c r128_driver.c \
+	r128_video.c r128_misc.c r128_probe.c $(R128_DRI_SRCS)
 
 radeon_drv_la_LTLIBRARIES = radeon_drv.la
 radeon_drv_la_LDFLAGS = -module -avoid-version
@@ -497,7 +490,6 @@ EXTRA_DIST = \
 	atimach64io.h \
 	atimach64probe.h \
 	atimode.h \
-	atimodule.h \
 	atioption.h \
 	atipreinit.h \
 	atiprint.h \
@@ -621,28 +613,28 @@ clean-ati_drv_laLTLIBRARIES:
 	  echo "rm -f \"$${dir}/so_locations\""; \
 	  rm -f "$${dir}/so_locations"; \
 	done
-install-atimisc_drv_laLTLIBRARIES: $(atimisc_drv_la_LTLIBRARIES)
+install-mach64_drv_laLTLIBRARIES: $(mach64_drv_la_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
-	test -z "$(atimisc_drv_ladir)" || $(MKDIR_P) "$(DESTDIR)$(atimisc_drv_ladir)"
-	@list='$(atimisc_drv_la_LTLIBRARIES)'; for p in $$list; do \
+	test -z "$(mach64_drv_ladir)" || $(MKDIR_P) "$(DESTDIR)$(mach64_drv_ladir)"
+	@list='$(mach64_drv_la_LTLIBRARIES)'; for p in $$list; do \
 	  if test -f $$p; then \
 	    f=$(am__strip_dir) \
-	    echo " $(LIBTOOL) --mode=install $(atimisc_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(atimisc_drv_ladir)/$$f'"; \
-	    $(LIBTOOL) --mode=install $(atimisc_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(atimisc_drv_ladir)/$$f"; \
+	    echo " $(LIBTOOL) --mode=install $(mach64_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(mach64_drv_ladir)/$$f'"; \
+	    $(LIBTOOL) --mode=install $(mach64_drv_laLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(mach64_drv_ladir)/$$f"; \
 	  else :; fi; \
 	done
 
-uninstall-atimisc_drv_laLTLIBRARIES:
+uninstall-mach64_drv_laLTLIBRARIES:
 	@$(NORMAL_UNINSTALL)
-	@list='$(atimisc_drv_la_LTLIBRARIES)'; for p in $$list; do \
+	@list='$(mach64_drv_la_LTLIBRARIES)'; for p in $$list; do \
 	  p=$(am__strip_dir) \
-	  echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(atimisc_drv_ladir)/$$p'"; \
-	  $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(atimisc_drv_ladir)/$$p"; \
+	  echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(mach64_drv_ladir)/$$p'"; \
+	  $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(mach64_drv_ladir)/$$p"; \
 	done
 
-clean-atimisc_drv_laLTLIBRARIES:
-	-test -z "$(atimisc_drv_la_LTLIBRARIES)" || rm -f $(atimisc_drv_la_LTLIBRARIES)
-	@list='$(atimisc_drv_la_LTLIBRARIES)'; for p in $$list; do \
+clean-mach64_drv_laLTLIBRARIES:
+	-test -z "$(mach64_drv_la_LTLIBRARIES)" || rm -f $(mach64_drv_la_LTLIBRARIES)
+	@list='$(mach64_drv_la_LTLIBRARIES)'; for p in $$list; do \
 	  dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
 	  test "$$dir" != "$$p" || dir=.; \
 	  echo "rm -f \"$${dir}/so_locations\""; \
@@ -785,10 +777,10 @@ clean-theatre_drv_laLTLIBRARIES:
 	done
 ati_drv.la: $(ati_drv_la_OBJECTS) $(ati_drv_la_DEPENDENCIES) 
 	$(ati_drv_la_LINK) -rpath $(ati_drv_ladir) $(ati_drv_la_OBJECTS) $(ati_drv_la_LIBADD) $(LIBS)
-atimisc_drv.la: $(atimisc_drv_la_OBJECTS) $(atimisc_drv_la_DEPENDENCIES) 
-	$(atimisc_drv_la_LINK) -rpath $(atimisc_drv_ladir) $(atimisc_drv_la_OBJECTS) $(atimisc_drv_la_LIBADD) $(LIBS)
+mach64_drv.la: $(mach64_drv_la_OBJECTS) $(mach64_drv_la_DEPENDENCIES) 
+	$(mach64_drv_la_LINK) -rpath $(mach64_drv_ladir) $(mach64_drv_la_OBJECTS) $(mach64_drv_la_LIBADD) $(LIBS)
 r128_drv.la: $(r128_drv_la_OBJECTS) $(r128_drv_la_DEPENDENCIES) 
-	$(r128_drv_la_LINK) $(am_r128_drv_la_rpath) $(r128_drv_la_OBJECTS) $(r128_drv_la_LIBADD) $(LIBS)
+	$(r128_drv_la_LINK) -rpath $(r128_drv_ladir) $(r128_drv_la_OBJECTS) $(r128_drv_la_LIBADD) $(LIBS)
 radeon_drv.la: $(radeon_drv_la_OBJECTS) $(radeon_drv_la_DEPENDENCIES) 
 	$(radeon_drv_la_LINK) -rpath $(radeon_drv_ladir) $(radeon_drv_la_OBJECTS) $(radeon_drv_la_LIBADD) $(LIBS)
 theatre200_drv.la: $(theatre200_drv_la_OBJECTS) $(theatre200_drv_la_DEPENDENCIES) 
@@ -1106,7 +1098,7 @@ check-am: all-am
 check: check-am
 all-am: Makefile $(LTLIBRARIES) $(DATA)
 installdirs:
-	for dir in "$(DESTDIR)$(ati_drv_ladir)" "$(DESTDIR)$(atimisc_drv_ladir)" "$(DESTDIR)$(r128_drv_ladir)" "$(DESTDIR)$(radeon_drv_ladir)" "$(DESTDIR)$(theatre200_drv_ladir)" "$(DESTDIR)$(theatre_detect_drv_ladir)" "$(DESTDIR)$(theatre_drv_ladir)" "$(DESTDIR)$(pcidatadir)"; do \
+	for dir in "$(DESTDIR)$(ati_drv_ladir)" "$(DESTDIR)$(mach64_drv_ladir)" "$(DESTDIR)$(r128_drv_ladir)" "$(DESTDIR)$(radeon_drv_ladir)" "$(DESTDIR)$(theatre200_drv_ladir)" "$(DESTDIR)$(theatre_detect_drv_ladir)" "$(DESTDIR)$(theatre_drv_ladir)" "$(DESTDIR)$(pcidatadir)"; do \
 	  test -z "$$dir" || $(MKDIR_P) "$$dir"; \
 	done
 install: install-am
@@ -1135,8 +1127,8 @@ maintainer-clean-generic:
 	@echo "it deletes files that may require special tools to rebuild."
 clean: clean-am
 
-clean-am: clean-ati_drv_laLTLIBRARIES clean-atimisc_drv_laLTLIBRARIES \
-	clean-generic clean-libtool clean-r128_drv_laLTLIBRARIES \
+clean-am: clean-ati_drv_laLTLIBRARIES clean-generic clean-libtool \
+	clean-mach64_drv_laLTLIBRARIES clean-r128_drv_laLTLIBRARIES \
 	clean-radeon_drv_laLTLIBRARIES \
 	clean-theatre200_drv_laLTLIBRARIES \
 	clean-theatre_detect_drv_laLTLIBRARIES \
@@ -1159,7 +1151,7 @@ info: info-am
 info-am:
 
 install-data-am: install-ati_drv_laLTLIBRARIES \
-	install-atimisc_drv_laLTLIBRARIES install-pcidataDATA \
+	install-mach64_drv_laLTLIBRARIES install-pcidataDATA \
 	install-r128_drv_laLTLIBRARIES \
 	install-radeon_drv_laLTLIBRARIES \
 	install-theatre200_drv_laLTLIBRARIES \
@@ -1201,7 +1193,7 @@ ps: ps-am
 ps-am:
 
 uninstall-am: uninstall-ati_drv_laLTLIBRARIES \
-	uninstall-atimisc_drv_laLTLIBRARIES uninstall-pcidataDATA \
+	uninstall-mach64_drv_laLTLIBRARIES uninstall-pcidataDATA \
 	uninstall-r128_drv_laLTLIBRARIES \
 	uninstall-radeon_drv_laLTLIBRARIES \
 	uninstall-theatre200_drv_laLTLIBRARIES \
@@ -1211,20 +1203,20 @@ uninstall-am: uninstall-ati_drv_laLTLIBRARIES \
 .MAKE: install-am install-strip
 
 .PHONY: CTAGS GTAGS all all-am check check-am clean \
-	clean-ati_drv_laLTLIBRARIES clean-atimisc_drv_laLTLIBRARIES \
-	clean-generic clean-libtool clean-r128_drv_laLTLIBRARIES \
+	clean-ati_drv_laLTLIBRARIES clean-generic clean-libtool \
+	clean-mach64_drv_laLTLIBRARIES clean-r128_drv_laLTLIBRARIES \
 	clean-radeon_drv_laLTLIBRARIES \
 	clean-theatre200_drv_laLTLIBRARIES \
 	clean-theatre_detect_drv_laLTLIBRARIES \
 	clean-theatre_drv_laLTLIBRARIES ctags distclean \
 	distclean-compile distclean-generic distclean-libtool \
 	distclean-tags distdir dvi dvi-am html html-am info info-am \
-	install install-am install-ati_drv_laLTLIBRARIES \
-	install-atimisc_drv_laLTLIBRARIES install-data install-data-am \
-	install-dvi install-dvi-am install-exec install-exec-am \
-	install-html install-html-am install-info install-info-am \
-	install-man install-pcidataDATA install-pdf install-pdf-am \
-	install-ps install-ps-am install-r128_drv_laLTLIBRARIES \
+	install install-am install-ati_drv_laLTLIBRARIES install-data \
+	install-data-am install-dvi install-dvi-am install-exec \
+	install-exec-am install-html install-html-am install-info \
+	install-info-am install-mach64_drv_laLTLIBRARIES install-man \
+	install-pcidataDATA install-pdf install-pdf-am install-ps \
+	install-ps-am install-r128_drv_laLTLIBRARIES \
 	install-radeon_drv_laLTLIBRARIES install-strip \
 	install-theatre200_drv_laLTLIBRARIES \
 	install-theatre_detect_drv_laLTLIBRARIES \
@@ -1233,7 +1225,7 @@ uninstall-am: uninstall-ati_drv_laLTLIBRARIES \
 	mostlyclean mostlyclean-compile mostlyclean-generic \
 	mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
 	uninstall-am uninstall-ati_drv_laLTLIBRARIES \
-	uninstall-atimisc_drv_laLTLIBRARIES uninstall-pcidataDATA \
+	uninstall-mach64_drv_laLTLIBRARIES uninstall-pcidataDATA \
 	uninstall-r128_drv_laLTLIBRARIES \
 	uninstall-radeon_drv_laLTLIBRARIES \
 	uninstall-theatre200_drv_laLTLIBRARIES \

commit 6bd510a211f25d52e74791e4a429cd2218ced541
Author: Alex Deucher <alex@samba.(none)>
Date:   Wed Jan 16 18:09:49 2008 -0500

    RADEON: add a message about render accel on newer cards

diff --git a/src/radeon_exa_funcs.c b/src/radeon_exa_funcs.c
index f62a020..d0c0065 100644
--- a/src/radeon_exa_funcs.c
+++ b/src/radeon_exa_funcs.c
@@ -533,7 +533,10 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
 
 #ifdef RENDER
     if (info->RenderAccel) {
-	if (IS_R300_VARIANT && !info->IsIGP) {
+	if (info->ChipFamily >= CHIP_FAMILY_RV515)
+		xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Render acceleration "
+			       "unsupported on R500 and newer cards.\n");
+	else if (IS_R300_VARIANT && !info->IsIGP) {
 		xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Render acceleration "
 			       "enabled for R300 type cards.\n");
 		info->exa->CheckComposite = R300CheckComposite;

commit 85bf3439fe2579aec48f5cd8d65a9d51b1ae8535
Author: Alex Deucher <alex@samba.(none)>
Date:   Wed Jan 16 17:52:06 2008 -0500

    R300: only init3d on r3xx

diff --git a/src/radeon_commonfuncs.c b/src/radeon_commonfuncs.c
index 23a849b..53bbce9 100644
--- a/src/radeon_commonfuncs.c
+++ b/src/radeon_commonfuncs.c
@@ -57,7 +57,7 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn)
 
     info->texW[0] = info->texH[0] = info->texW[1] = info->texH[1] = 1;
 
-    if (info->ChipFamily >= CHIP_FAMILY_R300) {
+    if (IS_R300_VARIANT) {
 	BEGIN_ACCEL(3);
 	OUT_ACCEL_REG(R300_RB3D_DSTCACHE_CTLSTAT, 0xA);
 	OUT_ACCEL_REG(R300_RB3D_ZCACHE_CTLSTAT, 0x3);

commit dbb2ca471dfbff245b30c5055871dee0dc0e3d15
Author: Alex Deucher <alex@samba.(none)>
Date:   Wed Jan 16 17:10:02 2008 -0500

    R300: only enable render accel on non-IGP r3xx/r4xx chips for now

diff --git a/src/radeon_exa_funcs.c b/src/radeon_exa_funcs.c
index b27a266..f62a020 100644
--- a/src/radeon_exa_funcs.c
+++ b/src/radeon_exa_funcs.c
@@ -533,7 +533,7 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
 
 #ifdef RENDER
     if (info->RenderAccel) {
-	if (info->ChipFamily >= CHIP_FAMILY_R300) {
+	if (IS_R300_VARIANT && !info->IsIGP) {
 		xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Render acceleration "
 			       "enabled for R300 type cards.\n");
 		info->exa->CheckComposite = R300CheckComposite;

commit 3c72b100bcfacee600644669b586e86cfd32754e
Author: Alex Deucher <alex@samba.(none)>
Date:   Wed Jan 16 16:55:42 2008 -0500

    R300: First pass at render accel
    
    This first pass is pretty limited.  All it currently supports
    is transforms for rotation.  No blending yet.
    
    Based on inital implementation from Wolke Liu with
    additional lock-up fixes by Dave Airlie.

diff --git a/src/radeon_commonfuncs.c b/src/radeon_commonfuncs.c
index a1802f8..23a849b 100644
--- a/src/radeon_commonfuncs.c
+++ b/src/radeon_commonfuncs.c
@@ -58,7 +58,139 @@ static void FUNC_NAME(RADEONInit3DEngine)(ScrnInfoPtr pScrn)
     info->texW[0] = info->texH[0] = info->texW[1] = info->texH[1] = 1;
 
     if (info->ChipFamily >= CHIP_FAMILY_R300) {
-	/* Unimplemented */
+	BEGIN_ACCEL(3);
+	OUT_ACCEL_REG(R300_RB3D_DSTCACHE_CTLSTAT, 0xA);
+	OUT_ACCEL_REG(R300_RB3D_ZCACHE_CTLSTAT, 0x3);
+	OUT_ACCEL_REG(R300_WAIT_UNTIL, 0x30000);
+	FINISH_ACCEL();
+
+	BEGIN_ACCEL(3);
+	OUT_ACCEL_REG(R300_GB_TILE_CONFIG, 0x10011);
+	OUT_ACCEL_REG(R300_GB_SELECT,0x0);
+	OUT_ACCEL_REG(R300_GB_ENABLE, 0x0);
+	FINISH_ACCEL();
+
+	BEGIN_ACCEL(3);
+	OUT_ACCEL_REG(R300_RB3D_DSTCACHE_CTLSTAT, 0xA);
+	OUT_ACCEL_REG(R300_RB3D_ZCACHE_CTLSTAT, 0x3);
+	OUT_ACCEL_REG(R300_WAIT_UNTIL, 0x30000);
+	FINISH_ACCEL();
+
+	BEGIN_ACCEL(5);
+	OUT_ACCEL_REG(R300_GB_AA_CONFIG, 0x0);
+	OUT_ACCEL_REG(R300_RB3D_DSTCACHE_CTLSTAT, 0xA);
+	OUT_ACCEL_REG(R300_RB3D_ZCACHE_CTLSTAT, 0x3);
+	OUT_ACCEL_REG(R300_GB_MSPOS0, 0x78888888);
+	OUT_ACCEL_REG(R300_GB_MSPOS1, 0x08888888);
+	FINISH_ACCEL();
+
+	BEGIN_ACCEL(4);
+	OUT_ACCEL_REG(R300_GA_POLY_MODE, 0x120);
+	OUT_ACCEL_REG(R300_GA_ROUND_MODE, 0x5);
+	OUT_ACCEL_REG(R300_GA_COLOR_CONTROL, 0xAAAA);
+	OUT_ACCEL_REG(R300_GA_OFFSET, 0x0);
+	FINISH_ACCEL();
+
+	BEGIN_ACCEL(26);
+	OUT_ACCEL_REG(R300_VAP_CNTL_STATUS, 0x0);
+	OUT_ACCEL_REG(R300_VAP_PVS_STATE_FLUSH_REG, 0x0);
+	OUT_ACCEL_REG(R300_VAP_CNTL, 0x300456);
+	OUT_ACCEL_REG(R300_VAP_VTE_CNTL, 0x300);
+	OUT_ACCEL_REG(R300_VAP_PSC_SGN_NORM_CNTL, 0x0);
+	OUT_ACCEL_REG(R300_VAP_PROG_STREAM_CNTL_0, 0x6a014001);
+	OUT_ACCEL_REG(R300_VAP_PROG_STREAM_CNTL_EXT_0, 0xf688f688);
+	OUT_ACCEL_REG(R300_VAP_PVS_CODE_CNTL_0, 0x100400);
+	OUT_ACCEL_REG(R300_VAP_PVS_CODE_CNTL_1, 0x1);
+	OUT_ACCEL_REG(R300_VAP_PVS_VECTOR_INDX_REG, 0);
+	OUT_ACCEL_REG(R300_VAP_PVS_VECTOR_DATA_REG,0x00f00203);
+	OUT_ACCEL_REG(R300_VAP_PVS_VECTOR_DATA_REG,0x00d10001);
+	OUT_ACCEL_REG(R300_VAP_PVS_VECTOR_DATA_REG,0x01248001);
+	OUT_ACCEL_REG(R300_VAP_PVS_VECTOR_DATA_REG,0x01248001);
+	OUT_ACCEL_REG(R300_VAP_PVS_VECTOR_DATA_REG,0x00f02203);
+	OUT_ACCEL_REG(R300_VAP_PVS_VECTOR_DATA_REG,0x00d10141);
+	OUT_ACCEL_REG(R300_VAP_PVS_VECTOR_DATA_REG,0x01248141);
+	OUT_ACCEL_REG(R300_VAP_PVS_VECTOR_DATA_REG,0x01248141);
+
+	OUT_ACCEL_REG(R300_VAP_PVS_FLOW_CNTL_OPC, 0x0);
+	OUT_ACCEL_REG(R300_VAP_OUT_VTX_FMT_0, 0x1);
+	OUT_ACCEL_REG(R300_VAP_OUT_VTX_FMT_1, 0x2);
+
+	OUT_ACCEL_REG(R300_VAP_GB_VERT_CLIP_ADJ, 0x3f800000);
+	OUT_ACCEL_REG(R300_VAP_GB_VERT_DISC_ADJ, 0x3f800000);
+	OUT_ACCEL_REG(R300_VAP_GB_HORZ_CLIP_ADJ, 0x3f800000);
+	OUT_ACCEL_REG(R300_VAP_GB_HORZ_DISC_ADJ, 0x3f800000);
+	OUT_ACCEL_REG(R300_VAP_CLIP_CNTL, 0x10000);
+	FINISH_ACCEL();
+
+	BEGIN_ACCEL(7);
+	OUT_ACCEL_REG(R300_SU_TEX_WRAP, 0x0);
+	OUT_ACCEL_REG(R300_SU_POLY_OFFSET_ENABLE, 0x0);
+	OUT_ACCEL_REG(R300_SU_CULL_MODE, 0x4);
+	OUT_ACCEL_REG(R300_SU_DEPTH_SCALE, 0x4b7fffff);
+	OUT_ACCEL_REG(R300_SU_DEPTH_OFFSET, 0x0);
+	OUT_ACCEL_REG(R300_RS_COUNT, 0x40002);
+	OUT_ACCEL_REG(R300_RS_IP_0, 0x1610000);
+	FINISH_ACCEL();
+
+	BEGIN_ACCEL(5);
+	OUT_ACCEL_REG(R300_US_W_FMT, 0x0);
+	OUT_ACCEL_REG(R300_US_OUT_FMT_1, 0x1B0F);
+	OUT_ACCEL_REG(R300_US_OUT_FMT_2, 0x1B0F);
+	OUT_ACCEL_REG(R300_US_OUT_FMT_3, 0x1B0F);
+	OUT_ACCEL_REG(R300_US_OUT_FMT_0, 0x1B01);
+	FINISH_ACCEL();
+
+	BEGIN_ACCEL(2);
+	OUT_ACCEL_REG(R300_RS_INST_COUNT, 0xC0);
+	OUT_ACCEL_REG(R300_RS_INST_0, 0x8);
+	FINISH_ACCEL();
+
+	BEGIN_ACCEL(12);
+	OUT_ACCEL_REG(R300_US_CONFIG, 0x8);
+	OUT_ACCEL_REG(R300_US_PIXSIZE, 0x0);
+	OUT_ACCEL_REG(R300_US_CODE_OFFSET, 0x40040);
+	OUT_ACCEL_REG(R300_US_CODE_ADDR_0, 0x0);
+	OUT_ACCEL_REG(R300_US_CODE_ADDR_1, 0x0);
+	OUT_ACCEL_REG(R300_US_CODE_ADDR_2, 0x0);
+	OUT_ACCEL_REG(R300_US_CODE_ADDR_3, 0x400000);
+	OUT_ACCEL_REG(R300_US_TEX_INST_0, 0x8000);
+	OUT_ACCEL_REG(R300_US_ALU_RGB_ADDR_0, 0x1f800000);
+	OUT_ACCEL_REG(R300_US_ALU_RGB_INST_0, 0x50a80);
+	OUT_ACCEL_REG(R300_US_ALU_ALPHA_ADDR_0, 0x1800000);
+	OUT_ACCEL_REG(R300_US_ALU_ALPHA_INST_0, 0x00040889);
+	FINISH_ACCEL();
+
+	BEGIN_ACCEL(3);
+	OUT_ACCEL_REG(R300_FG_DEPTH_SRC, 0x0);
+	OUT_ACCEL_REG(R300_FG_FOG_BLEND, 0x0);
+	OUT_ACCEL_REG(R300_FG_ALPHA_FUNC, 0x0);
+	FINISH_ACCEL();
+
+	BEGIN_ACCEL(12);
+	OUT_ACCEL_REG(R300_RB3D_ZSTENCILCNTL, 0x0);
+	OUT_ACCEL_REG(R300_RB3D_ZCACHE_CTLSTAT, 0x3);
+	OUT_ACCEL_REG(R300_RB3D_BW_CNTL, 0x0);
+	OUT_ACCEL_REG(R300_RB3D_ZCNTL, 0x0);
+	OUT_ACCEL_REG(R300_RB3D_ZTOP, 0x0);
+	OUT_ACCEL_REG(R300_RB3D_ROPCNTL, 0x0);
+
+	OUT_ACCEL_REG(R300_RB3D_AARESOLVE_CTL, 0x0);
+	OUT_ACCEL_REG(R300_RB3D_COLOR_CHANNEL_MASK, 0xf);
+	OUT_ACCEL_REG(R300_RB3D_DSTCACHE_CTLSTAT, 0xA);
+	OUT_ACCEL_REG(R300_RB3D_CCTL, 0x0);
+	OUT_ACCEL_REG(R300_RB3D_DITHER_CTL, 0x0);
+	OUT_ACCEL_REG(R300_RB3D_DSTCACHE_CTLSTAT, 0xA);
+	FINISH_ACCEL();
+
+	BEGIN_ACCEL(7);
+	OUT_ACCEL_REG(R300_SC_EDGERULE, 0xA5294A5);
+	OUT_ACCEL_REG(R300_SC_SCISSOR0, 0x0);
+	OUT_ACCEL_REG(R300_SC_SCISSOR1, 0x3ffffff);
+	OUT_ACCEL_REG(R300_SC_CLIP_0_A, 0x880440);
+	OUT_ACCEL_REG(R300_SC_CLIP_0_B, 0xff0ff0);
+	OUT_ACCEL_REG(R300_SC_CLIP_RULE, 0xAAAA);
+	OUT_ACCEL_REG(R300_SC_SCREENDOOR, 0xffffff);
+	FINISH_ACCEL();
     } else if ((info->ChipFamily == CHIP_FAMILY_RV250) || 
 	       (info->ChipFamily == CHIP_FAMILY_RV280) || 
 	       (info->ChipFamily == CHIP_FAMILY_RS300) || 
diff --git a/src/radeon_crtc.c b/src/radeon_crtc.c
index 585b452..e1e4550 100644
--- a/src/radeon_crtc.c
+++ b/src/radeon_crtc.c
@@ -356,7 +356,7 @@ radeon_xf86AllocateOffscreenLinear(ScreenPtr pScreen, int length,
  * Allocates memory for a locked-in-framebuffer shadow of the given
  * width and height for this CRTC's rotated shadow framebuffer.
  */
- 
+
 static void *
 radeon_crtc_shadow_allocate (xf86CrtcPtr crtc, int width, int height)
 {
diff --git a/src/radeon_exa.c b/src/radeon_exa.c
index 4da4841..3b0c734 100644
--- a/src/radeon_exa.c
+++ b/src/radeon_exa.c
@@ -105,6 +105,23 @@ RADEONLog2(int val)
 	return bits - 1;
 }
 
+static __inline__ int
+RADEONPow2(int num)
+{
+    int pot = 2;
+
+    if (num <= 2)
+	return num;
+
+    while (pot < num) {
+	pot *= 2;
+    }
+
+    return pot;
+}
+
+
+
 static __inline__ CARD32 F_TO_DW(float val)
 {
     union {
diff --git a/src/radeon_exa_funcs.c b/src/radeon_exa_funcs.c
index 67c3147..b27a266 100644
--- a/src/radeon_exa_funcs.c
+++ b/src/radeon_exa_funcs.c
@@ -534,8 +534,13 @@ Bool FUNC_NAME(RADEONDrawInit)(ScreenPtr pScreen)
 #ifdef RENDER
     if (info->RenderAccel) {
 	if (info->ChipFamily >= CHIP_FAMILY_R300) {
-	    xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Render acceleration "
-			       "unsupported on R300 type cards and newer.\n");
+		xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Render acceleration "
+			       "enabled for R300 type cards.\n");
+		info->exa->CheckComposite = R300CheckComposite;
+		info->exa->PrepareComposite =
+		    FUNC_NAME(R300PrepareComposite);
+		info->exa->Composite = FUNC_NAME(RadeonComposite);
+		info->exa->DoneComposite = RadeonDoneComposite;
 	} else if ((info->ChipFamily == CHIP_FAMILY_RV250) || 
 		   (info->ChipFamily == CHIP_FAMILY_RV280) || 
 		   (info->ChipFamily == CHIP_FAMILY_RS300) || 
diff --git a/src/radeon_exa_render.c b/src/radeon_exa_render.c
index eae69c4..c642aff 100644
--- a/src/radeon_exa_render.c
+++ b/src/radeon_exa_render.c
@@ -121,6 +121,17 @@ static struct formatinfo R200TexFormats[] = {
     {PICT_a8,		R200_TXFORMAT_I8 | R200_TXFORMAT_ALPHA_IN_MAP},
 };
 
+static struct formatinfo R300TexFormats[] = {
+    {PICT_a8r8g8b8,	R300_EASY_TX_FORMAT(X, Y, Z, W, W8Z8Y8X8)},
+    {PICT_x8r8g8b8,	R300_EASY_TX_FORMAT(X, Y, Z, ONE, W8Z8Y8X8)},
+    {PICT_a8b8g8r8,	R300_EASY_TX_FORMAT(Z, Y, X, W, W8Z8Y8X8)},
+    {PICT_x8b8g8r8,	R300_EASY_TX_FORMAT(Z, Y, X, ONE, W8Z8Y8X8)},
+    {PICT_r5g6b5,	R300_EASY_TX_FORMAT(X, Y, Z, ONE, Z5Y6X5)},
+    {PICT_a1r5g5b5,	R300_EASY_TX_FORMAT(X, Y, Z, W, W1Z5Y5X5)},
+    {PICT_x1r5g5b5,	R300_EASY_TX_FORMAT(X, Y, Z, ONE, W1Z5Y5X5)},
+    {PICT_a8,		R300_EASY_TX_FORMAT(ZERO, ZERO, ZERO, X, X8)},
+};
+
 /* Common Radeon setup code */
 
 static Bool RADEONGetDestFormat(PicturePtr pDstPicture, CARD32 *dst_format)
@@ -148,6 +159,31 @@ static Bool RADEONGetDestFormat(PicturePtr pDstPicture, CARD32 *dst_format)
     return TRUE;
 }
 
+static Bool R300GetDestFormat(PicturePtr pDstPicture, CARD32 *dst_format)
+{
+    switch (pDstPicture->format) {
+    case PICT_a8r8g8b8:
+    case PICT_x8r8g8b8:
+	*dst_format = R300_COLORFORMAT_ARGB8888;
+	break;
+    case PICT_r5g6b5:
+	*dst_format = R300_COLORFORMAT_RGB565;
+	break;
+    case PICT_a1r5g5b5:
+    case PICT_x1r5g5b5:
+	*dst_format = R300_COLORFORMAT_ARGB1555;
+	break;
+    case PICT_a8:
+	*dst_format = R300_COLORFORMAT_I8;
+	break;
+    default:
+	ErrorF("Unsupported dest format 0x%x\n",
+	       (int)pDstPicture->format);
+	return FALSE;
+    }
+    return TRUE;
+}
+
 static CARD32 RADEONGetBlendCntl(int op, PicturePtr pMask, CARD32 dst_format)
 {
     CARD32 sblend, dblend;
@@ -706,9 +742,304 @@ static Bool FUNC_NAME(R200PrepareComposite)(int op, PicturePtr pSrcPicture,
     return TRUE;
 }
 
-#ifdef ACCEL_CP
+#ifdef ONLY_ONCE
+
+static Bool R300CheckCompositeTexture(PicturePtr pPict, int unit)
+{
+    int w = pPict->pDrawable->width;
+    int h = pPict->pDrawable->height;
+    int i;
+
+    if ((w > 0x7ff) || (h > 0x7ff))
+	RADEON_FALLBACK(("Picture w/h too large (%dx%d)\n", w, h));
+
+    for (i = 0; i < sizeof(R300TexFormats) / sizeof(R300TexFormats[0]); i++)
+    {
+	if (R300TexFormats[i].fmt == pPict->format)
+	    break;
+    }
+    if (i == sizeof(R300TexFormats) / sizeof(R300TexFormats[0]))
+	RADEON_FALLBACK(("Unsupported picture format 0x%x\n",
+			 (int)pPict->format));
+
+    if (pPict->repeat && ((w & (w - 1)) != 0 || (h & (h - 1)) != 0))
+	RADEON_FALLBACK(("NPOT repeat unsupported (%dx%d)\n", w, h));
+
+    if (pPict->filter != PictFilterNearest &&
+	pPict->filter != PictFilterBilinear)
+	RADEON_FALLBACK(("Unsupported filter 0x%x\n", pPict->filter));
+
+    return TRUE;
+}
+
+#endif /* ONLY_ONCE */
+
+static Bool FUNC_NAME(R300TextureSetup)(PicturePtr pPict, PixmapPtr pPix,
+					int unit)
+{
+    RINFO_FROM_SCREEN(pPix->drawable.pScreen);
+    CARD32 txfilter, txformat0, txformat1, txoffset, txpitch;
+    int w = pPict->pDrawable->width;
+    int h = pPict->pDrawable->height;
+    int i, pixel_shift;
+    ACCEL_PREAMBLE();
+
+    TRACE;
+
+    txpitch = exaGetPixmapPitch(pPix);
+    txoffset = exaGetPixmapOffset(pPix) + info->fbLocation;
+
+    if ((txoffset & 0x1f) != 0)
+	RADEON_FALLBACK(("Bad texture offset 0x%x\n", (int)txoffset));
+    if ((txpitch & 0x1f) != 0)
+	RADEON_FALLBACK(("Bad texture pitch 0x%x\n", (int)txpitch));
+
+    pixel_shift = pPix->drawable.bitsPerPixel >> 4;
+    txpitch >>= pixel_shift;
+    txpitch -= 1;
+
+    if (RADEONPixmapIsColortiled(pPix))
+	txoffset |= R300_MACRO_TILE;
+
+    for (i = 0; i < sizeof(R300TexFormats) / sizeof(R300TexFormats[0]); i++)
+    {
+	if (R300TexFormats[i].fmt == pPict->format)
+	    break;
+    }
+
+    txformat1 = R300TexFormats[i].card_fmt;
+
+    txformat0 = (((RADEONPow2(w) - 1) << R300_TXWIDTH_SHIFT) |
+		 ((RADEONPow2(h) - 1) << R300_TXHEIGHT_SHIFT));
+
+    if (pPict->repeat) {
+	ErrorF("repeat\n");
+	if ((h != 1) &&
+	    (((w * pPix->drawable.bitsPerPixel / 8 + 31) & ~31) != txpitch))
+	    RADEON_FALLBACK(("Width %d and pitch %u not compatible for repeat\n",
+			     w, (unsigned)txpitch));
+    } else
+	txformat0 |= R300_TXPITCH_EN;
+
+
+    info->texW[unit] = RADEONPow2(w);
+    info->texH[unit] = RADEONPow2(h);
+
+    switch (pPict->filter) {
+    case PictFilterNearest:
+	txfilter = (R300_TX_MAG_FILTER_NEAREST | R300_TX_MIN_FILTER_NEAREST);
+	break;
+    case PictFilterBilinear:
+	txfilter = (R300_TX_MAG_FILTER_LINEAR | R300_TX_MIN_FILTER_LINEAR);
+	break;
+    default:
+	RADEON_FALLBACK(("Bad filter 0x%x\n", pPict->filter));
+    }
+
+    BEGIN_ACCEL(6);
+    OUT_ACCEL_REG(R300_TX_FILTER0_0 + (unit * 4), txfilter);
+    OUT_ACCEL_REG(R300_TX_FILTER1_0 + (unit * 4), 0x0);
+    OUT_ACCEL_REG(R300_TX_FORMAT0_0 + (unit * 4), txformat0);
+    OUT_ACCEL_REG(R300_TX_FORMAT1_0 + (unit * 4), txformat1);
+    OUT_ACCEL_REG(R300_TX_FORMAT2_0 + (unit * 4), txpitch);
+    OUT_ACCEL_REG(R300_TX_OFFSET_0 + (unit * 4), txoffset);


Reply to: