DirectX 12 ve DirectX 11: temel farklar

Günümüzün video oyunları için temel API seti olan DirectX 12, her sürümde muazzam bir şekilde gelişiyor. Bu nedenle, DirectX 12 vs DirectX 11 makalesi gerçekten önemlidir. En önemli teknik farklılıklara bir göz atalım ve farklı güncel oyunlarda performansın nasıl değiştiğini görelim. Başlayalım!

DirectX 12 ve DirectX 11

API nedir

DirectX kavramını tanıtmadan önce, programlamada bir API’nin ne olduğunu görelim. API, uygulama programı arabiriminin veya uygulama programlama arabiriminin kısaltmasıdır. Bu, iki programın birbiriyle iletişim kurmasını sağlayan koddur.

Özellikle, kesinlikle farklı programlama dillerinde ve birbirleriyle hiçbir ilgisi olmayan ekipler veya şirketler tarafından oluşturulan tamamen farklı programlardan bahsediyoruz. API, “program A” geliştiricisinin “program B”ye hizmet talep etmek ve/veya sağlamak için kod yazması için doğru yolu tanımlar.

Kısacası, bir API, tamamen farklı iki programın birbirini anlamasını mümkün kılar. Temelde güvenli, doğru ve etkili bir şekilde iletişim kurmak için uyulması gereken kurallar bütünüdür. kavramıyla da çok ilgisi vardır. Arayüz programlamada (dolayısıyla kısaltma) veya çerçeve.

Nasıl iletişim kuracaklarına bağlı olarak tonlarca API türü vardır. İki aşırı örnek:

  • Herkese açık bir web API’si, herhangi bir programcının bir web’den değerli bilgileri (örneğin, hava tahmini veya mevcut uçak biletlerinin bir listesi) yazılımda kullanmak veya sadece veri analizi yapmak için çıkarmasına olanak tanır.
  • Bir program özel API’si, iki yazılımın birbiriyle konuşmasını sağlar, ancak bu belirli yazılım parçaları için yalnızca konuşma yolu sağlanır ve hepsi aynı makinede gerçekleşir.

Bu iki örnekle, API’nin birçok farklı biçimi olduğunu görmenizi istiyoruz. Şimdi DirectX API’sine odaklanma zamanı.

DirectX nedir

Directx 12 vs Directx 11Microsoft DirectX, Windows işletim sistemlerinde grafik ve multimedya öğelerinin oluşturulması ve yönetimi için tasarlanmış bir API’dir.

Aslında, DirectX daha çok birkaç farklı API kümesidir, tek bir API olduğunu söylemek basitleştirmeden başka bir şey değildir. Bunlar şunları içerir:

  • Direct2D: Bitmapler, geometri ve metin için kaliteli görüntü oluşturmayı içeren donanım hızlandırmalı 2D grafikler için API.
  • Direct3D: Oyunlar ve bilimsel uygulamalar için 3D grafikler oluşturmak için API.
  • DirectWrite: Yüksek kaliteli metin işleme API’si.
  • DirectXMath: Vektörler ve matrisler üzerinde lineer cebir ve aritmetik işlemler için API.
  • DirectML: Makine öğrenimi ve yapay zekanın oyunlara, motorlara ve diğer programlara entegrasyonu için kullanılır.
  • … vb

DirectX 12 ile DirectX 11 arasındaki analizimiz, oyunları neyin etkilediğine odaklanacak, DirectX’i bir bütün olarak alıyoruz ancak bunun Direct3D veya DirectML gibi API’lerle çok ilgisi var.

Daha önce programları iletmenin bir yolu olarak API’lerden bahsetmiştik: DirectX tam olarak hangilerini iletir?

DirectX İletişim Formu

Yukarıdaki şemada gördüğümüz gibi DirectX aşağıdaki iletişim akışını yapar:

  • Uygulama (oyun), DXGI API (DirectX’ten) ile doğrudan veya ek yazılım aracılığıyla iletişim kurar.
  • Ayrıca, kullanıcı modunda grafik kartı sürücüleri ile konuşan Direct3D aracılığıyla DXGI ile ve bunlar da DXGI ile iletişim kurar.
  • DXGI (DirectX Graphics Infrastructure), çekirdek modunda (yani en yüksek yetkiye sahip) grafik kartı sürücüleriyle ve bunlar bilgisayarın donanımıyla iletişim kurar.

Windows için çoğu video oyununda geliştiriciler, OpenGL veya Vulkan gibi diğer çok popüler API’ler yerine DirectX kullanır. Bu nedenle DirectX’in her sürümü çok önemlidir: şimdi 12’ye gidiyoruz.

