OpenGL ๋ฐ Vulkan์˜ ๋ฌด๋ฃŒ ๊ตฌํ˜„์ธ Mesa 20.1.0 ์ถœ์‹œ

๋„์ž… OpenGL ๋ฐ Vulkan API์˜ ๋ฌด๋ฃŒ ๊ตฌํ˜„ ์ถœ์‹œ - ๋ฉ”์‚ฌ 20.1.0. Mesa 20.1.0 ๋ธŒ๋žœ์น˜์˜ ์ฒซ ๋ฒˆ์งธ ๋ฆด๋ฆฌ์Šค๋Š” ์‹คํ—˜์  ์ƒํƒœ์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ๊ฐ€ ์ตœ์ข… ์•ˆ์ •ํ™”๋˜๋ฉด ์•ˆ์ •์ ์ธ ๋ฒ„์ „ 20.1.1์ด ๋ฆด๋ฆฌ์Šค๋ฉ๋‹ˆ๋‹ค. ๋ฉ”์‚ฌ 20.1์—์„œ ๊ตฌํ˜„ Intel(i4.6, iris) ๋ฐ AMD(radeonsi) GPU์— ๋Œ€ํ•œ ์ „์ฒด OpenGL 965 ์ง€์›, AMD(r4.5) ๋ฐ NVIDIA(nvc600) GPU์— ๋Œ€ํ•œ OpenGL 0 ์ง€์›, virgl(๊ฐ€์ƒ GPU)์— ๋Œ€ํ•œ OpenGL 4.3 ๋ฒ„์งˆ3D QEMU/KVM์šฉ), Intel ๋ฐ AMD ์นด๋“œ์— ๋Œ€ํ•œ Vulkan 1.2 ์ง€์›์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ค‘ ๋ณ€๊ฒฝ:

  • ์ถ”๊ฐ€๋จ OpenGL์šฉ DRI_PRIME๊ณผ ์œ ์‚ฌํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋Š” ์—ฌ๋Ÿฌ Vulkan ์ง€์› GPU๊ฐ€ ์žˆ๋Š” ์‹œ์Šคํ…œ์—์„œ Vulkan API๋ฅผ ์œ„ํ•œ ํ™œ์„ฑ ์žฅ์น˜ ์„ ํƒ ๋ ˆ์ด์–ด์ž…๋‹ˆ๋‹ค. ํ™œ์„ฑ ๋“œ๋ผ์ด๋ฒ„ ๋ฐ GPU๋ฅผ ์„ ํƒํ•˜๊ธฐ ์œ„ํ•ด MESA_VK_DEVICE_SELECT ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค(์„ค์น˜๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ DRI_PRIME์ด ์‚ฌ์šฉ๋จ).
  • ์ƒˆ๋กœ์šด ๋งˆ์ดํฌ๋กœ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋‚ด๋…„์— ์˜ˆ์ƒ๋˜๋Š” ์นฉ์— ๋Œ€ํ•œ ์ง€์›์ด Intel GPU์šฉ i965 ๋ฐ iris ๋“œ๋ผ์ด๋ฒ„์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋กœ์ผ“ ํ˜ธ์ˆ˜.
  • Intel GPU์šฉ์œผ๋กœ ๊ฐœ๋ฐœ ์ค‘์ธ ANV Vulkan ๋“œ๋ผ์ด๋ฒ„ ์ถ”๊ฐ€ Icelake ๋งˆ์ดํฌ๋กœ์•„ํ‚คํ…์ฒ˜(Gen11) ๊ธฐ๋ฐ˜ ์นฉ ์ตœ์ ํ™”๋กœ ํ…์Šค์ฒ˜๋ง ์‹œ ์ˆœ์ˆ˜ํ•œ ์ƒ‰์ƒ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Dota2์—์„œ ํ…Œ์ŠคํŠธํ–ˆ์„ ๋•Œ ์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์œผ๋กœ ์ธํ•ด ์ƒ‰์ƒ ๋ณ€ํ™˜ ์ž‘์—… ํšŸ์ˆ˜๊ฐ€ 95% ๊ฐ์†Œํ•˜๊ณ  ์„ฑ๋Šฅ์ด 3.5% ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Vulkan ANV ๋“œ๋ผ์ด๋ฒ„์—์„œ ์Šน์ง„ Intel Ivybridge ๋ฐ Haswell ์นฉ์ด ํƒ‘์žฌ๋œ ์‹œ์Šคํ…œ์˜ ์บ์‹œ ์‚ฌ์šฉ ํšจ์œจ์„ฑ. Geekbench 5์˜ Vulkan ์ปดํ“จํŒ… ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Haswell GT330 ํ•˜๋“œ์›จ์–ด์—์„œ ์„ฑ๋Šฅ์ด 3% ์ฆ๊ฐ€ํ•œ ๊ฒƒ์œผ๋กœ ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค(์ด์ „์—๋Š” ์ผ๋ถ€ ์กฐ๊ฑด์—์„œ ์บ์‹œ๊ฐ€ ์‚ฌ์šฉ๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฆ๊ฐ€).
  • Intel GPU์šฉ ๋“œ๋ผ์ด๋ฒ„(i965, ์กฐ๋ฆฌ๊ฐœ) ์ถ”๊ฐ€ "๋ธ”๋ž™ํ™€" ๋ชจ๋“œ(OpenGL ํ™•์žฅ INTEL_blackhole_render)๋Š” GPU์—์„œ ์ „์†ก๋˜๋Š” ๋ชจ๋“  ๋ Œ๋”๋ง ์ž‘์—…์„ ๋น„ํ™œ์„ฑํ™”ํ•˜์ง€๋งŒ OpenGL ์ž‘์—… ์ฒ˜๋ฆฌ๋Š” ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด์ „์— AMD ์นฉ์— ์ถ”๊ฐ€๋œ ๋ฒกํ„ฐํ™” ์ง€์›์ด Intel ๊ทธ๋ž˜ํ”ฝ ์นฉ์—๋„ ์ด์‹๋˜์—ˆ์Šต๋‹ˆ๋‹ค. NIR, GLSL IR ๋ฐ Mesa์˜ ๋‚ด๋ถ€ IR ์•„๋ž˜์—์„œ ๊ฐ€์žฅ ๋‚ฎ์€ ์ˆ˜์ค€์—์„œ ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜๋Š” ์…ฐ์ด๋”์˜ ์œ ํ˜• ์—†๋Š” ์ค‘๊ฐ„ ํ‘œํ˜„(IR)์ž…๋‹ˆ๋‹ค. ์‹ค์šฉ์ ์ธ ์ธก๋ฉด์—์„œ๋Š” ์…ฐ์ด๋” ์ตœ์ ํ™”๊ฐ€ ํ–ฅ์ƒ๋˜์–ด Intel GPU๊ฐ€ ํƒ‘์žฌ๋œ ์‹œ์Šคํ…œ์˜ ๋งŽ์€ ๊ฒŒ์ž„์—์„œ OpenGL ๋ฐ Vulkan์˜ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฒŒ์ž„์—์„œ
    ํˆผ ๋ ˆ์ด๋”์˜ ์ƒ์Šน ์ง€์ ํ•œ ์„ฑ๋Šฅ์ด 3% ์ฆ๊ฐ€ํ•˜๊ณ  Shadow of the Tomb Raider์—์„œ๋Š” 10% ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

  • ์…ฐ์ด๋” ์ปดํŒŒ์ผ์„ ์œ„ํ•œ ๋ฐฑ์—”๋“œ์—์„œ "ACOLLVM ์…ฐ์ด๋” ์ปดํŒŒ์ผ๋Ÿฌ์˜ ๋Œ€์•ˆ์œผ๋กœ Valve์—์„œ ๊ฐœ๋ฐœ ์ค‘์ธ "ShaderInt9 ์œ ํ˜•์— ๋Œ€ํ•œ ์ง€์›์ด GFX16+ GPU์— ์ถ”๊ฐ€๋˜์–ด ์…ฐ์ด๋” ์ฝ”๋“œ์—์„œ 16๋น„ํŠธ ์ •์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ ์œ„ํ•œ
    AMD ๋‚˜๋น„ GPU(GFX10) ํ™•๋ณด ๋ฒ„ํ…์Šค ๋ฐ ํ…Œ์…€๋ ˆ์ด์…˜ ์…ฐ์ด๋” ์ž‘์—… ์‹œ NGG(Next-Gen Geometry) ์—”์ง„ ์‚ฌ์šฉ.

  • AMD Navi 12 ๋ฐ Navi 14 GPU์˜ ๊ฒฝ์šฐ ํฌํ•จ ๋œ ๋””์Šคํ”Œ๋ ˆ์ด ์ถœ๋ ฅ์„ ๊ตฌ์„ฑํ•  ๋•Œ ์••์ถ•๋œ ์ƒ‰์ƒ ๋ฐ์ดํ„ฐ๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋Š” ํ‘œ์‹œ๋œ DCC(๋ธํƒ€ ์ƒ‰์ƒ ์••์ถ•) ๋ชจ๋“œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ์ถ”๊ฐ€๋จ ๊ธฐํ•˜ํ•™, ์กฐ๊ฐ, ๊ผญ์ง€์  ๋ฐ ๊ธฐ๋ณธ Gallium3D ๋“œ๋ผ์ด๋ฒ„ R600(AMD Radeon HD 2000-6000)์— ๋Œ€ํ•œ ์‹คํ—˜์  NIR ์ง€์› ๋ชจ์ž์ดํฌ ์„ธ๊ณต ์‰์ด๋”.
  • Vulkan RADV ๋“œ๋ผ์ด๋ฒ„ ์ถ”๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ์ตœ์ ํ™”ํ•˜์—ฌ AMD APU๊ฐ€ ํƒ‘์žฌ๋œ ์‹œ์Šคํ…œ์—์„œ Id Tech ๊ฒŒ์ž„์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ํŒจ์น˜์ž…๋‹ˆ๋‹ค.
  • Panfrost ๋“œ๋ผ์ด๋ฒ„์—์„œ ๊ตฌํ˜„ OpenGL ES 3.0์— ๋Œ€ํ•œ ์‹คํ—˜์  ์ง€์› ๋ฐ ์ œ๊ณต๋œ Bifrost GPU(Mali G3)์— ๋Œ€ํ•œ 31D ๋ Œ๋”๋ง์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. Bifrost GPU ๊ด€๋ จ ๋‚ด๋ถ€ ๋ช…๋ น์–ด ์„ธํŠธ๋ฅผ ์ง€์›ํ•˜๋Š” ์…ฐ์ด๋” ์ปดํŒŒ์ผ๋Ÿฌ์˜ ์ดˆ๊ธฐ ๊ตฌํ˜„์ด ์ค€๋น„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Qualcomm Adreno GPU์šฉ์œผ๋กœ ๊ฐœ๋ฐœ๋œ Vulkan ๋“œ๋ผ์ด๋ฒ„ TURNIP์€ ์ถ”๊ฐ€ ์ง€์˜ค๋ฉ”ํŠธ๋ฆฌ ์…ฐ์ด๋” ์ง€์› ๋ฐ ์•„๋“œ๋ ˆ๋…ธ 650 ์นฉ.
  • ์†Œํ”„ํŠธ์›จ์–ด ๋ Œ๋”๋ง์„ ์ œ๊ณตํ•˜๋Š” Gallium3D ๋“œ๋ผ์ด๋ฒ„ LLVMpipe์—์„œ๋Š”, ์ถœ์—ฐ ํ•œ ํ…Œ์…€๋ ˆ์ด์…˜ ์…ฐ์ด๋”๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ์†Œ๊ฐœ๋จ ะฑะพะปัŒัˆะฐั ๋ถ€๋ถ„ ์ตœ์ ํ™” glthread(OpenGL์˜ ๋‹ค์ค‘ ์Šค๋ ˆ๋“œ ๊ตฌํ˜„)์—์„œ. ๋ณ€๊ฒฝ ํ›„ Torcs ๋ ˆ์ด์‹ฑ ์‹œ๋ฎฌ๋ ˆ์ดํ„ฐ์˜ ์„ฑ๋Šฅ์€ ๊ธฐ๋ณธ ๊ตฌ์„ฑ์—์„œ 16%, glthread๊ฐ€ ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ 40% ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ถ”๊ฐ€๋จ CAD ๊ด€๋ จ ๋น„์ˆœ์ฐจ์  ๋„๋ฉด ์ž‘์—… ์†๋„๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•ด ์ตœ์ ํ™”๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋Š” Allow_draw_out_of_order ์˜ต์…˜(driconf๋ฅผ ํ†ตํ•ด ํ™œ์„ฑํ™”๋จ) ์ด ์˜ต์…˜์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด Viewperf11 Catia ํ…Œ์ŠคํŠธ์—์„œ 7% ๊ฐ€์†์ด ๊ด€์ฐฐ๋ฉ๋‹ˆ๋‹ค.
  • ์ƒˆ๋กœ์šด OpenGL ํ™•์žฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค:
  • RADV Vulkan ๋“œ๋ผ์ด๋ฒ„์— ํ™•์žฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(AMD ์นด๋“œ์šฉ):
  • ANV Vulkan ๋“œ๋ผ์ด๋ฒ„์— ํ™•์žฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(Intel ์นด๋“œ์šฉ):

    ์ถœ์ฒ˜ : opennet.ru

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