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

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

์ค‘ ๋ณ€๊ฒฝ:

  • ์šด์ „์‚ฌ์—์„œ lvmpipe๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๋ Œ๋”๋ง์šฉ์œผ๋กœ ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ OpenGL 4.5๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • RADV Vulkan ๋“œ๋ผ์ด๋ฒ„(AMD ์นด๋“œ์šฉ)๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์…ฐ์ด๋” ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค."ACO"๋Š” LLVM ์…ฐ์ด๋” ์ปดํŒŒ์ผ๋Ÿฌ์˜ ๋Œ€์•ˆ์œผ๋กœ Valve์—์„œ ๊ฐœ๋ฐœ ์ค‘์ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ACO๋Š” C++๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ JIT ์ปดํŒŒ์ผ์„ ์—ผ๋‘์— ๋‘๊ณ  ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ ๊ฒŒ์ž„ ์…ฐ์ด๋”์— ์ตœ๋Œ€ํ•œ ์ตœ์ ํ™”๋œ ์ฝ”๋“œ ์ƒ์„ฑ์„ ์ œ๊ณตํ•˜๊ณ  ๋งค์šฐ ๋†’์€ ์ปดํŒŒ์ผ ์†๋„๋ฅผ ๋‹ฌ์„ฑํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.
  • AMD Navi 21(Navy Flounder) ๋ฐ Navi 22(Sienna Cichlid) GPU์— ๋Œ€ํ•œ ์ดˆ๊ธฐ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Intel GPU ๋“œ๋ผ์ด๋ฒ„๋Š” ๋งˆ์ดํฌ๋กœ์•„ํ‚คํ…์ฒ˜ ๊ธฐ๋ฐ˜ ์นฉ์— ๋Œ€ํ•œ ์ง€์›์„ ๊ฐœ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋กœ์ผ“ ํ˜ธ์ˆ˜ ะธ ์ถ”๊ฐ€ ๊ฐœ๋ณ„ ์นด๋“œ์— ๋Œ€ํ•œ ์ดˆ๊ธฐ ์ง€์› ์ธํ…” Xe DG1.
  • Gallium3D ๋“œ๋ผ์ด๋ฒ„์˜ ๊ธฐ๋Šฅ์ด ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Zink, Vulkan ์œ„์— OpenGL API๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์— Vulkan API๋งŒ ์ง€์›ํ•˜๋„๋ก ์ œํ•œ๋œ ๋“œ๋ผ์ด๋ฒ„๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ Zink๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ•˜๋“œ์›จ์–ด ๊ฐ€์† OpenGL์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Gallium3D ๋“œ๋ผ์ด๋ฒ„ Nouveau NVC0์€ HMM(์ด๊ธฐ์ข… ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ)์„ ์‚ฌ์šฉํ•˜์—ฌ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. OpenCL SVM (๊ณต์œ  ๊ฐ€์ƒ ๋ฉ”๋ชจ๋ฆฌ).
  • ์šด์ „์‚ฌ์—์„œ ํŒฌํ”„๋กœ์ŠคํŠธ Midgard GPU(Mali-T3xx, Mali-T6xx, Mali-T7xx)์— ๋Œ€ํ•œ 8D ๋ Œ๋”๋ง ์ง€์›์ด ์•ˆ์ •ํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • RadeonSI์—๋Š” GPU ๊ฐ€์ƒํ™”์™€ ๊ด€๋ จ๋œ ๊ฐœ์„  ์‚ฌํ•ญ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • TGSI(Tungsten Graphics Shader Infrastructure) ์ค‘๊ฐ„ ํ‘œํ˜„์˜ ๋””์Šคํฌ ์บ์‹ฑ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ƒˆ๋กœ์šด OpenGL ํ™•์žฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค:
    • Intel Iris์˜ ๊ฒฝ์šฐ GL_ARB_compute_variable_group_size.
    • Nouveau nvc0์˜ ๊ฒฝ์šฐ GL_ARB_gl_spirv.
    • Nouveau nvc0์˜ ๊ฒฝ์šฐ GL_NV_half_float.
    • Nouveau nvc0์˜ ๊ฒฝ์šฐ GL_NV_copy_length_to_color์ž…๋‹ˆ๋‹ค.
    • Nouveau nvc0์— ๋Œ€ํ•œ GL_ARB_spirv_extensions.
    • llvmpipe์— ๋Œ€ํ•œ GL_EXT_shader_group_vote.
    • llvmpipe์šฉ GL_ARB_gpu_shader5.
    • llvmpipe์— ๋Œ€ํ•œ GL_ARB_post_length_coverage.
    • llvmpipe์— ๋Œ€ํ•œ GL_EXT_texture_shadow_lod.
  • EGL ํ™•์žฅ EGL_KHR_swap_buffers_with_damage(X11 DRI3์šฉ)์™€ GLX ํ™•์žฅ GLX_EXT_swap_control(DRI2, DRI3) ๋ฐ GLX_EXT_swap_control_tear(DRI3)์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • RADV Vulkan ๋“œ๋ผ์ด๋ฒ„์— ํ™•์žฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(AMD ์นด๋“œ์šฉ):
    • VK_EXT_4444_formats
    • VK_KHR_memory_model
    • VK_AMD_texture_gather_bias_lod
    • VK_AMD_gpu_shader_half_float
    • VK_AMD_gpu_shader_int16
    • VK_EXT_extended_dynamic_state
    • VK_EXT_image_๊ฒฌ๊ณ ํ•จ
    • VK_EXT_private_data
    • VK_EXT_custom_border_color
    • VK_EXT_pipeline_creation_cache_control
    • VK_EXT_shader_demote_to_helper_invocation
    • VK_EXT_subgroup_size_control
    • VK_GOOGLE_user_type
    • VK_KHR_shader_subgroup_extended_types
  • ANV Vulkan ๋“œ๋ผ์ด๋ฒ„์— ํ™•์žฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(Intel ์นด๋“œ์šฉ):
    • VK_EXT_image_๊ฒฌ๊ณ ํ•จ
    • VK_EXT_shader_atomic_float
    • VK_EXT_4444_formats
    • VK_EXT_extended_dynamic_state
    • VK_EXT_private_data
    • VK_EXT_custom_border_color
    • VK_EXT_pipeline_creation_cache_control

์ถœ์ฒ˜ : opennet.ru

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