21.2.0๊ฐ์ ๊ฐ์ ๊ฐ๋ฐ ๋์ OpenGL ๋ฐ Vulkan API์ ๋ฌด๋ฃ ๊ตฌํ์ธ Mesa 21.2.0์ด ์ถ์๋์์ต๋๋ค. Mesa 21.2.1 ๋ธ๋์น์ ์ฒซ ๋ฒ์งธ ๋ฆด๋ฆฌ์ค๋ ์คํ์ ์ํ์ ๋๋ค. ์ฝ๋๊ฐ ์ต์ข ์์ ํ๋๋ฉด ์์ ์ ์ธ ๋ฒ์ XNUMX์ด ๋ฆด๋ฆฌ์ค๋ฉ๋๋ค.
Mesa 21.2์๋ 4.6, iris(Intel), radeonsi(AMD), zink ๋ฐ llvmpipe ๋๋ผ์ด๋ฒ์ฉ OpenGL 965์ ๋ํ ์ ์ฒด ์ง์์ด ํฌํจ๋์ด ์์ต๋๋ค. OpenGL 4.5 ์ง์์ AMD(r600) ๋ฐ NVIDIA(nvc0) GPU์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ OpenGL 4.3์ virgl(QEMU/KVM์ฉ Virgil3D ๊ฐ์ GPU)์ ๋ํด ์ง์๋ฉ๋๋ค. Vulkan 1.2 ์ง์์ Intel ๋ฐ AMD ์นด๋๋ ๋ฌผ๋ก ์๋ฎฌ๋ ์ดํฐ ๋ชจ๋(vn)์์๋ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ Vulkan 1.1 ์ง์์ Qualcomm GPU ๋ฐ lavapipe ์ํํธ์จ์ด ๋์คํฐ๋ผ์ด์ ์์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ Vulkan 1.0์ Broadcom VideoCore VI GPU(Raspberry Pi 4)์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. .
์ฃผ์ ํ์ :
- Asahi OpenGL ๋๋ผ์ด๋ฒ๋ Apple M1 ์นฉ์ ํฌํจ๋ GPU์ ๋ํ ์ด๊ธฐ ์ง์์ ํฌํจ๋์ด ์์ต๋๋ค. ๋๋ผ์ด๋ฒ๋ Gallium ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๊ณ OpenGL 2.1 ๋ฐ OpenGL ES 2.0์ ๊ธฐ๋ฅ ๋๋ถ๋ถ์ ์ง์ํ์ง๋ง ์์ง ๋๋ถ๋ถ์ ๊ฒ์์ ์คํํ๋ ๋ฐ ์ ํฉํ์ง ์์ต๋๋ค. ๋๋ผ์ด๋ฒ ์ฝ๋๋ Gallium ์ฐธ์กฐ noop ๋๋ผ์ด๋ฒ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, ์ผ๋ถ ์ฝ๋๋ ARM Mali GPU์ฉ์ผ๋ก ๊ฐ๋ฐ ์ค์ธ Panfrost ๋๋ผ์ด๋ฒ์์ ์ด์๋์์ต๋๋ค.
- Crocus OpenGL ๋๋ผ์ด๋ฒ์๋ Iris ๋๋ผ์ด๋ฒ์์ ์ง์ํ์ง ์๋ ์ด์ Intel GPU(Gen4-Gen7 ๋ง์ดํฌ๋ก์ํคํ ์ฒ ๊ธฐ๋ฐ)์ ๋ํ ์ง์์ด ํฌํจ๋์ด ์์ต๋๋ค. i965 ๋๋ผ์ด๋ฒ์ ๋ฌ๋ฆฌ ์ ๋๋ผ์ด๋ฒ๋ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์์ ์ Linux ์ปค๋์ DRI ๋๋ผ์ด๋ฒ์ ์์์์ฑํ๊ณ ์ถ๋ ฅ ๊ฐ์ฒด์ ์ฌ์ฌ์ฉ ์บ์๋ฅผ ์ง์ํ๋ ๊ธฐ์ฑ ์ํ ์ถ์ ๊ธฐ๋ฅผ ์ ๊ณตํ๋ Gallium3D ์ํคํ ์ฒ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค.
- PanVk ๋๋ผ์ด๋ฒ๊ฐ ํฌํจ๋์ด ARM Mali Midgard ๋ฐ Bifrost GPU์ฉ Vulkan ๊ทธ๋ํฝ API๋ฅผ ์ง์ํฉ๋๋ค. PanVk๋ Collabora ์ง์์ด ๊ฐ๋ฐ ์ค์ด๋ฉฐ OpenGL์ ์ง์ํ๋ Panfrost ํ๋ก์ ํธ ๊ฐ๋ฐ์ ์ฐ์์ผ๋ก ์๋ฆฌ์ก๊ณ ์์ต๋๋ค.
- Midgard GPU(Mali T760 ์ด์) ๋ฐ Bifrost GPU(Mali G31, G52, G76)์ฉ Panfrost ๋๋ผ์ด๋ฒ๋ OpenGL ES 3.1์ ์ง์ํฉ๋๋ค. ํฅํ ๊ณํ์๋ Bifrost ์นฉ์ ์ฑ๋ฅ์ ํฅ์์ํค๋ ์์ ๊ณผ Valhall ์ํคํ ์ฒ(Mali G77 ์ด์) ๊ธฐ๋ฐ GPU ์ง์ ๊ตฌํ์ด ํฌํจ๋ฉ๋๋ค.
- 32๋นํธ x86 ๋น๋๋ ์ํ ๊ณ์ฐ์ x87 ์ง์นจ ๋์ sse2 ์ง์นจ์ ์ฌ์ฉํฉ๋๋ค.
- NVIDIA GT50x GPU(GeForce GT 21ร2)์ฉ Nouveau nv0 ๋๋ผ์ด๋ฒ๋ OpenGL ES 3.1์ ์ง์ํฉ๋๋ค.
- Qualcomm Adreno GPU์ฉ์ผ๋ก ๊ฐ๋ฐ๋ Vulkan ๋๋ผ์ด๋ฒ TURNIP ๋ฐ OpenGL ๋๋ผ์ด๋ฒ Freedreno๋ Adreno a6xx gen4 GPU(a660, a635)๋ฅผ ์ด๊ธฐ ์ง์ํฉ๋๋ค.
- RADV(AMD) Vulkan ๋๋ผ์ด๋ฒ์๋ NGG(Next-Gen Geometry) ์ ฐ์ด๋ ์์ง์ ์ฌ์ฉํ๋ ๊ธฐ๋ณธ ์ปฌ๋ง์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. MSVC ์ปดํ์ผ๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ Windows ํ๋ซํผ์์ RADV ๋๋ผ์ด๋ฒ๋ฅผ ๊ตฌ์ถํ๋ ๊ธฐ๋ฅ์ด ๊ตฌํ๋์์ต๋๋ค.
- ๊ณง ์ถ์๋ Intel Xe-HPG(DG2) ๊ทธ๋ํฝ ์นด๋์ ๋ํ ์ง์์ ์ ๊ณตํ๊ธฐ ์ํด ANV Vulkan ๋๋ผ์ด๋ฒ(Intel) ๋ฐ Iris OpenGL ๋๋ผ์ด๋ฒ์์ ์ค๋น ์์ ์ด ์ํ๋์์ต๋๋ค. ์ฌ๊ธฐ์๋ ๊ด์ ์ถ์ ๊ณผ ๊ด๋ จ๋ ์ด๊ธฐ ๊ธฐ๋ฅ ๋ฐ ๊ด์ ์ถ์ ์ ฐ์ด๋ ์ง์์ด ํฌํจ๋ฉ๋๋ค.
- Vulkan API(llvmpipe์ ์ ์ฌํ์ง๋ง Vulkan์ ๊ฒฝ์ฐ Vulkan API ํธ์ถ์ Gallium API๋ก ๋ณํ)์ฉ ์ํํธ์จ์ด ๋์คํฐ๋ผ์ด์ ๋ฅผ ๊ตฌํํ๋ lavapipe ๋๋ผ์ด๋ฒ๋ "wideLines" ๋ชจ๋๋ฅผ ์ง์ํฉ๋๋ค(๋๋น๊ฐ 1.0์ ์ด๊ณผํ๋ ์ ์ ๋ํ ์ง์ ์ ๊ณต).
- ๋์ฒด GBM(์ผ๋ฐ ๋ฒํผ ๊ด๋ฆฌ์) ๋ฐฑ์๋์ ๋์ ๊ฒ์ ๋ฐ ๋ก๋ฉ์ ๋ํ ์ง์์ด ๊ตฌํ๋์์ต๋๋ค. ์ด๋ฌํ ๋ณ๊ฒฝ์ NVIDIA ๋๋ผ์ด๋ฒ๊ฐ ์๋ ์์คํ ์์ Wayland ์ง์์ ๊ฐ์ ํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค.
- Zink ๋๋ผ์ด๋ฒ(์์คํ ์ Vulkan API๋ง ์ง์ํ๋๋ก ์ ํ๋ ๋๋ผ์ด๋ฒ๊ฐ ์๋ ๊ฒฝ์ฐ ํ๋์จ์ด ๊ฐ์ OpenGL์ ์ป์ ์ ์๋ Vulkan ์์ OpenGL API ๊ตฌํ)๋ OpenGL ํ์ฅ GL_ARB_sample_locations, GL_ARB_sparse_buffer, GL_ARB_shader_group_vote, GL_ARB_texture_filter_minmax ๋ฐ GL_ARB_shader_clock์ ์ง์ํฉ๋๋ค. DRM ํ์ ์์ ์๋ฅผ ์ถ๊ฐํ์ต๋๋ค(Direct Rendering Manager, VK_EXT_image_drm_format_modifier ํ์ฅ ํ์ฑํ).
- Vulkan ๋๋ผ์ด๋ฒ RADV(AMD), ANV(Intel) ๋ฐ lavapipe์ ํ์ฅ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- VK_EXT_provoking_vertex(RADV);
- VK_EXT_extended_dynamic_state2(RADV);
- VK_EXT_global_priority_query(RADV);
- VK_EXT_physical_device_drm(RADV);
- VK_KHR_shader_subgroup_uniform_control_flow(RADV, ANV);
- VK_EXT_color_write_enable(RADV);
- VK_EXT_acquire_drm_display(RADV, ANV);
- VK_EXT_vertex_input_dynamic_state(์ฉ์ํ์ดํ);
- VK_EXT_line_rasterization(์ฉ์ํ์ดํ);
- VK_EXT_multi_draw(ANV, ์ฉ์ํ์ดํ, RADV);
- VK_KHR_separate_length_stencil_layouts(์ฉ์ํ์ดํ);
- VK_EXT_separate_stencil_usage(์ฉ์ํ์ดํ);
- VK_EXT_extended_dynamic_state2(์ฉ์ํ์ดํ).
์ถ์ฒ : opennet.ru