On Thu, May 10, 2012 at 8:39 PM, Stefan Dösinger stefandoesinger@gmx.at wrote:
Since I've burned my hands with DDSURFACEDESC2 pitch handling in the past(e.g. bug 21238), I highly recommend to test it. Knowing msdn, the above page makes me less confident, not more :-\
The most likely situation where an error occurs is when a different API or tool(e.g. gdi32 or ddraw) uses a specific pitch and the application developers are not aware of it and just forward the data 1:1.
Some test suggestions:
*) See if the pitch_or_linearsize member is used at all *) Non-DWORD aligned pitches *) Pitches that are not pixel-size aligned *) pitch < width * byte_per_pixel *) Negative pitches / pitches > 2^31(Remember the LONG vs DWORD) *) A too small linear size for compressed surfaces(e.g. < block size)
Thanks for the suggestions.
Do you think this patch series can get in before tests for pitch handling? The patch series is big enough and I don't want to make it any bigger. The patch series also makes d3dx9 to pass almost all tests for DDS file format support. Besides that, there are many things left and improvements to be done until the DDS support in d3dx9 will be completed. Amongst things to do the most problematic seems to be DXTn compressor and decompressor. So I think these tests could be added in the next series of patches. What do you think?