İçeriğe geç
PS5PCEM
KısmiGrafik

AGC ve PM4 komut akışı

Bir PS5 oyunu GPU paketlerini kendi belleğinde oluşturur ve arabelleği gönderir. PS5PCEM bu PM4 akışını çözer, yazmaç durumunu tutar ve çizimleri ve dispatch'leri sırayla yürütür.

10 Ekim 2026 tarihine kadarki depo notları

Akış grafik API'sinin kendisidir

Oyunun her üçgen için üst düzey bir çizim işlevi çağırması gerekmez. Paketler yazar: yazmaç güncellemeleri, çizimler, dispatch'ler, çitler ve ekran değiştirmeleri. Arabelleği hangi katman üretmiş olursa olsun GPU aynı akışı görür. Kod çözücü, işlem kodlarının belgelenmiş bir anlamı olan paketleri adlandırır, diğerlerini sayı olarak bırakır. Bir izdeki uydurma bir ad, bir işlem kodundan daha kötü olurdu.

Paket gövdesi uzunluğu bir eksiğiyle saklanır, bu yüzden boş bir gövde kodlanamaz. Her adım sınırlarını denetler. Sığmayan bir gövde bildirilir. Kırpılmaz; çünkü kırpılmış bir gövde sonraki her paketi kaydırır ve iz yalan söylerdi.

Durum, beklemeler ve dolaylı arabellekler

Yazmaç durumu, sıfır yazımları dahil, gönderimler arasında korunur. Yürütücü doğrudan yazmaç listelerini, yerel ve eski dolaylı listeleri, acquire ve release'i, 32 ve 64 bitlik beklemeleri, yazımları, olayları ve SetFlip'i uygular. Karşılanmayan bir bekleme engellendi sonucunu ve devam edilecek tam sözcüğü döndürür. İlerleme uydurmak için misafir belleği değiştirilmez.

Dolaylı arabellekler, hem sıradan 4 dword'lük biçim hem de koşullu 14 dword'lük biçim, özyinelemeli olarak izlenir. Zincir paketleri üst öğeyi bitirir. İç içelik on altı çerçevede durur. Engellenen bir alt öğe kökten yaprağa sabit bir yol döndürür; böylece devam etmek zaten gerçekleşmiş çizimleri yeniden oynatmaz. Zamanlayıcı her kök komut arabelleğini ve ulaşabildiği dolaylı arabellekleri kopyalar; böylece bir bekleme hâlâ engelliyken oyun alanı yeniden kullanabilir.

Yazmaçlardan bir çizime

Bir çizimde veya dispatch'te yazmaç anlık görüntüsü türlendirilmiş kaynaklara dönüşür: 128 bitlik arabellek ve örnekleyici tanımlayıcıları, 256 bitlik görüntü tanımlayıcıları, sekiz renk hedefi, derinlik ve stencil, görüntü alanları, kesme dikdörtgeni, ayıklama, harmanlama ve PS5 swizzle ve MSAA alanları. Eksik renk denetimi ve kırpma denetimi yazımları AGC varsayılanlarını devralır. Açık bir devre dışı bırakma devre dışı kalır. İki CPU çalışanı grafik ve compute komutlarını hazırlar. Yürütme ve tamamlama sıralı kalsın diye tek bir Vulkan sahibi onları gönderir.

Shader meta verisi kaynak tablolarını ve kullanıcı verisi yazmaçlarını sağlar. Skaler köken analizi shader'ın sınırlı bir önekini tarar, yalnızca bu önekin gerçekten dokunduğu misafir belleğini yükler ve bir tanımlayıcı uydurmak yerine bilinmeyen bir dalda durur. Sonuç, çeviricinin ve Vulkan arka ucunun tükettiği şeydir.

Uygulananlar

  • Bir eksiğiyle saklanan gövde uzunlukları ve her pakette katı sınırlarla PM4 kod çözme.
  • Kalıcı yazmaç bankaları, engellenen beklemeler ve on altı çerçeveye kadar özyinelemeli dolaylı arabellekler.
  • Çizim anında türlendirilmiş arabellekler, görüntüler, renk hedefleri, derinlik, görüntü alanı, harmanlama ve MSAA durumu.
  • İki hazırlık çalışanı ve tek bir sıralı Vulkan gönderim sahibi.

Hâlâ eksik olanlar

  • Belgelenmiş anlamı olmayan bir işlem kodu adsız kalır.
  • Engellenen bir bekleme, sahte bir çit değeri yazılarak asla temizlenmez.
  • Katmanlar, meta veriler ve birkaç görüntü işlemi hâlâ eksik. Bunların kendi sayfaları var.

İlgili mekanizmalar

Bu sayfalar nedir

Metin, PS5PCEM deposundaki mimari notları ve Ekim 2026 raporlarını izler. Odaklı bir testin geçmesi yeni bir kare hızı veya oyunun yeniden bitirilmesi anlamına gelmez.

Tüm teknolojiler