-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
Am 2015-03-16 um 17:38 schrieb Matteo Bruni:
On AMD UpdateTexture seems to always convert data between different formats (e.g. A8R8G8B8 -> R32F, red has the correct converted values). I'm not sure about the UNORM -> SNORM conversion, that one might be broken but I didn't look very hard into it. On Nvidia it looks like data is copied if the source and destination formats have the same bpp (e.g. UNORM -> SNORM, but even A8R8G8B8 -> R32F gives the expected result of a "reinterpretation" of the data as in the destination format), otherwise nothing happens and the destination texture stays black. When it does work data is just copied, e.g. the X channel is copied intact into the A channel in X8R8G8B8 -> A8R8G8B8. For what it's worth, the X channel seems to be preserved on AMD too.
Thanks for testing this. I'll at some later point do a similar test with ddraw blits. We know ddraw blits can stretch, convert between formats and transfer between different memory pools, but so far we don't know if they can do all 3 of those things at once.