glx-tfp.c is almost certainly broken
It does "bind tex image, draw, release tex image", and then expects the contents of the texture to be what it drew. That's exactly not what the spec says happens:
The contents of the texture after the drawable has been bound are defined
as the result of all rendering that has completed before the call to
glXBindTexImageEXT. In other words, the results of any operation which
has caused damage on the drawable prior to the glXBindTexImageEXT call
will be represented in the texture.