Pull to refresh

Comments 8

А кто-нибудь понял для кого оно все нужно? Как мне кажется — идея юзать в нативных linux приложениях directX напрямую плохая, потому что это не кроссплатформенно.
То есть все равно получается, что от него толку мало, куда больше толка было бы от оберток для работы Vulkan, OpenGL, OpenCL.

Там OpenGL/OpenCL -> libd3d12 (DirectX, собранный под Linux) -> /dev/dx (витруальной устройство-костыль) -> виртуальная шина VM -> ядро DirectX от производителя видеокарты на реальной машине -> драйвер видеокарты на реальной машине.
Т.е. конечный пользователь, вроде бы, работает через OpenGL/OpenCL, но дальше всё это отображается через цепочку адских костылей.
Есть такое мнение, что конечная цель MS в том, чтобы под таким соусом создать и отладить инфраструктуру DirectX под Linux. Производители видеокарт уже прогнулись. Теперь нужно обкатать костыли для отображения DirectX в OpenGL (DirextX->OpenGL более-менее, уже обкатан под Windows) и параллельно заставить Linux-сообщество работать с directX под Linux напрямую (т.к. это будет быстрее и без костылей). Начать можно с DirectML, который хрен портируешь эффективно в OpenCL. А потом магия — всё то же самое выпускается под реальный Linux, и MS получает две проприетарных технологии (DirectX + DirectML) под Linux. Да ещё и сразу в модном сегменте машинного обучения.
Не мытьём, так катанием.
Можно же было сделать linux opengl -> windows opengl? В windows же есть нативный opengl? Или я отстал от жизни?

Народ поговаривает, что OpenGL, как и OpenCL — стандарты, которые не ожидают активного развития в будущем, только плавное и медленное затухание. Есть всякие Vulkan и Metal, и вроде как за ними ближайшее будущее. А для DirectX сами майки в ближайшие десятки лет буду его активно развивать и продавливать.

В качестве альтернативы на будущее можно рассматривать WebGPU.


При этом рекомендую wgpu-rs ибо только эта реализация может быть полезна для чего-то кроме демок прямо сейчас.

А как у него с GPU вычислениями? Можно ли там что-то на замену OpenCL изобразить?

Один к одному нельзя. Но можно портировать через compute-шейдеры.


В качестве языка шейдеров предполагается WGSL. Правда на текущий момент не реализовано (скорее всего будет к 0.6.0). Пока только SPIR-V. Следить за реализацией там: https://github.com/gfx-rs/naga.


Работать это всё как минимум поверх Vulkan/DX12/Metal. Как максимум ещё и под DX11/OpenGL 4/OpenGL ES 3.0. У остальных вендоров (т.е. кроме реализации Mozilla) реализации менее кроссплатформенные.

Sign up to leave a comment.