The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск проекта DXVK 1.1 с реализацией Direct3D 10/11 поверх API Vulkan

06.04.2019 23:58

Опубликован выпуск прослойки DXVK 1.1, предоставляющей реализацию DXGI (DirectX Graphics Infrastructure), Direct3D 10 и Direct3D 11, работающую через трансляцию вызовов в API Vulkan. Для использования DXVK требуется наличие драйверов с поддержкой API Vulkan, таких как AMD RADV 19.1-git, AMDGPU PRO 18.50+, NVIDIA 418.49.04, Intel ANV 19.1-git и AMDVLK.

DXVK может применяться для запуска 3D-приложений и игр в Linux при помощи Wine, выступая в качестве более высокопроизводительной альтернативы встроенной в Wine реализации Direct3D 11, работающей поверх OpenGL. В некоторых играх производительность связки Wine+DXVK отличается от запуска в Windows всего на 10-20%, в то время как при использовании реализации Direct3D 11 на базе OpenGL производительность снижается более существенно. Ведётся работа по поставке DXVK как компонента wine-integration, поставляемого в форме отдельной Linux-библиотеки (libdxvk.so), которую напрямую можно использовать в Wine, без необходимости отдельной установки DXVK в форме Windows DLL.

Основные изменения в DXVK 1.1:

  • Переработан интерфейс Querie, применяемый для получения информации из GPU. Переработка позволила поднять производительность различных игр, особенно построенных на базе движка Unreal Engine 4. Для достижения максимальной производительности требуется наличие в драйверах Vulkan расширения VK_EXT_host_query_reset, появившегося в ветке Mesa 19.1-git и драйвере NVIDIA 418.49.04, а также использования Wine 4.5 или Proton 4.2. В конфигурациях без поддержки расширения VK_EXT_host_query_reset производительность некоторых игр, таких как Quake Champions, может оказаться ниже, чем при использовании DXVK 1.0;
  • Реализована начальная поддержка метода SetPredication, для работы которого требуется поддержка расширения VK_EXT_conditional_rendering;
  • Добавлена поддержка размещения кода шейдеров в памяти в сжатом виде и исключено хранение лишних копий шейдеров, что позволило существенно снизить потребление памяти в играх с большим числом шейдеров и немного ускорить компиляцию шейдеров. Например, в играх Overwatch, Quake Champions и Dishonored 2 после применения оптимизации потребление памяти снизилось на несколько сотен мегабайт;
  • В DLL обеспечено включение информации о версии DXVK;
  • Добавлены незначительные оптимизации операций мультисэмплинга;
  • Устранены крахи при использовании Windows-версии RenderDoc в wine;
  • Решены проблемы с отрисовкой в играх Dark Souls Remastered и Grim Dawn на системах с GPU NVIDIA;
  • На 5-10% увеличена производительность игры "Sekiro: Shadows Die Twice".

