What problem does this solve or what need does it fill?
Current Bevy KTX2 texture loader loads the entire file into memory, which is inefficient for large KTX2 files containing 2D texture arrays (D2Array). For games or applications with massive texture atlases (e.g., hundreds of layers), this causes high memory usage and long load times, especially on lower-end hardware or when streaming assets.
The KTX2 format supports parsing the header to get layer offsets/sizes, allowing selective reading of a specific layer (e.g., by index) without loading the full file. This enables streaming/on-demand loading for better performance in open-world games or virtual texture systems.
I'm talking about different textures and not specifically mipmaps.
What solution would you like?
Possibility to get a layer from a ktx2 file by indexes.
What alternative(s) have you considered?
In the current version, the optimal ratio is 1 ktx2 file per texture file (with Normal and Roughness, this comes out to 3 files per texture). For several hundred or thousands, this would be something to optimize.
What problem does this solve or what need does it fill?
Current Bevy KTX2 texture loader loads the entire file into memory, which is inefficient for large KTX2 files containing 2D texture arrays (D2Array). For games or applications with massive texture atlases (e.g., hundreds of layers), this causes high memory usage and long load times, especially on lower-end hardware or when streaming assets.
The KTX2 format supports parsing the header to get layer offsets/sizes, allowing selective reading of a specific layer (e.g., by index) without loading the full file. This enables streaming/on-demand loading for better performance in open-world games or virtual texture systems.
I'm talking about different textures and not specifically mipmaps.
What solution would you like?
Possibility to get a layer from a ktx2 file by indexes.
What alternative(s) have you considered?
In the current version, the optimal ratio is 1 ktx2 file per texture file (with Normal and Roughness, this comes out to 3 files per texture). For several hundred or thousands, this would be something to optimize.