Mesa áááąáŹááťááşáĄáá˝ááş áááşááŽá¸ááŹá¸áááˇáş Rust ááźááˇáş ááąá¸ááŹá¸ááŹá¸ááąáŹ OpenCL áĄááąáŹááşáĄáááşááąáŹáşáážáŻáĄáá áş (rusticl) áĄáá áşáááş OpenCL 3.0 áááşáážááşááťááşáážááˇáş áááŻááşáááşááŽáážáŻááᯠáĄáá˛ááźááşáááş Khronos ááŻááşáááşá¸á áŻááž áĄááŻáśá¸ááźáŻáááˇáş Kronos Conformance Test Suite (CTS) ááᯠáĄáąáŹááşááźááşá á˝áŹ ááťáąáŹáşááźááşáá˛áˇáááşá áĄáááŻááŤáááąáŹááťááşááᯠMesaá Nouveau ááááŻááşááŹáážááˇáş open source OpenCL stack áá˝ááşááŤáááşááąáŹ Red Hat ááž Karol Herbst ááž ááŽáá˝ááşáá˛áˇááźááşá¸ááźá áşáááşá áá°áááş rusticl áážá OpenCL 3.0 ááśáˇáááŻá¸áážáŻááááŹá¸áááşáĄáááĄáážááşááźáŻáááşáážááşáážááˇáşáááşáááşá Khronos ááᯠáááşáá˝ááşáá˛áˇáááşá
12th ááťááŻá¸áááş Intel GPU (Alder Lake) ááźááˇáş á ááşá¸áááşáážáŻááťáŹá¸ ááźáŽá¸ááŻáśá¸áá˛áˇáááşá Iris Mesa ááááŻááşááŹááᯠáĄááŻáśá¸ááźáŻá áĄááŻááşáĄáŹá¸ ááŻááşááąáŹááşáá˛áˇáááşá áááŻáˇááąáŹáş NIR shaders ááťáŹá¸á áĄááťááŻá¸áĄá áŹá¸ááá°ááŽááąáŹ áĄáááşáĄáááşáááŻááşá áŹá¸ááźáŻáážáŻ (IR) ááᯠáĄááŻáśá¸ááźáŻáááˇáş áááąáŹááťááşáááş áĄááźáŹá¸ááąáŹ Mesa ááááŻááşááŹááťáŹá¸áážááˇáşáááşá¸ ááŻááşááąáŹááşáááˇáşááŤáááşá Rusticl áážááˇáş Mesa áĄáá˝ááş ááąáŤááşá¸á ááşá¸áááş ááąáŹááşá¸áááŻááťááşááᯠáááşáážááá˝ááş ááźááşáááşááŻáśá¸áááşááąááźáŽá¸ Mesa áá˝ááş Rust ááŻááşááᯠáááˇáşáá˝ááşá¸ááźááşá¸áĄáá˝ááş ááŻáśá¸ááźááşááťááşáááťáááąá¸ááŤá Rusticl ááᯠáááşá Mesa ááźááˇáşááźá°á¸áážáŻáá˝ááş ááąáŤááşá¸á ááşá¸ááźááşá¸áááźáŻáááťááşá¸á ááŽá¸ááźáŹá¸ááŹááá˝á˛áá áşááŻááᯠáááşááąáŹááşáááşáĄáá˝ááş áĄááŻáśá¸ááźáŻáááŻááşááŤáááşá ááźáŻá áŻááąáŹáĄááŤá áĄáąáŹááşá፠áááşááąáŹááşáážáŻááąáŹááşááťáŹá¸ááᯠáááşáážááşáááˇáşáááş- -Dgallium-rusticl=true -Dopencl-spirv=true -Dshader-cache=true -Dllvm=trueá
Rusticl áááş Mesa á áážáááźáŽá¸ááŹá¸ OpenCL áĄáážáąáˇáááşá á˝ááşá¸á Clover áážááˇáş Mesa á Gallium interface ááᯠáĄááŻáśá¸ááźáŻá ááŽáá˝ááşáááşááŽá¸ááŹá¸ááźááşá¸ ááźá áşáááşá Clover áááş ááźáŹáážááşá á˝áŹ á á˝ááˇáşáá áşááśáá˛áˇáááźáŽá¸ rusticl ááᯠáááşá¸á áĄááŹáááşáĄá áŹá¸áááŻá¸áážáŻáĄááźá áş ááąááŹáá°ááŹá¸áááşá OpenCL 3.0 áááŻááşáááşááŽáážáŻ ááážáá áąáááˇáşáĄááźááşá Rusticl áááş ááŻááşááŻáśááŻááşááąáŹááşááźááşá¸áĄáá˝ááş OpenCL áááŻá¸ááťá˛áˇáážáŻááťáŹá¸ááᯠááśáˇáááŻá¸ááąá¸áááˇáşáĄáá˝ááş áááşá¸áááş Clover áážááˇáş áá˝á˛ááźáŹá¸ááąáŹáşáááşá¸ FP16 ááąáŹáşáááşááᯠááśáˇáááŻá¸áááąá¸ááąá¸ááŤá
Rusticl áááş Mesa áážááˇáş OpenCL áĄáá˝ááş bindings ááťáŹá¸ááŻááşááŻááşáááş rust-bindgen áááŻáĄááŻáśá¸ááźáŻááźáŽá¸ Rust function ááťáŹá¸ááᯠC code áážááąáŤáşáááŻáááŻááşááźáŽá¸ versa áážáááşá¸ááąáŤáşáááŻáááŻááşááŤáááşá Mesa project áá˝ááş Rust language áááŻáĄááŻáśá¸ááźáŻááźááşá¸áááźá
áşáááŻááşááźáąááᯠáááá ááŻáážá
áşáážá
á áá˝áąá¸áá˝áąá¸áá˛áˇááźáááşá Rust ááᯠsupport ááŻááşááźááşá¸ááĄáŹá¸ááŹááťááşááťáŹá¸áá˛áá˝ááş áĄááźá
áşááťáŹá¸ááąáŹ memory ááźáżááŹááťáŹá¸áááŻáááşáážáŹá¸ááźááşá¸ááźáąáŹááˇáş driver security áážááˇáş quality áááŻá¸ááŹááźááşá¸áĄááźááş Kazan (Vulkan á Rust implementation áá
áşááŻááźá
áşáááş) áá˛áˇáááŻáˇááąáŹ third-party development ááťáŹá¸ááᯠMesa áá˝ááşáááˇáşáá˝ááşá¸áááŻááşá
á˝ááşá¸áááŻáˇááŤáááşáááşá áĄáŹá¸áááşá¸ááťááşááťáŹá¸áá˝ááş build system complexity áááŻá¸ááŹááźááşá¸á cargo packaging system áááŻáážáŽáááŻáááşáá˝ááˇáşááŻááşááźááşá¸á build environment áááŻáĄááşááťááşááťáŹá¸áááŻá¸ááťá˛áˇááźááşá¸áážááˇáş key desktop components ááťáŹá¸áááşááąáŹááşáááşáááŻáĄááşááąáŹ build dependencies ááťáŹá¸áá˝ááş Rust compiler áááŻáááˇáşáá˝ááşá¸áááşáááŻáĄááşááťááşáááŻáˇááŤáááşáááşá Linux.
source: opennet.ru
