Keluaran Mesa 21.2, pelaksanaan percuma OpenGL dan Vulkan

Selepas tiga bulan pembangunan, keluaran pelaksanaan percuma OpenGL dan API Vulkan, Mesa 21.2.0, telah diterbitkan. Keluaran pertama cawangan Mesa 21.2.0 mempunyai status percubaan - selepas penstabilan akhir kod, versi stabil 21.2.1 akan dikeluarkan.

Mesa 21.2 mempunyai sokongan penuh OpenGL 4.6 untuk pemacu 965, iris (Intel), radeonsi (AMD), zink dan llvmpipe. Sokongan OpenGL 4.5 tersedia untuk GPU AMD (r600) dan NVIDIA (nvc0), dan OpenGL 4.3 untuk virgl (GPU maya Virgil3D untuk QEMU/KVM). Sokongan Vulkan 1.2 tersedia untuk kad Intel dan AMD, serta dalam mod emulator (vn), sokongan Vulkan 1.1 tersedia untuk GPU Qualcomm dan rasterizer perisian lavapipe, dan Vulkan 1.0 untuk GPU Broadcom VideoCore VI (Raspberry Pi 4).

Inovasi utama:

  • Pemacu Asahi OpenGL disertakan dengan sokongan awal untuk GPU yang dibekalkan dalam cip Apple M1. Pemacu menggunakan antara muka Gallium dan menyokong kebanyakan ciri OpenGL 2.1 dan OpenGL ES 2.0, tetapi belum lagi sesuai untuk menjalankan kebanyakan permainan. Kod pemacu adalah berdasarkan pemacu Gallium rujukan noop, dengan beberapa kod dialihkan daripada pemacu Panfrost yang dibangunkan untuk GPU ARM Mali.
  • Pemacu Crocus OpenGL disertakan dengan sokongan untuk GPU Intel yang lebih lama (berdasarkan mikroarchitecture Gen4-Gen7) yang tidak disokong oleh pemacu Iris. Tidak seperti pemacu i965, pemacu baharu adalah berdasarkan seni bina Gallium3D, yang menyumber luar tugas pengurusan memori kepada pemacu DRI dalam kernel Linux dan menyediakan penjejak keadaan siap sedia dengan sokongan untuk cache penggunaan semula objek output.
  • Pemacu PanVk disertakan, menyediakan sokongan untuk API grafik Vulkan untuk GPU ARM Mali Midgard dan Bifrost. PanVk dibangunkan oleh pekerja Collabora dan diletakkan sebagai kesinambungan pembangunan projek Panfrost, yang menyediakan sokongan untuk OpenGL.
  • Pemacu Panfrost untuk GPU Midgard (Mali T760 dan lebih baharu) dan GPU Bifrost (Mali G31, G52, G76) menyokong OpenGL ES 3.1. Pelan lanjut termasuk kerja untuk meningkatkan prestasi pada cip Bifrost dan sokongan untuk GPU berdasarkan seni bina Valhall (Mali G77 dan lebih baharu).
  • Binaan 32-bit untuk seni bina x86 menggunakan arahan sse87 dan bukannya arahan x2 untuk pengiraan matematik.
  • Pemacu nv50 Nouveau untuk GPU NVIDIA GT21x (GeForce GT 2x0) menyokong OpenGL ES 3.1.
  • Pemacu TURNIP Vulkan dan pemacu Freedreno OpenGL yang dibangunkan untuk GPU Qualcomm Adreno mempunyai sokongan awal untuk GPU Adreno a6xx gen4 (a660, a635).
  • Sokongan untuk pemusnahan primitif menggunakan enjin peneduh NGG (Next-Gen Geometry) telah ditambahkan pada pemacu RADV (AMD) Vulkan. Melaksanakan keupayaan untuk membina pemacu RADV pada platform Windows menggunakan pengkompil MSVC.
  • Pemacu ANV Vulkan (Intel) dan pemacu Iris OpenGL telah bersedia untuk menyokong kad grafik Intel Xe-HPG (DG2) yang akan datang. Ini termasuk ciri awal yang berkaitan dengan pengesanan sinar dan sokongan shader untuk pengesanan sinar.
  • Pemacu lavapipe dengan pelaksanaan rasterizer perisian untuk API Vulkan (serupa dengan llvmpipe, tetapi untuk Vulkan, yang menterjemahkan panggilan API Vulkan kepada API Gallium) menyokong mod "wideLines" (menyediakan sokongan untuk garisan dengan lebar lebih daripada 1.0 ).
  • Sokongan yang dilaksanakan untuk penemuan dinamik dan pemuatan bahagian belakang GBM (Generic Buffer Manager) alternatif. Perubahan ini bertujuan untuk menambah baik sokongan Wayland pada sistem dengan pemacu NVIDIA.
  • Pemacu Zink (pelaksanaan OpenGL API di atas Vulkan yang membolehkan anda mendapatkan OpenGL dipercepatkan perkakasan apabila sistem mempunyai pemacu yang terhad kepada menyokong API Vulkan sahaja) menyokong sambungan OpenGL GL_ARB_sample_locations, GL_ARB_sparse_buffer, GL_ARB_shader_group_vote_maxRB_ARB_lock_max, GL_ARBc_vote, GL_ARB_sparse_buffer, GL_ARB_shader_group_vote_maksRB_filArb_text_min. Menambahkan pengubah suai format DRM (Pengurus Rendering Langsung, sambungan VK_EXT_image_drm_format_modifier disertakan).
  • Menambah sokongan untuk sambungan pada pemacu RADV (AMD), ANV (Intel) dan lavapipe Vulkan:
    • 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).

Sumber: opennet.ru

Tambah komen