Oyunlarda İşlemci Darboğazı Nedir?

Durum
Mesaj gönderimine kapalı.
Olabildiğince basit, teknik terimlere, bilgisayar jargonuna hiç dokunmadan ve hayati pek çok detayı es geçerek anlatıyorum.

Süreç şu şekilde işliyor:

Ekran kartı oyunlarda, gözünüzle algıladığınız her bir noktanın temel olarak yüzey kaplamasını ve ışıklandırmasını yapar. Ancak bunu yapabilmesi için, üzerini kaplayacağı objenin uzay düzlem üzerindeki koordinatlarına ihtiyaç duyacaktır.

Yazılım, yani oyun, işlemciye giderek ekran kartının son haline getireceği sahnenin koordinatlarını hesaplamasını rica eder. İşlemci, gelen bu nazik teklifi kırmayarak, bu koordinatları hesaplayarak yazılıma teslim eder. Yazılım elindeki koordinatları aynı nezaket içinde ekran kartına teslim eder. Ekran kartı artık mutludur, çünkü hazırlayacağı sahnenin ne olacağını bilmektedir (Pamuk Prenses ve Yedi Cüceler gibi oldu ya, neyse devam edelim).

Ekran kartı sahneyi anladıktan sonra, oyun motorunun ona verdiği sahne için detayları işlemeye başlar. İlk olarak tel (wireframe) çizimler hazırlar. Ardından ikinci kaplama ve son olarak ekrana yansıyan görüntünün son halini bitirir.

Sağdan sola: tel çizim, ilk kaplama, olayın bitmiş hali:

wireframe.jpg


Her ne kadar basit bir şekilde anlatıyor olsam da, ekran kartlarının yaptığı hesaplar dudak uçuklatacak cinsten. Şöyle ki:

İnsan gözünün monitörde, bir hareketi sağlıklı olarak algılaması için ekran kartının saniyede 30 adet kare işlenmesi gerekiyor (alt limit 25-26 kare arasıdır).

1920 x 1080 ekranda = 2.0736.000 piksel bulunur.

Saniyede 30 kareden hesaplarsak, ekran kartı bir saniye içinde 62.208.000 tane pikseli işler.

Üst seviye ekran kartlarının GPU'ları (Titan, GTX 780 gibi), en hatırı sayılır işlemcilerin bile üzerinden silindir gibi geçerler. Daha da Türkçe'leştirirsek "ağızlarını, burunlarını kırarlar". Bu yüzden, küresel çapta bilimsel hesap yapan süper bilgisayarlar, işlemci yerine 20-30 bin kadar ekran kartını kullanır.

Konumuza dönersek, yukarıda anlattığım gibi en basit şekliyle işlemci koordinatları hesaplar, ekran kartı da aldığı bu koordinatların üzerine şehri kurar ve her objenin kaplamasını/ışıklandırmasını yapar. Yani oyunlarda, işlemcinin çok ama çok önemli bir performans girişi yoktur (online ve strateji oyunları hariç, ona biraz sonra değiniyorum).

Diyelim ki elimizde GTX 780 var. Fantezi olsun diye Crysis 3'ü 1024 x 768 çözünürlük ve en düşük detay kalitesinde oynuyoruz. Süreç şu şekilde işleyecektir:

Yazılım işlemciye gidip koordinatları alır, ekran kartına götürür. Ekran kartı bakar ki; çözünürlük düşük, detay kalitesi yerlerde sünüyor.

1920 x 1080 çözünürlükte 62.208.000 piksel hazırlayacağına, 1024 x 768 çözünürlükte 23.592.960 piksel hesaplayacaktır.

Ekran kartı verir coşkuyu ve anormal derecede performansa ulaşır. Ortaya çıkan frame sayısı 100-200 arasıdır. Bu sefer işlemci, ekran kartına koordinatları yetiştirmekte zorlanır. Ekran kartı saniyede 200 frame'e çıkar ama işlemci su koyar, yetiştiremez ve kasılır kalır. Biz buna: işlemci limiti diyoruz.

