|
Опубликован выпуск проекта D7VK 1.12, развивающего реализацию графических API Direct3D 3, 5, 6 и 7, предложенных компанией Microsoft в 1996, 1997, 1998 и 1999 годах. D7VK работает через трансляцию вызовов в API Vulkan и позволяет при помощи Wine запускать в Linux ретро игры, завязанные на API Direct3D 3, 5, 6 и 7. Код проекта написан на языке C++ и распространяется под лицензией Zlib. В качестве основы при разработке использован код бэкенда d3d9 от проекта DXVK - D7VK преобразует API Direct3D 3, 5, 6 и 7 в вызовы Direct3D 9, которые затем транслируются в API Vulkan. Разработчик не намерен добиваться включения D7VK в состав DXVK, как это было с реализациями Direct3D 8 и Direct3D 9 поверх Vulkan.
В новом выпуске:
- Реализована серия оптимизаций производительности, в основном касающихся кода API, выполняемого на CPU. Показатели производительности D3D6 в тесте 3DMark 99 Max увеличились с 70685 баллов в D7VK 1.2 до 75283 в D7VK 1.12, а D3D7 в тесте 3DMark 2000 v1.1 с 45267 в D7VK 1.0 до 69566 в D7VK 1.12. В отдельных ситуациях внесённые микрооптимизации позволили значительно повысить FPS на системах со слабыми CPU, например, в игре Unreal Tournament FPS вырос с 256 до 484, а нагрузка на GPU снизилась с 37% до 18%.
- Упрощена реализация прозрачности на основе ключевого цвета (Color Key) без использования полноценного альфа-канала.
- В D3D6/5/3 оптимизированы преобразования цвета при очистке вьюпорта.
- Для снижения
количества используемых дескрипторов (handles) выделение дескрипторов текстур и материалов теперь осуществляется после запроса приложением, а не в момент создания текстуры или материала.
- Осуществлён переход на работу поверх выпуска DXVK 3.0.1.
- Внесены исправления, улучшающие поддержку игр Matrox TechDemo 3D, Star Trek: Starfleet Academy и The Sims: Complete Collection.
|