Całkiem niedawno Microsoft wydał aktualizację swojego Graficzny interfejs API DirectX powoduje to dodanie nowego środowiska wykonawczego o nazwie Opinia o samplerze , a to będzie stanowić integralną część sposobu, w jaki będą działać konsole nowej generacji skorzystaj z ich dysków SSD, aby poprawić wydajność, jeśli chodzi o przesyłanie strumieniowe . Chcesz wiedzieć, jak to działa? W tym artykule wyjaśnimy Ci to.
Sampler Feedback to nowa funkcja Direct3D, która określa sposób przechwytywania i zapisywania informacji tekstur i lokalizacji na ekranie; bez tego, do tej pory programiści widzieli te nieprzejrzyste szczegóły, o niższej jakości i wymagające większego wysiłku ze strony sprzętu do generowania ramek, które są nadawane w Streaming.

Jak działa Sampler Feedback
Weź Xbox Seria X , na przykład, którego SSD jest umiarkowanie szybki z teoretyczną prędkością odczytu 2.4 GB / si sprzętem do dekompresji, który powinien podwoić tę szybkość dla tekstur przy użyciu niestandardowego algorytmu o nazwie BCPack. Potrzebne są nowe techniki, aby móc efektywnie wykorzystać tę przepustowość, a jeśli chodzi o przesyłanie strumieniowe z konsoli, wydajność gier nie jest poważnie karana.
Sampler Feedback wykorzystuje wyniki poprzednio wyrenderowanej klatki, aby określić, jakie tekstury odczytać w pamięci. Pomysł polega na tym, że większość tekstur przechowywanych w pamięci robi to z bardzo niską jakością szczegółów, ale ponieważ gra wymaga tekstur o wyższej rozdzielczości, są one ładowane do następnej klatki. Zasadniczo to zapisuje już renderowaną ramkę w pamięci do późniejszego wykorzystania.
Każda tekstura składa się z tak zwanych „mipmap”, które są łańcuchem stopniowo mniejszych wersji każdej klatki każdej tekstury. Programiści używają tych przypominających mozaikę tekstur, które dzielą duże tekstury mniejsze pudełka, które można ładować indywidualnie usprawnić proces i poprawić wydajność.
Na przykład teksturę 1024 x 1024 można utworzyć z mozaiki 64 128 x 128 klatek. Twoja Mipmapa miałaby teksturę 512 x 512 z 16 128 x 128 ramek i jeszcze mniejszą teksturę 256 x. 256 z 4 ramek i jeszcze mniejszych tekstur dla dalszych widoków.
Każdy z tych kafelków można załadować do pamięci lub po prostu zarezerwować do późniejszego wykorzystania. Kiedy GPU renderuje scenę, sprawdza określone kafelki w określonych Mipmapach, których potrzebuje. Rozszerzenie Sampler Feedback pomaga zawsze, gdy GPU musi załadować mozaikę, może buforować potrzebną klatkę i poziom szczegółowości. Jeśli potrzebnego kafelka nie ma w pamięci, zostanie użyta wersja o niższej rozdzielczości tekstury zapisz pracę na GPU .
Oznacza to, że po wyrenderowaniu pliku CPU ma wiele informacji o tym, jakie dokładnie kafelki są potrzebne, możesz szybko porównać te dane z już załadowanymi, a otrzymasz listę tego, o co prosi GPU, ale nie ma. Procesor może również śledzić ostatnio wymagane kafelki, które można pobrać w celu zwolnienia pamięci.
Jak SSD konsoli poprawia wydajność przesyłania strumieniowego
Są dwie rzeczy, które określają, jak szybko dysk SSD może działać: rozmiar żądań (ile danych trafia) i głębokość kolejki (ile żądań otrzymuje równolegle). W przypadku dysku SSD odczyty 4K z głębokością 1 lub 2 są typowym „przypadkowym” obciążeniem i generalnie są dość powolne. Z kolei odczyty 128 KB przy głębokości kolejki 16 mają znacznie lepszą wydajność.
Przy 128 x 128 kafelkach i 4 bajtach na piksel, kafelek ma 64 KB. Wiele tekstur, takich jak normalna i kolorowa, będzie zawsze potrzebnych w tym samym czasie, więc ładują się i usuwają razem, więc po kompresji rozmiar może wynosić 64 KB lub więcej. Ponieważ procesor wie, jakie tekstury są potrzebne przez cały czas, może ustawiać je w kolejce tak szybko, jak chce, co oznacza, że jeśli chodzi o transmisję tekstur, znacznie skorzysta na zwiększonej przepustowości zapewnianej przez dysk SSD.
Kontynuując przykład z Xbox Series X, jeśli prędkość ładowania tekstur po dekompresji wynosi 3.8 GB / s, pozwoliłoby to na załadowanie 64 MB na klatkę przy 60 FPS; jest to wystarczająco szybkie, aby załadować 1000 tekstur na klatkę, odpowiednik pojedynczej tekstury 4096 x 4096.
Innymi słowy, dzięki tej technologii Sampler Feedback na pewno będziemy mieć lepszą wydajność i lepszą jakość tekstur, co jest szczególnie interesujące również dla Streaming, ponieważ miałby niższa kara dla GPU i procesora wykorzystującego ogromną przepustowość zapewnianą przez dysk SSD.


