Am Sonntag, 23. März 2008 00:08:00 schrieb Roderick Colenbrander:
Hi,
Windows drivers only offer post pixel shader blending support on generic (A)RGB-like formats and in case of dx10-class cards like the Geforce8 also on some float formats. Right now we enable blending even when it isn't needed. In case of R32F (if you would disable the software conversion code) this gives a 400% performance boost in http://www.angelcode.com/dev/shadow/.
Don't disable GL_BLEND() in context.c . This will be overwritten by the state_blend() state handler later if the state is dirty for some reason. Instead mark the state dirty and let the state handler code you added handle this.
You're checking for use_ps() in the state_blend handler, in this case you'll have to make sure that a pixel shader change updates this. However, I suspect that the pixel shader does not have any effect on blending and the flag's name is a red herring. Can you write a test testing blending on formats that do not support post pixel shader blending?