Bildiğiniz gibi Windows 10 ile hayatımıza girecek DirectX 12 gerçekten heyecan verici yeniliklerle geliyor. AMD Radeon grafik bölümü bugün kendi bloglarında DX12' nin başlıca yeni özellikleri adı altında bir dizi bilgi paylaştı.
Async Shaders (Asenkron Shaders)
Bu özellik, bir oyun motoru tarafından sunulan grafik iş yükü işlenirken iş hattında oluşan "boşluklar" sırasında GPU hesaplama veya bellek faaliyetlerini birlikte yürütmeye izin veren bir teknoloji. DirectX 11 'de bu işlem her türlü işlem için tek bir seri grafik hattıyla sınırlıydı, dolayısıyla hafızaya kopyalama veya hesaplama işlemleri birbirlerini beklemek zorunda kalıyor bu da gecikme ve çoklu-işlem performans kayıplarına sebep oluyordu.
DX12 ile birlikte asenkron bir şekilde yürütülen işlemler sayesinde işlemci ve GPU arasında hazırlanan veriler birbirlerini beklemeden aynı iş hattı üzerine dahil olabiliyorlar.
AMD bunun için bir video hazırlamış
DX11 iş hattı
DX12 iş hattı
AMD bu DX12 özelliğini kullanarak ne kadar bir iyileştirme yaptığını gösteriyor. Sahneyi ekrana verene kadar yapılan işlemleri iyi harmanlayabiliyor böylelikle hem çoklu-hesaplamadan daha fazla faydalanmış oluyor hemde daha kısa sürede işlemi tamamlanıyor.
AMD ayrıca AMD's Graphics Core Next mimarisini taşıyan ekran kartlarında bu özelliğin donanımsal olarak desteklendiğini belirtiyor. Aşağıdaki resimde ACE yazan kısımlar 8 adet bu işlemi çok hızlı bir şekilde gerçekleştiriyor.
Multi-Thread Command Buffer Recording (Çoklu-iş parçacıklı komut tampon kaydı)
Bu özellik oyunun yapılacaklar listesinin CPU tarafından hazırlanıp tampon belleğinde hazır tutması ve GPU'ya göndermesidir. Karakterleri yerleştirerek dokuların yüklenmesi, yansımalar, fizik, vb. sahnenin oluşturulması için gereken işlerin listesinin tutulmasıdır. CPU ağırlıklı bir iş olduğu için DX11 de bu işlem birden fazla çekirdeğe sahip işlemcilerde istenen verimlilikte çalışmıyor ve gereksiz çekirdek yüklenmelerine neden oluyordu.
DX11
1. çekirdek aşırı yükleniyor. 7. ve 8. çekirdekler boşta. Uzun DirectX sürücü ve API işlemleri.
29ms süre içinde 39fps elde edilebilmiş.
DX12
DX12 ile birlikte çoklu-çekirdekler daha verimli kullanılıyor. 15ms süre içinde 66fps elde edilmiş.
CPU tarafından sürücü ve API koduna yüklenme önemli ölçüde azalır.
Karmaşık CPU görevlerini tamamlamak için gereken zaman azalır.
Oyun iş yükü 4 den fazla CPU çekirdeğine daha dengeli dağıtılır.
CPU kullanımı azaltılarak tıkanmalar azaltılır.
Mevcut tüm CPU çekirdekleri aynı anda GPU ile konuşabilir.
Bu iyileştirmeleri DX12 destekli oyun, ekran kartları ve Windows 10 ile birlikte kullanmaya başlayacağız.
Async Shaders (Asenkron Shaders)
Bu özellik, bir oyun motoru tarafından sunulan grafik iş yükü işlenirken iş hattında oluşan "boşluklar" sırasında GPU hesaplama veya bellek faaliyetlerini birlikte yürütmeye izin veren bir teknoloji. DirectX 11 'de bu işlem her türlü işlem için tek bir seri grafik hattıyla sınırlıydı, dolayısıyla hafızaya kopyalama veya hesaplama işlemleri birbirlerini beklemek zorunda kalıyor bu da gecikme ve çoklu-işlem performans kayıplarına sebep oluyordu.
DX12 ile birlikte asenkron bir şekilde yürütülen işlemler sayesinde işlemci ve GPU arasında hazırlanan veriler birbirlerini beklemeden aynı iş hattı üzerine dahil olabiliyorlar.
AMD bunun için bir video hazırlamış
DX11 iş hattı
DX12 iş hattı
AMD bu DX12 özelliğini kullanarak ne kadar bir iyileştirme yaptığını gösteriyor. Sahneyi ekrana verene kadar yapılan işlemleri iyi harmanlayabiliyor böylelikle hem çoklu-hesaplamadan daha fazla faydalanmış oluyor hemde daha kısa sürede işlemi tamamlanıyor.
AMD ayrıca AMD's Graphics Core Next mimarisini taşıyan ekran kartlarında bu özelliğin donanımsal olarak desteklendiğini belirtiyor. Aşağıdaki resimde ACE yazan kısımlar 8 adet bu işlemi çok hızlı bir şekilde gerçekleştiriyor.
Multi-Thread Command Buffer Recording (Çoklu-iş parçacıklı komut tampon kaydı)
Bu özellik oyunun yapılacaklar listesinin CPU tarafından hazırlanıp tampon belleğinde hazır tutması ve GPU'ya göndermesidir. Karakterleri yerleştirerek dokuların yüklenmesi, yansımalar, fizik, vb. sahnenin oluşturulması için gereken işlerin listesinin tutulmasıdır. CPU ağırlıklı bir iş olduğu için DX11 de bu işlem birden fazla çekirdeğe sahip işlemcilerde istenen verimlilikte çalışmıyor ve gereksiz çekirdek yüklenmelerine neden oluyordu.
DX11
1. çekirdek aşırı yükleniyor. 7. ve 8. çekirdekler boşta. Uzun DirectX sürücü ve API işlemleri.
29ms süre içinde 39fps elde edilebilmiş.
DX12
DX12 ile birlikte çoklu-çekirdekler daha verimli kullanılıyor. 15ms süre içinde 66fps elde edilmiş.
CPU tarafından sürücü ve API koduna yüklenme önemli ölçüde azalır.
Karmaşık CPU görevlerini tamamlamak için gereken zaman azalır.
Oyun iş yükü 4 den fazla CPU çekirdeğine daha dengeli dağıtılır.
CPU kullanımı azaltılarak tıkanmalar azaltılır.
Mevcut tüm CPU çekirdekleri aynı anda GPU ile konuşabilir.
Bu iyileştirmeleri DX12 destekli oyun, ekran kartları ve Windows 10 ile birlikte kullanmaya başlayacağız.