OpenGL ๋ฐ Vulkan API์ ๋ฌด๋ฃ ๊ตฌํ์ธ Mesa 21.0.0์ด ์ถ์๋์์ต๋๋ค. Mesa 21.0.0 ๋ธ๋์น์ ์ฒซ ๋ฒ์งธ ๋ฆด๋ฆฌ์ค๋ ์คํ์ ์ํ์ ๋๋ค. ์ฝ๋๊ฐ ์ต์ข ์์ ํ๋๋ฉด ์์ ์ ์ธ ๋ฒ์ 21.0.1์ด ๋ฆด๋ฆฌ์ค๋ฉ๋๋ค. Mesa 21.0์ 4.6, iris(Intel), radeonsi(AMD), zink ๋ฐ llvmpipe ๋๋ผ์ด๋ฒ์ ๋ํ OpenGL 965์ ์๋ฒฝํ๊ฒ ์ง์ํฉ๋๋ค. OpenGL 4.5 ์ง์์ AMD(r600) ๋ฐ NVIDIA(nvc0) GPU์์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ virgl(QEMU/KVM์ฉ Virgil4.3D ๊ฐ์ GPU)์์๋ OpenGL 3์ ์ฌ์ฉํ ์ ์์ต๋๋ค. Vulkan 1.2๋ Intel ๋ฐ AMD ์นด๋์์ ์ง์๋๊ณ Vulkan 1.0์ VideoCore VI(Raspberry Pi 4)์์ ์ง์๋ฉ๋๋ค.
์ฃผ์ ํ์ :
- Zink ๋๋ผ์ด๋ฒ(Vulkan ์์ OpenGL API ๊ตฌํ)๋ OpenGL 4.6์ ์ง์ํฉ๋๋ค. ์์คํ ์ Vulkan API๋ง ์ง์ํ๋๋ก ์ ํ๋ ๋๋ผ์ด๋ฒ๊ฐ ์๋ ๊ฒฝ์ฐ Zink๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋์จ์ด ๊ฐ์ OpenGL์ ์ป์ ์ ์์ต๋๋ค. Zink์ ์ฑ๋ฅ์ ๊ธฐ๋ณธ OpenGL ๊ตฌํ์ ์ฑ๋ฅ์ ๊ฐ๊น์ต๋๋ค.
- ์ํํธ์จ์ด ๋ ๋๋ง์ฉ์ผ๋ก ์ค๊ณ๋ llvmpipe ๋๋ผ์ด๋ฒ๋ OpenGL 4.6์ ์ง์ํฉ๋๋ค.
- Qualcomm ๊ทธ๋ํฝ ํ์ ์์คํ ์ ์ฌ์ฉ๋๋ Freedreno ๋๋ผ์ด๋ฒ๋ Adreno a6xx GPU์ฉ OpenGL ES 3.0์ ์ง์ํฉ๋๋ค.
- GPU Midgard(Mali-T7xx, Mali-T8xx) ๋ฐ Bifrost(Mali G3x, G5x, G7x)์ฉ Panfrost ๋๋ผ์ด๋ฒ๋ OpenGL 3.1์ ๋ฌผ๋ก GPU Bifrost์ฉ OpenGL ES 3.0๋ ์ง์ํฉ๋๋ค.
- radeonsi ๋๋ผ์ด๋ฒ๋ OpenGL ํ์ฅ GL_EXT_demote_to_helper_invocation ๋ฐ GL_NV_compute_shader_derivatives๋ฅผ ์ง์ํฉ๋๋ค. "Counter-Strike: Global Offensive" ๊ฒ์์ ๊ฒฝ์ฐ ์ต์ ํ ๋ชจ๋ "mesa_glthread"๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋์ด ์ฑ๋ฅ์ 10-20% ํฅ์์ํฌ ์ ์์ต๋๋ค. SPECViewPerf ํ ์คํธ ํต๊ณผ์ ์ํฅ์ ๋ฏธ์น๋ ์ต์ ํ๊ฐ ๊ตฌํ๋์์ต๋๋ค. Radeon GPU ํ๋กํ์ผ๋ฌ(RGP) ํ๋กํ์ผ๋ง ๋๊ตฌ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. Zen 3 ๋ฐ RDNA 2 GPU์ ๋ํ Smart Access Memory ๊ธฐ์ ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. HEVC SAO ์ธ์ฝ๋(VCN2, VCN2.5 ๋ฐ VCN3 ์์ง์ ์ง์ํ๋ GPU์ฉ ์ํ ์ ์ํ ์คํ์ ) ๋ฐ AV1 ๋์ฝ๋(RDNA 2/RX 6000 ๋ฐ OpenMAX ์ธํฐํ์ด์ค๋ฅผ ํตํด์๋ง)์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- RADV Vulkan ๋๋ผ์ด๋ฒ(AMD ์นด๋์ฉ)๋ Rapid Packed Math(16๋นํธ ๋ฒกํฐํ) ๋ฐ Sparse ๋ฉ๋ชจ๋ฆฌ(์ด๋ฏธ์ง ๋ฐ ํ ์ค์ฒ์ ๊ฐ์ ๋ฆฌ์์ค๋ฅผ ์ผ๊ด๋์ง ์๊ฒ ๋ฐฐ์นํ๊ณ ์ด๋ฅผ ๋ค๋ฅธ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ๋ค์ ์ฐ๊ฒฐํ ์ ์์)์ ๋ํ ์ง์์ ์ถ๊ฐํฉ๋๋ค. RX 6000 ์๋ฆฌ์ฆ ์นด๋์ ์ฑ๋ฅ์ด ์ต์ ํ๋์์ต๋๋ค. VK_VALVE_mutable_descriptor_type ๋ฐ VK_KHR_fragment_shading_rate ํ์ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค(RDNA2๋ง ํด๋น).
- Intel ANV ๋ฐ Iris ๋๋ผ์ด๋ฒ๋ ์ฑ๋ฅ ์ต์ ํ๋ฅผ ์ถ๊ฐํ๊ณ Xe HPG ๊ทธ๋ํฝ ์นด๋์ ๊ตฌํ๋ Vulkan ๊ด์ ์ถ์ ํ์ฅ์ ๋ํ ์ด๊ธฐ ์ง์์ ์ ๊ณตํฉ๋๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ ์ด Xlib๋ฅผ ์ฌ์ฉํ์ง ์๊ณ X11 ๋ฆฌ์์ค์์ EGL ๋ฆฌ์์ค๋ฅผ ์์ฑํ ์ ์๋๋ก ํ๋ EGL_MESA_platform_xcb ํ์ฅ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- Broadcom BCM3 ์นฉ ๊ธฐ๋ฐ Raspberry Pi 4 ๋ณด๋์ ์ฌ์ฉ๋๋ VideoCore VI ๊ทธ๋ํฝ ๊ฐ์๊ธฐ์ฉ์ผ๋ก ๊ฐ๋ฐ๋ Vulkan ๋๋ผ์ด๋ฒ V2711DV์๋ Wayland ๊ธฐ๋ฐ ํ๊ฒฝ์์ Vulkan API์ ์ก์ธ์คํ ์ ์๋ Wayland WSI(Windowing System Integration)์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- OpenGL ํธ์ถ์ DirectX 12 API๋ก ๋ณํํ๋ ๋ ์ด์ด์ ์ด๊ธฐ ๊ตฌํ์ WSL(Linux์ฉ Windows ํ์ ์์คํ ) ํ๊ฒฝ์์ ๊ทธ๋ํฝ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ ๊ตฌ์ฑํ๊ธฐ ์ํด ์ฑํ๋์์ต๋๋ค. ๋ํ SPIR-V ์ ฐ์ด๋์ ์ค๊ฐ ํํ์ Microsoft์์ ๊ฐ๋ฐํ DXIL(DirectX Intermediate Language)๋ก ๋ณํํ๊ธฐ ์ํ spirv_to_dxil ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
- Haiku OS์ ๋ํ ์ง์์ด ์ฌ์ค๊ณ๋๊ณ ํฌ๊ฒ ํฅ์๋์์ต๋๋ค.
- driconf์์ glx_disable_oml_sync_control, glx_disable_sgi_video_sync ๋ฐ glx_disable_ext_buffer_age ์ค์ ์ ์ ๊ฑฐํ์ต๋๋ค.
- DRI1์ ๋ํ ์ง์์ ์ ๊ฑฐํ๊ณ 8.0 ๋ฏธ๋ง์ Mesa ๋ฒ์ ์์ DRI ๋๋ผ์ด๋ฒ ๋ก๋๋ฅผ ์ค์งํ์ต๋๋ค.
- ํด๋์ DRI ์ธํฐํ์ด์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋๊ณ OpenGL ์ํํธ์จ์ด ๋ ๋๋ง์ฉ์ผ๋ก ์ ์๋ swast ๋๋ผ์ด๋ฒ๋ฅผ ์ ๊ฑฐํ์ต๋๋ค(๋๋จธ์ง ์ํํธ์จ์ด ๋ ๋๋ง ๋๋ผ์ด๋ฒ์ธ llvmpipe ๋ฐ Softpipe๋ ์ฑ๋ฅ ๋ฐ ๊ธฐ๋ฅ ์ธก๋ฉด์์ swast๋ณด๋ค ๋์ ๋๊ฒ ์์ ์์ต๋๋ค). ์ด ๋๋ผ์ด๋ฒ๊ฐ ๋ ์ด์ ๋ฐฐํฌํ์ ์ฌ์ฉ๋์ง ์๋๋ค๋ ์ฌ์ค์๋ ๋ถ๊ตฌํ๊ณ ํด๊ฒฐ๋์ง ์์ ๋ง์ ๋ฌธ์ ์ ํ๊ท ๋ฐ์์ผ๋ก ์ธํด swast ์ ๊ฑฐ๊ฐ ์ด์ง๋์์ต๋๋ค.
- OSMesa API์ ๊ธฐ์กด ํด๋์ ๋ฒ์ ์ด ์ ๊ฑฐ๋์ด(Gallium ๊ธฐ๋ฐ OSMesa๋ ๋จ์) ํ๋ฉด์ด ์๋ ๋ฉ๋ชจ๋ฆฌ์ ๋ฒํผ์ ๋ ๋๋งํ ์ ์์ต๋๋ค.
์ถ์ฒ : opennet.ru