Udostępnij przez


Przesyłanie pracy w trybie Direct3D 12

Aby zwiększyć wydajność procesora CPU aplikacji Direct3D, począwszy od wersji 12, direct3D nie obsługuje już bezpośredniego kontekstu skojarzonego z urządzeniem. Zamiast tego aplikacja rejestruje rekordy, a następnie przesyła listy poleceń, które zawierają wywołania rysowania i zarządzania zasobami. Te listy poleceń można przesłać z wielu wątków do co najmniej jednej kolejki poleceń, które zarządzają wykonywaniem poleceń. Ta podstawowa zmiana zwiększa wydajność jednowątkową, umożliwiając aplikacji wstępne wykonywanie renderowania obliczeniowego w celu późniejszego ponownego użycia i korzystanie z systemów wielordzeniowych przez rozłożenie pracy renderowania w wielu wątkach.

W tej sekcji

Temat Opis
Projektowanie filozofii kolejek poleceń i list poleceń Cele włączenia ponownego użycia pracy renderowania i skalowania wielowątkowego, wymagały fundamentalnych zmian w sposobie przesyłania renderowania aplikacji Direct3D do procesora GPU.
Tworzenie i rejestrowanie list poleceń i pakietów W tym temacie opisano rejestrowanie list poleceń i pakietów w aplikacjach Direct3D 12. Listy poleceń i pakiety umożliwiają aplikacjom rejestrowanie wywołań rysowania lub zmiany stanu w celu późniejszego wykonania w jednostce przetwarzania grafiki (GPU).
wykonywanie i synchronizowanie list poleceń W usłudze Microsoft Direct3D 12 tryb bezpośredni poprzednich wersji nie jest już obecny. Zamiast tego aplikacje tworzą listy poleceń i pakiety, a następnie rejestrują zestawy poleceń procesora GPU. Kolejki poleceń służą do przesyłania list poleceń do wykonania. Ten model umożliwia deweloperom większą kontrolę nad wydajnym użyciem procesora GPU i procesora CPU.
zarządzanie stanem potoku grafiki w Direct3D 12 W tym temacie opisano sposób ustawiania stanu potoku grafiki w trybie Direct3D 12.
Używanie barier zasobów do synchronizowania stanów zasobów w Direct3D 12 Aby zmniejszyć ogólne użycie procesora CPU i włączyć wielowątkowy sterownik i przetwarzanie wstępne, Direct3D 12 przenosi odpowiedzialność za zarządzanie stanem poszczególnych zasobów ze sterownika graficznego do aplikacji.
potoki i cieniowania z Direct3D 12 Programowalny potok Direct3D 12 znacznie zwiększa wydajność renderowania w porównaniu z interfejsami programowania grafiki poprzedniej generacji.
cieniowanie zmiennej szybkości (VRS) Cieniowanie o zmiennej szybkości — lub grubsze cieniowanie pikseli — to mechanizm, który umożliwia przydzielanie wydajności/zasilania renderowania w zależności od renderowanego obrazu.
Renderowanie przekazuje Funkcja renderowania przechodzi pomaga renderatorowi zwiększyć wydajność procesora GPU, zmniejszając ruch pamięci do/z pamięci poza mikroukładem; Dzięki temu aplikacja może lepiej zidentyfikować wymagania dotyczące porządkowania zasobów i zależności danych.