DirectX’in video oyunlarımızdaki rolü acımasızdır, bu yüzden şimdi en son sürüm 12 ile DirectX 11’i karşılaştıracağız.

birlik logosuNeyse ki video oyunları geliştirmek isteyenler için, çok savaşmak Unity gibi oyun motorları gibi uygulanabilecek daha fazla soyutlama katmanı olduğundan, DirectX ve çeşitli yeni özellikleriyle (her sürüm değişikliği dev bir adımdır).

DirectX 12 ve DirectX 11: teknik farklılıklar

Teknik düzeyde, DirectX 12 ile DirectX 11’i karşılaştırırken, video oyunları geliştirirken bu API’lerin nasıl çalıştığı konusunda birçok farklılık görüyoruz.

DirectX 12, daha önce doğrudan sürücüler tarafından gerçekleştirilen belirli görevleri gerçekleştirirken geliştiriciye çok daha fazla sorumluluk aktarır. Bu, oyunların çok daha fazla optimizasyonuna ve hepsinden önemlisi, bu görevler doğrudan sürücüde değil, bireysel uygulamalar tarafından gerçekleştirildiğinden daha fazla işlemci çekirdeğinden yararlanmaya izin verir.

Bu nedenle, DirectX 12 oyunları tüm çekirdeklerden yararlanırken, normalde yalnızca bir veya birkaç çekirdekten yararlanan DirectX 11 oyunlarına karşı. Bu çok büyük: DX11, 2 çekirdekli CPU’ların en yaygın olduğu 2009’da piyasaya sürüldü ve DX12, 2015’te piyasaya sürüldü ve 4 çekirdek öncülük etti. Şimdi, 6 çekirdeğe, hatta 8, 12, 16, vs. olması dünyadaki en normal şey.

DirectX 12, DirectX 11’in övünemeyeceği modern işlemcilerden ve çekirdek sayılarından yararlanmak için gereklidir.

Kısacası DirectX 12, donanımın her yönden daha iyi kullanılmasını sağlar. Aslında bu, AMD grafik kartlarının birkaç yıl önce DX12 altındaki NVIDIA grafik kartlarından daha iyi performans göstermesinin nedenidir, çünkü daha fazlasına sahiptiler. ham güç.

Yıllar önce NVIDIA, sürücülerde daha iyiydi (daha iyi performans elde etmeyi başardılar), ancak AMD’nin çok fazla “ham gücü” boşa harcandı. DX12’nin gelişi, sürücülere daha az güvenerek NVIDIA’dan yararlandı.

Bugün itibariyle her iki şirket de tamamen DirectX 12’ye odaklanmış durumda, ancak AMD yakın zamanda bir sürücü yükseltmesiyle DX11 performansını %10 artırdı. Burada ne açıkladığımızı görüyorsunuz!

DirectX 12 ve DirectX 11’in daha fazla teknik avantajı

DirectX 12’ye karşı DirectX 11’de uygulanan diğer bazı teknik farklılıkları ve özellikle normalde motorların kendileri tarafından halledilen daha düşük seviyedekileri göreceğiz:

  • Her beraberlik çağrısının kendi durumu vardır. API’nin dahili “durumu”, kaynakların tahsisini ve hangilerinin kullanılabilir olduğunu gösterir. DirectX 11’de kaynakların küresel durumunu koruyan tek bir iş parçacığı vardır. Artık, her bir çekme çağrısının kendi durumu vardır, bu da farklı çekme çağrıları için farklı iplikler kullanmanıza ve çekirdeklerden daha da iyi yararlanmanıza olanak tanır.
  • PSO’da durumların gruplandırılması (Pipeline State Objects). Çekilişlerin durumları hakkında konuşmaya devam ediyoruz. Daha önce birbirine bağlı olan bazı unsurlar, donanımın daha fazla kullanılması için birlikte gruplandırılmıştır. GPU daha fazla paralelleştirilir.
  • Komut kuyruğu. DirectX 12, yalnızca birini kullanarak CPU’yu daha az kullanan DirectX 11’e kıyasla birkaç komut kuyruğuna (gerçekleştirilecek eylemlerin sıralı bir listesi) sahiptir.

Gördüğümüz gibi, DirectX 12 vs DirectX 11’de her şey donanımın daha fazla kullanılmasına odaklanmıştır.

DirectX 12 Ultimate’ın DirectX 11’de olmayan özel özellikleri

DirectX 12 Ultimate vs DirectX 11DirectX 12, DirectX 11’e kıyasla sadece teknik düzeyde etkileyici yeni özellikler getirmekle kalmıyor, aynı zamanda bugün neredeyse herkesin bildiği yeni özelliklerle muazzam bir ilerleme kaydetti. Son yılların grafik yeniliklerinden bahsediyoruz. Bunlar çoğunlukla DirectX 12 ve onun “Ultimate” versiyonunun yardımı olmadan anlaşılamaz.

