Hello, I’m a modder, and I would like to know why exporting BC7 with NVTT generates what the game considers a corrupted file and crashes while trying to load it. I’m posting this here just because exporting BC7 with Intel Texture Works or Compressonator generates a valid texture, while NVTT returns a D3DX11GetImageInfoFromMemory() error.
If I compare them with the tool they have the same input information:
DDS file with DXT10 extension.
Extent: 2048 x 2048 x 1 px
DXGI format: BC7_UNORM (98)
Mips: 12
Array elements: 1
Cubemap: false
Alpha mode: Straight
Hi @endercapito!
Could you try opening up the DDS file in a hex editor (I use HxD) and changing byte 0x90 of the DDS file from 01
to 00
?
This changes the alpha mode of the DDS file in miscFlags2 from DDS_ALPHA_MODE_STRAIGHT
to DDS_ALPHA_MODE_UNKNOWN
. My guess is that the game might be using the June 2010 version of the DirectX 11 SDK, which (if I remember correctly) rejects any DDS files unless they use an alpha mode of DDS_ALPHA_MODE_UNKNOWN
. I made a quick program to test this, and it looks like changing that byte makes it work with the June 2010 SDK – so let me know if that also fixes it for your game!
Well, that didn’t seem to fix it. However, I did some experimenting comparing the hex of the files and for some reason, changing a hex located in 0C 00000080 from 00 to 01 made it work.