ATI, vertex shader, temporaries

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.

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.

http://www.opengl.org/discussion_boards/cgi_directory/ultimatebb.cgi?ubb=get_topic;f=11;t=000256

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.

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.

<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>

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.

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…

There’s always this driver modder utility:
http://www.driverheaven.net/patje/

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.