aboutsummaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2026-07-18 07:59:28 +0300
committerValentin Popov <valentin@popov.link>2026-07-18 07:59:28 +0300
commit9f6b21638d396783809bbd941d4cf0d548122995 (patch)
tree629ee6db9d2ac1d822b5c30177d50ca4927dde66 /docs
parentb500e32ca2b35fbefbdd5c94a1cf782e309ed20a (diff)
downloadfparkan-9f6b21638d396783809bbd941d4cf0d548122995.tar.xz
fparkan-9f6b21638d396783809bbd941d4cf0d548122995.zip
feat(vulkan): select readback-capable swapchains
Diffstat (limited to 'docs')
-rw-r--r--docs/tomes/05-render.md16
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