Am Mittwoch 24 März 2010 12:00:48 schrieb Henri Verbeet:
On 24 March 2010 11:55, Roderick Colenbrander thunderbird2k@gmail.com
wrote:
Sure color keying needs to be handled by the fragment pipe. Though I would like to avoid touching that area right now since I don't know anything about it and I had a feeling when I talked about it with Stefan that this code is a bit fragile. So in the meantime I would like to have a way to disable color key fixups in LoadLocation when we perform a 2d blit.
Perhaps it's possible to implement as a different surface location.
I'd leave color keying out of the blitter redesign and stick to the current alpha based color keying emulation. Fixing the blitter is complicated enough as it is.
Implementing it in the fragment pipeline is certainly possible, if we are prepared to drop support for d3d color keying on cards that don't at least support NV register combiners(texture shader is not needed), ati fragment shader or ARBfp. Requiring either of those is not unreasonable, support for that goes back to TNT2 cards, ATI radeon 8500 and I think all Intel GPUs.
However, implementing it in the fragment pipeline when possible and having a texture loading fallback like we currently have won't help a lot. All issues with the current setup know affect the code design. If we keep the fallback, we have to deal with the load time alpha replacement in some way anyway, and we don't gain anything substantial from the alternative nicer fragment pipeline based codepaths.