KhronosGroup / KhronosGroup/KTX-Specification

Suboptimal BasisLZ Global Data Layout

Open
#139 3 comments 0 reactions 0 assignees View on GitHub
Dominant language
CSS
Stars
81
Forks
16
PR merge metrics
No merged PRs in 30d

Description

The current layout of BasisLZ Global Data prevents eager decoder initialization because its variable-length `imageDescs` array is located in the middle and depends on the prior knowledge of the whole KTX configuration. We should revise it in the future revisions of BasisLZ.

By relocating `imageDescs` to the end of `supercompressionGlobalData` section, loaders would be able to do the following:
1. Upon encountering `sgdByteOffset`, immediately jump (e.g. using a separate thread) to it.
2. Use the contiguous block of data that would start there to initialize BasisLZ endpoints/selectors/tables even before the levels/faces/etc configuration is known.

Contributor guide

Open the contributing guide

Research direction

Review the current BasisLZ Global Data layout and the supercompressionGlobalData section described by the issue. Determine how relocating the variable-length imageDescs array affects the KTX specification and decoder initialization; done means a decided layout revision that enables the proposed contiguous initialization data.

Written by the indexing model from the issue text.

Assessment

Domain
documentation
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.