Разработчики D7VK продолжают расшифровывать тёмные уголки старых 3D-API. Версия 1.9 — это не просто набор исправлений, а фундаментальное изменение подхода к обработке 2D/3D-взаимодействия. Результат превзошёл ожидания.
Главные новинки
Отслеживание изменений поверхности (Surface Dirty Tracking)
Вдохновившись легаси-презентацией, добавленной в версии 1.8, разработчики внедрили систему отложенной загрузки изображений и отслеживания изменений для поверхностей DDraw и D3D9. Эта система откладывает любые копии изображений до последнего возможного момента.
Результаты впечатляют:
- Драматический прирост производительности в играх, активно использующих 2D-элементы и композитинг.
- Снижение использования GPU и уменьшение общего потребления памяти.
- Улучшенная стабильность времени кадра в сценариях с интенсивной 2D-нагрузкой.
- Исправлена корректность отображения некоторых сцен, где ранее отсутствовали как 3D, так и 2D-элементы.
Эти изменения, применённые к обоим путям рендеринга (стандартному и легаси-презентации), привели к закрытию более 30 открытых проблем в трекере проекта. Разработчики считают, что это была их главная проблемная область, и совместимость с почти всеми ранними D3D-играми значительно улучшена.
Унификация D3D9-объектов
Объекты D3D9 унифицированы между интерфейсами, что уменьшило общий объём памяти и исправило проблемы в многовариантном использовании интерфейсов. В результате исправлен рендеринг в Dungeon Keeper 2.
Производительность индексированного рендеринга
Немного улучшена производительность индексированного рендеринга путём настройки размеров индексных буферов D3D9.
Другие исправления и улучшения
- Точность цветового ключа (color key): Благодаря @CkNoSFeRaTU значительно улучшена точность прозрачности по цветовому ключу, особенно на видеокартах NVIDIA.
- Отсутствующая геометрия и тени: Исправлены проблемы с отсечением (clipping), вызывавшие пропадание геометрии и теней в различных играх, таких как RIM: Battle Planets и Revenant.
- Белые фоны текста в Combat Mission: Исправлена проблема с выходом значения за пределы, вызывавшая белые фоны для текста в различных играх серии Combat Mission.
- Экраны загрузки в Gothic 1/2: Исправлены пропадающие фоны загрузки.
- The Settlers IV: Добавлен обходной путь для одновременного использования устройства в отрисовке сцены — рендеринг исправлен.
- Metal Gear Solid Integral: Исправлен отсутствующий экран меню паузы.
- PlayOnline Viewer (Final Fantasy 11 лаунчер): Исправлена проблема с чёрным экраном.
- Dungeon Keeper 2: Добавлена опция для совместимого имени устройства, необходимая для включения аппаратного ускорения.
Разработчики подчёркивают, что на этом чудеса в области производительности, скорее всего, закончились — большая часть неэффективностей уже устранена, и дальнейший прогресс может быть лишь незначительным. Тем не менее, текущее состояние D7VK 1.9 позволит вам наслаждаться ранними D3D-играми с производительностью, которая вас не разочарует.
Релиз D7VK 1.9 уже доступен на GitHub-странице проекта.