X Directx 12 vs Vulkan: En iyi grafik motoru için savaş?
İçindekiler:
- Düşük seviye grafik API ve “Sürücü ek yükü”
- Microsoft DirectX
- Khronos Vulkanı
- DirectX 12'nin Vulkan'a karşı güçlü ve zayıf yanları
- Çift API ile oyunlarda performans farklılıkları
Şu anda PC dünyası için piyasayı otorite ile yöneten iki birinci sınıf grafik API var. Bu nedenle size DirectX 12 Vs Vulkan karşılaştırmasını sunuyoruz.
Her ikisinin de arkasında uzun bir geçmiş ve bir dizi savunucu ve detraktör var. Bugün farklılıkları, her birinin tuşlarını göreceğiz ve onlara biraz ışık vermeye çalışacağız.
İçindekiler dizini
Düşük seviye grafik API ve “Sürücü ek yükü”
API, "uygulama programlama arabirimi" anlamına gelir ve yazılım geliştirmeyi kolaylaştıran iletişim protokolleri ve yardımcı programlar da içeren bir geliştirici tarafından kullanılabilen bir dizi altyordamdır. Onları hemen hemen her şey için bulabiliriz ve her hizmet sağlayıcısının sistemlerini basit ve erişilebilir bir şekilde uygulamak için bu tür bir yardım alması yaygındır.
Düşük seviyeli API'ler, CPU'yu rahatlatarak GPU kaynaklarından daha iyi yararlanır, ancak bugün sahip olduğumuz çok çekirdekli işlemcilerden daha iyi yararlanabilirler.
DirectX 12 ve Vulkan 1.1, modern grafik motorlarının desteğini gerektiren oyunların ve uygulamaların geliştirilmesine yönelik API'lerdir. Aynı zamanda, en önemli grafik yonga seti tasarımcılarının sürücüleri tarafından desteklenen API'lerdir ve bu nedenle tasarımlarını çok düşük bir seviyede bilmek zorunda kalmadan özelliklerine erişmenin hızlı ve ekonomik bir yoludur.
Bunlar gibi düşük seviyeli bir API, geliştiricinin donanımdan daha iyi yararlanmasına, performans ve verimlilik açısından daha iyi sonuçlar elde etmesine ve ayrıca ek yükün diğer alt sistemlerini serbest bırakmasına olanak tanıyan çok hafif bir yorumlama katmanı ile donanımla çalışmayı sağlar. PC veya cep telefonlarının dünyasında, sistemin genel CPU'suna daha az bağımlıdır.
Bugün konuşacağımız iki API, düşük seviyeli API'ler olarak kabul edilebilir ve her iki gelişme de performans düzeyinde daha iyi sonuçlar elde ederken ve daha fazla grafik fonksiyona erişim sağlarken, sistemin CPU'suna gittikçe daha az bağımlı hale geldi. karakollar. Bunlar, genel halkın ve geliştiricilerin bekledikleri şeyle uyumlu tutmak için her yıl güncelleme alan iki canlı API'dir.
Düşük seviyeli API'lerin, "sürücü ek yükü" olarak bildiğimiz başka bir hesaplama kavramı üzerinde doğrudan bir etkisi vardır; kısaca, bir bilgisayarda belirli türdeki işlemleri yürütmek için ihtiyaç duyduğumuz ikincil kaynaklar. Grafik durumunda, grafik kartının işini yapmak için ihtiyaç duyduğu ekstra kaynakları ifade eder ve bu durumda temelde merkezi CPU işlem süreleridir. Burada açıklayacağımız düşük seviye API'ler bu bağımlılığı azaltır ve aslında bağımlılık 0 olur.
Microsoft DirectX
DirectX, farklı Windows multimedya alt sistemlerini standartlaştırmak için bir gereklilik olarak ortaya çıkar ve Windows 3.1 için WinG'nin yerini alır. Windows 95'te bir eklenti paketi olarak kabul edilir ve ikinci sürümü olan DirectX 2.0, Windows 95 OSR2'nin temel bir bileşeni haline gelir.
DirectX içinde Direct3D, aslında söz konusu olan DirectDraw, DirectMusic, DirectPlay ve DirectSound gibi birden fazla bağımsız API buluyoruz. DirectX, tüm bu alt API'lardaki yaygın ilerlemeleri adlandırmanın bir yoludur. Windows için bir API'dir, ancak Xbox konsollarında oyunların geliştirilmesi için de kullanılır, böylece Vulkan'da olduğu gibi bir Multiplatform API'sı olarak düşünebiliriz, ancak ücretsiz değildir.
En son sürümü olan DirectX 12, 2014'ten beri bizimle birlikte ve hala durmadı ve birkaç ay önce, Windows 10'un 1809 Ekim güncelleme sürümünde bulunan Direct Ray Tracing (DXR) alt programı gibi önemli iyileştirmeler aldı.
DirectX 12 gibi düşük seviyeli API'lerin temel bir avantajı vardır, bu da sürücü ek yükünün azaltılmasıdır. Programcılar şimdi GPU'nun programlarında nasıl davranacağını tasarlama ve özellikle süreç paralelleştirmeden yararlanarak GPU kaynaklarını daha iyi yönetme yetkisine sahipler. Bu, bir sistemdeki birden fazla GPU için ve aynı üreticiden olmasalar bile daha iyi destek içerir.
Uyumlu grafiklerin özelliklerinden yararlanarak ve aynı zamanda bu daha büyük veriyollarında paralel olarak işleyerek karmaşık işlemleri basit işlemlere bölerek, genellikle "tamsayı" veya "kayan nokta" gibi farklı türde işlemler gerçekleştirebilirler. AMD veya Nvidia'nın şimdi 32-Bit veriyollarında 16-Bit işlemleri nasıl işleyebileceği ve grafiklerinin verimliliğini önemli ölçüde artırabileceğidir.
Bu API, geliştiricilerin mevcut donanımı mükemmel bir şekilde bildikleri bir konsol GPU'nun kullanım verimliliğini, sonsuz farklı donanım olanaklarına sahip bir PC oluşturan heterojen ekosisteme kadar yaklaştırdı.
Şu anda DirectX 12, Windows 7 ve Windows 10 için şaşırtıcı bir şekilde mevcut ve Xbox One ile doğrudan uyumlu olmasa da, gerçekte işlevselliğinin% 90'ının PC için kullanılması, farkların minimum olması ve izin vermesi geliştiriciler Xbox One için PC oyunlarının hızlı adaptasyonları ve tam tersi.
Khronos Vulkanı
Vulkan, OpenGL'nin düşük seviye API'sının evrimidir ve Khronos Corporation tarafından desteklenmektedir. PC dünyasında DirectX 12 üzerinde ikincil bir rolleri var, ancak Android gibi farklı platformlara farklı adaptasyonları, onu hareketlilik için grafiklerde bir kıyaslama haline getirdi. Ayrıca, ücretsiz sistemlerde oyunun harika bir alternatifi olan Linux ile uyumludur.
En büyük erdemi, modern CPU'larda ve GPU'larda son derece verimli olan, öncekinin düşük kullanımını ve ikincisinin donanımını büyük ölçüde kullanan büyük paralel işleme kapasitesidir. Bu tip işlemcilerde mükemmel bir yük dağılımı sağlayan çok çekirdekli işlemcilerden faydalanmak için özel olarak tasarlanmıştır, aslında, sağlayabileceğimiz daha fazla çekirdek için çok daha verimlidir.
Vulkan'ın geçmişi DirectX 12'den bir yıl öncesine dayanıyor ve kar amacı gütmeyen bir şirket olan Khronos, Microsoft'un kendi API'sıyla yaptığı sıklığı veya sıklığı koruyor. AMD'nin GCN mimarisi için geliştirdiği API Mantığı'na dayanıyor ve bu da azaltılmış bir "genel sürücü" için başka bir düşük seviye API oldu. AMD gelişmelerini Khronos'a bağışladı ve bunlar piyasadaki en iyi grafik API'lerden birinin temelini oluşturuyor.
Üstün paralelleştirmeye ek olarak, bu tasarım aynı zamanda GPU üzerindeki gölgeleme işlemlerinin önceden derlenmesinin ortadan kaldırılmasına, daha fazla etkiye sahip olmasına ve daha yüksek yükleme hızına sahip ekranda, donanım işlemlerinin nasıl işlediğine veya nasıl eriştiğimize ilişkin daha ayrıntılı bir ayarlamaya ek olarak çerçeve arabelleği kullanılabilir. Elbette, donanımın kendisine en yakın olan, DirectX 12'den bile daha iyi olan PC için API'dir.
Vulkan ayrıca Android ve diğer platformlarda düşük seviyeli API iyileştirmeleri sunuyor.
2018'in sonunda tanıtılan en son sürümü Vulkan 1.1, DirectX 12'nin gölgelendirme işlemlerini önceden derlemeye gerek kalmadan, DirectX 12 ile daha iyi uyumluluk (birçok alt programına) yönetmeye alternatif olan HLSL desteği gibi önemli iyileştirmeler ekliyor grafik dışında), üreticiden bağımsız olarak Çoklu GPU sistemleri için açık destek ve tabii ki RayTracing desteği.
DirectX 12'nin Vulkan'a karşı güçlü ve zayıf yanları
Donanımın daha iyi kullanımı, daha fazla kontrolü ve hem GPU hem de CPU'nun paralelleştirilmesinin daha iyi kullanılması gibi daha önce açıklanan ortak özelliklere ek olarak, bu iki API ayrıca grafik yongaları ile genel hesaplama işlemlerini gerçekleştirme olasılığını da ekler. uyumludur. Bu, zaten birkaç nesil olan uyumlu grafik motorlarının, grafik bileşeni olmayanlar da dahil olmak üzere her türlü program tarafından kullanılabilen karmaşık matematiksel işlemleri gerçekleştirebilmesini sağlar.
Oyunlarda gerçekçi fizik, yapay zeka, konumsal ses efektleri, vb. Gibi giderek daha önemli ikincil işlemler için de kullanılabilirler.
Her iki API'nin grafiklerin büyük bir desteği var, hem AMD hem de Nvidia, bu API'lara hem kullanıcılarına en son iyileştirmeleri sunmak hem de bir oyun kullanan oyunların performansını ve kararlılığını güçlendirmek için uygun sürücüleri sunmak için çalışıyor. veya başka bir API.
Her ikisinin de "sürücü yükü" çok düşüktür, aslında, testlerimizde göreceğiniz gibi, aralarında neredeyse hiç fark yoktur, bu da her iki üreticinin sürücülerinin önemli optimizasyonunun bir işaretidir.
Driver Overhead'in demosu için kare hızını 120FPS ile sınırladık. Dota 2'de CPU tüketimi aynı FPS ile önemli ölçüde azalır.
Tek daha belirgin fark, Vulkan'ın CPU'ya biraz daha az bağımlı olması, daha düşük ortalama tüketimi ve Windows ve Linux ve mobil versiyonu olan OpenGL ES ile homojenleştirilmesi de dahil olmak üzere farklı platformlara çok daha açık olmasıdır. hareket ettiği platformları daha da birleştiriyor.
DirectX 12, bu API'da maliyetlerini azaltmak için mükemmel bir ekosistem bulduğu geliştiriciler tarafından büyük bir kabul görüyor, çünkü bin harikayla entegre olduğu.NET Framework kadar yaygın bir çerçeveye bile entegre oluyor. düşük performans kaybı ile.
Çift API ile oyunlarda performans farklılıkları
Hareketin yürüyüşle gösterdiği gibi, bu iki API'yi yürütmek için kullanma yeteneğine sahip farklı oyunlarda ve kıyaslamalarda bazı performans testleri yaptık.
3DMark Sürücü Tepegöz Testi. Milyonlarca istekle sonuçlanır, daha fazlası daha iyidir.
Tekillik külleri. FPS sonuçları, daha iyidir.
Garip Tugay. FPS sonuçları, daha iyidir.
İlginizi çekmesi gereken en iyi donanım kılavuzlarını özetliyoruz:
- Piyasadaki en iyi işlemciler Piyasadaki en iyi anakartlar Piyasadaki en iyi RAM bellek Piyasadaki en iyi grafik kartları Piyasadaki en iyi SSD'ler Daha iyi kasa veya PC kasaları Daha iyi güç kaynakları Daha iyi soğutucu ve sıvı soğutucuları
Gördüğünüz gibi, sonuçlar eşit ve bir diğerine karşı ve diğerine karşı programlar arasında farklılıklar görüyoruz. Bu bizi hangi sorunun daha iyi olduğu ve cevabının açık olduğu, programa ve geliştiricisinin faydalarından nasıl bildiklerini veya yararlanmak istediklerine bağlıdır. Geriye kalan, her oyunda geliştiricilerin, grafiklerimizin avantajlarından en iyi şekilde yararlanan API'yi tam olarak kullanacaklarını düşünmektir, ancak her iki seçeneğin de yetkin göründüğü açıktır. Directx 12 vs Vulkan hakkındaki makalemiz hakkında ne düşünüyorsunuz? Fikrinizi bilmek istiyoruz!
Crytek'in cryengine v grafik motoru vulkan ve directx raytracing desteği içerir
Crytek, yeni CryEngine V grafik motorunun yeteneklerini, muhteşem görünen Hunt: Shodown video oyununun demosuyla gösterdi.
Gerçek dışı grafik motoru, ışın izleme desteği ekler
Unreal Engine'in desteği, bir RTX için ödemeyi haklı kılan Ray Tracing ile oyunların gelişimini hızlandırmalıdır.
Cryengine 5.6, grafik motoru 1000'den fazla değişiklikle yenilendi
Altı aylık bir çalışmanın ardından, CryEngine ekibi grafik motoru CryEngine 5.6'nın yeni bir versiyonunu yayınladı.