DirectX 12 Nedir, Ne İşe Yarar?

DirectX, Windows 95’in çıkışından bu yana, yani 25 yıldır bizimle. Bu mühlet zarfında ekran kartları bir oldukça gelişim gösterirken, işletim sistemlerinin de manzara sürece yetenekleri hayli arttı. En son 2015 yılında Windows 10 ile birlikte piyasaya çıkan DirectX 12, gittikçe genişleyen yazılımsal takviyesi ve yeni kuşak teknolojileriyle günümüzün çağdaş grafik dünyasına “taze kan” pompalamaya devam ediyor.
Oyun dünyasının nispeten yenisi sayılabilecek büyük bütçeli üyeleri DirectX 12’nin nimetlerini kullanıp, her geçen gün gerçeğe daha yakın grafiklerle bizleri buluşturmaya devam ediyor. CyberPunk 2077 ve Ekim 2021’de çıkması planlanan Far Cry 6 bu bahsettiğimiz üretimlerden birkaçına örnek.
Pekala DirectX nedir, oyun ve grafik dünyasında hatta yazılım dünyasında ehemmiyeti nedir, son güncellemelerle bir arada hangi teknolojileri sunuyor? Bu yazımızda DirectX hakkında aklınızda oluşan bütün soruları cevaplayacağız.
Takvimler 15 Ağustos 1995’i işaret ettiğinde artık PC dünyası yapısal olarak apayrı bir periyoda giriyor, tıpkı vakitte birçok yazılımcı da oldukça endişelenmeye başlıyordu. Windows 95’in birinci sürümünün yayınlandığı o gün, Windows ve MS-DOS ayrımı gerçekleşmişti ve yeni işletim sisteminin yapısal olarak 32-bit muhafazalı kod mimarisi altında çalışmaya başlayacağı açıkça anlaşılmıştı.
DirectX’in Geliştirilmesinin Asıl Sebebi: Muhafazalı Kod Mimarisi
32-bit muhafazalı kod mimarisinin ne olduğundan kısaca bahsedelim. Evvelden işletim sistemleri donanımla daha fazla etkileşimde kalarak “işbirlikçi çoklu görev” yapısıyla (cooperative-multitasking) 16-bit mimaride çalışıyordu. Bilgisayarların ve işletim sistemlerinin birinci günlerinde, sistemde çalışan çeşitli süreçler hakkında pek endişelenecek bir şey olmadığından, o güne kadar art planda çalışan süreçlerin birbirini etkilemesi ve sistemde güvenlik yahut kararlılık manasında sorun yaratması pek muhtemel görülmüyordu. Lakin vakit değişmiş, bilgisayarlar geniş kitlelere ulaşmış ve yazılımların artışıyla bir arada yazılımcılardan kaynaklanan kimi yanılgıların olumsuz tesirleri çok daha ağır olmaya başlamıştı.
İşte bu yüzden Intel tarafından “korumalı kod modu” yahut “korumalı kod mimarisi” olarak bilinen bir yapı geliştirildi. Böylelikle çalışan süreçler kendi bellek alanının dışına çıkamıyor ve BIOS işkesme (BIOS işkesme davetleri, işletim sistemleri ve uygulamaların bilgisayarlarda BIOS yazılımının imkanlarını çağırmak için kullandığı bir yöntemdir) kullanılması engelleniyordu. Böylelikle nispeten daha inançlı ve stabil bir işletim sistemiyle bir arada yazılım ortamı oluşturuldu, muhafazalı kod yavaş yavaş dal standardı olmaya başladı.
Şayet günümüzde muhafazalı kod mimarisini kullanmasaydık, bilerek yahut ufak yanlışlar nedeniyle ilgili programın kendi bellek alanının dışına çıkması sonucu daima yanlışlarla karşılaşacaktık. Yahut daha berbatı, kullandığımız birçok yazılım birbirini etkileyebilecek durumda olacaktı.

