I'm aware that this is not entirely officially supported at the moment, but I'm trying to generate an ATF texture using the open source project ATF-Encoder. I'm then trying to upload it to a Stage3D Texture with uploadCompressedTextureFromByteArray
, which is, itself, supported since FP11.
This works in the sense that the texture is correctly uploaded and displayed. I can also verify that there are compression artifacts on the resulting texture, especially if I increase the quantization factor during encoding, and that the resulting ByteArray is much smaller (about 20x less) than a "raw" texture.
However, measuring GPU usage with Process Explorer, I'm still consuming the exact same amount of VRAM per texture (i.e. 5.333 bytes per pixel), instead of the expected much smaller value.
The texture is created with BGRA mode, instead of Compressed mode - if I try compressed, it gives me "incompatible format" when attempting to upload. From what I can gather, the ATF format supports "compressed mode" textures, but ATF-encoder does not output textures with that flag set? (I've tried forcing the flag on after the compression is done, which, unsurprisingly, just crashes Flash)
Does anyone have more information regarding this issue? Would encoding the proper ATF and uploading with Compressed flag solve the issue? Or is this an implementation bug, where it's accepting the compressed payload, but uncompressing when uploading? Any information here is valuable, really.
This is in hardware mode, on an AMD Radeon 6450, Windows 7 64-bit, Flash Player 11.3 (same thing happens in 11.4 beta).