« Tüm yayınlar

NoGraphicsAPI: GPU İşaretçileriyle Descriptor Set'siz Vulkan Denemesi

NoGraphicsAPI, descriptor set ve pipeline layout'ları GPU işaretçileri ve uygulama sahipli heap'lerle değiştiren deneysel Vulkan 1.4 arka ucudur.

NoGraphicsAPI, Sebastian Aaltonen'in "No Graphics API" fikrini hayata geçiren deneysel, açık kaynaklı bir Vulkan 1.4 arka ucudur. Klasik grafik API yüzeyinin büyük bölümü ortadan kalkar: buffer nesneleri, descriptor set'ler ve pipeline layout'lar yerine 64-bit GPU işaretçileri, uygulamanın sahip olduğu texture/sampler descriptor heap'leri ve her draw/dispatch çağrısında vkCmdPushDataEXT ile gönderilen tek bir paylaşımlı root yapısı kullanılır.

Tasarım, VK_EXT_descriptor_heap, VK_KHR_device_address_commands, VK_KHR_shader_untyped_pointers, VK_KHR_unified_image_layouts ve VK_EXT_mesh_shader gibi yeni Vulkan uzantılarına dayanır; böylece descriptor yönetimi, binding ve senkronizasyon modern GPU'ların gerçek çalışma biçimine daha çok yaklaşır. Barrier'lar kaynak bazlı geçiş listeleri yerine hazard'ları tanımlar, sıradan texture'lar ise tek bir birleşik layout'ta kalır.

Üç örnek uygulama (triangle, cube ve compute ile mesh-shader geçişlerini birleştiren bir deferred renderer) Vulkan arka ucunu uçtan uca çalıştırır. Metal 4 için bir eşleme belgelenmiş ancak henüz uygulanmamıştır. Bindless ve adres tabanlı render modellerini takip eden mühendisler için proje, paylaşımlı bir C++/Slang tip katmanıyla shader ve CPU kodunu senkron tutarken bir grafik API'sinin ne kadar sadeleştirilebileceğine dair somut, derlenebilir bir referans sunar.

Bu sentez, kaynağından yapay zeka tarafından üretildi; insan editör ya da elle onay adımı yoktur. Nasıl çalışıyoruz