Ryzen 5 2600 + RX 580 4GB GTA V düşük FPS

Katılım
15 Nisan 2016
Mesajlar
603
Makaleler
1
Çözümler
2
Daha fazla  
Cinsiyet
Erkek
Selam arkadaşlar.

> Ryzen 5 2600
> 8 GB DDR4 2800MHZ
> 240GB Adata SSD SU650
> AB350M-GAMİNG 3
> FPS 500W 85PLUS
> RX 580 4 GB Nitro+
Sistemim yazdığı gibidir, oynadığım oyun GTA V fakat FPS değerleri böyle. V-Sync kapalı ayarlar low ayarlarda da olsa Ultra ayarlarda da olsa 60'a gelmiyor pek. Sizce nedir durum? Eksik bir şey var mıdır? Driverler güncel, sistem günceldir.

 
Geceleri FPS düşmesi konusuna açıklık getireyim:

Normalde bir oyunun bir karesi (tek bir anlık görüntüsü) şu şekilde çizilir:

1) Işlemci kullanıcıdan girdileri toplar, oyunun mantıksal işlemlerini yapar ve bir sonraki sahnede ne oluyor ne bitiyor hesaplar.

2) Yine işlemci, olan biteni hesapladıktan sonra her nesne ve karakter için geometrik olarak sahne hesabı yapar. Hani resim çizerken "şurada bu olsun, sağ altta bir ağaç olsun, üstte güneş olsun" diye karar veririz ya, işlemci de aynısını yapar. Görüntüsü çizilecek sahnenin "tarifini" hesaplar ve hazırlar.

3) Tarif hazırlanırken, çizilecek her bir "şey" için aynı işlemler tekrarlanır. Yeri, açısı ve sahnedeki konumu belli olan her nesne, çizilmek üzere ekran kartına gönderilir. Ardından işlemci, DirectX'i çağırır.

Kısaca, GTA V'te gördüğünüz bir sahnede her bir nesne (trafik ışığı, araba, lamba, sokak, kaldırım insanlar ve daha bir sürü şey) için işlemci teker teker hesap yapıp, grafik sürücüsünü çağırıp "bunu da çiz" diyor.

4) Hem ekran kartı sürücüsü hem de DirectX çağırılınca tarife göre görüntü çizilir. Çizme işi ekran kartına aittir, ondan önceki hesaplar ise işlemciye.

Bu DirectX kütüphaneleri Microsoft tarafından hazırlanırken, donanım üreticileri ile planlar yapılır, ilerleyen 10 yılda ne işlemci ve kartlar çıkacak, nasıl performanslara hitap eden bir DirectX hazırlanmalı vs.. gibi.

Sorun da tam burada başlıyor. DirectX 11 hazırlanırken, saydığım işlemlerden 3 numara olan "çizim çağrısı" (draw call) sayısı 1900 ile sınırlı idi. Bir sahnede çizilecek nesneler için 1900'den fazla çağrı yapılmaması, gerekirse nesnelerin birleştirilip tek bir nesne gibi çağrılması ve çağrıların işlemciye yükünün kontrol altında tutulması hedefleniyordu.

İlk başta hem AMD hem de Nvidia yeni DirectX'in kurallarını sıkı sıkı takip eden donanım ve yazılımlar ürettiler.

Sonra Nvidia, DirectX 11'in kodunda bir kaç açık buldu ve bir defada birden fazla çağrı tetikleyip bu 1900 çağrı sınırını aşmayı başardı. Sponsorluk verdiği oyun stüdyolarına "abi biz artık bir sahnede sınırsız nesne çizdirebiliriz" diye çağrıda bulundu. Yeni nesil ekran kartlarını da çok sayıda çizim çağrısı yapabilecek şekilde hazırladı. AMD ise hala kurallara uyuyor, ve kuralları sağlasa yeter denecek kapasitede kartlar hazırlıyordu.

Bu sefer yeni bir sorun çıktı; çizim çağrısı sayı sınırı aşılmıştı ama buna bir sınır koymayınca en güçlü işlemcileri bile ağlatmak çok kolay olmuştu. Çünkü DirectX 11 kendi içinde bu kadar çağrılan nesneyi kaldıracak şekilde hazırlanmamıştı.

Nvidia buna da çözüm buldu. O zamana kadar ekran kartı sürücüleri en fazla iki çekirdek kullanıp diğer çekirdekleri oyunun mantık işlemlerine bırakıyorlardı. Sonuçta sürücünün tek fonksiyonu DirectX'i çağırmak ve gelen talebi ekran kartına paslamaktı. Ancak çizim çağrısı sayısı çok çok artınca Nvidia çareyi sanallaştırma yapıp, sürücü işlemlerini tüm çekirdeklere yaymakta buldu.

Fikir süperdi çünkü eğer bir oyun stüdyosu Nvidia'yı dinlerse ve çok nesne barındıran bir DirectX 11 oyun yaparsa AMD'nin bu oyunu çalıştıracak ne donanımı ne de o kadar çağrıyı paslayacak, çok çekirdek destekli bir sürücüsü vardı. (AMD o dönem sanallaştırma yapmadan, düşük gecikme süreli sürücü üretme işine odaklanmış ve sürücülerini o yönde geliştirmişti).

Peki stüdyolar Nvidia'yı neden dinledi? Sebebi Play Station 4. PS'da DirectX yerine özel bir grafik kütüphanesi ve özel bir 8 çekirdekli işlemci kullanılıyor. Bu sayede işlemci, ekran kartını çağırmak için önce ekran kartının sürücüsünü çağırmak zorunda değil. Onlar zaten doğrudan bağlılar. Bu yüzden Play Station 4'te bir sahne çizerken, DirectX kullanan bilgisayarlara nazaran çok daha fazla çağrı yapmanız mümkün. Ekran kartının kendisi güçsüz olduğu için çizilen nesnelerin detayı ve kalitesi daha düşük olsa da, sayıca daha fazla nesne barındırmak mümkün.

Bu da; 30 FPS'te açık dünya yaratmayı seven Play Station oyun yapımcıları için bulunmaz nimetti. Çünkü normalde bir konsol oyununu bilgisayara port ederken birinde zayıf olup öbüründe güçlü olan her şey bir dezavantaj. Hatta bazen konsol oyunlarının bilgisayarda aynı akıcılıkla çalışabilmesi için grafik sisteminin %90'ını baştan yazmaları gerekiyor.

Ama Nvidia çıkıp "abiler, istediğiniz kadar çizim çağrısı yapın, biz kartlarımızı ve sürücüleri öyle bir ayarladık ki DirectX 11'i kandırabiliyoruz" diyince yapımcılar hemen atladılar. Üstlerindeki yükün hatırı sayılır bir kısmı alınmıştı.

Üstüne Nvidia, "PC'ye çıkaramadığınız oyunlarınıza biz sponsor olalım, port işini biz yapalım" diye bir teklif sununca, Ubisoft, Rockstar gibi bir çok firma bu teklife atladı. Zaten GTA V hem PS 3'e hem de PS 4'e çıkıyordu ve ekibin aynı anda PC'ye de hazırlanacak gücü yoktu, ciddi bir gecikme söz konusuydu. Nvidia hemen "yardımlarına koştu" tabi.

Nvidia'nın optimizasyon adı altında yaptığı şey, oyundaki tüm nesneleri ayrı ayrı tanımlayıp her birine özel çizim çağrısı yapılmasını zorlamak oldu. Böylece işlemciye ve grafik sürücüsüne binen yük 2-2.5 kat artarken ekran kartına binen yük, nesne başına azalma göstermişti. Hatta belirli bir uzaklıktan sonraki nesneler 1/4 çözünürlükte çiziliyorlardı. Bu da güçsüz grafik çizimi yapan ama çok sayıda nesne çağıran Nvidia kartları için şahaneydi.

Nvidia'nın tam istediği şey yani. Çünkü iş bir nesneyi çizmeye gelince, muadil AMD kartlar her zaman Nvidia'dan daha başarılı idi. Ama iş bir sürü nesne çizmek için işlemci ile koordineli çalışmaya gelince Nvidia, DirectX'in bug'ını bularak üstünlüğü ele geçirmişti. AMD, en fazla iki çekirdekten çizim çağrısı kabul edebilirken Nvidia sürücüleri sınırsız çekirdeğe yayılabiliyor, bütün çekirdekler istedikleri kadar ekran kartını çağırabiliyorlardı. Çok çekirdeğin moda olduğu bir dönemde Nvidia iyi vurgun yapmıştı.

