Firma Microsoft ogłosiła wydanie wersji zapoznawczej Shader Model 6.10 i AgilitySDK 1.720, które znacząco rozszerzają możliwości interfejsu API DX12 o nowe funkcje przeznaczone dla deweloperów.
Ulepszone funkcje w Shader Model 6.10 i AgilitySDK 1.720
Najnowsze wprowadzenie bazuje na wcześniejszych ulepszeniach Shader Model 6.9 i DXR 1.2, które zostały uwzględnione w wersji 1.619 AgilitySDK. Wersja zapoznawcza AgilitySDK 1.720 prezentuje kilka nowych funkcji usprawniających API DX12, szczegółowo opisanych poniżej:
- Model cieniowania 6.10 (poprzez DXC 1.10.2605.2):
- Interfejsy API algebry liniowej (linalg::Matrix)
- Wskaźnik fali grupowej
- Pamięć współdzielona grupy zmiennych
- Cechy wewnętrzne śledzenia promieni:
- Pozycje obiektu trójkąta
- Identyfikator klastra
Wprowadzenie do interfejsów API algebry liniowej (linalg::Matrix)
Shader Model 6.10 oferuje kompleksowy zestaw interfejsów API Matrix w ramach LinAlg. Ta integracja umożliwia programistom efektywne wdrażanie technik renderowania neuronowego bezpośrednio z wątków shaderów, zwiększając wydajność przetwarzania grafiki w czasie rzeczywistym. Dodatkowo, Shader Model 6.10 obsługuje operacje mnożenia macierzy przez macierz (MMA) o dużej przepustowości dla aplikacji uczenia maszynowego i przetwarzania obrazu, a wszystko to w ramach jednego środowiska API.

Wskaźnik fali grupowej: poprawa wydajności shaderów
Do Shader Model 6.10 dodano nowe funkcje wewnętrzne: GetGroupWaveIndex() i GetGroupWaveCount().Umożliwiają one różnym typom shaderów – obliczeniowym, siatkowym, wzmacniającym i węzłowym – uzyskanie wglądu w struktury fal w grupie wątków. Funkcjonalność GetGroupWaveIndex() oferuje indeks bieżącej fali, natomiast GetGroupWaveCount() ujawnia całkowitą liczbę wykonywanych fal w grupie. Ta możliwość promuje specjalizację pracy i współpracę między falami bez konieczności stosowania zawodnych obejść, takich jak przestarzała metoda dzielenia SV_GroupIndex za pomocą WaveGetLaneCount(), która nie zapewnia uniwersalnej niezawodności sprzętowej.
Zmienna grupa pamięci współdzielonej: nowe możliwości
Kolejną istotną aktualizacją w Shader Model 6.10 jest zniesienie dotychczasowego limitu 32 KB (28 KB dla shaderów siatkowych) na pamięć współdzieloną grupy. Dzięki ujawnieniu rzeczywistego limitu sprzętowego za pomocą nowego zapytania w czasie wykonywania, MaxGroupSharedMemoryPerGroup, autorzy shaderów mogą teraz wykorzystywać niestandardowe atrybuty do określania wymaganego rozmiaru pamięci swoich shaderów. To przejście umożliwia dostęp do nowoczesnych możliwości GPU, jednocześnie zapewniając zgodność istniejącego kodu z dotychczasowymi limitami. W rezultacie programiści mogą teraz implementować zaawansowane algorytmy, takie jak selekcja dużych kafelków i złożone obciążenia macierzowe, bez ograniczeń narzucanych przez poprzednie specyfikacje.
Eksploracja funkcji D3D12
Interfejsy API listy poleceń asynchronicznych w partiach
Wprowadzenie poleceń wsadowych D3D12 rozwiązuje nieodłączne problemy z serializacją, z którymi borykały się wcześniejsze polecenia, takie jak CopyBufferRegion, ClearUnorderedAccessViewFloat/Uinti ResolveSubresource, wykonywane sekwencyjnie. To ograniczenie powodowało przestoje GPU, opóźniając niezależne operacje. Nowa funkcja poleceń asynchronicznych wsadowych pozwala programistom na wykorzystanie zaawansowanych metod listy poleceń, które eliminują niejawną serializację, umożliwiając sprzętowi nakładanie się niezależnych zadań. Programiści mają teraz swobodę jawnej synchronizacji z ulepszonymi barierami tylko wtedy, gdy jest to konieczne, co zwiększa wydajność w przypadku współbieżnych obciążeń.
Wszyscy czołowi producenci sprzętu, w tym NVIDIA, AMD i Intel, obsługują już następujące wersje zapoznawcze:
| Dostawca sprzętu | Linki do sterowników |
| AMD | Oprogramowanie AMD: AgilitySDK Developer Preview Edition 25.30.41.02 |
| Intel | Grafika Intel Arc – Windows |
| NVIDIA | Aby uzyskać dostęp do sterowników będących w fazie rozwoju, skontaktuj się z przedstawicielem działu relacji z deweloperami. |
Jeśli chodzi o wsparcie sprzętowe, NVIDIA oferuje szeroki zakres funkcji w całej swojej ofercie procesorów graficznych RTX, podczas gdy AMD i Intel ograniczają konkretne funkcjonalności do swoich najnowszych modeli, w tym Arc B-Series i RDNA 4 (Radeon RX 9000).W szczególności, funkcja Group Wave Index jest obsługiwana przez procesory graficzne AMD RX 7000 i RX 9000, a NVIDIA planuje jej wdrożenie w nadchodzącej wersji. Przyszłe aktualizacje Intela obejmą również obsługę nowego API algebry liniowej.
| AMD | Intel | NVIDIA | |
| linAlg::Matrix | Obsługiwane przez produkty AMD Radeon serii RX 9000. | Zaplanowano na nadchodzącą premierę. | Obsługiwane przez wszystkie urządzenia RTX. |
| Wskaźnik fali grupowej | Obsługiwane przez produkty AMD Radeon RX serii 7000 i 9000. | Obsługiwane przez kartę graficzną Intel Arc B-Series. | Zaplanowano na nadchodzącą premierę. |
| Pamięć współdzielona grupy zmiennych | Obecnie obsługiwany jest domyślny limit pamięci; w przyszłych wersjach sterowników spodziewane są wyższe limity. | Obsługiwane przez kartę graficzną Intel Arc B-Series. | Obsługiwane przez cały sprzęt RTX, wartości różnią się w zależności od urządzenia. |
| Wewnętrzne elementy śledzenia promieni: TriangleObjectPositions/ClusterID | Obsługiwane przez produkty AMD Radeon RX serii 7000 i 9000. | Obsługiwane przez kartę graficzną Intel Arc B-Series. | Obsługiwane przez cały sprzęt RTX. |
| Interfejsy API listy poleceń asynchronicznych w partiach | Obsługiwane przez produkty AMD Radeon RX serii 7000 i 9000. | Obsługiwane przez kartę graficzną Intel Arc B-Series. | Obsługiwane przez cały sprzęt RTX. |
Aby uzyskać dodatkowe informacje i materiały wizualne związane z tym ogłoszeniem, sprawdź oryginalne źródło: Źródło i obrazy.
Dodaj komentarz