-
์ถ๊ฐ๋จ 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% ์ฆ๊ฐํฉ๋๋ค. - ์
ฐ์ด๋ ์ปดํ์ผ์ ์ํ ๋ฐฑ์๋์์ "
ACO LLVM ์ ฐ์ด๋ ์ปดํ์ผ๋ฌ์ ๋์์ผ๋ก 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 ํ์ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค:
GL_ARB_compute_variable_group_size i965์ ๊ฒฝ์ฐ.GL_EXT_๊น์ด_๋ฐ์ด๋_ํ ์คํธ ์์ด๋ฆฌ์ค๋ฅผ ์ํด์.GL_EXT_texture_shadow_lod ๋ผ๋ฐ์จ์์ nvc0์ ๊ฒฝ์ฐ.GL_EXT_draw_instanced Gles2์ฉ.GL_NV_alpha_to_coverage_dither_control ๋ผ๋์์ ๋ํGL_NV_๋ณต์ฌ_์ด๋ฏธ์ง ๋ชจ๋ ๊ฐ๋ฅจ ๋๋ผ์ด๋ฒ์ฉ.GL_NV_pixel_buffer_object i915, i965 ๋ฐ swrast๋ฟ๋ง ์๋๋ผ ๋ชจ๋ ๊ฐ๋ฅจ ๋๋ผ์ด๋ฒ์ฉ์ ๋๋ค.GL_NV_viewport_array2 nvc0(GM200+)์ ๊ฒฝ์ฐ.GL_NV_viewport_swizzle nvc0(GM200+)์ ๊ฒฝ์ฐ.
- RADV Vulkan ๋๋ผ์ด๋ฒ์ ํ์ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค(AMD ์นด๋์ฉ):
VK_AMD_memory_overallocation_behavior VK_KHR_shader_non_semantic_info VK_EXT_๊ฐ๊ฑด์ฑ2 VK_KHR_8bit_storage "ACO" ์ ฐ์ด๋ ์ปดํ์ผ ๋ฐฑ์๋๋ฅผ ์ฌ์ฉํ ๋ GFX8+ ์นด๋์ฉVK_KHR_16bit_storage "ACO" ์ ฐ์ด๋ ์ปดํ์ผ ๋ฐฑ์๋๋ฅผ ์ฌ์ฉํ ๋ GFX8+ ์นด๋์ฉ(storageInputOutput16 ์ง์ ์ ์ธ)VK_KHR_shader_float16_int8 "ACO" ์ ฐ์ด๋ ์ปดํ์ผ ๋ฐฑ์๋๋ฅผ ์ฌ์ฉํ ๋ GFX8+ ์นด๋์ฉ(storageInputOutput16 ์ง์ ์ ์ธ)
- ANV Vulkan ๋๋ผ์ด๋ฒ์ ํ์ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค(Intel ์นด๋์ฉ):
์ถ์ฒ : opennet.ru