OpenGL ๋ฐ Vulkan API์ ๋ฌด๋ฃ ๊ตฌํ์ธ Mesa 22.3.0์ด ์ถ์๋์์ต๋๋ค. Mesa 22.3.0 ๋ธ๋์น์ ์ฒซ ๋ฒ์งธ ๋ฆด๋ฆฌ์ค๋ ์คํ์ ์ํ์ ๋๋ค. ์ฝ๋๊ฐ ์ต์ข ์์ ํ๋๋ฉด ์์ ์ ์ธ ๋ฒ์ 22.3.1์ด ๋ฆด๋ฆฌ์ค๋ฉ๋๋ค.
Mesa 22.3์ Intel GPU์ฉ anv, AMD GPU์ฉ radv, Qualcomm GPU์ฉ tu ๋ฐ ์๋ฎฌ๋ ์ดํฐ ๋ชจ๋(vn)์์ Vulkan 1.3 ๊ทธ๋ํฝ API์ ๋ํ ์ง์์ ์ ๊ณตํฉ๋๋ค. Vulkan 1.1 ์ง์์ lavapipe(lvp) ์ํํธ์จ์ด ๋์คํฐ๋ผ์ด์ ์์ ๊ตฌํ๋๊ณ Vulkan 1.0์ v3dv ๋๋ผ์ด๋ฒ(Raspberry Pi 4์ Broadcom VideoCore VI GPU)์์ ๊ตฌํ๋ฉ๋๋ค.
Mesa๋ ๋ํ 4.6, iris(Intel), radeonsi(AMD), zink ๋ฐ llvmpipe ๋๋ผ์ด๋ฒ์ ๋ํ ์์ ํ OpenGL 965 ์ง์์ ์ ๊ณตํฉ๋๋ค. OpenGL 4.5 ์ง์์ AMD(r600), NVIDIA(nvc0) ๋ฐ Qualcomm Adreno(freedreno) GPU, virgl(QEMU/KVM์ฉ virgil4.3D ๊ฐ์ GPU)์ฉ OpenGL 3, d4.2d3 ๋๋ผ์ด๋ฒ(OpenGL ๊ตฌ์ฑ ๋ ์ด์ด)์ฉ OpenGL 12์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. DirectX 12 ์์์ ์๋ํฉ๋๋ค).
์ฃผ์ ํ์ :
- Qualcomm Adreno GPU์ฉ freedreno ๋๋ผ์ด๋ฒ๋ OpenGL 4.5 ๊ทธ๋ํฝ API์ ๋ํ ์ง์์ ์ ๊ณตํ๊ณ ์๋ฎฌ๋ ์ดํฐ ๋๋ผ์ด๋ฒ(vn)๋ Vulkan 1.3 API๋ฅผ ์ง์ํฉ๋๋ค.
- Panfrost ๋๋ผ์ด๋ฒ๋ ๋์คํฌ์ ์ ฐ์ด๋๋ฅผ ์บ์ํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ณ Mali T620 GPU์ ๋ํ ์ง์์ ์ถ๊ฐํฉ๋๋ค. ๋๋ผ์ด๋ฒ๋ OpenGL 3.1 ์ฌ์ ๋ฐ OpenGL ES 3.1๊ณผ ํธํ๋ฉ๋๋ค.
- RADV(AMD) Vulkan ๋๋ผ์ด๋ฒ์ GFX11/RDNA3 GPU(Radeon RX 7000 ์๋ฆฌ์ฆ)์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ๊ด์ ์ถ์ ์ฝ๋๊ฐ ์ต์ ํ๋์์ต๋๋ค. R8G8B8, B8G8R8 ๋ฐ R16G16B16 ํฝ์ ํ์๊ณผ 64๋นํธ ๊ผญ์ง์ ๋ฒํผ ํ์์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. VK_EXT_extended_dynamic_state2 ํ์ฅ์ ๋ํ ์ง์์ ๊ฒฐ์ ํ๋ ExtendedDynamicState2PatchControlPoints ํ๋๊ทธ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. Radeon Raytracing ๋ถ์๊ธฐ๊ฐ ํตํฉ๋์์ต๋๋ค.
- ํจํค์ง์๋ ํฌ๋ก์ค ํ๋ซํผ ๋ณ๋ ฌ ์ปดํจํ ์ ๊ตฌ์ฑํ๊ธฐ ์ํ C ์ธ์ด์ ํ์ฅ๊ณผ API๋ฅผ ์ ์ํ๋ OpenCL 3.0 ์ฌ์์ด ๊ตฌํ๋ Rusticle ๋๋ผ์ด๋ฒ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ๋๋ผ์ด๋ฒ๋ Rust๋ก ์์ฑ๋์์ผ๋ฉฐ Mesa์์ ์ ๊ณต๋๋ Gallium ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐ๋์์ผ๋ฉฐ Mesa์ ์๋ Clover OpenCL ํ๋ฐํธ์๋์ ์ ์ฌํ ์ญํ ์ ํฉ๋๋ค. Clover๋ ์ค๋ซ๋์ ๋ฒ๋ ค์ก๊ณ Rustel์ ํฅํ ๋์ฒดํ์ผ๋ก ์๋ฆฌ ์ก์์ต๋๋ค. Rust ๋ฐ Rusticl์ ๋ํ ์ง์์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋นํ์ฑํ๋์ด ์์ผ๋ฉฐ ๋ช ์์ ์ต์ "-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021"์ ์ฌ์ฉํ์ฌ ๋น๋ํด์ผ ํฉ๋๋ค. ๋น๋ํ ๋ ์ถ๊ฐ ์ข ์์ฑ์ผ๋ก Rustc ์ปดํ์ผ๋ฌ, Bindgen ๋ฐ์ธ๋ฉ ์์ฑ๊ธฐ, LLVM, SPIRV-Tools ๋ฐ SPIRV-LLVM-Translator๊ฐ ํ์ํฉ๋๋ค.
- RadeonSI ๋๋ผ์ด๋ฒ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก OpenGL์ ํตํ ๋ฉํฐ์ค๋ ๋ ๋ ๋๋ง ์ง์์ด ํฌํจ๋์ด ์์ต๋๋ค.
- ๋ฐ์ดํฐ๋ฅผ ๋จ์ผ ํ์ผ์ ์ ์ฅํ๋ ์๋ก์ด ์ ํ์ ์ ฐ์ด๋ ์บ์์ธ Mesa-DB๋ฅผ ๋์ ํ์ต๋๋ค.
- OpenGL ํ์ฅ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- llvmpipe์ ๋ํ GL_ARB_shader_clock.
- zink์ ๊ฒฝ์ฐ GL_KHR_blend_equation_advanced_coherent.
- llvmpipe์ ๋ํ GL_NV_shader_atomic_float.
- Vulkan ํ์ฅ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- ์ฉ์ํ์ดํ์ ๋ํ VK_KHR_shader_clock.
- RADV, ์ฉ์ํ์ดํ์ฉ VK_EXT_attachment_feedback_loop_layout.
- RADV์ ๋ํ VK_KHR_global_priority.
- RADV์ ๊ฒฝ์ฐ VK_EXT_load_store_op_none.
- RADV์ ๋ํ VK_EXT_mutable_descriptor_type.
- LVP์ ๋ํ VK_EXT_shader_atomic_float.
- LVP์ ๊ฒฝ์ฐ VK_EXT_shader_atomic_float2
- v3dv์ ๋ํ VK_EXT_image_robustness.
- ์ฉ์ํ์ดํ, RADV ๋ฐ ANV์ ๋ํ VK_EXT_extended_dynamic_state3.
- RADV์ฉ VK_EXT_extended_dynamic_state2.
- v3dv์ ๋ํ VK_EXT_pipeline_robustness.
- ANV์ฉ VK_EXT_mesh_shader.
์ถ์ฒ : opennet.ru