NVK์™€ Zink๋Š” NVIDIA GPU์šฉ ๊ฐœ๋ฐฉํ˜• ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒํ™ฉ์„ ํฌ๊ฒŒ ๊ฐœ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.

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

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€