Rilis Mesa 21.2, implementasi gratis OpenGL dan Vulkan

Setelah tiga bulan pengembangan, rilis implementasi gratis OpenGL dan Vulkan API - Mesa 21.2.0 - diterbitkan. Rilis pertama cabang Mesa 21.2.0 memiliki status eksperimental - setelah stabilisasi akhir kode, versi stabil 21.2.1 akan dirilis.

Mesa 21.2 mencakup dukungan penuh untuk OpenGL 4.6 untuk driver 965, iris (Intel), radeonsi (AMD), zink dan llvmpipe. Dukungan OpenGL 4.5 tersedia untuk GPU AMD (r600) dan NVIDIA (nvc0), dan dukungan OpenGL 4.3 untuk virgl (GPU virtual Virgil3D untuk QEMU/KVM). Dukungan Vulkan 1.2 tersedia untuk kartu Intel dan AMD, serta dalam mode emulator (vn), dukungan Vulkan 1.1 tersedia untuk GPU Qualcomm dan rasterizer perangkat lunak lavapipe, dan Vulkan 1.0 tersedia untuk GPU Broadcom VideoCore VI (Raspberry Pi 4) .

Inovasi utama:

  • Driver asahi OpenGL disertakan dengan dukungan awal untuk GPU yang disertakan dalam chip Apple M1. Driver menggunakan antarmuka Gallium dan mendukung sebagian besar fitur OpenGL 2.1 dan OpenGL ES 2.0, namun belum cocok untuk menjalankan sebagian besar game. Kode driver didasarkan pada driver noop referensi Gallium, dengan beberapa kode porting dari driver Panfrost yang dikembangkan untuk GPU ARM Mali.
  • Driver Crocus OpenGL disertakan dengan dukungan untuk GPU Intel lama (berdasarkan mikroarsitektur Gen4-Gen7), yang tidak didukung oleh driver Iris. Berbeda dengan driver i965, driver baru ini didasarkan pada arsitektur Gallium3D, yang mengalihdayakan tugas manajemen memori ke driver DRI di kernel Linux dan menyediakan pelacak status siap pakai dengan dukungan untuk menggunakan kembali cache objek keluaran.
  • Driver PanVk disertakan, memberikan dukungan untuk API grafis Vulkan untuk GPU ARM Mali Midgard dan Bifrost. PanVk dikembangkan oleh karyawan Collabora dan diposisikan sebagai kelanjutan dari pengembangan proyek Panfrost yang memberikan dukungan untuk OpenGL.
  • Driver Panfrost untuk GPU Midgard (Mali T760 dan yang lebih baru) dan GPU Bifrost (Mali G31, G52, G76) mendukung OpenGL ES 3.1. Rencana masa depan mencakup upaya untuk meningkatkan kinerja pada chip Bifrost dan penerapan dukungan GPU berdasarkan arsitektur Valhall (Mali G77 dan yang lebih baru).
  • Build x32 86-bit menggunakan instruksi sse87, bukan instruksi x2 untuk perhitungan matematika.
  • Driver Nouveau nv50 untuk GPU NVIDIA GT21x (GeForce GT 2Γ—0) mendukung OpenGL ES 3.1.
  • Driver Vulkan TURNIP dan driver OpenGL Freedreno, yang dikembangkan untuk GPU Qualcomm Adreno, memiliki dukungan awal untuk GPU Adreno a6xx gen4 (a660, a635).
  • Driver RADV (AMD) Vulkan telah menambahkan dukungan untuk pemusnahan primitif menggunakan mesin shader NGG (Next-Gen Geometry). Kemampuan untuk membangun driver RADV pada platform Windows menggunakan kompiler MSVC telah diterapkan.
  • Pekerjaan persiapan telah dilakukan pada driver ANV Vulkan (Intel) dan driver Iris OpenGL untuk memberikan dukungan bagi kartu grafis Intel Xe-HPG (DG2) yang akan datang. Ini mencakup fitur awal yang terkait dengan ray tracing dan dukungan untuk ray tracing shader.
  • Driver lavapipe, yang mengimplementasikan rasterizer perangkat lunak untuk Vulkan API (analog dengan llvmpipe, tetapi untuk Vulkan, menerjemahkan panggilan Vulkan API ke Gallium API), mendukung mode β€œwideLines” (menyediakan dukungan untuk garis dengan lebar melebihi 1.0).
  • Dukungan untuk penemuan dinamis dan pemuatan backend GBM (Generic Buffer Manager) alternatif telah diterapkan. Perubahan ini bertujuan untuk meningkatkan dukungan Wayland pada sistem dengan driver NVIDIA.
  • Driver Zink (implementasi OpenGL API di atas Vulkan, yang memungkinkan Anda mendapatkan OpenGL yang dipercepat perangkat keras jika sistem memiliki driver yang terbatas hanya mendukung Vulkan API) mendukung ekstensi OpenGL GL_ARB_sample_locations, GL_ARB_sparse_buffer, GL_ARB_shader_group_vote, GL_ARB_texture_filter_minmax dan GL_ARB_shader_clock. Menambahkan pengubah format DRM (Direct Rendering Manager, ekstensi VK_EXT_image_drm_format_modifier diaktifkan).
  • Dukungan untuk ekstensi telah ditambahkan ke driver Vulkan RADV (AMD), ANV (Intel) dan 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(lavapipe);
    • VK_EXT_line_rasterization(lavapipe);
    • VK_EXT_multi_draw(ANV, pipa lava, RADV);
    • VK_KHR_separate_ depth_stencil_layouts(lavapipe);
    • VK_EXT_separate_stencil_usage(lavapipe);
    • VK_EXT_exended_dynamic_state2 (pipa lava).

Sumber: opennet.ru

Tambah komentar