Örneğin, AMD ve NVIDIA tarafından gerçek zamanlı ışın izleme desteği sağlayan API olan DirectX Ray Tracing (DXR) ve birçok oyundan bahsediyoruz. Bu API’nin DX12 Ultimate, Işın İzleme’nin çalışma şeklini büyük ölçüde geliştiren 1.1 sürümünü içerir.

Ayrıca VRS (Değişken Hız Gölgelendirmesi), CAS (İçerik Uyarlamalı Gölgelendirme), Örnekleyici Geri Bildirimi vb. gibi diğer temel özelliklerden de bahsediyoruz.

DirectX 12 ve DirectX 11: performans farklılıkları

Tüm bu teknik gelişmeler çok açık, ancak performansta kayda değer bir artış eşlik etmiyorsa çok ilginç değiller.

Bunu test etmek için, her iki API’yi de destekleyen bir oyun alabilir (eski grafikleri desteklediği için bu mantıklıdır) ve bunları değiştirerek nasıl performans gösterdiğini görebilirsiniz. Bu durumda, bir RTX 3060 Ti kullanarak karşılaştırdıkları bir YouTube videosunu referans olarak alacağız.

Ayrıca işlemci bir Ryzen 5 3600, 6 çekirdekli bir CPU, bu yüzden test için ilginç. Tabii ki, farklılıklar büyük ölçüde PC’ye, sürücülere, oyuna, grafiklere ve işlemciye vb. bağlı olarak her duruma bağlı olacaktır.

Tablodaki bu video ile, bazı oyunlarda DirectX 11’in şaşırtıcı bir şekilde sürüm 12’den daha iyi FPS elde ettiğini görüyoruz. Bu, DX11’in hiç de daha iyi olduğu anlamına gelmiyor ve bunu açıklamak için birkaç neden var:

  • Bir yandan, çoğu oyunda genel olarak çerçeve süresinin DX12 ile çok daha kararlı olduğunu görüyoruz. Bu, kekemelik olmadan daha iyi bir oyun deneyimi anlamına gelir.
  • DX12 Ultimate’ın içerdiği ve daha önce yorumladığımız tüm avantajları da hatırlayalım.

İsterseniz grafik ayarlarından DirectX 11’e geçerek oyun deneyiminin nasıl olduğunu kendiniz test edebilirsiniz. Büyük olasılıkla, oyun daha kötü olacak.

Öte yandan, DirectX 12’ye karşı DirectX 11’e zarar veren şey, geliştiricinin daha büyük sorumluluklarının iki ucu keskin bir kılıç olmasıdır, geliştirici tarafından daha iyi optimizasyona yol açabilir, ancak aynı zamanda elde edilenden daha kötü hale getirebilir. DX11 ile. Her durumda, DirectX 12’yi kullanın ve her zaman maksimum optimizasyonun keyfini çıkarmak için sürücülerinizi, yazılımlarınızı ve oyunlarınızı güncel tutun.

Ayrıca DirectX 12’yi kullanmak için Windows 10 veya üstü olması gerektiğini unutmayın.

DirectX 13, ne zaman çıkacak?

DirectX 13DirectX 11’in DirectX 10’un yerini almak üzere 2009’da piyasaya sürüldüğünü unutmayalım. Sonra DirectX 12 2015’te geldi. Yani DirectX 13’ün yakında piyasaya sürülmesi mantıklı, değil mi?

Gerçek şu ki, şu anda bu API’nin görünümü hakkında hiçbir şey bilinmiyor. Ayrıca değişikliklerin çok büyük olduğunu da unutmayalım, bu nedenle geliştiricilerin uyum sağlaması gereken bir şey. Bu, uzun bir geçiş dönemine ve işleri ağırdan alma zorunluluğuna yol açar.

DirectX 13 (veya buna ne demeye karar verirlerse) hakkında bir şey öğrendiğimizde, onu entegre eden ilk oyunları görmemiz aylar ve aylar alacak. Şimdilik çıkacak gibi görünmüyor, kim bilir 2023’te mi, 2024’te mi (ya da daha sonra!)

Piyasadaki en iyi grafik kartlarını okumanızı öneririz.

Bu makalenin DirectX 12 ile DirectX 11 karşılaştırması hakkında bilgi edinmenize ve her zaman en iyi satın alma kararını vermenize yardımcı olduğunu umuyoruz.

Similar Posts

Leave a Reply

Your email address will not be published.