NGG köşe noktası shader'ları
S_SETPC_B64 ile devam eden bir getirme shader'ı dahil birleştirilmiş NGG köşe noktası programları tek bir grafik aşaması olarak çevrilir. Dışa aktarma programı kendi kullanıcı verisi penceresini korur.
10 Ekim 2026 tarihine kadarki depo notları
Getirme ve dışa aktarma ayrı programlardır
Bir PlayStation 5 çizimi köşe noktası işini çoğu zaman bir getirme shader'ı ile bir dışa aktarma shader'ı arasında böler. Getirme shader'ı öznitelik girişini S_SETPC_B64 ile dışa aktarma koduna atlayarak bitirir. PS5PCEM bu devamı aynı köşe noktası programının parçası sayar ve birleştirilmiş sonucu çevirir.
NGG dışa aktarma programı geometri shader'ının kullanıcı verisi bankasını ödünç almaz. Skaler yazmaçları kendi kullanıcı verisi anlık görüntüsünden, dışa aktarma programı için s8'den başlatılır. Kaynak tablosunun s0:s1'de durduğunu varsaymak, çeviricinin özellikle kaçındığı bir hatadır. Tablo işaretçisi, meta verinin bildirdiği ShaderResourceTable kullanıcı SGPR çiftinden gelir.
Köşe noktası öznitelikleri
Getirme shader'ı ve genişletilmiş kullanıcı verisi, gömülü köşe noktası arabelleği ve köşe noktası özniteliği tablolarıyla birlikte çözülür. En fazla 32 girdi semantiği; semantik indeksini, düştüğü donanım VGPR'sini, AGC öznitelik formatını, bayt konumunu, örnek hızını ve 128 bitlik arabellek tanımlayıcısını korur.
Öznitelik araması donanım eşleme baytını değil, semantik baytını kullanır. Eksik bir tablo çifti veya desteklenen alanın dışındaki bir indeks, herhangi bir misafir okumasından önce reddedilir. Köşe noktası aşamasından gelen PARAM dışa aktarmaları parça enterpolasyon girdilerine dönüşür; sonraki bir piksel shader'ı değişkenleri böyle görür.
Bir getirme shader'ına yapılan çağrılar
Doğrulanmış harici bir getirme shader'ı, çağrının kullanıcı verisi çifti AGC'nin kaydettiği adresi hâlâ tutuyorsa S_SWAPPC_B64 veya S_CALL_B64'ten de bağlanabilir. Getirme gövdesi dönüşteki S_SETPC_B64'e kadar çözülür ve bu dönüş çağıranın bağlantı çiftini okumalıdır. Hangi çağrıların yasal olduğuna dair ayrıntılar skaler çağrılar sayfasındadır.
Birleştirilmiş NGG çevirisi, üç boyutlu sahnelerin eskiden kod çözücüyü durduran bir getirme girişini geçmesini sağlayan şeydir. Tek başına eksik bir piksel shader'ını veya eksik bir işleme hedefini sağlamaz.
Uygulananlar
- S_SETPC_B64 ile biten getirme girişleri dahil birleştirilmiş NGG köşe noktası programları.
- Dışa aktarma programı için ayrı bir kullanıcı verisi penceresi.
- Formatlar, konumlar, örnek hızları ve arabellek tanımlayıcılarıyla en fazla 32 köşe noktası semantiği.
- Parça enterpolasyon girdilerine bağlanan PARAM dışa aktarmaları.
Hâlâ eksik olanlar
- Dönüşü çağıranın bağlantı çiftiyle eşleşmeyen bir getirme shader'ı bağlanmaz.
- Genel dinamik çağrılar desteklenmiyor. Skaler çağrılar sayfasına bakın.
- Desteklenmeyen bir dışa aktarmaya veya enterpolanta bağlı geometri o çizimde hâlâ başarısız olur.
İlgili mekanizmalar
Bu sayfalar nedir