Log in

airlied [userpic]
some inklings of r500 3D support...

So myself, Alex and Corbin Simpson have been chipping away at the 3D support for the R500 driver over the past couple of week/months etc.

Corbin has been churning through the fragment shader instruction encoding and assembly, and has implemented a lot of the single opcode instructions and some of the multi-opcode ones. Corbin is new to all this, but its good to see new people join the 3D hacker community out of sheer wanting to scratch an itch on the hw they own.

I've been working on fixing up the r500 rasteriser code repeatedly and just fixing bugs one by one as they appear or are introduced :), and Alex has been cleaning up the register naming and grouping.

So today Corbin got fixed the temp handling up so we had nicer texturing opcodes, and I found the bug that was stopping everything from working nice in the rasteriser code, I had copy the r300 RS code to start the r500 RS code and changed it, except I missed one place and one register in that place. So when I was trawling through register state dumps I noticed in one place it was going to 0x4320 and the next 0x4330 leading me to find a missing ^R300^R500 define.

So I've played openarena fine on it so far, enemy-territory dies on level load somewhere, and compiz kinda works, i.e. windows wobble and contain correect data. I have a wide window failure (and background) at around the 2048 mark which points towards texture handling I suspect (r500 has 4096 textures), and for some reason after alt-tab or after rotating the cube the whole desktop gets corrupted. Dragging the cube brings it back until I let go when it corrupts again.

Ah well one step at a time.
The current build requirements are
xf86-video-ati driver running EXA from master.
drm master.
mesa r500-support branch.

You may run into some visuals problems, which means you need to get the X server to load the dri module under AIGLX. However this may lead to needing a new X server. so this may lead to pain, but I never said it was easy to bleed on the edge.


i suspect that's just 1% of work needed to get this into shape ;-)

still, it's an impressive achievement.


Hi david,

I must I am really impressed by your progress (alex, corbin and you). I have been following the project and all your announces. Today, I have decided to give it a shot and all I can say is :


You guys are really great. It works and it works quite well!!

Glxgears working.
Openarena, homeworldsdl both works really great.
Googleearth works too, although being slow but still impressive.

I could not test AIGLX due to the dri change meaning X server change, but I bet it works well too.

If you guys need testing and all, do not hesitate, it would be a pleasure to help you.

Really, keep up the wonderful work you've been doing.


Ubuntu packages

To help people test these things out, there are packages for Ubuntu 8.04 (reported to run on Debian Sid as well) on https://launchpad.net/~xorg-edgers/+archive

No new X server (and thus no AIGLX), but many things work well on my X1300 card, even if I forgot to switch to EXA. Huge improvements over the last days.

Thanks, Tormod

Re: Ubuntu packages

I have created a quick how to for Ubuntu 8.04 users here:

Updated mesa packages are not yet available, will be in few hours I think.

airlied: awesome work!

Mesa used to have a 2048-px texture limit as well. It might've been fixed in git, though. To get 4096x4096 textures on Intel I had to patch both the driver and mesa.


Keep up the good work!

Where's Xv on the road map? Or do the games get priority? ;)

Being a 3650 owner, I'm curious to know if Alex is doing any work on the R600 chips? He doesn't have to wait for public specs after all.

for r500 xv was done months ago.

All this work is for r500. r600 cards are a whole new ballgame so we await the specs before we can do anything on xv or 3D.

For now the goal is bring r500 up to the same level as r300.


A quick test:

openarena works perfectly.

nexuiz freezes the system after a few seconds of play.

torcs freezes the system also (I can only move the mouse cursor but I have to reboot because all is frozen).

great workd

OpenArena works great and gives me full FPS, looking forward to 2d acceleration

compiz mostly works but skydome and cube textures are garbage

As mesa 7.1 and xorg 7.5 etc hit debian experimental, I've tried compiz on a macbook pro c1d. And it really works. I played for hours with the effects and some of them really provide additional usability not just eye-candy :-)

Unfortunately, the sky dome (at least with the ati open source driver) is broken... I've seen random texture flickering and the texture at the top and bottom of the cube was also garbled :-(

Sure I can turn that off, but I wish someone with more insight on this would look into this.