[enhancement] DLSS / FSR3 / MetalFX: общий temporal-upscaling backend и отдельная генерация кадров #124
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
🤖 Filed by Codex, AI-агент Владимира (chexit).
Исследование 5–6 ноября 2026. AirDef
61aaa0bf359026711ba811a7f7e9877ce253ead2, Horizon278f356aa604fa21c2d15d0081823bbe0f891df2, wgpu 30.0.1. Запрос владельца: поддержать DLSS, FSR3 и MetalFX в одной поставке. Это отдельная работа в нативном рендерере, не shader мода. Интеграция технически обоснована; готового рабочего Horizon proof-of-concept и замеров на RTX 3060/M5 пока нет.Что поддерживать
Один выбранный temporal upscaler на кадр, общий интерфейс и native TAAU fallback; не цепочка из трёх апскейлеров. Upscaling, frame generation и ray reconstruction — разные возможности, с отдельными capability flags и этапами. RTX 3060 должен получить DLSS Super Resolution и/или аналитический FSR3; Apple Silicon — MetalFX при подтверждённых OS/device capabilities.
Текущее состояние движка: недостающий общий фундамент
План реализации
Приёмка
Первичные материалы
Связано: #88/#89 (scene/history lifecycle), #102 (capabilities/build), отдельные RT и глобальная оптимизация. Апскейлер может сокращать GPU pixel cost; это не доказательство устранения просадок/микрофризов пользователя.
🤖 Agent: Kimi Code, с read-only исследованием DLSS от DeepSeek V4.1 Flash Fast.
Начата реализация в
kimi-work: AirDef9664783, enginec962cd472(kimi-work-124).Сделано: G-buffer получил dense
Rg16Floatmotion target; формат — current→previous в пикселях render-разрешения, обе проекции с jitter. Terrain/entities записывают camera/static motion; TAA и TAAU используют explicit vectors только при совпадении opaque depth, остальное сохраняет прежний fallback. Исправлен выбор nearest-depth sample для TAAU.Проверено: 23 HD-теста + Globals layout, WGSL parse и HLSL translation; полный клиент собран. Metal A/B при TAAU 0.67 на одном Polygon: статика mean 0.83/255, пиксели >20 — 0.44%; изменения по краям/воде попадают в motion-маску. Это не заявка на ускорение: motion target и дополнительные reads сами стоят GPU времени.
DLSS ещё не реализован. Разведка подтвердила совместимость
dlss_wgpu 6.0.0с wgpu30/DLSS 310.9.1, но нужен отдельный NGX SDK, Vulkan device bootstrap и Windows fixes wrapper-а. NGX ожидает MV в пикселях — этот контракт уже заложен. Текущий HD color остаётся gamma/display-space, поэтому нужна отдельная linear-HDR граница; наличие Rgba16Float само по себе не доказывает совместимость.Следующие этапы: previous object/articulated transforms и wind, общий backend/reset + linear-HDR, затем feature-gated DLSS SR PoC на RTX/Vulkan. FG отдельно; RTX 3060 не получает NVIDIA FG. Issue остаётся открытым.
🤖 Agent: Kimi Code.
Продолжение: AirDef
217e3ac, engineed751714eветкиkimi-work-124.Добавлен feature-gated DLSS SR PoC, не просто motion foundation:
dlss_wgpu 6.0.0optional для Windows/Linux; обычные сборки не требуют SDK;VK_EXT_hdr_metadataсобираются в одном Vulkan device callback;world+display→linear → NGX evaluate → linear→display; native TAA/TAAU остаётся fallback;HORIZON_DLSS=1включает backend, default world scale 2/3;HORIZON_HD_SCALEпереопределяет.Проверено: Windows
cargo check -p horizon-client --target x86_64-pc-windows-gnu --features dlssс NVIDIA DLSS SDK v310.9.1 прошёл;synзакреплён 3.0.5,advapi32добавлен для NGX. 24 HD-теста + layout, mods/no-mods checks, обычная игра/HD на Metal. Движущаяся С-400 вHORIZON_HD_DEBUG_MOTIONпоказала object motion.Не проверено: полноценная MSVC линковка и NGX runtime/качество/FPS. MinGW link не подходит из-за MSVC CRT
.lib; это не объявляется рабочей Windows-сборкой. Для запуска нужны SDK при сборке,DLSS_SDK,VULKAN_SDK, clang,--features dlss, а также runtime DLL/SO и NVIDIA notices. Ванильные сущности/ветер пока camera-only; reactive/transparency, FSR3/MetalFX и frame generation отдельно.Issue остаётся открытым до MSVC-link и RTX/Vulkan приёмки.