Майкрософт работят с екипа на Mesa за преминаване от OpenGL/OpenCL към Vulkan.
Екипът от Collabora, който разработва Linux драйвърния пакет за видео карти с отворен код Mesa съобщава, че от няколко месеца работят с DirectX специалисти от Майкрософт по създаването на имплементация за преминаване от OpenGL и OpenCL към кросплатформения приложно-програмен интерфейс за графика и изчисления с отворен код Vulkan.
Vulkan е еквивалент на DirectX 12, но е с отворен код и вече се е доказал като по-добро решение в много аспекти. Целта на новата имплементация е предоставянето на OpenCL 1.2 и OpenGL 3.3 поддръжка за всички устройства, съвместими с DirectX 12.
Основната идея е да се предостави слой за съвместимост, посредством който всяка една D3D12 съвместима система ще получи OpenGL 3.3 и OpenCL 1.2 поддръжка, както това се случва при DXVK с преминаване от DirectX 11 към Vulkan.
Начинанието се обляга на вече съществуващия код в Mesa, LLVM и SPIRV-LLVM, където има много стабилна OpenGL имплементация, която се използва за база на много OpenGL драйвъри от различни производители на видео карти.
И докато разработчиците на Mesa смятат, че въпреки че основната помощ отива за Майкрософт новото начинание е добро за общността на отворения код и в частност Mesa, то скритите намерения на Майкрософт очевидно са добавяне на безпроблемна OpenGL поддръжка за поддържаните версии на Windows и евентуалното изоставяне на OpenGL в недалечно бъдеще.
Ако от Майкрософт имаха добри намерения към Linux и отворената общност, то по-логичният ход би бил да предложат помощ при преминаването на OpenGL към Vulkan или да започнат да поддържат Vulkan вместо DirectX 12.
Компанията от Редмънд обаче забелязва, че Vulkan набира скорост и по някое време, благодарение на подобни слоеве за съвместимост като DXVK и VKD3D, разработчиците на видео карти може да започнат да пускат драйвъри и видео карти без OpenGL поддръжка, което не е добре за Windows потребителите.
И понеже от компанията не искат да бъдат принуждавани да използват OpenGL към Vulkan слоеве за съвместимост, защото Vulkan не е техен продукт, то те се впускат в разработването на OpenGL към DirectX 12 слой, за да могат да продължат да поддържат DirectX конкурентен на пазара, където освен навиците на разработчиците няма нито една друга причина вече да се използва DirectX вместо Vulkan.
В същото време обаче новото начинание ще позволи на стари OpenGL приложения и игри да използват новия слой за преминаване от OpenGL и OpenCL към DirectX 12, а след това към Vulkan, което от своя страна ще позволи на повече OpenGL приложения да вървят на машини, които имат само DirectX 12 поддръжка, а това означава и повече свобода за разработчиците, които ще могат да избират OpenGL пред DirectX.
Също така новата имплементация за преминаване от OpenGL и OpenCL към Vulkan ще даде възможност на повече разработчици да разработват D3D12 продукти, използвайки Linux и Mesa, което от своя страна означава, че още повече разработчици ще използват Linux, ако искат.
Засега специалистите от проекта не предвиждат поддръжката OpenCL 2.x или OpenGL 4.x, тъй като има достатъчно проблеми да се направи така, че OpenGL 3.3 и OpenCL 1.2 да работят заедно в съответствие. Веднъж щом кодът бъде в достатъчно добра форма, разработчиците ще пуснат съответните части от кода в Mesa.
Повече информация за работата на Collabora и Майкрософт по преминаването от OpenGL и OpenCL към Vulkan можете да научите от официалния блог пост.