Standar grafis Vulkan 1.3 diterbitkan

Setelah dua tahun bekerja, konsorsium standar grafis Khronos telah menerbitkan spesifikasi Vulkan 1.3, yang mendefinisikan API untuk mengakses kemampuan grafis dan komputasi GPU. Spesifikasi baru ini mencakup koreksi dan perpanjangan yang terakumulasi selama dua tahun. Perlu dicatat bahwa persyaratan spesifikasi Vulkan 1.3 dirancang untuk peralatan grafis kelas OpenGL ES 3.1, yang akan memastikan dukungan untuk API grafis baru di semua GPU yang mendukung Vulkan 1.2. Alat Vulkan SDK rencananya akan dipublikasikan pada pertengahan Februari. Selain spesifikasi utama, direncanakan untuk menawarkan ekstensi tambahan untuk perangkat seluler dan desktop kelas menengah dan atas, yang akan didukung sebagai bagian dari edisi β€œVulkan Milestone”.

Pada saat yang sama, sebuah rencana disajikan untuk menerapkan dukungan terhadap spesifikasi baru dan ekstensi tambahan pada kartu grafis dan driver perangkat. Intel, AMD, ARM dan NVIDIA sedang bersiap untuk merilis produk yang mendukung Vulkan 1.3. Misalnya, AMD mengumumkan akan segera mendukung Vulkan 1.3 di kartu grafis seri AMD Radeon RX Vega, serta di semua kartu berbasis arsitektur AMD RDNA. NVIDIA sedang bersiap untuk menerbitkan driver dengan dukungan Vulkan 1.3 untuk Linux dan Windows. ARM akan menambahkan dukungan untuk Vulkan 1.3 ke GPU Mali.

Inovasi utama:

  • Dukungan untuk jalur rendering yang disederhanakan (Streamlining Render Passes, VK_KHR_dynamic_rendering) telah diterapkan, memungkinkan Anda memulai rendering tanpa membuat jalur rendering dan objek framebuffer.
  • Ekstensi baru telah ditambahkan untuk menyederhanakan pengelolaan kompilasi pipeline grafis (pipeline, serangkaian operasi yang mengubah grafik vektor primitif dan tekstur menjadi representasi piksel).
    • VK_EXT_extend_dynamic_state, VK_EXT_extend_dynamic_state2 - menambahkan status dinamis tambahan untuk mengurangi jumlah objek status yang dikompilasi dan dilampirkan.
    • VK_EXT_pipeline_creation_cache_control - Memberikan kontrol tingkat lanjut mengenai kapan dan bagaimana saluran pipa dikompilasi.
    • VK_EXT_pipeline_creation_feedback - Memberikan informasi tentang pipeline yang dikompilasi untuk mempermudah pembuatan profil dan debugging.
  • Sejumlah fitur telah dialihkan dari opsional menjadi wajib. Misalnya, penerapan referensi buffer (VK_KHR_buffer_device_address) dan model memori Vulkan, yang menentukan bagaimana thread serentak dapat mengakses data bersama dan operasi sinkronisasi, kini bersifat wajib.
  • Kontrol subgrup yang terperinci (VK_EXT_subgroup_size_control) disediakan sehingga vendor dapat memberikan dukungan untuk beberapa ukuran subgrup dan pengembang dapat memilih ukuran yang mereka perlukan.
  • Ekstensi VK_KHR_shader_integer_dot_product telah disediakan, yang dapat digunakan untuk mengoptimalkan kinerja kerangka pembelajaran mesin berkat akselerasi perangkat keras dari operasi produk titik.
  • Sebanyak 23 ekspansi baru disertakan:
    • VK_KHR_copy_commands2
    • VK_KHR_dynamic_rendering
    • VK_KHR_format_fitur_bendera2
    • VK_KHR_pemeliharaan4
    • VK_KHR_shader_integer_dot_product
    • VK_KHR_shader_non_semantic_info
    • VK_KHR_shader_terminate_invocation
    • VK_KHR_sinkronisasi2
    • VK_KHR_zero_initialize_workgroup_memory
    • VK_EXT_4444_format
    • VK_EXT_extend_dynamic_state
    • VK_EXT_extend_dynamic_state2
    • VK_EXT_gambar_kekokohan
    • VK_EXT_inline_uniform_block
    • VK_EXT_pipeline_creation_cache_control
    • VK_EXT_pipeline_creation_feedback
    • VK_EXT_data_pribadi
    • VK_EXT_shader_demote_to_helper_invocation
    • VK_EXT_subgrup_ukuran_kontrol
    • VK_EXT_texel_buffer_alignment
    • VK_EXT_texture_compression_astc_hdr
    • VK_EXT_tooling_info
    • VK_EXT_ycbcr_2plane_444_formats
  • Menambahkan tipe objek baru VkPrivateDataSlot. 37 perintah baru dan lebih dari 60 struktur diterapkan.
  • Spesifikasi SPIR-V 1.6 telah diperbarui untuk menentukan representasi shader perantara yang bersifat universal untuk semua platform dan dapat digunakan untuk grafik dan komputasi paralel. SPIR-V melibatkan pemisahan fase kompilasi shader terpisah menjadi representasi perantara, yang memungkinkan Anda membuat frontend untuk berbagai bahasa tingkat tinggi. Berdasarkan berbagai implementasi tingkat tinggi, satu kode perantara dihasilkan secara terpisah, yang dapat digunakan oleh driver OpenGL, Vulkan, dan OpenCL tanpa menggunakan kompiler shader bawaan.
  • Konsep profil kompatibilitas diusulkan. Google adalah pihak pertama yang merilis profil dasar untuk platform Android, yang akan memudahkan dalam menentukan tingkat dukungan kemampuan Vulkan tingkat lanjut pada perangkat di luar spesifikasi Vulkan 1.0. Untuk sebagian besar perangkat, dukungan profil dapat diberikan tanpa menginstal pembaruan OTA.

