View Full Version : ATI, vertex shader, temporaries

12-13-2004, 09:26 AM
It's really easy to get one of these messages from ATI :

available number of temporary registers exceeded

Common guys! Get more men on the job!

Suggestion for GLSL Parse Tool
Have it render stuff and compare with a reference image.

12-14-2004, 01:01 PM
Yes, the problem has been there for a long time now and is pretty annoying as it basicly makes any kind of skinning shader impossible. Look here for instance.


I've only seen it related to skinning related stuff - or more precisely dynamic lookups in uniform arrays. I guess that as soon as a dynamic array lookup is performed in a shader it stops deallocating temporay registers making it run out of them pretty soon.

12-15-2004, 02:20 PM
I've seen that thread.
It's unfortunate if there isn't a workaround.

Here is a simple case that gives the same error

void main()
int i;
const vec4 tex555=vec4(0.01, 0.01, 0.01, 0.01);
vec4 temp;

gl_Position = ftransform();

for(i=0; i<28; i++)
temp += tex555;

gl_TexCoord[0] = temp;
}Basically the same problem arises when you index something or if looping is used.

12-16-2004, 07:55 AM
<Begin Rant>

I agree. In my opinion ATI seems to treat OpenGL as second-tier compared to Direct3D. Mobile chipset support is non-existant. And we all know how little they value linux support.

Perhaps a better approach for them might be to architect a core, unified approach to driver development and reuse this base for Mac, Linux, and Windows.

I even heard that they are using .Net for some of the driver utilities. Guess those won't be running on Linux or Mac....

</End Rant>

12-16-2004, 04:03 PM
The problem with mobile chip support lies with the vendors (Dell, etc), not with ATI. ATI gives them all the drops they want. However, the vendors take a long time to integrate drops, and only do it once every year or whatever. That happens for all graphics chip brands for the same vendors, i e Dell laptops with NVIDIA drivers are equally bad.

12-17-2004, 10:00 AM
I completely agree it is formally the responsibility of the laptop vendor.

I just don't understand why ATI can't enable "unoffical" chipset support for the mobile chipsets.

I have been using the Omega drivers, which are just "modded" Catalyst drivers with mobile support enabled. I guess it could be worse....if the omega drivers didn't exist...

12-19-2004, 05:17 PM
There's always this driver modder utility: