Grafik standardı Vulkan 1.3 yayınlandı

İki yıllık çalışmanın ardından grafik standartları konsorsiyumu Khronos, GPU'ların grafiklerine ve bilgi işlem yeteneklerine erişim için bir API tanımlayan Vulkan 1.3 spesifikasyonunu yayınladı. Yeni spesifikasyon, iki yıl boyunca biriken düzeltmeleri ve genişletmeleri içermektedir. Vulkan 1.3 spesifikasyonunun gereksinimlerinin OpenGL ES 3.1 sınıfı grafik ekipmanları için tasarlandığı, bunun da Vulkan 1.2'yi destekleyen tüm GPU'larda yeni grafik API'sine destek sağlayacağı belirtiliyor. Vulkan SDK araçlarının Şubat ortasında yayınlanması planlanıyor. Ana spesifikasyona ek olarak, orta ve üst seviye mobil ve masaüstü cihazlar için “Vulkan Milestone” sürümü kapsamında desteklenecek ek uzantıların sunulması planlanıyor.

Aynı zamanda, yeni spesifikasyona yönelik desteğin ve grafik kartları ve aygıt sürücülerinde ek uzantıların uygulanmasına yönelik bir plan sunuldu. Intel, AMD, ARM ve NVIDIA, Vulkan 1.3'ü destekleyen ürünleri piyasaya sürmeye hazırlanıyor. Örneğin AMD, yakında AMD Radeon RX Vega serisi grafik kartlarında ve AMD RDNA mimarisine dayanan tüm kartlarda Vulkan 1.3'ü destekleyeceğini duyurdu. NVIDIA, Linux ve Windows için Vulkan 1.3 destekli sürücüleri yayınlamaya hazırlanıyor. ARM, Mali GPU'lara Vulkan 1.3 desteği ekleyecek.

Ana yenilikler:

  • Basitleştirilmiş işleme geçişleri desteği (Rendering Geçişlerini Kolaylaştırma, VK_KHR_dynamic_rendering) uygulanarak, işleme geçişleri ve çerçeve arabelleği nesneleri oluşturmadan işleme başlamanıza olanak tanır.
  • Grafik işlem hattı derlemesinin yönetimini basitleştirmek için yeni uzantılar eklendi (boru hattı, vektör grafik temellerini ve dokularını piksel temsillerine dönüştüren bir dizi işlem).
    • VK_EXT_extished_dynamic_state, VK_EXT_extished_dynamic_state2 - derlenmiş ve iliştirilmiş durum nesnelerinin sayısını azaltmak için ek dinamik durumlar ekleyin.
    • VK_EXT_pipeline_creation_cache_control - İşlem hatlarının ne zaman ve nasıl derlendiğine ilişkin gelişmiş kontroller sağlar.
    • VK_EXT_pipeline_creation_feedback - Profil oluşturmayı ve hata ayıklamayı kolaylaştırmak için derlenmiş işlem hatları hakkında bilgi sağlar.
  • Bir dizi özellik isteğe bağlı durumdan zorunlu duruma aktarıldı. Örneğin, arabellek referanslarının (VK_KHR_buffer_device_address) ve eşzamanlı iş parçacıklarının paylaşılan verilere ve senkronizasyon işlemlerine nasıl erişebileceğini tanımlayan Vulkan bellek modelinin uygulanması artık zorunludur.
  • Satıcıların birden fazla alt grup boyutu için destek sağlayabilmesi ve geliştiricilerin ihtiyaç duydukları boyutu seçebilmesi için ayrıntılı alt grup kontrolü (VK_EXT_subgroup_size_control) sağlanır.
  • Nokta çarpım işlemlerinin donanım hızlandırması sayesinde makine öğrenimi çerçevelerinin performansını optimize etmek için kullanılabilecek VK_KHR_shader_integer_dot_product uzantısı sağlanmıştır.
  • Toplam 23 yeni genişletme dahildir:
    • VK_KHR_copy_commands2
    • VK_KHR_dynamic_rendering
    • VK_KHR_format_feature_flags2
    • VK_KHR_bakım4
    • VK_KHR_shader_integer_dot_product
    • VK_KHR_shader_non_semantic_info
    • VK_KHR_shader_terminate_invokasyon
    • VK_KHR_senkronizasyon2
    • VK_KHR_zero_initialize_workgroup_memory
    • VK_EXT_4444_formatları
    • VK_EXT_extished_dynamic_state
    • VK_EXT_extished_dynamic_state2
    • VK_EXT_image_sağlamlık
    • VK_EXT_inline_uniform_block
    • VK_EXT_pipeline_creation_cache_control
    • VK_EXT_pipeline_creation_feedback
    • VK_EXT_private_data
    • VK_EXT_shader_demote_to_helper_invokasyon
    • VK_EXT_subgroup_size_control
    • VK_EXT_texel_buffer_alignment
    • VK_EXT_texture_compression_astc_hdr
    • VK_EXT_tooling_info
    • VK_EXT_ycbcr_2plane_444_formats
  • Yeni bir nesne türü VkPrivateDataSlot eklendi. 37 yeni komut ve 60'tan fazla yapı hayata geçirildi.
  • SPIR-V 1.6 spesifikasyonu, tüm platformlar için evrensel olan ve hem grafik hem de paralel hesaplama için kullanılabilen bir ara gölgelendirici gösterimini tanımlamak üzere güncellendi. SPIR-V, ayrı bir gölgelendirici derleme aşamasını, çeşitli üst düzey diller için ön uçlar oluşturmanıza olanak tanıyan bir ara temsile ayırmayı içerir. Çeşitli üst düzey uygulamalara dayanarak, yerleşik gölgelendirici derleyicisini kullanmadan OpenGL, Vulkan ve OpenCL sürücüleri tarafından kullanılabilen tek bir ara kod ayrı ayrı oluşturulur.
  • Uyumluluk profilleri kavramı önerilmiştir. Google, Android platformu için, Vulkan 1.0 spesifikasyonunun ötesine geçen bir cihazda gelişmiş Vulkan özelliklerine yönelik destek düzeyinin belirlenmesini kolaylaştıracak bir temel profil yayınlayan ilk şirkettir. Çoğu cihaz için OTA güncellemeleri yüklenmeden profil desteği sağlanabilmektedir.

