| # ail |
| |
| ail is a small library for working with the image (and buffer) layouts |
| encountered with AGX hardware. Its design is inspired by isl. In |
| particular, ail strives to use isl unit suffixes and to represent |
| quantities in a canonical, API-agnostic fashion. |
| |
| ail conventions differ slightly from isl. See the isl documentation in |
| mesa/docs/isl for the conventions that inspired ail, in particular |
| mesa/docs/isl/units.rst. |
| |
| In ail, we have the following units: |
| |
| **Bytes (B)**: 8-bits. |
| |
| **Samples (sa)**: An individual sample. The number of bytes per sample depends |
| on the format. |
| |
| **Pixels (px)**: The unit everything starts as from the API. A pixel contains a |
| fixed number of samples, given as the layout's `sample_count_sa`. For twiddled |
| layouts, these samples are stored together in emmory. |
| |
| **Elements (el)**: For a block-compressed format, a single compression block |
| containing multiple pixels. Otherwise, equal to a single pixel. |
| |
| **Tiles (tiles)**: Defined only for tiled/twiddled layouts. A group of elements |
| forming the layout-specific tile. |
| |
| We do not support any multisampled block-compressed layouts, so either pixels |
| equals either samples or elements. |