On 25 November 2011 21:07, Stefan Dösinger stefandoesinger@gmx.at wrote:
Am Freitag, 25. November 2011, 20:23:01 schrieb Henri Verbeet:
That's silly. If that's really the case that should be fixed.
I don't see why it is silly. d3d sysmem format -> gl texture format and gl texture format -> rgba conversions are two separate things. What's unfortunate is that in the case of P8 both can do the same job and the selection code is a mess.
For signed surfaces the upload conversion maps [-1.0;1.0] to [0.0;1.0] to load it into a unsigned rgba surface. When we read the surface in the shader we have to reverse that. You may be able to avoid the upload conversion by a more tricky shader conversion, but that misses the point.
Maybe there's a legitimate case for signed formats and it's just P8 that's broken. I'm not entirely sure that we shouldn't just use either EXT_texture_snorm or the NV_texture_shader formats and mark the formats as unsupported otherwise though.
Also, do you have a game that needs P8->RGBA blits? In my testing with ddraw,
Not yet. I came across this while investigating how we should handle P8 primary surfaces for ddraw. You'd have a RGBA8 frontbuffer in wined3d and a P8 surface in ddraw.