perf(render): avoid forced FIFO fallback without mailbox
Docs Deploy / Build and Deploy MkDocs (push) Successful in 1m17s

This commit is contained in:
Valentin Popov committed 2026-11-01 10:04:18 +04:00
1 parent f771a62298
commit 1c3b977556
3 files changed
+44

No files matched your search

+16
View File
@@ -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>` принимает матрицу камеры