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.
W wersji Direct3D 11.1 dodano następujące funkcje, które są dołączone do systemów Windows 8, Windows RT i Windows Server 2012. Częściowa obsługa Direct3D 11.1 jest dostępna w systemach Windows 7 i Windows Server 2008 R2 za pośrednictwem aktualizacji platformy dla systemu Windows 7, która jest dostępna za pośrednictwem aktualizacji platformy dla systemu Windows 7.
- śledzenie cieniowania i ulepszenia kompilatora
- udostępniania urządzeń Direct3D
- Sprawdź obsługę nowych funkcji i formatów Direct3D 11.1
- użyj minimalnej precyzji HLSL
- Określ płaszczyzny klipów użytkownika w programie HLSL na poziomie funkcji 9 i wyższym
- Tworzenie większych stałych niż moduł cieniowania może uzyskiwać dostęp do
- Używanie operacji logicznych w elementu docelowego renderowania
- Wymuś liczbę próbek, aby utworzyć stan rasteryzatora
- Przetwarzanie zasobów wideo przy użyciu cieniowania
- rozszerzona obsługa udostępnionych zasobów Texture2D
- Zmień podźródła z nowymi opcjami kopiowania
- Odrzucanie zasobów i widoków zasobów
- obsługa większej liczby niezależnych interfejsów użytkownika
- wiązanie podgrupy buforu stałego z cieniatorem
- Pobieranie podgrupy buforu stałego powiązanego z cieniatorem
- wyczyść wszystkie lub część widoku zasobów
- mapowania woluminów SRV dynamicznych za pomocą NO_OVERWRITE
- używanie interfejsów użytkownika na każdym etapie potoku
- rozszerzona obsługa urządzeń WARP
- używanie funkcji Direct3D w procesach sesji 0
- obsługa buforu w tle na poziomie 9
- Tematy pokrewne
Ulepszenia śledzenia i kompilatora cieniowania
Funkcja Direct3D 11.1 umożliwia korzystanie ze śledzenia cieniowania w celu zapewnienia, że kod działa zgodnie z oczekiwaniami i jeśli nie jest w stanie odnaleźć i rozwiązać ten problem. Zestaw Windows Software Development Kit (SDK) dla systemu Windows 8 zawiera ulepszenia kompilatora HLSL. Śledzenie cieniowania i kompilator HLSL są implementowane w D3dcompiler_nn.dll.
Interfejs API śledzenia cieniowania i ulepszenia kompilatora HLSL składają się z następujących metod i funkcji.
- ID3D11RefDefaultTrackingOptions::SetTrackingOptions
- ID3D11RefTrackingOptions::SetTrackingOptions
- ID3D11TracingDevice::SetShaderTrackingOptions
- ID3D11TracingDevice::SetShaderTrackingOptionsByType
- ID3D11ShaderTraceFactory::CreateShaderTrace
- ID3D11ShaderTrace::TraceReady
- ID3D11ShaderTrace::ResetTrace
- ID3D11ShaderTrace::GetTraceStats
- ID3D11ShaderTrace::P SSelectStamp
- ID3D11ShaderTrace::GetInitialRegisterContents
- ID3D11ShaderTrace::GetStep
- ID3D11ShaderTrace::GetWrittenRegister
- ID3D11ShaderTrace::GetReadRegister
- D3DCompile2
- D3DCompileFromFile
- D3DDisasemble11Trace
- D3DDisassembleRegion
- D3DGetTraceInstructionOffsets
- D3DReadFileToBlob
- D3DSetBlobPart
- D3DWriteBlobToFile
Biblioteka D3dcompiler.lib wymaga D3dcompiler_nn.dll. Ta biblioteka DLL nie jest częścią systemu Windows 8; znajduje się w \bin folder of the Windows SDK for Windows 8 along with the Fxc.exe wersji wiersza polecenia kompilatora HLSL.
Nuta
Chociaż do programowania można używać tej biblioteki i kombinacji bibliotek DLL, nie można wdrażać aplikacji ze Sklepu Windows korzystających z tej kombinacji. W związku z tym należy zamiast tego skompilować cieniowania HLSL przed wysłaniem aplikacji ze Sklepu Windows. Pliki binarne kompilacji HLSL można zapisywać na dysku lub kompilator może generować nagłówki ze statycznymi tablicami bajtów zawierającymi dane obiektów blob cieniowania. Aby uzyskać dostęp do danych obiektu blob, należy użyć interfejsu ID3DBlob. Aby opracować aplikację ze Sklepu Windows, wywołaj D3DCompile2 lub D3DCompileFromFile, aby skompilować pierwotne źródło HLSL, a następnie przekaż wynikowe dane obiektu blob do usługi Direct3D.
Udostępnianie urządzeń Direct3D
Direct3D 11.1 umożliwia interfejsy API Direct3D 10 i interfejsy API Direct3D 11 do korzystania z jednego bazowego urządzenia renderowania.
Ta funkcja Direct3D 11.1 składa się z następujących metod i interfejsu.
- ID3D11Device1::CreateDeviceContextState
- ID3D11DeviceContext1::SwapDeviceContextState
- ID3DDeviceContextState
Sprawdź obsługę nowych funkcji i formatów Direct3D 11.1
Direct3D 11.1 umożliwia sprawdzenie nowych funkcji, które sterownik graficzny może obsługiwać i nowe sposoby obsługi formatu na urządzeniu. Infrastruktura grafiki Microsoft DirectX (DXGI) 1.2 określa również nowe wartości DXGI_FORMAT.
Ta funkcja Direct3D 11.1 składa się z następującego interfejsu API.
- ID3D11Device::CheckFeatureSupport z D3D11_FEATURE_DATA_D3D11_OPTIONS, D3D11_FEATURE_DATA_ARCHITECTURE_INFO, D3D11_FEATURE_DATA_D3D9_OPTIONS, D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORTi strukturami D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT
- ID3D11Device::CheckFormatSupport z D3D11_FORMAT_SUPPORT_DECODER_OUTPUT, D3D11_FORMAT_SUPPORT_VIDEO_PROCESSOR_OUTPUT, D3D11_FORMAT_SUPPORT_VIDEO_PROCESSOR_INPUT, D3D11_FORMAT_SUPPORT_VIDEO_ENCODERi D3D11_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP
Korzystanie z minimalnej precyzji HLSL
Począwszy od systemu Windows 8, sterowniki graficzne mogą implementować minimalną precyzję typy danych skalarnych HLSL przy użyciu dowolnej precyzji większej lub równej określonej precyzji bitów. Jeśli na sprzęcie jest używany minimalny kod cieniowania dokładności HLSL, który implementuje minimalną precyzję HLSL, używasz mniejszej przepustowości pamięci i w rezultacie używasz mniejszej mocy systemu.
Możesz wykonać zapytanie o minimalną dokładność obsługiwaną przez sterownik graficzny, wywołując ID3D11Device::CheckFeatureSupport z wartością D3D11_FEATURE_SHADER_MIN_PRECISION_SUPPORT. W tym ID3D11Device::CheckFeatureSupport wywołanie, przekaż wskaźnik do struktury D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT, która ID3D11Device::CheckFeatureSupport wypełnia minimalne poziomy dokładności obsługiwane przez sterownik dla etapu cieniowania pikseli i innych etapów cieniowania. Zwrócone informacje wskazują tylko, że sprzęt graficzny może wykonywać operacje HLSL z mniejszą dokładnością niż standardowa precyzja zmiennoprzecinkowa 32-bitowa, ale nie gwarantuje, że sprzęt graficzny rzeczywiście będzie działać z niższą precyzją.
Nie musisz tworzyć wielu cieniowania i nie używać minimalnej precyzji. Zamiast tego należy utworzyć cieniowania z minimalną dokładnością, a minimalne zmienne precyzji zachowują się z pełną dokładnością 32-bitową, jeśli sterownik graficzny zgłasza, że nie obsługuje żadnej minimalnej precyzji. Aby uzyskać więcej informacji o minimalnej precyzji HLSL, zobacz Using HLSL minimum precision.
Minimalne cieniowania dokładności HLSL nie działają w systemach operacyjnych starszych niż Windows 8.
Określanie płaszczyzn klipów użytkownika w programie HLSL na poziomie funkcji 9 i wyższym
Począwszy od systemu Windows 8, można użyć atrybutu funkcji w deklaracji funkcji HLSL , a nie SV_ClipDistance, aby cieniowanie działało na poziomie funkcji 9_x, a także na poziomie funkcji 10 i wyższym. Aby uzyskać więcej informacji, zobacz Płaszczyzny klipów użytkownika na poziomie 9 sprzętu.
Tworzenie większych stałych niż cieniator może uzyskiwać dostęp
Direct3D 11.1 umożliwia tworzenie stałych, które są większe niż maksymalny stały rozmiar buforu, do którego może uzyskać dostęp cieniator (4096 32-bitowe*stałe 4-składnikowe — 64 KB). Później, po powiązaniu z potokiem, na przykład za pośrednictwem PSSetConstantBuffers lub PSSetConstantBuffers1, można określić zakres, do których moduł cieniowania może uzyskać dostęp w ramach limitu 4096.
Direct3D 11.1 aktualizuje metodę ID3D11Device::CreateBuffer dla tej funkcji.
Używanie operacji logicznych w obiekcie docelowym renderowania
Funkcja Direct3D 11.1 umożliwia używanie operacji logicznych zamiast mieszania w obiekcie docelowym renderowania. Nie można jednak mieszać operacji logiki z mieszaniem między wieloma obiektami docelowymi renderowania.
Ta funkcja Direct3D 11.1 składa się z następującego interfejsu API.
Wymuś liczbę próbek, aby utworzyć stan rasterizatora
Funkcja Direct3D 11.1 umożliwia określenie liczby próbek siłowych podczas tworzenia stanu rasteryzatora.
Ta funkcja Direct3D 11.1 składa się z następującego interfejsu API.
Nuta
Jeśli chcesz renderować z liczbą próbek wymuszoną do 1 lub większej, musisz postępować zgodnie z następującymi wytycznymi:
- Nie powiąż widoków wzornika głębokości.
- Wyłącz testowanie głębokości.
- Upewnij się, że cieniator nie generuje głębokości danych wyjściowych.
- Jeśli istnieją widoki render-target powiązane (D3D11_BIND_RENDER_TARGET) i wymusiłeś liczbę próbek do większej niż 1, upewnij się, że każdy element docelowy renderowania ma tylko jedną próbkę.
- Nie należy obsługiwać cieniowania z częstotliwością próbkowania. W związku z tym ID3D11ShaderReflection::IsSampleFrequencyShader zwraca wartość FALSE.
W przeciwnym razie zachowanie renderowania jest niezdefiniowane. Aby uzyskać informacje o sposobie konfigurowania wzornika głębi, zobacz Configuring Depth-Stencil Functionality.
Przetwarzanie zasobów wideo przy użyciu cieniowania
Funkcja Direct3D 11.1 umożliwia tworzenie widoków (SRV/RTV/UAV) do zasobów wideo, dzięki czemu cieniowanie Direct3D może przetwarzać te zasoby wideo. Format bazowego zasobu wideo ogranicza formaty, których może używać widok. Wyliczenie DXGI_FORMAT zawiera nowe wartości formatu zasobów wideo. Te DXGI_FORMAT wartości określają prawidłowe formaty widoku, które można utworzyć i jak środowisko uruchomieniowe Direct3D 11.1 mapuje widok. Można utworzyć wiele widoków różnych części tej samej powierzchni, a w zależności od formatu rozmiary widoków mogą się różnić od siebie.
Program Direct3D 11.1 aktualizuje następujące metody dla tej funkcji.
- ID3D11Device::CreateShaderResourceView
- ID3D11Device::CreateRenderTargetView
- ID3D11Device::CreateUnorderedAccessView
Rozszerzona obsługa udostępnionych zasobów Texture2D
Direct3D 11.1 gwarantuje, że można udostępniać zasoby Texture2D utworzone przy użyciu określonych typów zasobów i formatów. Aby udostępnić zasoby Texture2D, użyj flag D3D11_RESOURCE_MISC_SHARED, D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEXlub kombinacji D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX i D3D11_RESOURCE_MISC_SHARED_NTHANDLE (nowy dla systemu Windows 8) podczas tworzenia tych zasobów.
Direct3D 11.1 gwarantuje, że można udostępniać zasoby Texture2D utworzone przy użyciu tych wartości DXGI_FORMAT:
- DXGI_FORMAT_R8G8B8A8_UNORM
- DXGI_FORMAT_R8G8B8A8_UNORM_SRGB
- DXGI_FORMAT_B8G8R8A8_UNORM
- DXGI_FORMAT_B8G8R8A8_UNORM_SRGB
- DXGI_FORMAT_B8G8R8X8_UNORM
- DXGI_FORMAT_B8G8R8X8_UNORM_SRGB
- DXGI_FORMAT_R10G10B10A2_UNORM
- DXGI_FORMAT_R16G16B16A16_FLOAT
Ponadto direct3D 11.1 gwarantuje, że można udostępniać zasoby Texture2D utworzone za pomocą poziomu mipmapy 1, rozmiar tablicy 1, flagi powiązania D3D11_BIND_SHADER_RESOURCE i D3D11_BIND_RENDER_TARGET połączone, domyślne użycie (D3D11_USAGE_DEFAULT) i tylko te wartości D3D11_RESOURCE_MISC_FLAG:
- D3D11_RESOURCE_MISC_SHARED
- D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX
- D3D11_RESOURCE_MISC_SHARED_NTHANDLE
- D3D11_RESOURCE_MISC_GDI_COMPATIBLE
Funkcja Direct3D 11.1 umożliwia udostępnianie większej gamy typów zasobów i formatów Texture2D. Możesz sprawdzić, czy sterownik graficzny i sprzęt obsługują rozszerzone udostępnianie zasobów Texture2D, wywołując ID3D11Device::CheckFeatureSupport z wartością D3D11_FEATURE_D3D11_OPTIONS. W tym wywołaniu ID3D11Device::CheckFeatureSupport przekaż wskaźnik do struktury D3D11_FEATURE_DATA_D3D11_OPTIONS. ID3D11Device::CheckFeatureSupport ustawia ExtendedResourceSharing członka D3D11_FEATURE_DATA_D3D11_OPTIONS, aby true, jeśli sprzęt i sterownik obsługują rozszerzone udostępnianie zasobów Texture2D.
Jeśli ID3D11Device::CheckFeatureSupport zwraca true w ExtendedResourceSharing, możesz udostępnić zasoby utworzone przy użyciu tych wartości DXGI_FORMAT:
- DXGI_FORMAT_R32G32B32A32_TYPELESS
- DXGI_FORMAT_R32G32B32A32_FLOAT
- DXGI_FORMAT_R32G32B32A32_UINT
- DXGI_FORMAT_R32G32B32A32_SINT
- DXGI_FORMAT_R16G16B16A16_TYPELESS
- DXGI_FORMAT_R16G16B16A16_FLOAT
- DXGI_FORMAT_R16G16B16A16_UNORM
- DXGI_FORMAT_R16G16B16A16_UINT
- DXGI_FORMAT_R16G16B16A16_SNORM
- DXGI_FORMAT_R16G16B16A16_SINT
- DXGI_FORMAT_R10G10B10A2_UNORM
- DXGI_FORMAT_R10G10B10A2_UINT
- DXGI_FORMAT_R8G8B8A8_TYPELESS
- DXGI_FORMAT_R8G8B8A8_UNORM
- DXGI_FORMAT_R8G8B8A8_UNORM_SRGB
- DXGI_FORMAT_R8G8B8A8_UINT
- DXGI_FORMAT_R8G8B8A8_SNORM
- DXGI_FORMAT_R8G8B8A8_SINT
- DXGI_FORMAT_B8G8R8A8_TYPELESS
- DXGI_FORMAT_B8G8R8A8_UNORM
- DXGI_FORMAT_B8G8R8X8_UNORM
- DXGI_FORMAT_B8G8R8A8_UNORM_SRGB
- DXGI_FORMAT_B8G8R8X8_TYPELESS
- DXGI_FORMAT_B8G8R8X8_UNORM_SRGB
- DXGI_FORMAT_R32_TYPELESS
- DXGI_FORMAT_R32_FLOAT
- DXGI_FORMAT_R32_UINT
- DXGI_FORMAT_R32_SINT
- DXGI_FORMAT_R16_TYPELESS
- DXGI_FORMAT_R16_FLOAT
- DXGI_FORMAT_R16_UNORM
- DXGI_FORMAT_R16_UINT
- DXGI_FORMAT_R16_SNORM
- DXGI_FORMAT_R16_SINT
- DXGI_FORMAT_R8_TYPELESS
- DXGI_FORMAT_R8_UNORM
- DXGI_FORMAT_R8_UINT
- DXGI_FORMAT_R8_SNORM
- DXGI_FORMAT_R8_SINT
- DXGI_FORMAT_A8_UNORM
- DXGI_FORMAT_AYUV
- DXGI_FORMAT_YUY2
- DXGI_FORMAT_NV12
- DXGI_FORMAT_NV11
- DXGI_FORMAT_P016
- DXGI_FORMAT_P010
- DXGI_FORMAT_Y216
- DXGI_FORMAT_Y210
- DXGI_FORMAT_Y416
- DXGI_FORMAT_Y410
Jeśli ID3D11Device::CheckFeatureSupport zwraca true w ExtendedResourceSharing, możesz udostępniać zasoby utworzone za pomocą tych funkcji i flag:
- D3D11_USAGE_DEFAULT
- D3D11_BIND_SHADER_RESOURCE
- D3D11_BIND_RENDER_TARGET
- D3D11_RESOURCE_MISC_GENERATE_MIPS
- D3D11_BIND_UNORDERED_ACCESS
- Poziomy mipmap (co najmniej jeden poziom) w zasobach tekstury 2D (określone w MipLevels elementu członkowskiego D3D11_TEXTURE2D_DESC)
- Tablice zasobów tekstury 2D (co najmniej jedna tekstura) (określone w ArraySize elementu członkowskiego D3D11_TEXTURE2D_DESC)
- D3D11_BIND_DECODER
- D3D11_RESOURCE_MISC_RESTRICTED_CONTENT
- D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE
- D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER
Nuta
Gdy extendedResourceSharing jest true, masz większą elastyczność podczas określania flag powiązania do udostępniania zasobów Texture2D. Sterownik graficzny i sprzęt obsługują nie tylko więcej flag powiązania, ale także bardziej możliwe kombinacje flag powiązania. Można na przykład określić tylko D3D11_BIND_RENDER_TARGET lub bez flag powiązania itd.
Nawet jeśli ID3D11Device::CheckFeatureSupport zwraca true w ExtendedResourceSharing, nadal nie można udostępniać zasobów utworzonych przy użyciu tych funkcji i flag:
- D3D11_BIND_DEPTH_STENCIL
- Zasoby tekstur 2D w trybie antyaliasingu wieloampowego (MSAA) (określone za pomocą DXGI_SAMPLE_DESC)
- D3D11_RESOURCE_MISC_RESOURCE_CLAMP
- D3D11_USAGE_IMMUTABLE, D3D11_USAGE_DYNAMIClub D3D11_USAGE_STAGING (czyli mapowalne)
- D3D11_RESOURCE_MISC_TEXTURECUBE
Zmienianie podźródła za pomocą nowych opcji kopiowania
Funkcja Direct3D 11.1 umożliwia używanie nowych flag kopiowania do kopiowania i aktualizowania podźródła. Podczas kopiowania podźródła zasoby źródłowe i docelowe mogą być identyczne, a regiony źródłowe i docelowe mogą się nakładać.
Ta funkcja Direct3D 11.1 składa się z następującego interfejsu API.
Odrzucanie zasobów i widoków zasobów
Funkcja Direct3D 11.1 umożliwia odrzucenie zasobów i widoków zasobów z kontekstu urządzenia. Ta nowa funkcja informuje procesor GPU, że istniejąca zawartość w zasobach lub widokach zasobów nie jest już potrzebna.
Ta funkcja Direct3D 11.1 składa się z następującego interfejsu API.
- ID3D11DeviceContext1::D iscardResource
- ID3D11DeviceContext1::D iscardView
- ID3D11DeviceContext1::D iscardView1
Obsługa większej liczby niezależnych interfejsów użytkownika
Funkcja Direct3D 11.1 umożliwia korzystanie z większej liczby widoków UAV podczas tworzenia powiązania zasobów z etapu fuzji danych wyjściowych i ustawiania tablicy widoków dla nieuporządkowanego zasobu.
Program Direct3D 11.1 aktualizuje następujące metody dla tej funkcji.
- ID3D11DeviceContext::OMSetRenderTargetsAndUnorderedAccessViews
- ID3D11DeviceContext::CSSetUnorderedAccessViews
Wiązanie podwojenia buforu stałego z cieniatorem
Funkcja Direct3D 11.1 umożliwia powiązanie podwojenia buforu stałego na potrzeby cieniowania w celu uzyskania dostępu. Możesz podać większy bufor stały i określić podzestaw, którego może używać cieniator.
Ta funkcja Direct3D 11.1 składa się z następującego interfejsu API.
- ID3D11DeviceContext1::CSSetConstantBuffers1
- ID3D11DeviceContext1::D SSetConstantBuffers1
- ID3D11DeviceContext1::GSSetConstantBuffers1
- ID3D11DeviceContext1::HSSetConstantBuffers1
- ID3D11DeviceContext1::P SSetConstantBuffers1
- ID3D11DeviceContext1::VSSetConstantBuffers1
Pobieranie podwojenia buforu stałego powiązanego z cieniatorem
Funkcja Direct3D 11.1 umożliwia pobranie podwojenia buforu stałego powiązanego z cieniatorem.
Ta funkcja Direct3D 11.1 składa się z następującego interfejsu API.
- ID3D11DeviceContext1::CSGetConstantBuffers1
- ID3D11DeviceContext1::D SGetConstantBuffers1
- ID3D11DeviceContext1::GSGetConstantBuffers1
- ID3D11DeviceContext1::HSGetConstantBuffers1
- ID3D11DeviceContext1::P SGetConstantBuffers1
- ID3D11DeviceContext1::VSGetConstantBuffers1
Wyczyść wszystkie lub część widoku zasobu
Funkcja Direct3D 11.1 umożliwia wyczyszczenie widoku zasobów (RTV, UAV lub dowolnego widoku wideo powierzchni Tekstura2D). Ta sama wartość koloru jest stosowana do wszystkich części widoku.
Ta funkcja Direct3D 11.1 składa się z następującego interfejsu API.
Mapuj woluminy SRV dynamicznych za pomocą NO_OVERWRITE
Funkcja Direct3D 11.1 umożliwia mapowanie widoków zasobów cieniowania (SRV) dynamicznych z D3D11_MAP_WRITE_NO_OVERWRITE. Środowisko uruchomieniowe Direct3D 11 i wcześniejszych środowisk uruchomieniowych ogranicza mapowanie do wierzchołków lub indeksów.
Direct3D 11.1 aktualizuje metodę ID3D11DeviceContext::Map dla tej funkcji.
Używanie niezależnych interfejsów użytkownika na każdym etapie potoku
Funkcja Direct3D 11.1 umożliwia korzystanie z poniższych instrukcji dotyczących modelu cieniowania 5.0 we wszystkich etapach cieniowania, które były wcześniej używane w cieniowaniach pikseli i cieniowania obliczeniowego.
- dcl_uav_typed
- dcl_uav_raw
- dcl_uav_structured
- ld_raw
- ld_structured
- ld_uav_typed
- store_raw
- store_structured
- store_uav_typed
- sync_uglobal
- Wszystkie niepodzielne i natychmiastowe atomy (na przykład atomic_and i imm_atomic_and)
Program Direct3D 11.1 aktualizuje następujące metody dla tej funkcji.
- ID3D11DeviceContext::CreateDomainShader
- ID3D11DeviceContext::CreateGeometryShader
- ID3D11DeviceContext::CreateGeometryShaderWithStreamOutput
- ID3D11DeviceContext::CreateHullShader
- ID3D11DeviceContext::CreateVertexShader
Te instrukcje istniały w wersji Direct3D 11.0 w ps_5_0 i cs_5_0. Ponieważ funkcja Direct3D 11.1 udostępnia widoki UAV na wszystkich etapach cieniowania, te instrukcje są dostępne na wszystkich etapach cieniowania.
Jeśli przekażesz kompilowane cieniowania (VS/HS/DS/HS), które używają dowolnej z tych instrukcji do funkcji create-shader, takiej jak CreateVertexShader, na urządzeniach, które nie obsługują zestawów UAV na każdym etapie (w tym istniejących sterowników, które nie zostały zaimplementowane za pomocą tej funkcji), funkcja tworzenia cieniowania kończy się niepowodzeniem. Funkcja create-shader również kończy się niepowodzeniem, jeśli cieniowanie próbuje użyć gniazda UAV poza zestawem miejsc UAV, które obsługuje sprzęt.
Widoki UAV, do których odwołuje się te instrukcje, są współużytkowane we wszystkich etapach potoku. Na przykład UAV, który jest powiązany w miejscu 0 na etapie łączenia danych wyjściowych jest dostępny w miejscu 0 do VS/HS/DS/GS/PS.
Funkcja UAV uzyskuje dostęp do wystawianego z poziomu lub między etapami cieniowania wykonywanymi w ramach danego elementu Draw*() lub wystawianego z cieniowania zasobów obliczeniowych w elemecie Dispatch*() nie ma gwarancji, że zakończy się w kolejności, w której zostały wydane. Jednak wszystkie dostępy UAV kończą się na końcu draw*() lub Dispatch*().
Rozszerzona obsługa urządzeń WARP
Direct3D 11.1 rozszerza obsługę urządzeń WARP, które są tworzone przez przekazanie D3D_DRIVER_TYPE_WARP w parametrze DriverTypeD3D11CreateDevice.
Począwszy od urządzeń WARP z systemem Direct3D 11.1:
- Wszystkie poziomy funkcji direct3D z zakresu od 9.1 do 11.1
- cieniowanie compute i tessellation
- Udostępnione powierzchnie. Oznacza to, że można w pełni udostępniać powierzchnie między urządzeniami WARP, a także między urządzeniami WARP w różnych procesach.
Urządzenia WARP nie obsługują tych opcjonalnych funkcji:
Po uruchomieniu maszyny wirtualnej, funkcji Hyper-V z wyłączoną jednostką przetwarzania graficznego (GPU) lub bez sterownika wyświetlania otrzymujesz urządzenie WARP, którego przyjazna nazwa to "Microsoft Basic Display Adapter". To urządzenie WARP może uruchamiać pełne środowisko systemu Windows, w tym aplikacje DWM, Internet Explorer i Windows Store. To urządzenie WARP obsługuje również uruchamianie starszych aplikacji korzystających z DirectDraw lub działających aplikacji korzystających z trybu Direct3D 3 do Direct3D 11.1.
Używanie funkcji Direct3D w procesach sesji 0
Począwszy od systemów Windows 8 i Windows Server 2012, większość interfejsów API Direct3D można używać w procesach sesji 0.
Nuta
Te dane wyjściowe, okna, łańcuch wymiany i interfejsy API związane z prezentacją nie są dostępne w procesach sesji 0, ponieważ nie mają zastosowania do środowiska sesji 0:
- IDXGIFactory::CreateSwapChain
- IDXGIFactory::GetWindowAssociation
- IDXGIFactory::MakeWindowAssociation
- IDXGIAdapter::EnumOutputs
- ID3D11Debug::SetFeatureMask
- ID3D11Debug::SetPresentPerRenderOpDelay
- ID3D11Debug::SetSwapChain
- ID3D10Debug::SetFeatureMask
- ID3D10Debug::SetPresentPerRenderOpDelay
- ID3D10Debug::SetSwapChain
- D3D10CreateDeviceAndSwapChain
- D3D10CreateDeviceAndSwapChain1
- D3D11CreateDeviceAndSwapChain
Jeśli wywołasz jeden z powyższych interfejsów API w procesie sesji 0, zwraca DXGI_ERROR_NOT_CURRENTLY_AVAILABLE.
Obsługa buforu w tle na poziomie funkcji 9
Użyj podzbioru funkcji buforu w tle Direct3D 10_0+0, aby zaimplementować efekty cienia na poziomie funkcji 9_x. Aby uzyskać informacje o tym, co należy zrobić, aby zaimplementować efekty w tle na 9_x na poziomie funkcji, zobacz Implementowanie w tle dla poziomu funkcji Direct3D na poziomie 9.
Tematy pokrewne