Am Sonntag, 16. März 2008 15:00:49 schrieb Ivan Gyurdiev:
I don't quite understand why it's necessary to write ARB, GLSL, and NONE shader descriptors inside the ati_shader file. How will this infrastructure scale to a new shader backend added a year from now ?
Currently I am doing that so ATI cards which have ARB_fp or GLSL can use the fragment replacement code and d3d pshaders at the same time. As commented in the code we can remove all but the ATIfs+ARBvp backend the day we have a ffp replacement in ARB or GLSL. Thus there's no need for that to scale, what we have here is the worst case.
I very much like that backend-specific functionality ends up in the appropriate backend - as per patches 10, 11, and 14. However, it seems those patches stand on their own, independent of the rest of the patchset and this feature.
You're right, the shader model changes do not really need the ATIfs code to work. However, separating them would be quite a pain, and I do not see any gain from that beyong the point where the patches are applied. It won't affect regression testing really.
The reason why I wrote it that way was that I needed an implementation of an ffp replacement to see where the whole thing goes. I couldn't do that with the existing nvts code because nvrc+nvts are quite different from arb/glsl/atifs and as described in the other mail putting that code into a separate shader backend won't help us much.