Кампанія Collabora
Прапанаваны драйвер дазваляе выкарыстоўваць Mesa на прыладах, якія першапачаткова не падтрымліваюць OpenCL і OpenGL, а таксама ў якасці стартавай пазіцыі для партавання OpenGL/OpenCL-прыкладанняў для працы па-над D3D12. Для вытворцаў GPU падсістэма дае магчымасць падаць падтрымку OpenCL і OpenGL, пры наяўнасці драйвераў толькі з падтрымкай D3D12.
З бліжэйшых планаў адзначаецца дасягненне поўнага праходжання тэстаў на сумяшчальнасць OpenCL 1.2 і OpenGL 3.3, праверка сумяшчальнасці з праграмамі і ўключэнне напрацовак у асноўны склад Mesa. Распрацоўка вядзецца сумесна з інжынерамі Microsoft, якія развіваюць
Рэалізацыя ўключае Gallium-драйвер, кампілятар OpenCL, OpenCL runtime і кампілятар шэйдараў NIR-to-DXIL, пераўтваральны ужывальнае ў Mesa прамежкавае ўяўленне шэйдараў NIR у бінарны фармат DXIL (DirectX Intermediate Language), які падтрымліваецца ў DirectX 12 і заснаваны на біт.
Зыходныя тэксты з пашырэннямі OpenCL кампілююцца пры дапамозе clang у прамежкавы псеўдакод LLVM (LLVM IR), які затым пераўтворыцца ў прамежкавае ўяўленне OpenCL-ядзер у фармаце SPIR-V. Ядры ў паданні SPIR-V перадаюцца ў Mesa, транслююцца ў фармат NIR, аптымізуюцца і перадаюцца ў NIR-to-DXIL для генерацыі вылічальных шэйдараў у фармаце DXIL, прыдатным для выканання на GPU c выкарыстаннем runtime на базе DirectX 12.
Замест Clover, ужывальнай у Mesa рэалізацыі OpenCL, прапанаваны новы OpenCL runtime, які дапушчае больш прамых пераўтварэнняў у API DirectX 12.
OpenCL і OpenGL драйверы падрыхтаваны з выкарыстаннем які прадстаўляецца ў Mesa інтэрфейсу Gallium, які дазваляе пры стварэнні драйвераў не паглыбляцца ў спецыфічныя для OpenGL дэталі і трансляваць выклікі OpenGL у сутнасці, бліжэйшыя да графічных прымітываў, якімі аперуюць сучасныя GPU. Gallium-драйвер, прымае каманды OpenGL і пры прыцягненні транслятара NIR-to-DXIL
фармуе буферы каманд, якія выконваюцца на GPU, выкарыстоўваючы драйвер D3D12.
Крыніца: opennet.ru