Ingatlah bahwa Vulkan API terkenal karena penyederhanaan drivernya yang radikal, transfer pembuatan perintah GPU ke sisi aplikasi, kemampuan untuk menghubungkan lapisan debugging, penyatuan API untuk berbagai platform dan penggunaan yang telah dikompilasi sebelumnya. representasi perantara kode untuk eksekusi di sisi GPU. Untuk memastikan kinerja tinggi dan prediktabilitas, Vulkan menyediakan aplikasi dengan kontrol langsung atas operasi GPU dan dukungan asli untuk multi-threading GPU, yang meminimalkan overhead driver dan membuat kemampuan sisi driver menjadi lebih sederhana dan lebih dapat diprediksi. Misalnya, operasi seperti manajemen memori dan penanganan kesalahan, yang diterapkan di OpenGL di sisi driver, dipindahkan ke tingkat aplikasi di Vulkan.

Vulkan menjangkau semua platform yang tersedia dan menyediakan satu API untuk desktop, seluler, dan web, memungkinkan satu API umum digunakan di beberapa GPU dan aplikasi. Berkat arsitektur multi-lapisan Vulkan, yang berarti alat yang dapat digunakan dengan GPU apa pun, OEM dapat menggunakan alat standar industri untuk peninjauan kode, debugging, dan pembuatan profil selama pengembangan. Untuk membuat shader, representasi perantara portabel baru, SPIR-V, diusulkan, berdasarkan LLVM dan berbagi teknologi inti dengan OpenCL. Untuk mengontrol perangkat dan layar, Vulkan menawarkan antarmuka WSI (Window System Integration), yang memecahkan masalah yang kurang lebih sama seperti EGL di OpenGL ES. Dukungan WSI langsung tersedia di Wayland - semua aplikasi yang menggunakan Vulkan dapat berjalan di lingkungan server Wayland yang tidak dimodifikasi. Kemampuan untuk bekerja melalui WSI juga disediakan untuk Android, X11 (dengan DRI3), Windows, Tizen, macOS dan iOS.

Sumber: opennet.ru

Tambah komentar