Κυκλοφορία του Mesa 22.3, μια δωρεάν εφαρμογή των OpenGL και Vulkan

Δημοσιεύτηκε η κυκλοφορία της δωρεάν υλοποίησης των API OpenGL και Vulkan - Mesa 22.3.0. Η πρώτη έκδοση του κλάδου Mesa 22.3.0 έχει πειραματική κατάσταση - μετά την τελική σταθεροποίηση του κώδικα, θα κυκλοφορήσει μια σταθερή έκδοση 22.3.1.

Το Mesa 22.3 παρέχει υποστήριξη για το API γραφικών Vulkan 1.3 σε anv για επεξεργαστές Intel GPU, radv για GPU AMD, tu για GPU Qualcomm και σε λειτουργία εξομοιωτή (vn). Η υποστήριξη Vulkan 1.1 υλοποιείται στο πρόγραμμα rasterizer του λογισμικού lavapipe (lvp) και στο πρόγραμμα οδήγησης v1.0dv για το Vulkan 3 (GPU Broadcom VideoCore VI από το Raspberry Pi 4).

Το Mesa παρέχει επίσης πλήρη υποστήριξη OpenGL 4.6 για τα προγράμματα οδήγησης 965, iris (Intel), radeonsi (AMD), zink και llvmpipe. Η υποστήριξη OpenGL 4.5 είναι διαθέσιμη για GPU AMD (r600), NVIDIA (nvc0) και Qualcomm Adreno (freedreno), OpenGL 4.3 για virgl (virgil3D virtual GPU για QEMU/KVM) και OpenGL 4.2 για το πρόγραμμα οδήγησης d3d12 OpenGL (ένα επίπεδο για εργαστείτε πάνω από το DirectX 12).

Βασικές καινοτομίες:

  • Το πρόγραμμα οδήγησης freedreno για τις GPU Qualcomm Adreno παρέχει υποστήριξη για το API γραφικών OpenGL 4.5 και το πρόγραμμα οδήγησης εξομοιωτή (vn) υποστηρίζει το Vulkan 1.3 API.
  • Το πρόγραμμα οδήγησης Panfrost υλοποιεί τη δυνατότητα προσωρινής αποθήκευσης shaders στο δίσκο και προσθέτει υποστήριξη για την GPU Mali T620. Το πρόγραμμα οδήγησης είναι συμβατό με τις προδιαγραφές OpenGL 3.1 και OpenGL ES 3.1.
  • Το πρόγραμμα οδήγησης Vulkan RADV (AMD) έχει προσθέσει υποστήριξη για GPU GFX11/RDNA3 (σειρά Radeon RX 7000). Ο κώδικας για την ανίχνευση ακτίνων έχει βελτιστοποιηθεί. Προστέθηκε υποστήριξη για μορφές pixel R8G8B8, B8G8R8 και R16G16B16, καθώς και μορφές buffer vertex 64 bit. Προστέθηκε υποστήριξη για τη σημαία ExtendedDynamicState2PatchControlPoints, η οποία καθορίζει την υποστήριξη για την επέκταση VK_EXT_extended_dynamic_state2. Ενσωματωμένος αναλυτής Radeon Raytracing.
  • Το πακέτο περιλαμβάνει το πρόγραμμα οδήγησης Rusticle με την υλοποίηση της προδιαγραφής OpenCL 3.0, που ορίζει το API και τις επεκτάσεις της γλώσσας C για την οργάνωση παράλληλων υπολογιστών μεταξύ πλατφορμών. Το πρόγραμμα οδήγησης είναι γραμμένο σε Rust, αναπτύχθηκε χρησιμοποιώντας τη διεπαφή Gallium που παρέχεται στο Mesa και λειτουργεί ως ανάλογο της διεπαφής Clover OpenCL που υπάρχει στο Mesa. Το τριφύλλι έχει εγκαταλειφθεί εδώ και πολύ καιρό και το ρουστίκ τοποθετείται ως μελλοντικός αντικαταστάτης του. Η υποστήριξη για Rust και rusticl είναι απενεργοποιημένη από προεπιλογή και απαιτεί μια έκδοση με σαφείς επιλογές "-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021". Κατά την κατασκευή, απαιτούνται ως πρόσθετες εξαρτήσεις ο μεταγλωττιστής rustc, η γεννήτρια σύνδεσης bindgen, το LLVM, το SPIRV-Tools και το SPIRV-LLVM-Translator.
  • Το πρόγραμμα οδήγησης RadeonSI περιλαμβάνει υποστήριξη για απόδοση πολλαπλών νημάτων μέσω OpenGL από προεπιλογή.
  • Παρουσιάστηκε το Mesa-DB, ένας νέος τύπος κρυφής μνήμης shader που αποθηκεύει δεδομένα σε ένα μόνο αρχείο.
  • Προστέθηκε υποστήριξη για επεκτάσεις OpenGL:
    • GL_ARB_shader_clock για llvmpipe.
    • GL_KHR_blend_equation_advanced_coherent για zink.
    • GL_NV_shader_atomic_float για llvmpipe.
  • Προστέθηκε υποστήριξη για επεκτάσεις Vulkan:
    • VK_KHR_shader_clock για lavapipe.
    • VK_EXT_attachment_feedback_loop_layout για RADV, lavapipe.
    • VK_KHR_global_priority για RADV.
    • VK_EXT_load_store_op_none για RADV.
    • VK_EXT_mutable_descriptor_type για RADV.
    • VK_EXT_shader_atomic_float για lvp.
    • VK_EXT_shader_atomic_float2 για lvp.
    • VK_EXT_image_robustness για v3dv.
    • VK_EXT_extended_dynamic_state3 για lavapipe, RADV και ANV.
    • VK_EXT_extended_dynamic_state2 για RADV.
    • VK_EXT_pipeline_robustness για v3dv.
    • VK_EXT_mesh_shader για ANV.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο