Open lexaknyazev opened 1 year ago
Questions:
Some of the press releases mention breaking the GDeflate data into 64 KB chunks and compressing each separately, which enables significantly more parallelism (especially important on the GPU). In fact, the Vulkan extension even takes an array of chunks to decompress in parallel. Oddly however, neither the bitstream format specification nor any of the other documentation I've found specify a standard way of encoding the number/locations of chunks.
EDIT: It looks like the tile format can be reconstructed from the reference implementation, particularly TileStream.h and GDeflateCompress.cpp (plus MSVC's documentation on bitfield layout).
In addition to the question of how to specify the list of chunks, there's also a number of different ways to map chunks to portions of the image. Some that come to mind:
https://github.com/microsoft/DirectStorage/tree/main/GDeflate https://github.com/NVIDIA/libdeflate/tree/gdeflate