ATI Catalyst 7.6 vertex shader crash with structs

The following vertex shader code causes the compilation to crash somewhere in ATI OpenGL driver code. The same code works on older 6.x drivers on Windows XP (I could drill down to the exact revision which breaks it).

 
struct light_in_t
{
	vec4			vertex;
	vec3			light_pos_ls;
	vec3			eye_pos_ls;
	vec3			ws_scale;
	vec4			light_near_far;
	mat4			light_frustum_mat;
};

struct light_out_t
{
	vec3			vl;
	vec3			ve;
	vec3			half_angle;
	float			attenuation;
	vec4			shadow_map;
};

light_out_t calc_lighting_vectors( light_in_t lin )
{
	light_out_t lout;
		
	return lout;
}

void main()
{
	gl_Position = ftransform();
}

HW: SAPPHIRE Radeon X1550 Series
OS: Vista Home Premium

I suppose it’s a bug with the Vista driver. I just try the exact same shader on XP with the Catalyst 7.6 and 7.7 and it works fine.

ATI have new OpenGL driver written from scratch. It is included in Vista driver package, but not yet in XP driver package. So… you have two choices… to wait till ATI add new GL driver in XP or write two different codepaths for ATI+XP and ATI+Vista. AFAIK ATI promise that they replace old XP GL driver with new GL diver later this year.

Anyway… new GL driver is not perfect. It have different bugs and features comparing to XP version.

Humus, correct me if Im wrong.

Actually this code is from an old/unused code path so I just deleted it and things worked out on Vista (except for the font writing which uses glPixelMap(), but I’ll post the details in another topic) :slight_smile:

I really do appreciate this gradual upgrade cycle in which it is unlikely to happen that the product is on the shelves and all of the sudden does not work with latest/just released ATI drivers… fingers are crossed.

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