# V2 Texture Cooking

`V2/ue/Tools/plan-v2-texture-cooking.py` expands
`V2/ue/Build/Cooking/v2-texture-cooking.json` into deterministic texture cook
commands for each texture set and platform profile.

Source coverage is PNG and EXR. PC and console profiles use `texconv` with
`BC7_UNORM_SRGB` for color textures, `BC7_UNORM` for normal maps, and
`BC6H_UF16` for HDR EXR inputs. Switch2 uses `astcenc` with `ASTC_6x6`, and the
Mobile profile uses `ASTC_8x8`. ASTC PNG commands use `-cl`, while HDR EXR
commands use `-ch`.

Every command includes a platform-specific mipmap chain, max texture size, mip
bias, streaming group, dependency kinds, a deterministic cache key, and a
dependency sidecar path ending in `*.v2deps.json`. These sidecars feed the
content cooking dependency graph so material, mesh, UI, and level dependents can
be invalidated when a source texture changes.

Required gates:

- `texture-cooking-plan-generated`
- `texture-cooking-bc7-profiles`
- `texture-cooking-astc-profiles`
- `texture-cooking-mip-chains`

The primary metrics are `cook.texture.bc7_profile_count`,
`cook.texture.astc_profile_count`, and `cook.texture.mipmap_chain_count`. The CI
validator is:

```bash
python3 V2/ue/Tools/check-v2-texture-cooking.py
```
