Достъпен е новият релиз на DXVK 2.0, предлагащ реализация на DXGI (DirectX Graphics Infrastructure), Direct3D 9, 10 и 11, работеща чрез транслация на извиквания в API Vulkan. За да използвате DXVK, е необходимо наличие на драйвери с поддръжка на API Vulkan 1.3, като Mesa RADV 22.0, NVIDIA 510.47.03, Intel ANV 22.0 и AMDVLK. DXVK може да се използва за стартиране на 3D приложения и игри в Linux с помощта на Wine, като предлага по-висока производителност в сравнение с вградените реализации на Wine за Direct3D 9/10/11, работещи над OpenGL.
Основни промени:
- Повишени са изискванията за версията на графичния API Vulkan — за работа сега е необходим драйвер с поддръжка на Vulkan 1.3 (по-рано беше необходим Vulkan 1.1), което е позволило реализиране на нови възможности, свързани с компилация на шейдъри. На практика DXVK 2.0 може да бъде стартиран на всяка система, която поддържа използването на пакета Proton Experimental за стартиране на игри, базирани на D3D11 и D3D12. За работа на winevulkan е необходим минимум Wine 7.1.
- Включен е кодът на проекта dxvk-native, позволяващ създаването на местни сборки на DXVK за Linux (непривързани към Wine), които могат да се използват не само за стартиране на Windows приложения, а и в обикновени Linux приложения, което може да бъде полезно за създаване на портове на игри за Linux без промяна на кода за рендериране, базиран на D3D.
- Разширена е поддръжката на Direct3D 9, включително подобрено управление на паметта (за съхранение на копия на текстури се използват файлове, отразени в паметта), реализирана е поддръжка на коректно четене от активни области на рендериране (решаващо проблемите с артефакти при игра в GTA IV) и е преработена реализацията на проверка на прозрачността.
- Поддръжката на Direct3D 10 е прекратена с доставянето на библиотеките d3d10.dll и d3d10_1.dll, които не се инсталираха по подразбиране поради наличието на по-напреднала реализация на D3D10 в Wine. Въпреки това, поддръжката на API D3D10 продължава в библиотеката d3d10core.dll.
- Поддръжката на Direct3D 11 е доведена до нивото на функционалност 12_1 (D3D11 Feature Level), за достигането на което са реализирани възможности като мозаечни ресурси (Tiled Resources), консервативна растеризация (Conservative Rasterization) и подредено рендериране в растеризатора (Rasterizer Ordered Views).
- Преработен и приближен по своето поведение към Windows интерфейсът ID3D11DeviceContext, представляващ контекст на устройството, генериращ команди за рисуване. Преработката позволи да се подобри съвместимостта с трети библиотеки и да се намали натоварването на CPU. В частност, намалено е натоварването на CPU в игрите, които активно използват отложени контексти (например, играта Assassin’s Creed: Origins) или често извикват операцията ClearState (например, играта God of War).
- Внесени са промени, свързани с компилирането на шейдъри. При наличие на Vulkan драйвери с поддръжка на разширението VK_EXT_graphics_pipeline_library е реализирано компилирането на Vulkan шейдърите по време на зареждане на D3D шейдъри от игрите, а не по време на рисуване, което реши проблемите с забавянията, причинени от компилирането на шейдъри по време на игра. Изискваното разширение в момента се поддържа само в проприетарни NVIDIA драйвери, започвайки от версия 520.56.06.
- В шейдърите D3D11 е внедрена модела на паметта Vulkan.
- Премахнато е ограничението на броя ресурси, които могат да бъдат свързани наведнъж.
- Отстранени са проблемите, проявяващи се в игрите:
- Alan Wake
- Alice Madness Returns
- Anomaly: Warzone Earth
- Beyond Good and Evil
- Dragon Age Origins
- Empire: Total War
- Final Fantasy XV
- Grand Theft Auto IV
- Heroes Of Annihilated Empires
- Limit King Of Fighters XIII
- Metal Gear Solid V: Ground Zeroes
- SiN Episodes: Emergence
- Sonic Generations
- Spider Man
- The Ship
- Warhammer Online
- Ys Seven
Източник: opennet.ru
