PDA

View Full Version : ATI Catalyst 7.6 vertex shader crash with structs



speedy
07-20-2007, 04:34 AM
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

gybe
07-20-2007, 08:13 AM
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.

yooyo
07-20-2007, 09:22 AM
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.

speedy
07-21-2007, 04:23 PM
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) :)

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.