Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

Journeyman III

Vertex texture fetch causes shader to not link

GPU: Radeon X1550

Operating system: Windows Vista 32 bit home premium

Driver: 8.582.0.0 dated 2/3/2009

This is the lead developer of Leadwerks Engine.  I am happy to see how ATI's drivers have improved over the last year, and we have finally got our engine working completely correctly with ATI hardware. 

I have been wanting to try a new technique of storing terrain data in a texture and performing a texture lookup in the vertex program to get the height.  I have found about a 50% increase in speed using this technique on a Radeon 3870, and similar results on NVidia hardware.  The real reason I want to do this is so that grass instances no longer have to be calculated on the CPU...I can just throw a single mesh at the GPU and let it read the height texture to align the grass to the terrain.

On my Radeon 3870, it works great, but on my Radeon X1550, the line that performs the texture lookup in the vertex program causes the shader to fail to link.  Here is an example:

The shader fails to link and the engine write this line to the log:

Error: Failed to link shader program.
Fragment shader(s) linked,  vertex shader(s) failed to link.

If you look in "Shaders\Terrain\terrain.vert" and comment out line 29, the shader will successfully link.  According to GPU Caps Viewer, the GL_ARB_texture_float extension is supported by this card, which I think is required for vertex texture fetch.

1 Reply
Journeyman III

If you can confirm that the 2xxx series driver will behave correctly as my 3870 card does, I'll just drop support for the legacy cards.  That would actually make my job a lot easier.