NVIDIA ๋“œ๋ผ์ด๋ฒ„์˜ Wayland ์ง€์› ์ƒํƒœ

NVIDIA ๋…์  ๋“œ๋ผ์ด๋ฒ„์˜ ์ฃผ์š” ๊ฐœ๋ฐœ์ž ์ค‘ ํ•œ ๋ช…์ธ Aaron Plattner๋Š” NVIDIA๊ฐ€ ์ปค๋„ ์ˆ˜์ค€์—์„œ ์‹คํ–‰๋˜๋Š” ๋ชจ๋“  ๊ตฌ์„ฑ ์š”์†Œ์— ๋Œ€ํ•œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•œ R515 ๋“œ๋ผ์ด๋ฒ„์˜ ํ…Œ์ŠคํŠธ ๋ถ„๊ธฐ์—์„œ Wayland ํ”„๋กœํ† ์ฝœ ์ง€์› ์ƒํƒœ๋ฅผ ๊ฒŒ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๋Ÿฌ ์˜์—ญ์—์„œ NVIDIA ๋“œ๋ผ์ด๋ฒ„์˜ Wayland ํ”„๋กœํ† ์ฝœ ์ง€์›์€ ์•„์ง X11 ์ง€์›๊ณผ ๋™๋“ฑํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋™์‹œ์— ์ง€์—ฐ์€ NVIDIA ๋“œ๋ผ์ด๋ฒ„์˜ ๋ฌธ์ œ์™€ Wayland ํ”„๋กœํ† ์ฝœ ๋ฐ ์ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ๋ณตํ•ฉ ์„œ๋ฒ„์˜ ์ผ๋ฐ˜์ ์ธ ์ œํ•œ ์‚ฌํ•ญ์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋“œ๋ผ์ด๋ฒ„ ์ œํ•œ์‚ฌํ•ญ:

  • ํ›„์ฒ˜๋ฆฌ, ํ•ฉ์„ฑ, ๋””์Šคํ”Œ๋ ˆ์ด ๋ฐ ๋น„๋””์˜ค ๋””์ฝ”๋”ฉ์„ ์œ„ํ•œ ํ•˜๋“œ์›จ์–ด ๊ฐ€์† ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” libvdpau ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—๋Š” Wayland์— ๋Œ€ํ•œ ์ง€์›์ด ๋‚ด์žฅ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” Xwayland์—์„œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • Wayland ๋ฐ Xwayland๋Š” ํ™”๋ฉด ์บก์ฒ˜์— ์‚ฌ์šฉ๋˜๋Š” NvFBC(NVIDIA FrameBuffer Capture) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • nvidia-drm ๋ชจ๋“ˆ์€ G-Sync์™€ ๊ฐ™์€ ๊ฐ€๋ณ€ ์ƒˆ๋กœ ๊ณ ์นจ ๋นˆ๋„ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ Wayland ๊ธฐ๋ฐ˜ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • Wayland ๊ธฐ๋ฐ˜ ํ™˜๊ฒฝ์—์„œ๋Š” SteamVR ํ”Œ๋žซํผ์—์„œ ์ง€์›ํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ๊ฐ€์ƒ ํ˜„์‹ค ํ™”๋ฉด์œผ๋กœ์˜ ์ถœ๋ ฅ์ด DRM ์ž„๋Œ€ ๋ฉ”์ปค๋‹ˆ์ฆ˜์˜ ์ž‘๋™ ๋ถˆ๊ฐ€๋Šฅ์œผ๋กœ ์ธํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ฐ€์ƒ ํ˜„์‹ค ํ—ค๋“œ์…‹์œผ๋กœ ์ถœ๋ ฅํ•  ๋•Œ ์™ผ์ชฝ ๋ˆˆ๊ณผ ์˜ค๋ฅธ์ชฝ ๋ˆˆ.
  • Xwayland๋Š” EGL_EXT_platform_x11 ํ™•์žฅ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • nvidia-drm ๋ชจ๋“ˆ์€ ๋ณตํ•ฉ ๊ด€๋ฆฌ์ž์˜ ์ƒ‰์ƒ ๊ต์ •์„ ์™„๋ฒฝํ•˜๊ฒŒ ์ง€์›ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ GAMMA_LUT, DEGAMMA_LUT, CTM, COLOR_ENCODING ๋ฐ COLOR_RANGE ์†์„ฑ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • Wayland๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ nvidia-settings ์œ ํ‹ธ๋ฆฌํ‹ฐ์˜ ๊ธฐ๋Šฅ์ด ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.
  • GLX์˜ Xwayland๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ถœ๋ ฅ ๋ฒ„ํผ๋ฅผ ํ™”๋ฉด(์ „๋ฉด ๋ฒ„ํผ)์— ๊ทธ๋ฆฌ๋Š” ๊ฒƒ์ด ์ด์ค‘ ๋ฒ„ํผ๋ง์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Wayland ํ”„๋กœํ† ์ฝœ ๋ฐ ๋ณตํ•ฉ ์„œ๋ฒ„์˜ ์ œํ•œ ์‚ฌํ•ญ:

  • Wayland ํ”„๋กœํ† ์ฝœ ๋˜๋Š” ๋ณตํ•ฉ ์„œ๋ฒ„๋Š” ์Šคํ…Œ๋ ˆ์˜ค ์ถœ๋ ฅ, SLI, ๋‹ค์ค‘ GPU ๋ชจ์ž์ดํฌ, ํ”„๋ ˆ์ž„ ์ž ๊ธˆ, ์  ๋ก, ์Šค์™‘ ๊ทธ๋ฃน ๋ฐ ๊ณ ๊ธ‰ ๋””์Šคํ”Œ๋ ˆ์ด ๋ชจ๋“œ(์›Œํ”„, ๋ธ”๋ Œ๋“œ, ํ”ฝ์…€ ์ด๋™ ๋ฐ YUV420 ์—๋ฎฌ๋ ˆ์ด์…˜)์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ถ„๋ช…ํžˆ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋ ค๋ฉด ์ƒˆ๋กœ์šด EGL ํ™•์žฅ์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • Wayland ๋ณตํ•ฉ ์„œ๋ฒ„๊ฐ€ PCI-Express Runtime D3(RTD3)์„ ํ†ตํ•ด ๋น„๋””์˜ค ๋ฉ”๋ชจ๋ฆฌ ์ „์›์„ ๋Œ ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํ—ˆ์šฉ๋˜๋Š” API๋Š” ์—†์Šต๋‹ˆ๋‹ค.
  • Xwayland์—๋Š” NVIDIA ๋“œ๋ผ์ด๋ฒ„์—์„œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๋ Œ๋”๋ง๊ณผ ํ™”๋ฉด ์ถœ๋ ฅ์„ ๋™๊ธฐํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋™๊ธฐํ™”๊ฐ€ ์—†์œผ๋ฉด ์–ด๋–ค ์ƒํ™ฉ์—์„œ๋Š” ์‹œ๊ฐ์  ์™œ๊ณก์„ ๋ฐฐ์ œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • Wayland ๋ณตํ•ฉ ์„œ๋ฒ„๋Š” ๊ฐœ๋ณ„ GPU๋ฅผ ํ†ตํ•ฉ ๋˜๋Š” ์™ธ๋ถ€ ํ™”๋ฉด์— ์ง์ ‘ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด 11๊ฐœ์˜ GPU(ํ†ตํ•ฉ ๋ฐ ๊ฐœ๋ณ„)๊ฐ€ ์žˆ๋Š” ๋…ธํŠธ๋ถ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํ™”๋ฉด ๋ฉ€ํ‹ฐํ”Œ๋ ‰์„œ(mux)๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. XXNUMX์—์„œ๋Š” ์ „์ฒด ํ™”๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๊ฐœ๋ณ„ GPU๋ฅผ ํ†ตํ•ด ์ถœ๋ ฅ๋  ๋•Œ "mux" ํ™”๋ฉด์ด ์ž๋™์œผ๋กœ ์ „ํ™˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • GLAMOR 2D ๊ฐ€์† ์•„ํ‚คํ…์ฒ˜ ๊ตฌํ˜„์ด NVIDIA์˜ EGL ๊ตฌํ˜„๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— GLX๋ฅผ ํ†ตํ•œ ๊ฐ„์ ‘ ๋ Œ๋”๋ง์€ Xwayland์—์„œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • Xwayland ๊ธฐ๋ฐ˜ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰๋˜๋Š” GLX ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์€ ํ•˜๋“œ์›จ์–ด ์˜ค๋ฒ„๋ ˆ์ด๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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