Am Mittwoch, 2. Januar 2008 13:38:57 schrieb Alexander Dorofeyev:
In case of colorkey emulation for a texture, if the application wants to select alpha from diffuse color at stage 0, a fixup to modulate with texture alpha more closely matches what the application wants than fixup to just select alpha from texture.
I am not sure about this. From my understanding of color keying, the color keying should only depend on the texture, not the diffuse color. Unfortunately, this is mutually exclusive with always honoring the app's blending settings. I have two games which use color keying, Moto Racer 2 and Prince of Persia 3D. I'll test the patches with those two games.
The problem is that our color keying is emulated, so we'll always have to fiddle to get it working properly everywhere. The correct, but complex and incomplete fix would be a replacement shader for the fixed function pipeline which can implement color keying properly using 'KIL' or 'discard'. Unfortunately that won't fix the problem for cards without fragment shader support.
The other patches look good to me