เบเบฒเบ™เบ›เปˆเบญเบ Mesa 21.2, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบŸเบฃเบตเบ‚เบญเบ‡ OpenGL เปเบฅเบฐ Vulkan

เบซเบผเบฑเบ‡เบˆเบฒเบเบชเบฒเบกเป€เบ”เบทเบญเบ™เบ‚เบญเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบเบฒเบ™เบ›เปˆเบญเบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบŸเบฃเบตเบ‚เบญเบ‡ OpenGL เปเบฅเบฐ Vulkan API - Mesa 21.2.0 - เป„เบ”เป‰เบ–เบทเบเบˆเบฑเบ”เบžเบตเบกเบกเบฒ. เบเบฒเบ™เบ›เปˆเบญเบเบ•เบปเบงเบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบชเบฒเบ‚เบฒ Mesa 21.2.0 เบกเบตเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡ - เบซเบผเบฑเบ‡เบˆเบฒเบเบ„เบงเบฒเบกเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡เบชเบธเบ”เบ—เป‰เบฒเบเบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”, เบฎเบธเปˆเบ™เบ—เบตเปˆเบซเบกเบฑเป‰เบ™เบ„เบปเบ‡ 21.2.1 เบˆเบฐเบ–เบทเบเบ›เปˆเบญเบเบญเบญเบเบกเบฒ.

Mesa 21.2 เบ›เบฐเบเบญเบšเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆเบชเปเบฒเบฅเบฑเบš OpenGL 4.6 เบชเปเบฒเบฅเบฑเบš 965, iris (Intel), radeonsi (AMD), zink เปเบฅเบฐ llvmpipe drivers. เบฎเบญเบ‡เบฎเบฑเบš OpenGL 4.5 เบชเบณเบฅเบฑเบš AMD (r600) เปเบฅเบฐ NVIDIA (nvc0) GPUs, เปเบฅเบฐ เบฎเบญเบ‡เบฎเบฑเบš OpenGL 4.3 เบชเบณเบฅเบฑเบš virgl (Virgil3D virtual GPU for QEMU/KVM). เบฎเบญเบ‡เบฎเบฑเบš Vulkan 1.2 เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบเบฑเบšเบšเบฑเบ” Intel เปเบฅเบฐ AMD, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเปƒเบ™เบฎเบนเบšเปเบšเบš emulator (vn), เบฎเบญเบ‡เบฎเบฑเบš Vulkan 1.1 เบชเปเบฒเบฅเบฑเบš Qualcomm GPUs เปเบฅเบฐ rasterizer เบŠเบญเบšเปเบง lavapipe, เปเบฅเบฐ Vulkan 1.0 เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบš Broadcom VideoCore VI GPUs (Raspberry Pi 4) .