Vulkan API'nin, sürücüleri radikal bir şekilde basitleştirmesi, GPU komutlarının oluşturulmasını uygulama tarafına aktarması, hata ayıklama katmanlarını bağlama yeteneği, çeşitli platformlar için API'yi birleştirmesi ve önceden derlenmiş bir kullanımıyla dikkat çektiğini hatırlayalım. GPU tarafında yürütülecek kodun ara temsili. Yüksek performans ve öngörülebilirlik sağlamak için Vulkan, uygulamalara GPU işlemleri üzerinde doğrudan kontrol ve çok iş parçacıklı GPU komut işleme için yerel destek sağlar; bu da sürücü yükünü en aza indirir ve sürücü tarafı yeteneklerini çok daha basit ve öngörülebilir hale getirir. Örneğin sürücü tarafında OpenGL'de uygulanan bellek yönetimi ve hata işleme gibi işlemler Vulkan'da uygulama düzeyine taşınıyor.

Vulkan mevcut tüm platformları kapsar ve masaüstü, mobil ve web için tek bir API sağlayarak birden fazla GPU ve uygulamada ortak bir API'nin kullanılmasına olanak tanır. Vulkan'ın herhangi bir GPU ile çalışan araçlar anlamına gelen çok katmanlı mimarisi sayesinde OEM'ler, geliştirme sırasında kod inceleme, hata ayıklama ve profil oluşturma için endüstri standardı araçları kullanabilir. Gölgelendiriciler oluşturmak için, LLVM'ye dayanan ve temel teknolojileri OpenCL ile paylaşan yeni bir taşınabilir ara temsil olan SPIR-V önerilmektedir. Cihazları ve ekranları kontrol etmek için Vulkan, OpenGL ES'deki EGL ile yaklaşık olarak aynı sorunları çözen WSI (Pencere Sistemi Entegrasyonu) arayüzünü sunar. WSI desteği Wayland'de kullanıma hazırdır; Vulkan'ı kullanan tüm uygulamalar, değiştirilmemiş Wayland sunucularından oluşan bir ortamda çalışabilir. WSI aracılığıyla çalışma yeteneği ayrıca Android, X11 (DRI3 ile), Windows, Tizen, macOS ve iOS için de sağlanmaktadır.

Kaynak: opennet.ru

Yorum ekle