Collabora๋ ๋ค์ํ ์ฌ์ฉ์๊ฐ ์ผ์์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ NVIDIA ๋น๋์ค ์นด๋์ฉ ๊ฐ๋ฐฉํ NVK ๋๋ผ์ด๋ฒ๋ฅผ ์ถ์ํ์ผ๋ฉฐ ๊ทธ๋ํฝ ํ์ค์ ๊ฐ๋ฐํ๋ Khronos ์ปจ์์์์์ ์ด โโ๋๋ผ์ด๋ฒ๋ฅผ ์ธ์ฆํ๋ค๊ณ ๋ฐํํ์ต๋๋ค. ์ด ๋๋ผ์ด๋ฒ๋ Vulkan 1.3 ์ฌ์๊ณผ ์๋ฒฝํ๊ฒ ํธํ๋๋ ๊ฒ์ผ๋ก ์ธ์๋์์ผ๋ฉฐ CTS(Khronos Conformance Test Suite)์ ๋ชจ๋ ํ ์คํธ๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ํต๊ณผํ์ผ๋ฉฐ ์ธ์ฆ ๋๋ผ์ด๋ฒ ๋ชฉ๋ก์ ํฌํจ๋์ด ์์ต๋๋ค.
Turing ๋ง์ดํฌ๋ก์ํคํ ์ฒ(GeForce GTX 16xx, RTX 20xx ๋ฐ Quadro RTX ์๋ฆฌ์ฆ), Ampere(GeForce RTX 30xx ๋ฐ RTX A2000/4000/5000/6000 ์๋ฆฌ์ฆ) ๋ฐ Ada(GeForce RTX 4xxx, RTX 4000 SFF) ๊ธฐ๋ฐ NVIDIA GPU์ ๋ํ ์ธ์ฆ์ด ์๋ฃ๋์์ต๋๋ค. , RTX 4xxx/5000/6000 Ada). ํ ์คํธ๋ Linux ์ปค๋ 6.5, 6.8rc1 ํ๊ฒฝ์์ ์งํ๋์์ต๋๋ค. ์ธ์ฆ์๋ฅผ ํ๋ํ๋ฉด ๊ทธ๋ํฝ ํ์ค๊ณผ์ ํธํ์ฑ์ ๊ณต์์ ์ผ๋ก ์ ์ธํ๊ณ ๊ด๋ จ Khronos ์ํ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ณ๊ฒฝ ์ฌํญ์ ์ด๋ฏธ Mesa ์ฝ๋๋ฒ ์ด์ค์ ์ ์ฉ๋์์ผ๋ฉฐ Mesa 24.1 ๋ฆด๋ฆฌ์ค์ ์ผ๋ถ๊ฐ ๋ ๊ฒ์ ๋๋ค.
NVK์ ๊ฐ์ ์ธ์๋ NVIDIA ๋น๋์ค ์นด๋์ ๋ํ OpenGL ์ง์ ์ ๊ณต์๋ ์๋นํ ์ง์ ์ด ์์์ต๋๋ค. Mesa๋ ์๋ก์ด NVIDIA ๋น๋์ค ์นด๋ ์๋ฆฌ์ฆ(GeForce RTX 4.6xx๋ก ์์)๊ฐ ์ฅ์ฐฉ๋ ์์คํ ์์ Zink ๋๋ผ์ด๋ฒ๋ฅผ ์ฌ์ฉํ์ฌ OpenGL 20์ ๋ํ ์ง์์ ์ ๊ณตํ ์ ์๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ฑํํ์ต๋๋ค. ์ด๋ ๊ธฐ๋ณธ Nouveau OpenGL ๋๋ผ์ด๋ฒ(NVC0)์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. Mesa 0์์ NVC24.1 ๋์ Zink๋ฅผ ํ์ฑํํ๋ ค๋ฉด ํ๊ฒฝ ๋ณ์ โNOUVEAU_USE_ZINK=1โ์ ์ค์ ํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
Mesa์ ์ ์ฉ๋ ๋ณ๊ฒฝ ์ฌํญ์ Mesa์ ๊ธฐ๋ณธ OpenGL ๋๋ผ์ด๋ฒ์์ ์ง์ํ์ง ์๋ GPU์ ๋ํ ๋์ฒด ์๋จ์ผ๋ก Zink๋ฅผ ์ฌ์ฉํ์ฌ ๋ค๋ฅธ ๋๋ผ์ด๋ฒ์์ OpenGL์ ์ง์ํ๋ ๊ธฐ๋ฅ๋ ์ ๊ณตํฉ๋๋ค. ์๋ฅผ ๋ค์ด, Qualcomm Adreno 700 GPU์ฉ freedreno ๋๋ผ์ด๋ฒ์ Rogue ๋ง์ดํฌ๋ก์ํคํ ์ฒ ๊ธฐ๋ฐ Imagination PowerVR GPU์ฉ powervr ๋๋ผ์ด๋ฒ์์ OpenGL ์ง์์ ์ ๊ณตํ๊ธฐ ์ํด ์ ์ฌํ ์ ๊ทผ ๋ฐฉ์์ด ์ด๋ฏธ ์ฌ์ฉ๋๊ณ ์์ต๋๋ค.
Zink๋ Vulkan API๋ง ์ง์ํ๋ ์ฅ์น์์ ํ๋์จ์ด ๊ฐ์ OpenGL์ ์ป์ ์ ์๋๋ก Vulkan ์์ OpenGL ๊ตฌํ์ ์ ๊ณตํฉ๋๋ค. Mesa์ ๋ค์ ๋ฆด๋ฆฌ์ค์์๋ ๋น๋ ์ Zink ๋๋ผ์ด๋ฒ๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ฑํ๋ฉ๋๋ค. Zink์ ์ฑ๋ฅ์ ๊ธฐ๋ณธ OpenGL ๊ตฌํ์ ์ฑ๋ฅ์ ๊ฐ๊น์ต๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ณ OpenGL ๋๋ผ์ด๋ฒ๋ฅผ ์ ์ง ๊ด๋ฆฌํ๋ ๋ฐ ๋ฆฌ์์ค๋ฅผ ๋ญ๋นํ๋ ๋์ Vulkan API์ ๋ํ ๊ณ ํ์ง ์ง์์ ์ง์คํ๊ณ Vulkan ์์ OpenGL ์ง์์ ๊ตฌํํ ์ ์์ต๋๋ค.
์ด์ Nouveau OpenGL ๋๋ผ์ด๋ฒ๋ฅผ ์ ๊ฑฐํ ๊ณํ์ ์์ง ์์ง๋ง ํ์ฌ ํํ์์๋ Zink + NVK ์กฐํฉ์ด ๋ง์ ํ ์คํธ์์ ๋ ๋์ ์ฑ๋ฅ์ ๋ณด์ฌ์ค๋๋ค. ํ์ฌ ๊ฐ๋ฐ ๋จ๊ณ์์ ๋ง์ ๊ฒ์์ ์คํํ ๋ Zink + NVK ์กฐํฉ์ ์ฌ์ฉํ๋ฉด ์๋ก์ด GPU ๋ชจ๋ธ์์ 60FPS ์ด์์ ์ฑ๋ฅ์ ๋ฌ์ฑํ ์ ์์ง๋ง, ์์ง ํด๊ฒฐ๋์ง ์์ ๋ฌธ์ ์ ์๊ฐ์ด ์ง๋๋ฉด ํด๊ฒฐ๋ ์ต์ ํ๋์ง ์์ ์์ญ์ด ์์ต๋๋ค.
๋ํ Vulkan API์ ๋ํ ํธ์ถ ๋ณํ์ ํตํด ์๋ํ๋ Direct3D 9, 10 ๋ฐ 11์ ๊ตฌํ์ ์ ๊ณตํ๋ NVK ๋๋ผ์ด๋ฒ ์์ DXVK ๋ ์ด์ด ์์ ์ ์์ ํํ๋ ์์ ๋ ์ธ๊ธ๋์ด ์์ต๋๋ค. ์์ง ๋ชจ๋ D3D11 ๊ฒ์์ด Mesa์ ์์ ๋์ง ์์ NVK+DXVK ์กฐํฉ๊ณผ์ ์๋์ ๋ณด์ฅํ๋ ๊ฒ์ ์๋์ง๋ง ๊ธฐ๋ณธ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ํ์ธ๋ ๊ฒฐํจ์ ์ ์ฐจ์ ์ผ๋ก ์ ๊ฑฐ๋๊ณ ์์ต๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก VKD3D-Proton๊ณผ์ NVK ์ฐ๊ฒฐ์ D3D12์ ๋ํ ์ง์์ ์ ๊ณตํ๊ธฐ ์ํด ๊ฐ๋ฐ ์ค์ด์ง๋ง ํด๋น ์ํ๋ ์ฌ์ ํ NVK+DXVK๋ณด๋ค ๋ค๋จ์ด์ ธ ์์ผ๋ฉฐ ์ผ๋ถ ๋๋ฝ๋ ๊ธฐ๋ฅ์ ๊ตฌํํด์ผ ํฉ๋๋ค.
NVK ๋๋ผ์ด๋ฒ๋ Karol Herbst(Red Hat์ Nouveau ๊ฐ๋ฐ์), David Airlie(Red Hat์ DRM ์ ์ง ๊ด๋ฆฌ์) ๋ฐ Collabora์ Jason/Faith Ekstrand(ํ์ญ Mesa ๊ฐ๋ฐ์)๋ฅผ ํฌํจํ ํ์ ์ํด ์ฒ์๋ถํฐ ๊ตฌ์ถ๋์์ต๋๋ค. ๋๋ผ์ด๋ฒ๋ฅผ ๋ง๋ค ๋ ๊ฐ๋ฐ์๋ NVIDIA์์ ๊ฒ์ํ ๊ณต์ ํค๋ ํ์ผ๊ณผ ๊ฐ๋ฐฉํ ์ปค๋ ๋ชจ๋์ ์ฌ์ฉํ์ต๋๋ค. NVK ์ฝ๋๋ Nouveau OpenGL ๋๋ผ์ด๋ฒ์ ์ผ๋ถ ๊ธฐ๋ณธ ๊ตฌ์ฑ ์์๋ฅผ ๊ณณ๊ณณ์์ ์ฌ์ฉํ์ง๋ง NVIDIA ํค๋ ํ์ผ์ ์ด๋ฆ๊ณผ Nouveau์ ๋ฆฌ๋ฒ์ค ์์ง๋์ด๋ง๋ ์ด๋ฆ์ ์ฐจ์ด๋ก ์ธํด ์ฝ๋๋ฅผ ์ง์ ์ฐจ์ฉํ๋ ๊ฒ์ด ์ด๋ ต๊ณ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๋ง์ ๊ฒ๋ค์ ์ฒ์๋ถํฐ ๋ค์ ์๊ฐํ๊ณ ๊ตฌํํด์ผ ํ์ต๋๋ค.
๋ค๋ฅธ ๋๋ผ์ด๋ฒ๋ฅผ ๋ง๋ค ๋ ํด๋น ์ฝ๋๋ฅผ ๋น๋ฆด ์ ์๋ Mesa์ฉ ์ ์ฐธ์กฐ Vulkan ๋๋ผ์ด๋ฒ๋ฅผ ๋ง๋๋ ๊ฒ์ ์ผ๋์ ๋๊ณ ๊ฐ๋ฐ์ด ์ํ๋์์ต๋๋ค. ์ด๋ฅผ ์ํด NVK ๋๋ผ์ด๋ฒ ์์
์ Vulkan ๋๋ผ์ด๋ฒ ๊ฐ๋ฐ์ ๋ํ ๊ธฐ์กด ๊ฒฝํ์ ๋ชจ๋ ๊ณ ๋ คํ๊ณ ์ฝ๋ ๊ธฐ๋ฐ์ ์ต์ ์ ํํ๋ก ์ ์งํ๋ฉฐ ๋ค๋ฅธ Vulkan ๋๋ผ์ด๋ฒ์ ์ฝ๋ ์ ์ก์ ์ต์ํํ๋ ค๊ณ ๋
ธ๋ ฅํ์ต๋๋ค. ์ต์ ์ ๊ณ ํ์ง ์์
์ ์ํํ๋ฉฐ ๋ค๋ฅธ ๋๋ผ์ด๋ฒ์ ์์
๋ฐฉ์์ ๋งน๋ชฉ์ ์ผ๋ก ๋ณต์ฌํ์ง ์์ต๋๋ค. ๋๋ผ์ด๋ฒ๋ ์ด๋ฏธ Mesa์ ํฌํจ๋์ด ์์ผ๋ฉฐ Nouveau DRM ๋๋ผ์ด๋ฒ API์ ํ์ํ ๋ณ๊ฒฝ ์ฌํญ์ Linux 6.6 ์ปค๋์ ํฌํจ๋์ด ์์ต๋๋ค.
์ถ์ฒ : opennet.ru