http://bugs.winehq.org/show_bug.cgi?id=12453
--- Comment #15 from H. Verbeet hverbeet@gmail.com 2009-01-06 06:45:02 --- (In reply to comment #14)
If I'm following that patch correctly, then it simply disables support for the SRGB_TEXTURE sampler state, which seems to overly brighten everything when applied to Warhammer Online (which seems to suffer the same bug except in texture, not cubetexture.). I guess that makes sense, since it's disabling the sRGB->linear conversion in the texture sampler, since linear values are lower than the sRGB value for the same colour. (Assuming I've got sRGB correct...)
If I'm understanding the code and specs correctly, then the problem is that D3D lets the sampler have sRGB->linear conversion turned on and off whenever it likes, while OpenGL requires a reload of the relevant texture with a different format.
Yeah, that's pretty much the problem. We could speed it up a bit by duplicating the textures and having a regular and sRGB version, but that does mean using twice the memory for some textures. Unfortunately it's not like the driver has lots of address space to spare either.