Işin GTA V boyutuna gelelim. Gece vakti önünüzden geçen her araba, en az 3 nesneden oluşuyor. Arabanın kendisi, iki de far. Gündüz vakti bu araba için 1 adet çizim çağrısı yapılacak iken gece vakti 3 adet çizim çağrısı yapılıyor. Normalde, iyi optimize bir oyunda bu; 2 ışık kaynağı içeren bir nesne olarak yapılmalı idi ama Nvidia'nın isteği oyunun kendilerinde iyi, AMD'de kötü çalışması olduğu için böyle bir "optimizasyon" yapıldı.

Aynı şey binalar ve trafik ışıkları için de geçerli. Her bir ışık kaynağı ayrı bir nesne gibi davranıp AMD sürücüsünü çağırmak zorunda olan işlemciye yük olarak ekleniyor. Bir işlemcinin en fazla iki çekirdeği AMD sürücüsünü çağırabildiği için de i7 ile i3 arasında, AMD Athlon ile Ryzen arasında çizim çağrısı bakımından bir fark kalmıyor. Hepsi iki çekirdekli işlemci gibi kalıyorlar. Haliyle de çizim çağrısı sayısı anormal artınca işlemci darboğazı oluşuyor. Üstelik bu darboğaz, sistem grafiklerinde görülmüyor, çünkü dışarıdan bakılınca boşta duran bir sürü çekirdek var.

2018 yılında AMD sürücüsünde güncelleme yaparak yayılmayı 4 çekirdeğe kadar arttırdı. Rockstar da, Nvidia ile 5 senelik sözleşmesi dolunca kendi oyununun koduna müdahale edebilir hale geldi ve büyük bir güncelleme yaptı. Ancak yine de buna yıllar öncesinden donanımsal olarak hazırlanmış Nvidia kadar performanslı olamadılar. Zaten AMD çoktan Microsoft ile ileriye dönük anlaşmalar yapmış ve DirectX 12'yi geliştirmeye odaklanmıştı.

GTA V ve Assassin's Creed Unity gibi oyunlar da bu tarz kurnazlıkların çarpık meyveleri olarak tarihte yerlerini aldılar.

Yani olay işlemcinin boşta kalması değil, oyunun ısrarı gereği, iki çekirdekten 3000'in üzerinde çizim çağrısı yapmaya çalışmasından.
 
Son düzenleme:
Ryzen 5 1600x RX580 Nitro+ 8GB ve 8GB DDR 4 3000MHz sistem ile gayet akıcı en yüksek ayarlarda 90-70 FPS arasında değerler alıyorum bir şey sizin FPS inize müdahale ediyor gibi
 
Bazı arkadaşlar RAM yetersiz değil demişler. Günümüzde GTA V gibi oyunları oynamak için en az 16 GB RAM olması gerektiği düşüncesindeyim. Eğer bahsettiğiniz ani FPS düşmesi (Drop) ise sorunun kaynağının bu olduğu inancındayım.
 
Merak edenler için Arkada sadece Chrome açık fakat kapatıp denediğimdede pek bir değişiklik görmedim.
Bende Ryzen 2600, (2x8) 16 GB 3200 MHz RAM ve Sapphire Pulse RX 580 8 GB var. MSAA hariç her şey açık şekilde 80-100 FPS civarı alıyorum. Bence sıkıntı çift kanal RAM olmaması veya yazılımsal bir sorun olması.
Hocam Oynarken kaç GB ram harcıyor sistem
 
Aynı problemi ben de yaşıyorum, bu tarz bir konu daha gördüm forumda. Genelde %99 olan GPU kullanımı bazı sahnelerde %60'a kadar düşüyor. Sorunun yazılımsal olduğunu düşünüyorum.

Yalnız, CPU kullanımı %49'a kadar çıkmış. Bilirsiniz Ryzen işlemcilerde çoklu çekirdekten dolayı %100 kullanım göremezsiniz pek. Belki darboğaz oluyor olabilir.
 
Uyarı! Bu konu 6 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Geri
Yukarı