เบ™เบฐเบงเบฑเบ”เบ•เบฐเบเปเบฒเบ•เบปเป‰เบ™เบ•เป:

  • เป„เบ”เป€เบงเบต asahi OpenGL เปเบกเปˆเบ™เบฅเบงเบกเบขเบนเปˆเบเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบš GPU เบฅเบงเบกเบขเบนเปˆเปƒเบ™เบŠเบดเบš Apple M1. เป„เบ”เป€เบงเบตเปƒเบŠเป‰เบญเบดเบ™เป€เบ•เบตเป€เบŸเบ” Gallium เปเบฅเบฐเบฎเบญเบ‡เบฎเบฑเบšเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบชเปˆเบงเบ™เปƒเบซเบเปˆเบ‚เบญเบ‡ OpenGL 2.1 เปเบฅเบฐ OpenGL ES 2.0, เปเบ•เปˆเบเบฑเบ‡เบšเปเปˆเป€เปเบฒเบฐเบชเบปเบกเบชเบณเบฅเบฑเบšเบเบฒเบ™เปเบฅเปˆเบ™เป€เบเบกเบชเปˆเบงเบ™เปƒเบซเบเปˆ. เบฅเบฐเบซเบฑเบ”เป„เบ”เป€เบงเบตเปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆเป„เบ”เป€เบงเบต noop เบญเป‰เบฒเบ‡เบญเบตเบ‡ Gallium, เป‚เบ”เบเบกเบตเบšเบฒเบ‡เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเบ–เบทเบเบชเบปเปˆเบ‡เบกเบฒเบˆเบฒเบเป„เบ”เป€เบงเบต Panfrost เบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบชเปเบฒเบฅเบฑเบš ARM Mali GPU.
  • เป„เบ”เป€เบงเบต Crocus OpenGL เปเบกเปˆเบ™เบฅเบงเบกเบขเบนเปˆเบเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ Intel GPUs เป€เบเบปเปˆเบฒ (เบญเบตเบ‡เปƒเบชเปˆเป‚เบ„เบ‡เบชเป‰เบฒเบ‡ microarchitectures Gen4-Gen7), เป€เบŠเบดเปˆเบ‡เบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบ Iris driver. เบšเปเปˆเป€เบซเบกเบทเบญเบ™เบเบฑเบšเป„เบ”เป€เบงเบต i965, เป„เบ”เป€เบงเบตเปƒเบซเบกเปˆเปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ Gallium3D, เป€เบŠเบดเปˆเบ‡ outsources เบงเบฝเบเบ‡เบฒเบ™เบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเปƒเบซเป‰เบเบฑเบšเป„เบ”เป€เบงเบต DRI เปƒเบ™ Linux kernel เปเบฅเบฐเบชเบฐเบซเบ™เบญเบ‡เบ•เบปเบงเบ•เบดเบ”เบ•เบฒเบกเบฅเบฑเบ”เบ—เบตเปˆเบเบฝเบกเบžเป‰เบญเบกเป‚เบ”เบเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš cache เบ™เปเบฒเปƒเบŠเป‰เบ„เบทเบ™เปƒเบซเบกเปˆเบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเบœเบปเบ™เบœเบฐเบฅเบดเบ”.
  • เป„เบ”เป€เบงเบต PanVk เป„เบ”เป‰เบ–เบทเบเบฅเบงเบกเป€เบ‚เบปเป‰เบฒ, เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš Vulkan graphics API เบชเปเบฒเบฅเบฑเบš ARM Mali Midgard เปเบฅเบฐ Bifrost GPUs. PanVk เบเปเบฒเบฅเบฑเบ‡เบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ”เบเบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เบ‚เบญเบ‡ Collabora เปเบฅเบฐเบ–เบทเบเบˆเบฑเบ”เบ•เปเบฒเปเบซเบ™เปˆเบ‡เป€เบ›เบฑเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™ Panfrost, เป€เบŠเบดเปˆเบ‡เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš OpenGL.
  • เป„เบ”เป€เบงเบต Panfrost เบชเปเบฒเบฅเบฑเบš Midgard GPUs (Mali T760 เปเบฅเบฐเปƒเบซเบกเปˆเบเบงเปˆเบฒ) เปเบฅเบฐ Bifrost GPUs (Mali G31, G52, G76) เบฎเบญเบ‡เบฎเบฑเบš OpenGL ES 3.1. เปเบœเบ™เบเบฒเบ™เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เบ›เบฐเบเบญเบšเบกเบตเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ•เบดเบžเบฒเบšเปƒเบ™เบŠเบดเบš Bifrost เปเบฅเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ GPU เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐ Valhall (Mali G77 เปเบฅเบฐเปƒเบซเบกเปˆเบเบงเปˆเบฒ).
  • เบเบฒเบ™เบชเป‰เบฒเบ‡ 32-bit x86 เปƒเบŠเป‰เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ sse87 เปเบ—เบ™เบ„เปเบฒเปเบ™เบฐเบ™เปเบฒ x2 เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ„เบฐเบ™เบดเบ”เบชเบฒเบ”.
  • เป„เบ”เป€เบงเบต Nouveau nv50 เบชเปเบฒเบฅเบฑเบš NVIDIA GT21x GPU (GeForce GT 2ร—0) เบฎเบญเบ‡เบฎเบฑเบš OpenGL ES 3.1.
  • เป„เบ”เป€เบงเบต Vulkan TURNIP เปเบฅเบฐ OpenGL driver Freedreno, เบžเบฑเบ”เบ—เบฐเบ™เบฒเบชเปเบฒเบฅเบฑเบš Qualcomm Adreno GPU, เบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบชเปเบฒเบฅเบฑเบš GPU Adreno a6xx gen4 (a660, a635).
  • เป„เบ”เป€เบงเบต RADV (AMD) Vulkan เป„เบ”เป‰เป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ culling primitive เป‚เบ”เบเปƒเบŠเป‰ NGG (Next-Gen Geometry) เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ shader. เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เป„เบ”เป€เบงเบต RADV เปƒเบ™เป€เบงเบ—เบต Windows เป‚เบ”เบเปƒเบŠเป‰ MSVC compiler เป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”.
  • เบงเบฝเบเบ‡เบฒเบ™เบเบฒเบ™เบเบฐเบเบฝเบกเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™เป„เบ”เป€เบงเบต ANV Vulkan (Intel) เปเบฅเบฐเป„เบ”เป€เบงเบต Iris OpenGL เป€เบžเบทเปˆเบญเบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบšเบฑเบ”เบเบฒเบŸเบดเบ Intel Xe-HPG (DG2) เบ—เบตเปˆเบˆเบฐเบกเบฒเป€เบ–เบดเบ‡. เบ™เบตเป‰เบ›เบฐเบเบญเบšเบกเบตเบฅเบฑเบเบชเบฐเบ™เบฐเป€เบšเบทเป‰เบญเบ‡เบ•เบปเป‰เบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบฎเบฑเบ‡เบชเบต เปเบฅเบฐเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš ray tracing shaders.
  • เป„เบ”เป€เบงเบต lavapipe, เป€เบŠเบดเปˆเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ” rasterizer เบŠเบญเบšเปเบงเบชเปเบฒเบฅเบฑเบš Vulkan API (เบ›เบฝเบšเบ—เบฝเบšเบเบฑเบš llvmpipe, เปเบ•เปˆเบชเปเบฒเบฅเบฑเบš Vulkan, เบเบฒเบ™เปเบ› Vulkan API เป‚เบ—เบซเบฒ Gallium API), เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบฎเบนเบšเปเบšเบš "wideLines" (เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเป€เบชเบฑเป‰เบ™เบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบเบงเป‰เบฒเบ‡เป€เบเบตเบ™ 1.0).
  • เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบ„เบปเป‰เบ™เบžเบปเบšเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเปเบฅเบฐเบเบฒเบ™เป‚เบซเบผเบ”เบ‚เบญเบ‡ backends GBM (Generic Buffer Manager) เบ—เบฒเบ‡เป€เบฅเบทเบญเบเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”. เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปเบกเปˆเบ™เปเบ™เปƒเบชเปˆเบ›เบฑเบšเบ›เบธเบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ Wayland เปƒเบ™เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบกเบตเบ„เบปเบ™เบ‚เบฑเบš NVIDIA.
  • เป„เบ”เป€เบงเบต Zink (เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ” OpenGL API เบขเบนเปˆเป€เบ—เบดเบ‡เบชเบธเบ”เบ‚เบญเบ‡ Vulkan, เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เป€เบฅเบฑเปˆเบ‡เบฎเบฒเบ”เปเบง OpenGL เบ–เป‰เบฒเบฅเบฐเบšเบปเบšเบกเบตเป„เบ”เป€เบงเบตเบ—เบตเปˆเบˆเบณเบเบฑเบ”เปƒเบซเป‰เบฎเบญเบ‡เบฎเบฑเบšเบชเบฐเป€เบžเบฒเบฐ Vulkan API) เบฎเบญเบ‡เบฎเบฑเบš OpenGL extensions GL_ARB_sample_locations, GL_ARB_sparse_buffer, GL_ARB_shader_group_shate_ARB_text_min, . เป€เบžเบตเปˆเบกเบ•เบปเบงเบ›เบฑเบšเบฎเบนเบšเปเบšเบš DRM (เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบเบฒเบ™เบชเบฐเปเบ”เบ‡เบœเบปเบ™เป‚เบ”เบเบเบปเบ‡, VK_EXT_image_drm_format_modifier เป€เบ›เบตเบ”เปƒเบŠเป‰เบชเปˆเบงเบ™เบ‚เบฐเบซเบเบฒเบเปเบฅเป‰เบง).
  • เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเป€เบ‚เบปเป‰เบฒเปƒเบ™เป„เบ”เป€เบงเบต Vulkan RADV (AMD), ANV (Intel) เปเบฅเบฐ lavapipe:
    • VK_EXT_provoking_vertex (RADV);
    • VK_EXT_extended_dynamic_state2 (RADV);
    • VK_EXT_global_priority_query (RADV);
    • VK_EXT_physical_device_drm (RADV);
    • VK_KHR_shader_subgroup_uniform_control_flow (RADV, ANV);
    • VK_EXT_color_write_enable (RADV);
    • VK_EXT_acquire_drm_display (RADV, ANV);
    • VK_EXT_vertex_input_dynamic_state(lavapipe);
    • VK_EXT_line_rasterization(lavapipe);
    • VK_EXT_multi_draw(ANV, lavapipe, RADV);
    • VK_KHR_separate_depth_stencil_layouts(lavapipe);
    • VK_EXT_separate_stencil_usage(lavapipe);
    • VK_EXT_extended_dynamic_state2 (lavapipe).

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™