1 Reply Latest reply on Mar 13, 2009 6:44 PM by Leadwerks

    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.