Aynı GTX 780'le bu sefer Crysis 3 1920 x 1080 çözünürlük ve en yüksek detay kalitesinde oynuyoruz.

Yazılım işlemciye gidip koordinatları alır, ekran kartına götürür. Ekran kartı bakar ki; çözünürlük yüksek, detay kalitesi kendini aşmış. Başlar hesaplamaya. E tabi düşük çözünürlükte coşan kart, bu sefer bu fazla çözünürlüğün/detayın altında ezilir. İşlemci çatır çatır koordinat hesaplayıp gönderirken, ekran kartı gelen işleri yetiştirememeye başlar. Frame sayısı, düşük çözünürlükte 100-200 arası iken, Full HD'de 40-50'ye düşer. Bunun adı da ekran kartı limitidir.

Eğer siz, 3.0GHz üzeri güncel yada bir iki nesil eski bir işlemci kullanıyor ve 1920 x 1080 çözünürlükte oyun oynuyorsanız, işlemci limitine takılmadan, ekran kartı limitine takılacaksınız. Bu durumun istisnası: düşük çözünürlüktür. Eğer düşük çözünürlükte oynamayı düşünüyorsanız, ekran kartı coşacağı için işlemci yetersiz kalacaktır. Ancak bu yetersizlik, oynanabilir seviye olan 30 frame'in bir hayli üzerinde gerçekleşir.

Diğer istisna online ve strateji oyunları.

Ekran kartları, her ne kadar bilimsel hesaplar için süper bilgisayarlarda kullanılıyor olsalar da, bizim bilgisayarda Command & Conquer oynarken tam anlamıyla birer "geri zekalılardır". Çünkü oyun oynarken tek işleri gelen koordinatları alıp üzerini kaplamaktan ibarettir. Strateji oyunlarda yüksek miktarda yapay zekaya ihtiyaç vardır. Yazılım, zeka işini ekran kartına değil, işlemciye yaptırır. Bu yüzden işlemciye daha fazla iş yükü düşer. Ancak; 3.0GHz üzeri güncel yada bir nesil eski işlemcilerde bu tip sorunlarla karşılaşmayız.

Olay kısaca bu şekilde. Eğer takıldığınız bir yer varsa soru sormaktan çekinmeyin. Hiç birimiz, elimizde klavye ile bu dünyaya gelmedik :)
 
Son düzenleyen: Moderatör:
Evet dediğiniz doğru. Ekran kapanmadan önce işlemci fanı çok hızlı çalışıp ses çıkartıyor, sonra sinyal yok diyor. Peki bir sorum daha olacak. Belli bir saatin üstüne çıkınca, mesela atıyorum 5 saat oyun oynayınca bu 5 saatin bitimine doğru ekranda karıncalanmalar oluyor. Bunun sebebi sizce nedir? Bilgisayarı kapatıp bir yarım saat kadar bekleyip tekrar açıyorum, sonra eski haline geliyor. Yani karıncalanma olmuyor.

Ekran kartlarındaki görüntü bozulmaları genellikle fiziksel hasarlardan meydana gelir. Atıyorum: kapasitörlerden biri can çekişiyordur. Ancak sorunu net bir şekilde tespit etmek için, öncelikle ekran kartının soğutucusunu çıkartıp termal macunu yenilemeniz gerekir.
 
Ellerinize sağlık, teşekkürler. Çok güzel bir konu olmuş.
 
Bu kadar güzel anlatılabilirdi... Kafası karışanlar için şu şekilde özetlenebilir "ne kadar ekmek o kadar köfte" yani yüksek çözünülürlükte oynayacaksan hem işlemcin hem ekran kartın iyi olmak zorunda... Zayıf işlemci + yüksek kapasiteli ekran kartı size çözüm sağlamaz. Güçlü işlemci + zayıf ekran kartı ikilisi de yeterli gelmeyecektir...
 
Durum
Mesaj gönderimine kapalı.

Geri
Yukarı