Дополнение: Выяснилось, что выпуск 1.1 содержит серьёзную регрессию, приводящую к зависаниям GPU, поэтому Philip Rebohle, автор и разработчик DXVK, отменил выпуск, не рекомендует использовать его и уже работает над обновлением с исправлением.

  1. Главная ссылка к новости (https://github.com/doitsujin/d...)
  2. OpenNews: Выпуск Proton 4.2-1, пакета для запуска Windows-игр в Linux
  3. OpenNews: Выпуск Wine 4.4
  4. OpenNews: Выпуск Mesa 19.0.0, свободной реализации OpenGL и Vulkan
  5. OpenNews: Выпуск проекта DXVK 1.0 с реализацией Direct3D 10/11 поверх API Vulkan
  6. OpenNews: Выпуск проекта Wine Staging 4.0, дополняющего Wine 4.0
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/50472-dxvk
Ключевые слова: dxvk, vulkan, directx
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (27) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.5, Аноним (5), 03:10, 07/04/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Разраб с разрабами Вайна еще не помирился?
     
     
  • 2.8, Zenitur (ok), 07:19, 07/04/2019 [^] [^^] [^^^] [ответить]  
  • +14 +/
    Иногда разработчики Wine заслуживают того, чтобы с ними ссориться.

    В первую половину 00-х, как известно, был хайп Линукса. В 1999 году Red Hat вышла на IPO, и её акции стали дорого продаваться. Все тогда стали говорить про Linux. Если попробовать открыть сайт Wine и Crossover (платный Wine) в https://archive.org/, то видно, что вплоть до 2005 года странички кэшировались очень активно. Значит, они очень активно посещались.

    Так вот, в то же самое время, у Wine был конкурент. Его называли WineX. Wine с ним серьёзно боролся: пони редъявили претензии к названию, из-за чего продукт стал называться Cedega. Сменили лицензию на Wine с MIT на LGPL, из-за чего разработчики Cedega больше не могли пользоваться исходным кодом Wine. Теперь Cedega приходилось самостоятельно реализовывать новые возможности Wine, да ещё не подглядывая в код! Стоит ли говорить, что это медленная смерть для проекта, ведь расхождение в возможностях двух разных кодовых баз год за годом увеличивалось.

    Я пользовался Cedega в 2007 году. А что, мне понравилось. Выбрал игру из выпадающего списка и установил. Только установочный диск гони, а дальше программа всё сделает сама. Не надо лезть на AppDB за инструкцией, что в wine regedit прописывать, что в конфиге игры изменить, какую DLL-библиотеку установить...

    В декабре 2007 года проект Wine опубликова статью о том, как установить DirectX 9.0c в Wine. В тот момент, реверс-инжиниринг Direct3D 9 был в начальной стадии, и поэтому надо было устанавливать нативные DLL-файлы из Windows.

    https://web.archive.org/web/20071124210140/http://wine-review.blogspot.com/200 Статья быстро разлетелась по всему интернету. Её запостили во всех блогах, связанных с Linux. Например тут: https://lna.org.ru/book/export/html/59 Только в начале ошибка: первые две библиотеки следует указать как builtin, а не как native, вот так это сейчас делает winetricks directx9

    [Software\\Wine\\DllOverrides]
    "*d3d8"="builtin"
    "*d3d9"="builtin"
    "*d3dim"="native"
    "*d3drm"="native"
    "*d3dx8"="native"
    "*d3dx9_24"="native"
    "*d3dx9_25"="native"
    "*d3dx9_26"="native"
    "*d3dx9_27"="native"
    "*d3dx9_28"="native"
    "*d3dx9_29"="native"
    "*d3dx9_30"="native"
    "*d3dx9_31"="native"
    "*d3dx9_32"="native"
    "*d3dx9_33"="native"
    "*d3dx9_34"="native"
    "*d3dx9_35"="native"
    "*d3dx9_36"="native"
    "*d3dx9_37"="native"
    "*d3dx9_38"="native"
    "*d3dx9_39"="native"
    "*d3dx9_40"="native"
    "*d3dx9_41"="native"
    "*d3dx9_42"="native"
    "*d3dx9_43"="native"
    "*d3dxof"="native"
    "*dciman32"="native"
    "*ddrawex"="native"
    "*devenum"="native"
    "*dinput"="builtin"
    "*dinput8"="builtin"
    "*dmband"="native"
    "*dmcompos"="native"
    "*dmime"="native"
    "*dmloader"="native"
    "*dmscript"="native"
    "*dmstyle"="native"
    "*dmsynth"="native"
    "*dmusic"="native"
    "*dmusic32"="native"
    "*dplay"="native"
    "*dplayx"="native"
    "*dpnaddr"="native"
    "*dpnet"="native"
    "*dpnhpast"="native"
    "*dpnlobby"="native"
    "*dsound"="builtin"
    "*dswave"="native"
    "*dxdiag.exe"="native"
    "*dxdiagn"="native"
    "*msdmo"="native"
    "*qcap"="native"
    "*quartz"="native"
    "*streamci"="native"

    В общем, статья имела большой резонанс: кто пользовался Linux на десктопе в 2007-2008 годах, обязательно её видел. Лично мне это починило кучу игр. Cedega закрылась через год

    А проект Wine с тех пор стагнировал. Когда конкуренции не стало, то приблизительно 5 лет серьёзных изменений в проекте не было. Это, конечно, моё ИМХО. Следствием этой стагнации стал проект Wine Staging, куда попали патчи, которые не брали в апстрим из-за их "нестабильности". При этом, я пользуюсь Wine Staging, делаю Apply All Patches, и всё стабильно работает...

    Так о чём это я? Ах да. Так вот. Руководство Wine иногда требует того, чтобы его презирали. Тогда как среди разработчиков есть талантливые программисты. Это же можно сказать про Nintendo: иногда поражаешься тому, что решили "верхи" (в негативном смысле), поражаешься тому, что реализовали "низы" (в положительном смысле). Как бы то ни было, я отношусь положительно к Wine. Я ежегодно покупаю подписку на Crossover. При этом я хорошо понимаю тех, кто разрабатывает под него, но при этом в конфликте с руководством проекта

     
     
  • 3.12, amonimous (?), 07:56, 07/04/2019 [^] [^^] [^^^] [ответить]  
  • +6 +/
    не застал времена, описанные вами, но меня напрягает тот факт, что разрабы вайна так долго не могли родить рабочую реализацию dx11. потом приходит автор dxvk и делает его на полном энтузиазме, причем через пол года он уже вполне мог запускать игры и с хорошей скоростью. потом Габен начал его спонсировать и на данный момент dxvk очень крут, а ему всего лишь 1.5 года и пилится в основном одним человеком.
     
     
  • 4.13, Zenitur (ok), 08:04, 07/04/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Причина того, что Direct3D 10 и 11 реализовывали так долго, в сложности написания кода. Раньше Direct3D реализовывали поверх OpenGL. Теперь - через Vulkan. В Вулкане есть компилятор шейдеров HLSL, который использовался в DirectX 8-11. Это значительно упрощает создание транслятора. Раньше делали по-хардкору, реверс-инжинирингом.

    Direct3D 9 тоже реализовывли долго. Хотя я говорил, что Direct3D 9 работал уже в 2007 году, это не работало без нативных библиотек из Windows. Direct3D 9 заработал без них только в 2011 году.

    Я уверен, что если бы у Direct3D 11 был красивый инсталлятор, то это работало бы и для него тоже. Лично я не знаю, как устанавливать нативные библиотеки Direct3D 11 в Wine

     
     
  • 5.15, Аноним (15), 10:07, 07/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    "В Вулкане есть компилятор шейдеров HLSL" - а я думал там нет шаидер-компилера и все надо предкомпилить с помошю glslangValidator.exe и подавать только бинарные шеидеры.
     
     
  • 6.17, Аноним (17), 12:00, 07/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    https://www.khronos.org/assets/uploads/developers/library/2018-gdc-webgl-and-g

    Судя по 4 странице, так и есть. Причём валидатор принимает как glsl, так и hlsl

     
  • 3.24, Аноним (24), 01:00, 08/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Я честно, читал, но не понял двух вещей: то есть, по-твоему, Codeweavers совершили ошибку, конкурируя с Cedega (меняя лицензию и проч), и поэтому их следует меньше уважать, а их непринятие DXVK как-то можно понять через эту историю с Cedega? И второе: кого там пони рявили?
     
  • 2.10, amonimous (?), 07:48, 07/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    не подскажите, а что там за ссора была?
     
     
  • 3.14, Zenitur (ok), 08:26, 07/04/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > не подскажите, а что там за ссора была?

    Коротко: https://www.opennet.ru/opennews/art.shtml?num=50209
    Подробно: https://www.opennet.ru/opennews/art.shtml?num=50025#dxvk

     
  • 2.25, Аноним (25), 01:13, 08/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    https://wiki.winehq.org/Developer_FAQ#Does_Wine_allow_C.2B.2B.2C_Objective_C.2
    Вряд ли они когда либо придут к единому знаменателю, и по довольно наркоманской причине.
     
     
  • 3.29, commiethebeastie (ok), 03:32, 08/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    У них K&R головного мозга?
     
  • 2.26, axredneck (?), 02:02, 08/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Вроде помирился, и они уже что-то там вместе кумекают. Вроде даже хотят DXVK вместе с Crossover поставлять в будущем, хотя слияния кодовой базы не ожидается.
     

  • 1.11, Ю.Т. (?), 07:56, 07/04/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Учтите, автор предупреждает:
    This release is known to introduce GPU hangs. Do not use.
     
     
  • 2.16, Аноним (16), 10:32, 07/04/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Забавно, что все авторы новостей о сабже упустили эту "незначительную" особенность.
     

  • 1.18, Аноним (18), 12:30, 07/04/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    а на Windos XP 64 можно запускать dx11 игры?
     
     
  • 2.27, axredneck (?), 02:04, 08/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Только если на нем можно запустить Vulkan, в чем я сомневаюсь.
    Можно, конечно, просто через Wine попытаться, но как минимум будут тормоза.
     
     
  • 3.31, Аноним (18), 10:06, 08/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    а через OpenGL???
    есть конечно WineD3D For Windows https://fdossena.com/?p=wined3d/index.frag
    но у меня ни одна игра под dx11 не запустилась, а козалось Победа была так близка...
     
  • 2.37, Anonimus (??), 18:03, 10/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Если запилить дрова с вулканом... Mesa в помощь.
     

  • 1.19, Аноним (19), 12:42, 07/04/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    По ссылке https://github.com/doitsujin/dxvk/releases/tag/v1.1 ошибка 404, походу отменён релиз
     
     
  • 2.22, commiethebeastie (ok), 20:49, 07/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Там баг с гаммой, скоро перевыложит.
     

  • 1.20, Alexey (??), 19:40, 07/04/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    На XP и  XP 64 можно, начиная с ATI HD5850. У Nvidia начиная с GTX 430 серии (если не ошибаюсь)
     
     
  • 2.23, Аноним (18), 23:14, 07/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    а как установить на ХР?
     
     
  • 3.30, Alexey (??), 10:05, 08/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Способ кривой, но имеется https://www.youtube.com/watch?v=LKDlt8HnFOs
     
     
  • 4.32, Alexey (??), 10:18, 08/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А если по уму , то https://noblefox.ru/directx-v-windows/
     

  • 1.21, Fedor (??), 20:20, 07/04/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Эээ... новость нуждается в правке: Автор отменил коммент с новым релизом...
     
     
  • 2.34, Ordu (ok), 12:34, 08/04/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Автор отменил коммент с новым релизом...

    s/коммент/коммит/ ?

     

  • 1.28, Skullnet (?), 02:06, 08/04/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Пишет что 404. Что?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру