การเปิดตัว 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 รองรับ OpenGL 4.5 สำหรับ GPU AMD (r600) และ NVIDIA (nvc0) และรองรับ OpenGL 4.3 สำหรับ virgl (Virgil3D virtual GPU สำหรับ QEMU/KVM) รองรับ Vulkan 1.2 สำหรับการ์ด Intel และ AMD รวมถึงในโหมดจำลอง (vn) รองรับ Vulkan 1.1 สำหรับ Qualcomm GPU และซอฟต์แวร์ lavapipe rasterizer และ 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 GPU รุ่นเก่า (ใช้สถาปัตยกรรมไมโคร Gen4-Gen7) ซึ่งไดรเวอร์ Iris ไม่รองรับ ไดรเวอร์ใหม่นี้แตกต่างจากไดรเวอร์ i965 ตรงที่ใช้สถาปัตยกรรม Gallium3D ซึ่งจัดจ้างงานการจัดการหน่วยความจำภายนอกให้กับไดรเวอร์ DRI ในเคอร์เนล Linux และจัดเตรียมตัวติดตามสถานะสำเร็จรูปพร้อมรองรับแคชที่นำกลับมาใช้ใหม่ของออบเจ็กต์เอาท์พุต
  • รวมไดรเวอร์ PanVk ซึ่งให้การสนับสนุน Vulkan กราฟิก API สำหรับ ARM Mali Midgard และ Bifrost GPU PanVk กำลังได้รับการพัฒนาโดยพนักงานของ Collabora และอยู่ในสถานะเป็นการต่อยอดการพัฒนาโครงการ Panfrost ซึ่งให้การสนับสนุน OpenGL
  • ไดรเวอร์ Panfrost สำหรับ GPU Midgard (Mali T760 และใหม่กว่า) และ GPU Bifrost (Mali G31, G52, G76) รองรับ OpenGL ES 3.1 แผนในอนาคตรวมถึงการทำงานเพื่อเพิ่มประสิทธิภาพบนชิป Bifrost และการใช้งานการรองรับ GPU ตามสถาปัตยกรรม Valhall (Mali G77 และใหม่กว่า)
  • รุ่น 32 บิต x86 ใช้คำสั่ง sse87 แทนคำสั่ง x2 สำหรับการคำนวณทางคณิตศาสตร์
  • ไดรเวอร์ Nouveau nv50 สำหรับ NVIDIA GT21x GPU (GeForce GT 2×0) รองรับ OpenGL ES 3.1
  • ไดรเวอร์ Vulkan TURNIP และไดรเวอร์ OpenGL Freedreno ซึ่งพัฒนาขึ้นสำหรับ Qualcomm Adreno GPU ได้รับการรองรับเบื้องต้นสำหรับ Adreno a6xx gen4 GPU (a660, a635)
  • ไดรเวอร์ RADV (AMD) Vulkan ได้เพิ่มการรองรับสำหรับการคัดเลือกแบบดั้งเดิมโดยใช้เอ็นจิ้นเชเดอร์ NGG (Next-Gen Geometry) ความสามารถในการสร้างไดรเวอร์ RADV บนแพลตฟอร์ม Windows โดยใช้คอมไพเลอร์ MSVC ได้ถูกนำมาใช้แล้ว
  • มีการดำเนินการเตรียมการในไดรเวอร์ ANV Vulkan (Intel) และไดรเวอร์ Iris OpenGL เพื่อให้รองรับกราฟิกการ์ด Intel Xe-HPG (DG2) ที่กำลังจะมาถึง ซึ่งรวมถึงคุณสมบัติเบื้องต้นที่เกี่ยวข้องกับ Ray Tracing และการรองรับ Ray Tracing Shader
  • ไดรเวอร์ lavapipe ซึ่งใช้ซอฟต์แวร์แรสเตอร์ไรเซอร์สำหรับ Vulkan API (คล้ายกับ llvmpipe แต่สำหรับ Vulkan ที่แปลการเรียก Vulkan API เป็น Gallium API) รองรับโหมด “wideLines” (ให้การสนับสนุนสำหรับบรรทัดที่มีความกว้างเกิน 1.0)
  • มีการใช้การสนับสนุนสำหรับการค้นหาแบบไดนามิกและการโหลดแบ็กเอนด์ GBM (Generic Buffer Manager) สำรองแล้ว การเปลี่ยนแปลงนี้มีจุดมุ่งหมายเพื่อปรับปรุงการรองรับ Wayland บนระบบที่มีไดรเวอร์ NVIDIA
  • ไดรเวอร์ Zink (การใช้งาน OpenGL API บน Vulkan ซึ่งช่วยให้คุณได้รับ OpenGL ที่เร่งด้วยฮาร์ดแวร์หากระบบมีไดรเวอร์ที่จำกัดให้รองรับเฉพาะ Vulkan API เท่านั้น) รองรับส่วนขยาย OpenGL GL_ARB_sample_locations, GL_ARB_sparse_buffer, GL_ARB_shader_group_vote, GL_ARB_texture_filter_minmax และ GL_ARB_shader_clock เพิ่มตัวดัดแปลงรูปแบบ DRM (ตัวจัดการการแสดงผลโดยตรง, เปิดใช้งานส่วนขยาย VK_EXT_image_drm_format_modifier)
  • เพิ่มการรองรับส่วนขยายให้กับไดรเวอร์ Vulkan RADV (AMD), ANV (Intel) และ lavapipe:
    • VK_EXT_provoking_vertex (RADV);
    • VK_EXT_extend_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 (ลาวาพิพ);
    • VK_EXT_line_rasterization(ลาวาพิพ);
    • VK_EXT_multi_draw(ANV, ลาวาพิป, RADV);
    • VK_KHR_separate_deep_stencil_layouts(ลาวาพิเป้);
    • VK_EXT_separate_stencil_usage(ลาวาพิเป้);
    • VK_EXT_extend_dynamic_state2 (ลาวาพิป)

ที่มา: opennet.ru

เพิ่มความคิดเห็น