I already blogged about S3TC support with Wine, but back then I wrote about problems to get that working on amd64 without a proprietary driver. Now I've figured out a way to get it working on amd64 with the free radeon drivers (Gallium versions).
It's actually pretty simple, as most things are, once you figured it out. For
64 bit applications, you just need a recent Mesa version and the package libtxc-dxtn0.
If you're using a card supported by the r600g driver, you first need a version
of the Mesa package, which is build with the Gallium version of the r600 driver
(the classic driver should work too, but I haven't tested that), like my unofficial Mesa
packages (those packages were built for testing r600g, see this e-mail to debian-x).
r600g users also need to set R600_S3TC_ENABLE=1
, otherwise the
driver won't attempt to load libtxc-dxtn0.
For 32 bit applications (like Windows games run with Wine) the initial
setup is a little bit more involved: in addition to the above you also need to
update a few libraries under /usr/lib32: namely Mesa and libdrm (if you
use my Mesa packages you need a i386 copy of libffi too). The quick and dirty
approach is to download the i386 packages for libgl1-mesa-dri,
libgl1-mesa-glx, libglu1-mesa, libdrm2,
libdrm-intel1, libdrm-radeon1 and (if you use my Mesa build)
libffi5. Unpack the packages (dpkg-deb -x
) and move the
files under /path/to/unpack/dir/usr/lib to /usr/lib32.
Alternatively you can also build a new ia32-libs package (make sure
you change the source.list file of ia32-libs to use at least testing
as a base, otherwise you'll end up with basically the same versions as are
in the current package).
No matter how you updated your drivers you now need the 32 bit version of libtxc-dxtn0. debian-multimedia.org offers a packaged version.
After installing all the previous packages, Wine should be able to display
(most) S3TC-using programs (in case you use the r600g driver, make sure you have
R600_S3TC_ENABLE=1
set). If you're using my Mesa builds you can
drop the
LIBGL_DRIVERS_PATH=/usr/lib32/dri
part again from your Wine
invocation.
Please note, that there might be some S3TC-using applications with graphical glitches, when using the above method, as the support for S3TC in r600g is still marked as WIP.