Muhafazalı kod mimarisinde bellek adresleme.
DirectX Tanıtılıyor
Windows 95 ile kullanılmaya başlanılan muhafazalı kod yapısı sebebiyle manzara sürece alanında uzmanlaşmış yazılımcılar, donanımdan tam olarak faydalanmakta bir oldukça zorlanıyordu. Evvelki işletim sistemlerinde grafik işlemci (GPU) gücünden büsbütün yararlanılabilirken, Windows 95’in çıkmasıyla birlikte işler düzgünce karmaşık bir hale gelmişti.
Microsoft bu sürecin olumsuz tesirlerini hafifletmek ve imaj sürece sürecini daha da kolaylaştırmak için 30 Eylül 1995 tarihinde geliştirmiş olduğu DirectX ismi verilen düşük düzeyli bir dizi API’yi (Application Programming Interface/Uygulama Programlama Arayüzü) geliştiricilerin kullanımına açtı. Böylelikle DirectX doğmuş oldu.
Bildiğiniz üzere oyunlar ve manzara sürece alanında en küçük imalden tutun, en büyük üretime kadar birçok program C++ üzere bir lisan ile yazılmakta. Manzara sürece sürecine kolaylık sağlaması, bilgisayarlarda ortak bir kütüphane olarak yer edinmesi, donanımla etkileşimin daha güzel sağlanabilmesi nedeniyle DirectX yıllardır bu dalın vazgeçilmezi oldu.
DirectX sırf grafik manasında değil; tıpkı vakitte ses, görüntü, müzik ve çeşitli çevresel giriş üniteleri üzere çabucak hemen muhtaçlık duyulan her şey hakkında kolaylık sunuyor. DirectX sayesinde ilgili aygıtların şoförleri yardımıyla gelen komutlar, API kullanılarak çevriliyor ve bunlar oyunların anladığı kod dizileri olarak son halini alıyor.
Microsoft en gelişmiş multimedya kütüphanelerinden biri olan DirectX’i yıllardır terk etmedi, dayanağı ve sunduğu güncellemeleriyle bir arada koca bir sanayi standardı haline getirdi. DirectX 12 ise Windows 10’un piyasaya çıkışıyla birlikte 2015 yılının Temmuz ayında geliştiricilerin kullanımına sunuldu. Microsoft, 2015 yılından beri DirectX 12 sürümünü daima yeni teknolojiler ve güncellemeler ile desteklemeye devam ediyor.

Evvelki DirectX güncellemelerinde genel itibariyle pek büyük değişiklikler kelam konusu olmadığından sürüm numaralandırma kuralı uygulanıyordu. Örneğin 2009 sonbaharında DirectX 11, 2012’de 11.1, bir sene sonra 2013 yılında sunulan sürüm ise 11.2 formunda yayınlandı. Ancak DirectX 12 sürümü tam 5 sene boyunca DirectX 12 Ultimate duyurulana kadar 12 olarak kaldı.
Bu revizyonla birlikte Direct3D ve DirectX RayTracing’e kıymetli güncellemeler geldi. Bu nedenle eski sürümlere gelen yeni özelliklere isterseniz süratlice bir göz atalım.
- Değişken Oranlı Gölgelendirme (Variable Rate Shading)
- Mesh Gölgelendirici (Mesh Shaders)
- Örnekli Geri Bildirim (Sampler Feedback)
Değişken Oranlı Gölgelendirme
Bu özelliklerden birincisi, geliştiricilerin ve gölgelendiricilerin sahneye yahut sahnenin bir kısmına, hatta bir objeye ne sıklıkla uygulandığının denetim edilmesine imkan tanıyor. Olağanda bir shader çerçeve içerisinde yer alan her bir piksele uygulanıyor ancak VRS ile bir piksel bloğunun (2×2, 4×4 gibi) üzerinde gölgelendirici çalıştırmak mümkün hale geliyor. Bu her ne kadar görsel manada bir kalite düşüşüne neden olsa da performans manasında kıymetli ölçüde olumlu bir tesire sahip. Bu nedenle uzakta olduğu yahut süratli hareket ettiği için muhteşem yanlışsız gözükmesi gereken bir şey yoksa gölgelendirici oranlamayı düşürmek epeyce mantıklı.
Mesh Gölgelendirici
Mesh gölgelendiriciler, geometri süreç sınırının yeteneklerini ve performansını artırmaya yarayan bir teknoloji. Mesh gölgelendiriciler, ilkellerin ve zirve noktalarının rasterleştiriciden evvel toplu işlenmesi yoluyla Vertex ve Geometry gölgelendiricilerin özelliklerini tek bir gölgelendirici kademesine dahil ediyor. Gölgelendiriciler ayrıyeten geometriyi yükseltebiliyor ve azaltabiliyor.
Bu özellik sayesinde oyunlardaki karmaşık modeller ve sahnelerin performansa tesiri azaltılabiliyor. Bu, yıllardır geometri gölgelendiricileri (geometry shaders) ve mozaikleme (tessellation) ile söylenen ama lafta kalan bir şeydi fakat artık büsbütün gerçek.
Örnekleyici Geri Bildirim
Örnekleyici geri bildirim özelliği de emsal biçimde geliştiriciye daha fazla denetim imkanı sağlıyor ama bu özellikte denetim imkanının ziyadesiyle sağlandığı şey dokudur. Örnekleyici geri bildirim özelliğinin potansiyel manada avantajı ise bellekten GPU’ya aktarılması gereken doku öğelerinin ölçüsünün azaltılmasıyla birlikte, oyuna ilişkin objelerin doku olarak oluşturulduğu vakitlerde bunların daha tesirli kullanılmasına imkan tanınması.

