Pagpagawas sa Mesa 21.2, usa ka libre nga pagpatuman sa OpenGL ug Vulkan

Pagkahuman sa tulo ka bulan nga pag-uswag, ang pagpagawas sa usa ka libre nga pagpatuman sa OpenGL ug Vulkan API - Mesa 21.2.0 - gipatik. Ang una nga pagpagawas sa sanga sa Mesa 21.2.0 adunay eksperimento nga kahimtang - pagkahuman sa katapusan nga pagpalig-on sa code, usa ka lig-on nga bersyon 21.2.1 ipagawas.

Ang Mesa 21.2 naglakip sa bug-os nga suporta alang sa OpenGL 4.6 alang sa 965, iris (Intel), radeonsi (AMD), zink ug llvmpipe nga mga drayber. Ang suporta sa OpenGL 4.5 magamit alang sa AMD (r600) ug NVIDIA (nvc0) nga mga GPU, ug suporta sa OpenGL 4.3 alang sa virgl (Virgil3D virtual GPU alang sa QEMU/KVM). Ang suporta sa Vulkan 1.2 anaa alang sa Intel ug AMD card, ingon man sa emulator mode (vn), ang Vulkan 1.1 nga suporta anaa alang sa Qualcomm GPUs ug ang lavapipe software rasterizer, ug ang Vulkan 1.0 anaa alang sa Broadcom VideoCore VI GPUs (Raspberry Pi 4) .

Panguna nga mga inobasyon:

  • Ang drayber sa asahi OpenGL gilakip sa inisyal nga suporta alang sa GPU nga gilakip sa Apple M1 chips. Gigamit sa drayber ang interface sa Gallium ug gisuportahan ang kadaghanan sa mga bahin sa OpenGL 2.1 ug OpenGL ES 2.0, apan dili pa angay alang sa pagpadagan sa kadaghanan nga mga dula. Ang driver code gibase sa Gallium reference noop driver, nga adunay pipila ka code nga gi-port gikan sa Panfrost driver nga gimugna alang sa ARM Mali GPU.
  • Ang drayber sa Crocus OpenGL gilakip sa suporta alang sa mga tigulang nga Intel GPUs (base sa Gen4-Gen7 microarchitectures), nga wala gisuportahan sa Iris driver. Dili sama sa drayber sa i965, ang bag-ong drayber gibase sa arkitektura sa Gallium3D, nga nag-outsource sa mga buluhaton sa pagdumala sa panumduman ngadto sa drayber sa DRI sa Linux kernel ug naghatag og andam nga state tracker nga adunay suporta alang sa paggamit pag-usab sa cache sa mga butang nga output.
  • Ang drayber sa PanVk gilakip, nga naghatag suporta alang sa Vulkan graphics API alang sa ARM Mali Midgard ug Bifrost GPUs. Ang PanVk gipalambo sa mga empleyado sa Collabora ug gipahimutang ingon usa ka pagpadayon sa pagpauswag sa proyekto sa Panfrost, nga naghatag suporta alang sa OpenGL.
  • Ang Panfrost driver para sa Midgard GPUs (Mali T760 ug mas bag-o) ug Bifrost GPUs (Mali G31, G52, G76) nagsuporta sa OpenGL ES 3.1. Ang umaabot nga mga plano naglakip sa trabaho aron madugangan ang performance sa Bifrost chips ug ang pagpatuman sa suporta sa GPU base sa arkitektura sa Valhall (Mali G77 ug mas bag-o).
  • Ang 32-bit x86 nga mga pagtukod naggamit sa mga instruksyon sa sse87 imbes sa mga instruksiyon sa x2 alang sa mga kalkulasyon sa matematika.
  • Ang driver sa Nouveau nv50 alang sa NVIDIA GT21x GPU (GeForce GT 2 Γ— 0) nagsuporta sa OpenGL ES 3.1.
  • Ang Vulkan driver nga TURNIP ug ang OpenGL driver nga Freedreno, naugmad para sa Qualcomm Adreno GPU, adunay inisyal nga suporta alang sa Adreno a6xx gen4 GPU (a660, a635).
  • Ang drayber sa RADV (AMD) Vulkan nagdugang suporta alang sa primitive culling gamit ang NGG (Next-Gen Geometry) shader engine. Ang abilidad sa pagtukod sa RADV driver sa Windows platform gamit ang MSVC compiler gipatuman.
  • Ang buluhaton sa pagpangandam gihimo sa drayber sa ANV Vulkan (Intel) ug ang drayber sa Iris OpenGL aron mahatagan og suporta ang umaabot nga Intel Xe-HPG (DG2) graphics card. Naglakip kini sa mga inisyal nga bahin nga may kalabotan sa pagsubay sa sinag ug suporta alang sa mga shaders sa pagsubay sa ray.
  • Ang drayber sa lavapipe, nga nagpatuman ug software rasterizer alang sa Vulkan API (kaamgid sa llvmpipe, apan alang sa Vulkan, naghubad sa Vulkan API nga mga tawag sa Gallium API), nagsuporta sa mode nga "wideLines" (naghatag og suporta alang sa mga linya nga may gilapdon nga labaw sa 1.0).
  • Ang suporta alang sa dinamikong pagdiskobre ug pagkarga sa alternatibong GBM (Generic Buffer Manager) nga mga backend gipatuman. Ang pagbag-o gitumong sa pagpauswag sa suporta sa Wayland sa mga sistema nga adunay mga drayber sa NVIDIA.
  • Ang Zink driver (usa ka implementasyon sa OpenGL API sa ibabaw sa Vulkan, nga nagtugot kanimo sa pagkuha sa hardware accelerated OpenGL kung ang sistema adunay mga driver nga limitado sa pagsuporta lamang sa Vulkan API) nagsuporta sa OpenGL extensions GL_ARB_sample_locations, GL_ARB_sparse_buffer, GL_ARB_shader_group_vote_maxRB_ARB_lock_and_text_maxRB_ARB_ARB_CAD Gidugang ang DRM format modifiers (Direct Rendering Manager, VK_EXT_image_drm_format_modifier extension enabled).
  • Ang suporta alang sa mga extension gidugang sa mga drayber sa Vulkan RADV (AMD), ANV (Intel) ug 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).

Source: opennet.ru

Idugang sa usa ka comment