r6xx/r7xx gears!

Over the last few days Richard, Cooper, and I have sorted out the last major issues with getting the r6xx/r7xx code ported from our original code base to the radeon-rewrite model.  Today we finally solved the issues with buffer aging and now gears is working again!  Most of the code is in place so from now on it should mostly be a matter of bug fixing.  Note the the current code does not perform very well for double buffered applications as we are using memcpy to do buffer swaps which really hurts when doing vram to vram copies.  I’m getting about 15 fps on gears with memcpy.  Playing around with gpu accelerated copies easily got me a 100x improvement.  Same goes for texture uploads.  The clear code calls back into mesa to clear similar to the kms paths in the other radeon and intel 3d drivers.  The clear color does not get set right yet on r6xx chips, so the clear color will likely be wrong for most r6xx users.  You’ll need the radeon driver from git master or the 6.12-branch or radeonhd driver from git and the r6xx-rewrite branch of mesa (http://cgit.freedesktop.org/mesa/mesa/?h=r6xx-rewrite) along with the r6xx-r7xx-3d branch of my drm tree (http://cgit.freedesktop.org/~agd5f/drm/?h=r6xx-r7xx-3d).  The drm kernel modules only build against 2.6.27 or 2.6.28 at the moment.  I’ll create a patch against the kernel when things are further along.
nike air max moto
UPDATE: R6xx/RS780 is now working.  Apparently on R6xx, you always need to emit a fetch shader even if you are not using it.
oakley straight jacket sunglasses
UPDATE2:  The r6xx-rewrite branch of mesa has moved to master, so from now on use mesa master.nike air max Outlet

5 Responses to “r6xx/r7xx gears!”

  1. xception Says:

    doesn’t build against 2.6.30 with headers from 2.6.30, I’ll try avoiding it

    make DRM_MODULES=r600
    sh ../scripts/create_linux_pci_lists.sh < ../shared-core/drm_pciids.txt
    make -C /lib/modules/2.6.30-gentoo-r2/source SUBDIRS=`/bin/pwd` DRMSRCDIR=`/bin/pwd` modules
    make[1]: Entering directory `/usr/src/linux-2.6.30-gentoo-r2′
    /usr/src/linux-2.6.30-gentoo-r2/arch/x86/Makefile:82: stack protector enabled but no compiler support
    CC [M] /root/drm-r7xx-3d/drm/linux-core/drm_auth.o
    In file included from /root/drm-r7xx-3d/drm/linux-core/drmP.h:86,
    from /root/drm-r7xx-3d/drm/linux-core/drm_auth.c:36:
    /root/drm-r7xx-3d/drm/linux-core/drm_os_linux.h:54: error: conflicting types for ‘irqreturn_t’
    include/linux/irqreturn.h:16: error: previous declaration of ‘irqreturn_t’ was here
    make[2]: *** [/root/drm-r7xx-3d/drm/linux-core/drm_auth.o] Error 1
    make[1]: *** [_module_/root/drm-r7xx-3d/drm/linux-core] Error 2
    make[1]: Leaving directory `/usr/src/linux-2.6.30-gentoo-r2′
    make: *** [modules] Error 2

  2. xception Says:

    not much success
    CC [M] /root/drm-r7xx-3d/drm/linux-core/drm_sysfs.o
    /root/drm-r7xx-3d/drm/linux-core/drm_sysfs.c: In function ‘drm_sysfs_device_add’:
    /root/drm-r7xx-3d/drm/linux-core/drm_sysfs.c:172: error: ‘struct device’ has no member named ‘bus_id’
    make[2]: *** [/root/drm-r7xx-3d/drm/linux-core/drm_sysfs.o] Error 1

    I guess I’ll try 2.6.28

  3. ojete Says:

    So clock is ticking to see accelerated KWin without fglrx? :)))

    Good job guys!! Keep rockin’!

  4. agd5f Says:

    drm kernel modules only build against 2.6.27 and 2.6.28 at the moment.

  5. geos_one Says:

    so to get the latest work

    libdrm:r6xx-r7xx-3d or master

    my question should libdrm be used from your branch or master

    thx Mario