Radeon X1000 series lacks vertex texture fetch

This question came up in the late stages of writing my Radeon X1000 series review, and I just got confirmation from ATI yesterday. Turns out that the vertex shaders in the Radeon X1000 series GPUs don't support a notable Shader Model 3.0 feature: vertex texture fetch. As it sounds, this capability allows the vertex shaders to read from texture memory, which is important because texture memory is sometimes treated as general storage in programmable GPUs. Vertex texture fetch is useful for techniques like displacement mapping, where the vertex and pixel shaders need to share data with one another.

I asked ATI's David Nalasco about this issue, and he suggested a possible workaround for this limitation:

No, vertex texture fetch is not supported. However, since the X1000 family does all pixel shader calculations with FP32 precision, just like the vertex shader, it is possible to get the same results using the render to vertex buffer capability. Basically, you do a quick pre-pass where you render to a special linear buffer in which each pixel represents a vertex. Textures can be used to modify each vertex through the pixel shader, and the result is then read back into the vertex shader. The result is fast vertex texturing with full filtering support, without requiring any special hardware in the vertex shader engine.

Note that render to vertex buffer is possible in R4xx as well, but is limited to FP24 which could cause precision issues in some cases.

Such a workaround would likely involve a performance penalty, but I doubt it would be a major hit. The larger issue is probably just the fact that the workaround would require special consideration from developers, because the GPUs lack a straightforward vertex texture fetch capability.
Tip: You can use the A/Z keys to walk threads.
View options

This discussion is now closed.