LINUX.ORG.RU

Выпуск DXVK 3.0

 ,


0

2

Через полгода разработки выпущена свежая версия DXVK (Direct3D to Vulkan Translation Layer), открытой библиотеки, которая преобразует вызовы API Direct3D 8, 9, 10 и 11 в команды Vulkan. Она позволяет запускать 3D-приложения и игры, разработанные для Windows, на системах, где нативная поддержка Direct3D отсутствует, используя при этом возможности более эффективного графического API Vulkan.


Основные изменения
В новой версии произведён переход на использование спецификаций и расширений Vulkan 1.4, что соответственно потребует совместимого драйвера.

DXVK теперь использует dxbc-spirv для компиляции шейдеров для всех поддерживаемых моделей шейдеров. Это устраняет ряд проблем, которые ранее было невозможно решить:
Проблемы с рендерингом в играх, вызванные либо тем, что игры полагаются на неопределенное поведение, либо тем, что FXC в некоторых случаях генерирует неверный код, как в Postal: Brain Damaged, Snowrunner
Сгенерированный код более компактен, чем просто преобразованный код SPIR-V, что существенно уменьшает объем памяти, занимаемый DXVK. В таких играх как Overwatch или God of War это позволяет сэкономить около 1 ГиБ системной памяти.
Компиляция шейдеров теперь полностью перенесена на рабочие потоки, что может сократить время запуска в таких играх, как Days Gone и Final Fantasy XIV, или в некоторых случаях уменьшить зависания. Раньше DXVK выполнял трансляцию SPIR-V в потоке приложения и компилировал только реальные конвейеры Vulkan на рабочих процессах.
Промежуточное представление скомпилированных шейдеров DXVK теперь кэшируется на диске внутри каталога AppData/Local текущего префикса Wine. Это необходимо, поскольку время компиляции увеличилось по сравнению со старым компилятором. Путь к кэшу можно изменить с помощью переменной среды DXVK_SHADER_CACHE_PATH.

Новое расширение Vulkan VK_EXT_descriptor_heap теперь используется по умолчанию в драйверах, которые его поддерживают.
Ожидается, что по сравнению со старой реализацией модели привязки, основанной на VK_EXT_descriptor_buffer, эта новая модель обеспечит примерно тот же уровень производительности, связанной с ЦП, при этом избежать снижения производительности на GPU Nvidia (требуется nvidia-drivers-595.84 и новее)
Изменения D3D9
Чтобы эмулировать устаревший конвейер с фиксированными функциями, который позволяет играм D3D8 и D3D9 выполнять рендеринг без шейдеров, DXVK ранее генерировал собственный код шейдеров на лету на основе состояния конвейера. В некоторых играх, таких как Unreal Tournament 2004, это могло привести к заметным подтормаживаниям даже после длительных периодов игрового процесса.

Чтобы исправить это, DXVK теперь реализует конвейер с фиксированными функциями в виде пары убершейдеров, для которых оптимизированные варианты компилируются в фоновом режиме
Оптимизация загрузки буфера
Чтобы более точно соответствовать поведению Windows, различные типы буферов, которые раньше размещались непосредственно во VRAM, теперь загружаются по требованию, а также была реализована стратегия ограничения объема оперативной памяти, которая исправляет сбои, связанные с адресным пространством, в ряде 32-битных игр D3D9.
Эти изменения также могут улучшить производительность на системах без изменяемого размера BAR в таких играх, как GTA IV.

В системах, которые в достаточной степени поддерживают VK_EXT_sample_locations и VK_EXT_extended_dynamic_state3, состояние рендеринга D3DRS_MULTISAMPLEANTIALIAS теперь работает правильно, позволяя приложениям использовать растеризацию с одной выборкой при рендеринге в целевые объекты рендеринга с несколькими выборками. Это устраняет проблемы с отрисовкой пользовательского интерфейса в Anno 1701, Men of War Assault Squad и аналогичные проблемы в других играх с включенным MSAA.

Общие ресурсы теперь работают с оригинальной реализацией Wine и больше не требуют исправлений, специфичных для Proton.

Также следует упомянуть множество исправлений для разных игр, которые теперь будут работать лучше

>>> Заметка о выпуске на GitHub

★★★★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 9)

что соответственно потребует совместимого драйвера.

Я бы такую информации в новости бы раскрыл. А ещё навтыкал бы апострофов для имён переменных и в других необходимых случаях.

DriverMinimum required version
AMD (RADV)25.0
Nvidia (prop.)575.51.02
Nvidia (NVK)25.1
Intel (ANV)25.1

P.S. 15 лет прошло с публикации последней новости. Это больше, чем я на ЛОРе зарегистрирован)

IIIypuk ★★★★☆
()
Последнее исправление: IIIypuk (всего исправлений: 1)

Citation:

(Direct3D to Vulkan Translation Layer) — это открытой библиотеки, которая преобразует

Statement: Написано странно.

apt_install_lrzsz ★★★★
()
Ответ на: комментарий от lenin386

автор - немец, неудивительно что рождаются такие понятия )

Sylvia ★★★★★
() автор топика
Ответ на: комментарий от etwrq

да, это mesa, более того mesa «дотягивает» старые карты до уровня vulkan 1.4, в то время как RDNA1/2 под Windows например уже «отвалились» и с ними рекомендуется использовать предыдущие версии DXVK (вопрос не в железе, а в том что под вендами драйвера уже не хотят доделывать, в отличие от mesa)

так что ограничения - свежая mesa (25.1) или если используется проприетарный nvidia - тоже свежий.

Sylvia ★★★★★
() автор топика
Ответ на: комментарий от lenin386

Übershader новые слова

