Standard grafik Vulkan 1.2 diterbitkan

Konsortium Khronos, yang membangunkan piawaian grafik,
diterbitkan spesifikasi Vulkan 1.2, yang mentakrifkan API untuk mengakses grafik dan keupayaan pengkomputeran GPU. Spesifikasi baharu ini menggabungkan pembetulan terkumpul selama dua tahun dan pengembangan. Pemacu yang menyokong versi baharu Vulkan sudah pun dilepaskan syarikat Intel, AMD, ARM, Teknologi Imaginasi dan NVIDIA. Mesa menawarkan sokongan Vulkan 1.2 untuk pemandu RADV (kad AMD) dan ANV (Intel). Sokongan Vulkan 1.2 juga dilaksanakan dalam penyahpepijat RenderDoc 1.6, LunarG Vulkan SDK dan satu set contoh Vulkan-Samples.

Utama inovasi:

  • Dibawa kepada anda pelaksanaan bahasa pengaturcaraan shader sehingga sedia untuk digunakan secara meluas HLSL, dibangunkan oleh Microsoft untuk DirectX. Sokongan HLSL dalam Vulkan membolehkan anda menggunakan shader HLSL yang sama dalam aplikasi berdasarkan Vulkan dan DirectX, dan juga memudahkan terjemahan daripada HLSL kepada SPIR-V. Untuk menyusun shader, dicadangkan untuk menggunakan pengkompil standard
    DXC, yang dibuka oleh Microsoft pada 2017 dan berasaskan teknologi LLVM. Sokongan Vulkan dilaksanakan melalui bahagian belakang yang berasingan, yang membolehkan anda menterjemah HLSL ke dalam perwakilan perantaraan pelorek SPIR-V. Pelaksanaannya meliputi bukan sahaja semua keupayaan terbina dalam
    HLSL, termasuk jenis matematik, aliran kawalan, fungsi, set, jenis sumber, ruang nama, Model Shader 6.2, struktur dan kaedah, tetapi juga membenarkan penggunaan sambungan khusus Vulkan seperti VKRay daripada NVIDIA. Dalam mod HLSL di atas Vulkan, adalah mungkin untuk mengatur kerja permainan seperti Destiny 2, Red Dead Redemption II, Assassin’s Creed Odyssey dan Tomb Raider.

    Standard grafik Vulkan 1.2 diterbitkan

  • Spesifikasi dikemas kini SPIR-V 1.5, yang mentakrifkan perwakilan perantaraan peneduh yang universal untuk semua platform dan boleh digunakan untuk kedua-dua grafik dan pengkomputeran selari.
    SPIR-V melibatkan pemisahan fasa kompilasi shader yang berasingan kepada perwakilan perantaraan, yang membolehkan anda membuat bahagian hadapan untuk pelbagai bahasa peringkat tinggi. Berdasarkan pelbagai pelaksanaan peringkat tinggi, satu kod perantaraan dijana secara berasingan, yang boleh digunakan oleh pemacu OpenGL, Vulkan dan OpenCL tanpa menggunakan pengkompil shader terbina dalam.

    Standard grafik Vulkan 1.2 diterbitkan

  • API Vulkan teras merangkumi 23 sambungan yang meningkatkan prestasi, meningkatkan kualiti pemaparan dan memudahkan pembangunan. Antara sambungan tambahan:
    • Semaphore kronologi (Semafor garis masa), menyatukan penyegerakan dengan hos dan baris gilir peranti (membolehkan anda menggunakan satu primitif untuk penyegerakan omnidirectional antara peranti dan hos, tanpa menggunakan primitif VkFence dan VkSemaphore yang berasingan). Semaphore baharu diwakili oleh nilai 64-bit yang meningkat secara monoton yang boleh dijejaki dan dikemas kini merentas berbilang rangkaian.
      Standard grafik Vulkan 1.2 diterbitkan

    • Keupayaan untuk menggunakan jenis berangka dengan ketepatan yang dikurangkan dalam shader;
    • Pilihan susun atur memori serasi HLSL;
    • Sumber tidak terikat (tanpa terikat), yang menghapuskan had pada bilangan sumber yang tersedia untuk pelorek dengan menggunakan ruang maya kongsi memori sistem dan memori GPU;
    • Model ingatan formal, yang mentakrifkan cara urutan serentak boleh mengakses data kongsi dan operasi penyegerakan;
    • Pengindeksan deskriptor untuk menggunakan semula deskriptor reka letak merentas berbilang shader;
    • Pautan penimbal.

    Senarai penuh sambungan tambahan:

  • Ditambah oleh lebih daripada 50 struktur baharu dan 13 fungsi;
  • Versi spesifikasi yang dipendekkan telah disediakan untuk platform sasaran biasa, memudahkan kerja pada platform yang semua sambungan belum disokong dan membenarkan seseorang melakukannya tanpa pengaktifan terpilih keupayaan asas API Vulkan.
  • Kerja diteruskan pada projek untuk memastikan mudah alih dengan API grafik lain. Sebagai contoh, Vulkan menawarkan sambungan yang membenarkan terjemahan OpenGL (Zink), OpenCL (clspv, clvk), OpenGL ES (GLOVE, Angle) dan DirectX (DXVK, vkd3d) melalui API Vulkan, dan juga, sebaliknya, untuk membolehkan Vulkan berfungsi pada platform tanpa sokongan asalnya (gfx-rs ΠΈ Ashes untuk bekerja di atas OpenGL dan DirectX, MoltenVK dan gfx-rs untuk bekerja di atas Metal).
    Menambah sambungan untuk meningkatkan keserasian dengan DirectX dan HLSL
    VK_KHR_host_query_set, VK_KHR_uniform_buffer_standard_layout, VK_EXT_scalar_block_layout, VK_KHR_separate_stencil_usage, VK_KHR_separate_depth_stencil_layouts dan SPIR-V melaksanakan keupayaan HLSL tertentu.

