diff options
| author | Valentin Popov <valentin@popov.link> | 2026-07-18 07:59:28 +0300 |
|---|---|---|
| committer | Valentin Popov <valentin@popov.link> | 2026-07-18 07:59:28 +0300 |
| commit | 9f6b21638d396783809bbd941d4cf0d548122995 (patch) | |
| tree | 629ee6db9d2ac1d822b5c30177d50ca4927dde66 /docs/tomes/05-render.md | |
| parent | b500e32ca2b35fbefbdd5c94a1cf782e309ed20a (diff) | |
| download | fparkan-9f6b21638d396783809bbd941d4cf0d548122995.tar.xz fparkan-9f6b21638d396783809bbd941d4cf0d548122995.zip | |
feat(vulkan): select readback-capable swapchains
Diffstat (limited to 'docs/tomes/05-render.md')
| -rw-r--r-- | docs/tomes/05-render.md | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/docs/tomes/05-render.md b/docs/tomes/05-render.md index fbbc928..e2f3b88 100644 --- a/docs/tomes/05-render.md +++ b/docs/tomes/05-render.md @@ -859,6 +859,22 @@ dynamic material data и не входит в `PipelineKey`. Также не у дополнительного дизассемблирования. Это частично реализованная compatibility boundary, а не заявление о готовой parity fixed-function state. +### Capability-gated swapchain source for future pixel capture + +Pixel parity требует чтения результата GPU, но swapchain image разрешает это +только если surface сообщает `VK_IMAGE_USAGE_TRANSFER_SRC_BIT`. Поэтому +swapchain policy всегда запрашивает обязательный `COLOR_ATTACHMENT`, а +`TRANSFER_SRC` добавляет лишь при фактической поддержке surface; выбранные raw +usage bits попадают в deterministic plan и native smoke report. Это не создаёт +readback buffer, не копирует pixels и не закрывает pixel-capture acceptance. + +На Windows GOG native smoke 2026-07-18 (`MTCHECK.MSH` из `system.rlb` и +`DEFAULT.0` из `Textures.lib`) AMD Radeon Pro WX 3200 Series подтвердил +`image_usage=17` (`COLOR_ATTACHMENT | TRANSFER_SRC`): 300 frames, 3 resize +events, 2 swapchain recreations, Vulkan validation warnings/errors `0/0`. +Следующий шаг должен выполнить явный image-to-buffer copy и сравнить полученные +bytes с зафиксированным reference capture. + `Land.msh` использует отдельный geometry-only bridge: validated `TerrainFace28` сохраняет source triangle order, а его positions и packed UV0 попадают в тот же static vertex/index upload path. Для текущего диагностического viewer XZ bounds |
