aboutsummaryrefslogtreecommitdiff
path: root/docs/reference
diff options
context:
space:
mode:
authorValentin Popov <valentin@popov.link>2026-11-01 09:04:18 +0300
committerValentin Popov <valentin@popov.link>2026-11-01 09:04:18 +0300
commit1c3b97755630ea997b9f50c974e34982fba9edf4 (patch)
tree33c2c4fb88e0bc3ea158fe6c4c1f75db2f7bfbbe /docs/reference
parentf771a62298dd935a1ec6f746b738a2a82aab352d (diff)
downloadfparkan-1c3b97755630ea997b9f50c974e34982fba9edf4.tar.xz
fparkan-1c3b97755630ea997b9f50c974e34982fba9edf4.zip
perf(render): avoid forced FIFO fallback without mailbox
Diffstat (limited to 'docs/reference')
-rw-r--r--docs/reference/render-frame.md16
1 files changed, 16 insertions, 0 deletions
diff --git a/docs/reference/render-frame.md b/docs/reference/render-frame.md
index 80796a3..88f30b5 100644
--- a/docs/reference/render-frame.md
+++ b/docs/reference/render-frame.md
@@ -213,6 +213,22 @@ RVA `0x4EBE0` использует соглашение о вызовах `__std
`REFLECTION_SHIFTED`. Это свидетельство ABI фабрики, а не восстановленный
контракт матрицы вида или проекции.
+## Представление готового кадра
+
+Vulkan сохраняет явно выбранный режим, если поверхность его поддерживает.
+Приложение предпочитает MAILBOX: готовый новый кадр заменяет ожидающий,
+а показ остаётся привязан к развёртке. При отсутствии MAILBOX выбирается
+IMMEDIATE, затем FIFO. IMMEDIATE допускает разрывы изображения, зато не
+навязывает ожидание вертикальной развёртки; FIFO остаётся запасным режимом.
+Семантика режимов описана в [спецификации Vulkan](https://docs.vulkan.org/refpages/latest/refpages/source/VkPresentModeKHR.html).
+
+Оконная ветка GOG Ngi32.dll (SHA-256 из [таблицы модулей](original-binaries.md))
+по RVA `0x6E1B` вызывает `IDirectDrawSurface7::Blt` с `DDBLT_WAIT`.
+Эта ветка наблюдалась при нативных захватах. Флаг ждёт готовности блиттера,
+а не задаёт интервал развёртки — см. [описание Microsoft](https://learn.microsoft.com/en-us/windows/win32/api/ddraw/nf-ddraw-idirectdrawsurface7-blt).
+Современный композитор и драйвер всё равно могут влиять на фактический показ;
+это правило выбора API, а не гарантия одинаковой задержки двух движков.
+
## Предпросмотр по захвату камеры D3D7
`fparkan-game --legacy-camera-capture <json>` принимает матрицу камеры