Rancangan untuk masa depan termasuk pembangunan sambungan untuk pembelajaran mesin, pengesanan sinar, pengekodan dan penyahkodan video, sokongan untuk VRS (lorek kadar pembolehubah) dan pelorek Mesh.

Ingat bahawa API Vulkan luar biasa penyederhanaan radikal pemacu, memindahkan penjanaan arahan GPU ke bahagian aplikasi, keupayaan untuk menyambung lapisan penyahpepijatan, penyatuan API untuk pelbagai platform dan penggunaan perwakilan kod perantaraan yang telah disusun sebelumnya untuk pelaksanaan pada bahagian GPU. Untuk memastikan prestasi tinggi dan kebolehramalan, Vulkan menyediakan aplikasi dengan kawalan langsung ke atas operasi GPU dan sokongan asli untuk pemprosesan arahan GPU berbilang benang, yang meminimumkan overhed pemandu dan menjadikan keupayaan bahagian pemandu lebih mudah dan lebih mudah diramal. Sebagai contoh, operasi seperti pengurusan memori dan pengendalian ralat, dilaksanakan dalam OpenGL pada bahagian pemacu, dipindahkan ke peringkat aplikasi dalam Vulkan.

Vulkan merangkumi semua platform yang tersedia dan menyediakan satu API untuk desktop, mudah alih dan web, membolehkan satu API biasa digunakan merentas berbilang GPU dan aplikasi. Terima kasih kepada seni bina berbilang lapisan Vulkan, yang bermaksud alatan yang berfungsi dengan mana-mana GPU, OEM boleh menggunakan alatan standard industri untuk semakan kod, penyahpepijatan dan pemprofilan semasa pembangunan. Untuk mencipta shader, perwakilan perantara mudah alih baharu, SPIR-V, dicadangkan, berdasarkan LLVM dan berkongsi teknologi teras dengan OpenCL. Untuk mengawal peranti dan skrin, Vulkan menawarkan antara muka WSI (Window System Integration), yang menyelesaikan lebih kurang masalah yang sama seperti EGL dalam OpenGL ES. Sokongan WSI tersedia di luar kotak dalam Wayland - semua aplikasi yang menggunakan Vulkan boleh dijalankan dalam persekitaran pelayan Wayland yang tidak diubah suai. Keupayaan untuk bekerja melalui WSI juga disediakan untuk Android, X11 (dengan DRI3), Windows, Tizen, macOS dan iOS.

Sumber: opennet.ru

Tambah komen