On 27 November 2013 18:08, Stefan Dösinger stefandoesinger@gmail.com wrote:
I don’t see how that helps here. This isn’t about a WINED3DFMT_R8G8B8A8_UNORM to WINED3DFMT_R32G32B32A32_FLOAT blit, this about uploading formats that have a conversion function to handle missing GL support (e.g. WINED3DFMT_R16G16_FLOAT without TEXTURE_RG or WINED3DFMT_R16G16_SNORM). Unless we add some WINED3DFMT enum values to express those conversions I don’t see how a staging resource helps here.
Doing conversions in the blitter allows them to be done on either the GPU or the CPU, depending on what's appropriate. I also think it's just the right place conceptually. It's correct that this would require some work on the blitter to be able to correctly express some of the conversions.
I don’t think there are any d3d8/9 blit operations that our GPU blitters cannot handle.
But not all blitters are necessarily always available. E.g. d3d8 level hardware generally doesn't have useful fragment shaders.