Collabora як иловаро барои иҷро кардани OpenCL ва OpenGL дар болои DirectX таҳия мекунад

Ширкати муштарак муаррифӣ кард Драйвери нави Gallium барои Mesa, ки қабатеро барои ташкили кори API-ҳои OpenCL 1.2 ва OpenGL 3.3 дар болои драйверҳое, ки DirectX 12 (D3D12)-ро дастгирӣ мекунанд, амалӣ мекунад. Код нашр кардааст таҳти иҷозатномаи MIT.

Драйвери пешниҳодшуда имкон медиҳад, ки Mesa дар дастгоҳҳое, ки OpenCL ва OpenGL-ро дастгирӣ намекунанд, инчунин нуқтаи ибтидоӣ барои интиқоли барномаҳои OpenGL/OpenCL барои кор дар болои D3D12 истифода шавад. Барои истеҳсолкунандагони GPU, зерсистема дастгирии OpenCL ва OpenGL-ро вақте имкон медиҳад, ки драйверҳо танҳо D3D12-ро дастгирӣ кунанд.

Нақшаҳои фаврӣ иборатанд аз анҷом додани санҷиши пурраи мутобиқати OpenCL 1.2 ва OpenGL 3.3, санҷиши мутобиқати барномаҳо ва ворид кардани ин таҳаввулот ба платформаи аслии Mesa. Таҳия бо ҳамкорӣ бо муҳандисони Microsoft, ки ...-ро таҳия мекунанд, амалӣ карда мешавад. кушода асбобхо D3D11On12 барои табдил додани бозиҳо аз D3D11 ба D3D12 ва китобхона Қабати тарҷумаи D3D12, ки дар болои D3D12 примитивҳои графикии маъмулиро амалӣ мекунад.

Амалисозӣ драйвери Галлиум, компилятори OpenCL, вақти иҷроиши OpenCL ва компилятори шейдери NIR-to-DXIL-ро дар бар мегирад, ки намояндагии мобайнии шейдерҳои NIR-ро, ки дар Mesa истифода мешаванд, ба формати дуӣ DXIL (DirectX Intermediate Language), ки дар DirectX 12 дастгирӣ мешавад ва бар асоси рамзи битии LLVM 3.7 (...) табдил медиҳад.Компилятори шейдерҳои DirectX аз Microsoft асосан як шохаи васеъшудаи LLVM 3.7 мебошад). Компилятори OpenCL бар асоси кори лоиҳаи LLVM ва абзорҳо сохта шудааст. SPIRV-LLVM.

Коди сарчашмаи васеъкунии OpenCL бо истифода аз clang ба псевдокоди миёнаравии LLVM (LLVM IR) тартиб дода мешавад, ки сипас ба намояндагии миёнаравии ядроҳои OpenCL дар формати SPIR-V табдил дода мешавад. Ядроҳои SPIR-V ба Mesa интиқол дода мешаванд, ба формати NIR тарҷума карда мешаванд, оптимизатсия карда мешаванд ва ба NIR-to-DXIL интиқол дода мешаванд, то шейдерҳои ҳисоббарорро дар формати DXIL тавлид кунанд, ки барои иҷрои GPU бо истифода аз вақти иҷро дар асоси DirectX 12 мувофиқанд.
Татбиқи OpenCL аз ҷониби Mesa, Clover, бо вақти нави иҷроиши OpenCL иваз карда шуд, ки имкон медиҳад, ки харитасозии мустақимтар ба DirectX 12 API имконпазир гардад.

 Collabora як иловаро барои иҷро кардани OpenCL ва OpenGL дар болои DirectX таҳия мекунад

Драйверҳои OpenCL ва OpenGL бо истифода аз интерфейси Gallium, ки аз ҷониби Mesa пешниҳод шудааст, навишта мешаванд, ки ба таҳияи драйвер имкон медиҳад, ки тафсилоти хоси OpenGL-ро сарфи назар кунад ва даъватҳои OpenGL-ро ба объектҳои наздиктар ба ибтидоҳои графикӣ, ки аз ҷониби GPU-ҳои муосир истифода мешаванд, тарҷума кунад. Драйвери Gallium фармонҳои OpenGL-ро ҳатто ҳангоми истифодаи тарҷумони NIR-to-DXIL қабул мекунад.
Буферҳои фармонро тавлид мекунад, ки дар GPU бо истифода аз драйвери D3D12 иҷро карда мешаванд.

Манбаъ: opennet.ru