On Wed, 30 Jan 2008 03:00:20 +0100
Martin Jeppesen
ATOM doesn't have much to do with 3D I assume they just reverse engineered the instruction set for the shader engine,
ATOM is totally endian and architecture neutral in theory however both the atom parser and the wrapper code seem to have endian bugs that the radeon driver is hoping to resolve with the help of BenH, an IBM PowerPC hacker...
Unfortunately, Felix Domke don't do any modesetting yet (he currently rely on having the game setup a proper video mode), plus, the ATi Xenos GPU doesn't have any of the VGA compatibility stuff.
The whole video output block is very much simplified. All you have is some basic timing (the Xenos doesn't have DACs, the Ana (external chip) does..), and two graphic planes in a fixed format (32bit argb, tiled) with some scaling.
But if someone is working on R600-based 3D, he have made already made the X driver for you. See the following 4 links for sources.
Screenshot of Debian on XBox 360 doing 40 million triangles per second: http://x226.org/wp-content/uploads/2007/09/3daccel.jpg
X11 driver and demos: http://forums.xbox-scene.com/index.php?showtopic=620515
XBox 360 3D driver: http://x226.org/wp-content/uploads/2007/09/gpu-0.0.3.tar.gz
Extract the required ucodes from flash: http://x226.org/wp-content/uploads/2007/09/romextract-0.0.1.tar.gz
It was written from scratch, and contains no Microsoft code. All information were reverse engineered from either code or ringbuffer dumps.
This code is, for now, licensed for non-commercial use only, but Felix is open for other licenses.
This code currently runs on Linux. It requires access to /dev/mem, so running it as root is usually required. It communicates directly with the graphic hardware, so no userspace library is required.
Have a look at the readme.txt file in gpu-0.0.3.tar.gz, where he have documented everything(?)
I would think you could copy/paste most of it, and you have R600 3D support in a few hours?
It's a lot more complex than that. First this code seems to rely on an
external shader compiler. Second this directly use GPU like we did with
r300 demo. So it's more a technological demo than code on which we can
build a driver.
In our case we need a drm kernel module, a ddx driver (in case where we
are not in kernel modesetting), dri initialization and the actual 3d
driver inside mesa. All of this piece require an amount of code far
bigger than what is in there.
Cheers,
Jerome Glisse