Больше 10 лет в обороте. Ты там иногда выходи из мавзолея на площадь – пообщаться с людьми, обогатить словарный запас…

r--r--r--
()
Ответ на: комментарий от Sylvia

да, это mesa, более того mesa «дотягивает» старые карты до уровня vulkan 1.4

странно слышать о таки потугах в userspace от mesa.
насколько мне известно, по похорониксу в частности, идут активные работы по поддержки решений AMD, емнип hd3xxx-серии, в kmod amdgpu...
с блобами и прочией c-userspace обёрткой.
так-то if/define можно и до <1k hdamd дойти.
и разве mesa имеет отношение к kmod? это вроде строго userspace

etwrq ★★★★★
()
Последнее исправление: etwrq (всего исправлений: 3)
Ответ на: комментарий от hobbit

простите уж, предыдущая моя новость здесь была 15 лет назад

Sylvia ★★★★★
() автор топика
Ответ на: комментарий от buddhist

Это когда doom запускается легким подергиванием вулкана.

Irma ★★★★
()

Как то не интересовался, но прознал что DX 12 не становится DX 13 14 15 потому что они обновляют сам DX 12. Поэтому видимо и сами DXVK должны постоянно обновляться чтобы поддерживать новые фичи

I-Love-Microsoft ★★★★★
()

а также была реализована стратегия ограничения объема оперативной памяти, которая исправляет сбои, связанные с адресным пространством, в ряде 32-битных игр D3D9.

Т.е. может теперь DA:O глючить перестанет?… Впрочем, у меня под wine10/11 вообще никакие 32-битные игры не заводятся. А держать старый wine 9.17 чем дальше, тем страшнее: он может в один прекрасный день после очередного прекрасного обновления просто перестать работать.

dimgel ★★★★★
()
Ответ на: комментарий от dimgel

Девятый? А седьмой не хотел? Это последний сейчас рабочий для wow 3.3.5. Да и думаю не только для нее.

Тут уже гадать надо - что помрет первым. Вайн, игра или те кто в это играют.

LightDiver ★★★★★
()
Последнее исправление: LightDiver (всего исправлений: 1)
Ответ на: комментарий от dimgel

я переигрывала в DA Origins недавно, с dxvk 2.7.1 тоже работало хорошо, только пару раз крашнулось за всё прохождение. Так что тут не с DXVK проблема у вас, скорее да, wine.

я правда под вендами играла, но с dxvk, ведь с ним намного лучше!

Sylvia ★★★★★
() автор топика
Ответ на: комментарий от dimgel

wine10/11 вообще никакие 32-битные игры не заводятся

Это нормально, они в каждой версии вайна что-то чинят и ломают. Приходится держать по отдельной версии вайна под каждую игру. Отдельная версия под скайрим, отдельная версия под обливион и так далее.

vbcnthfkmnth123 ★★★★★
()

Недавно настраивал The Sims 3. Сначала на линуксе через DXVK, потом на винде 11. Точных бенчей нет и кто виноват я не знаю, но точно помню, на линуксе был DXVK и шумел/грелся мой ноут под линуксом заметно сильнее, чем под виндой.

Невидия — как было видно по логам DXVK.

Ограничение FPS включал. На остальные танцы с бубном терпения уже не хватило.

kaldeon ★★
()
Ответ на: комментарий от LightDiver

Видео со старым dxvk https://disk.yandex.ru/i/Y5EdbqtGMT9v5w
Скрин с новым https://disk.yandex.ru/i/Uf6LHY9Lt-pkHA
и там и там 120 fps,
винде конец
LINUX-ORG-RU

superuser ★★★★☆
()
Последнее исправление: superuser (всего исправлений: 3)
Ответ на: комментарий от superuser

Месть за NOKIA будет беспощадной!

"- Но как, Холмс?"

да пусть у них там хоть чёрт лысый будет. Iron_Bug ★★★★★ (05.06.18 03:05:14 MSK) GitHub отныне официально принадлежит корпорации Microsoft. Многие пользователи и организации мигрируют на GitLab (комментарий)

Вот так, Ватсон atsym

superuser ★★★★☆
()
Последнее исправление: superuser (всего исправлений: 1)

Мне не нужно, но кого-то наверняка порадует. Так что - «С приехалом!..» ;))

Somebody ★★★★
()

Я версию 3 ъжыпсот тыщнадц0ть лет джал!!!

Set440 ★★
()
Ответ на: комментарий от buddhist

А что такое «эффективность API»?

Очень правильный вопрос. Джон Блоу выразил свое мнение, что вообще ни разу не эффективный. На момент выхода никто не знал, как надо. Сейчас люди поняли, как надо. И надо либо переходить на Metal API, либо придумывать новый API. Но сам Джон Блоу на Metal API писать не пробовал, просто пацаны за гаражами хвалили.

sarumeister
()
Ответ на: комментарий от sarumeister

Суть в том, что API — это текст, список методов, спецификация, у API не может быть эффективности (ну разве что в языковом смысле).

buddhist ★★★★★
()
Ответ на: комментарий от buddhist

Конкретно здесь слово «эффективного» я понимаю. Vulkan API что-то там делает с примитивами синхронизации, и соответственно может выжимать из железа самый максимум, при должном уровне знаний.

Проблема, что нужен другой эффективный графический API. А также другой эффективный линукс-десктоп вместо dbus-наследия. Другая эффективная система сборки у С++ вместо CMake. И еще по мелочи.

  • ну и Джонатан Блоу конечно. Джон это другая легенда геймдева.
sarumeister
()
Ответ на: комментарий от sarumeister

Он наверное имел в виду, что нужно писать «более эффективно реализованого апи»

goingUp ★★★★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.