Разработчики D7VK продолжают работу над улучшениями, делая старые игры не просто запускаемыми, но и комфортными для игры на современном оборудовании. Версия 1.11 — это ещё один шаг вперёд в производительности, исправлениях и совместимости.
Поддержка параллельных точечных источников света
Редкий тип источников света, который поддерживался только D3D6 и более ранними версиями API, наконец-то получил корректную обработку в D7VK. Такие источники использовались всего в двух известных играх: The Sims и Hidden & Dangerous. В этом релизе добавлен путь эмуляции, совместимый как с CPU-вершинным освещением, так и с фиксированной функцией освещения DXVK (реализованной через шейдеры).
Разница в визуальном плане едва заметна, так как эти источники всегда играли второстепенную роль по сравнению с направленными. На раннем графическом железе они были полезны как более дешёвая альтернатива обычным точечным источникам, но на современном «разумно современном» оборудовании это уже не актуально.
Оптимизация процессорного процессинга вершин (CPU ProcessVertices)
Продолжается работа над повышением производительности недавно добавленного CPU-процессинга вершин. Добавлены дополнительные оптимизации, которые особенно важны для игр и модов, где активно используются вычисления софтверного вершинного конвейера (SWVP) в сочетании с отрисовкой.
Исправления и улучшения
- Производительность компиляции фиксированных шейдеров: Подтянут последний код DXVK, включая исправление, которое значительно ускоряет компиляцию шейдеров с фиксированной функцией. Особенно заметно на аппаратных T&L D3D7-играх.
- Grandia II: Исправлен редкий случай крос-API использования интерфейсов текстур — проблема была обнаружена @CkNoSFeRaTU.
- Praetorians и Empire of the Ants: Добавлен обходной путь для эмуляции фронтального буфера, исправляющий отсутствующие экраны загрузки и фоны.
- Frogger (1997): Исправлен баг, вызывавший отсутствие прозрачности текстур на видеокартах NVIDIA.
- Frogger 2: Swampy's Revenge: Обойдены проблемы с точностью цветового ключа (color key).
- Star Trek: Armada: Добавлен обходной путь для улучшения производительности отрисовки.
- Age of Wonders II: Исправлен чёрный экран во время воспроизведения интро-видео.
- Empire Earth: Улучшена скорость создания устройств — положительно сказывается на играх, которые при инициализации создают множество устройств для проверки аппаратной поддержки.
- Half-Life (оригинал): Исправлена недоработка, препятствовавшая корректному текстурированию в играх на движке GoldSrc. Примечание разработчиков: пожалуйста, не используйте D3D6 с GoldSrc-играми — производительность значительно хуже, чем при использовании OpenGL.
- The Sims (оригинальная игра и DLC): Добавлены многочисленные обходные пути. Разработчики называют исправление проблем в этой игре «самым ужасным, с чем им довелось иметь дело на данный момент». Известные проблемы всё ещё остаются в некоторых версиях игры.
- GTA 2: Исправлены проблемы с глобальным разделением дескрипторов (handle sharing), характерные для ранних D3D-API и DDraw. Ожидается, что баг решится после того, как проблема будет также исправлена в реализации DDraw в Wine.
Что дальше?
Разработчики взялись за две амбициозные задачи:
- Выжать максимум производительности из CPU ProcessVertices с помощью SSE2-инструкций (за это взялся @CkNoSFeRaTU).
- Окончательно и надёжно синхронизировать флиппинг цепочек обмена DDraw с флиппингом цепочек обмена в D3D9-бэкенде DXVK.
Релиз D7VK 1.11 уже доступен на GitHub-странице проекта. Наслаждайтесь классикой!