Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
ID3D12Device::CopyDescriptors i ID3D12Device::CopyDescriptorsSimple metody w interfejsie urządzenia używają CPU do natychmiastowego kopiowania deskryptorów. Mogą być nazywane niezależnymi wątkami, o ile wiele wątków CPU lub GPU nie wykonuje żadnych potencjalnie powodujących konflikt zapisów.
Kopiowanie deskryptorów natychmiastowe (oś czasu CPU)
Liczba deskryptorów źródłowych (do skopiowania z), określona jako zestaw zakresów deskryptorów, musi być równa liczbie deskryptorów docelowych (do skopiowania), określonej jako oddzielny zestaw zakresów deskryptorów. Zakresy źródłowe i docelowe nie muszą w przeciwnym razie być wyrównane. Na przykład można skopiować rzadki zestaw deskryptorów do ciągłego miejsca docelowego, lub odwrotnie, albo w jakiejś kombinacji.
Wiele stert deskryptorów może być zaangażowanych w operację kopiowania, zarówno jako źródło, jak i miejsce docelowe. Użycie uchwytów deskryptorów jako parametrów oznacza, że metody kopiowania nie dbają o to, do których stosów należy dany deskryptor — wszystkie są po prostu pamięcią.
Typy stert deskryptorów, z których kopiujemy i do których kopiujemy, muszą być zgodne, więc metody przyjmują pojedynczy typ stertu deskryptora jako parametr wejściowy. Sterownik musi znać typ sterty wszystkich deskryptorów w danej operacji kopiowania, aby mógł określić, jaki rozmiar danych jest uwzględniony w operacji kopiowania. Może być konieczne, aby sterownik wykonał niestandardową pracę kopiowania, jeśli dany typ sterty deskryptora tego wymaga – to szczegół implementacji. Należy pamiętać, że same uchwyty deskryptorów nie identyfikują typu, na który wskazują; w związku z tym dla operacji kopiowania wymagany jest dodatkowy parametr.
Alternatywny interfejs API do CopyDescriptors jest dostępny dla prostych sytuacji, w których trzeba skopiować pojedynczy zakres deskryptorów z jednej lokalizacji do innej – CopyDescriptorsSimple.
W przypadku tego metod kopiowania deskryptorów opartych na urządzeniu (osie czasu CPU), deskryptory źródłowe muszą pochodzić ze sterty deskryptora niewidocznej dla shaderów. Deskryptory docelowe mogą znajdować się w dowolnym stercie deskryptora, który jest widoczny dla CPU (niezależnie od widoczności dla cieniowania).
Tematy pokrewne