Örnekleyici Geri Bildirim teknolojisinin bellek avantajını gösteren hareketli görsel. – Kaynak: Microsoft
DirectX 12 Ultimate’ın en son özelliği ise olağanüstü bir grafik özelliği yahut data sürece ile alakalı bir API değil. Microsoft, son güncellemeyle bir arada Windows ve Xbox platformu için olan API’lerini ortak toplu bir kütüphanede birleştiriyor. Böylelikle iki platform ortası geçiş daha az çalışmayla daha kolay bir halde yapılabilecek.
Aslında yepyeni birinci Xbox’lardan beri Microsoft’un fikri buydu ama 360 ile birlikte bilgisayarlardan ziyadesiyle donanımsal ve yazılımsal olarak uzaklaşılmıştı. Series X ve S konsollarıyla bir arada bu gidişat biraz daha farklı bir tarafa evrildi. Konsollar artık tekrardan bir PC olmaya yakın hale geldiğinden, yazılımsal manada da böylesine bir ortak kütüphanenin oluşturulması aslında beklenen bir atılımdı.
Tüm yazı boyunca değindiğimiz şey aslında yalnızca geliştiricileri ilgilendirse de bu işin sonunda asıl yarar görecek olan kullanıcılar. Geliştiricilerin ana odak noktası hala gerçekçi grafikler olsa da, ışın izleme kelam konusu olduğunda Microsoft performansı ve gelişimi yakından takip etti. Aslında bütün bu yeni güncellemeler ve ek kütüphanelerin geliştirilmesinin nedeni, donanım üreticilerinin eskiye göre daha güçlü donanımlar üretmekte zorlanmasından kaynaklanıyor.
Yalnızca oyunları en düzgün ayarlarda oynamak ve güzel kare suratları elde etmek için kimse bir ekran kartına 1000 dolar veremez ve vermek de istemez. Ve üreticiler eserlerinin azınlıktan fazla olabildiğince halk tabanındaki son tüketiciye ulaşmasını ister. Bu nedenle uygun fiyata çok daha düzgün performans alınabilecek donanımlar üretmek bu nedenle hayli kıymet arz eder.
İşte bütün bu geliştirmeler ve DirectX 12 Ultimate güncellemesi herkesin oyunlardan keyif alabilmesi için yapılan şeylerden birkaçı. Sizlerin de eklemek istediği bir şey varsa yorumlarda belirtebilir, sorularınız için Technopat Sosyal’de husus açabilirsiniz.
Kaynak: Technopat