Direct3D 11.1-functies
De volgende functionaliteit is toegevoegd in Direct3D 11.1, die is opgenomen in Windows 8, Windows RT en Windows Server 2012. Gedeeltelijke ondersteuning voor Direct3D 11.1 is beschikbaar op Windows 7 en Windows Server 2008 R2 via de PlatformUpdate voor Windows 7, die beschikbaar is via de Platform Update voor Windows 7.
- Shader-tracering en compilerverbeteringen
- Direct3D-apparaat delen
- Controleer de ondersteuning van nieuwe Direct3D 11.1-functies en -indelingen
- HLSL-minimumprecisie gebruiken
- Gebruikersclipvlakken opgeven in HLSL op functieniveau 9 en hoger
- Grotere constante buffers maken dan een shader toegang heeft tot
- Logische bewerkingen gebruiken in een renderdoel
- Het aantal voorbeelden afdwingen om een rasterizerstatus te maken
- videoresources verwerken met shaders
- uitgebreide ondersteuning voor gedeelde Texture2D-resources
- Subresources wijzigen met nieuwe kopieeropties
- resources en resourceweergaven verwijderen
- Ondersteuning voor een groter aantal UAV's
- een subbereik van een constante buffer binden aan een arcerings-
- Het subbereik van een constante buffer ophalen die is gebonden aan een shader-
- alle of een deel van een resourceweergave wissen
- VV's van dynamische buffers toewijzen met NO_OVERWRITE
- UAV's gebruiken in elke pijplijnfase
- uitgebreide ondersteuning voor WARP-apparaten
- Direct3D gebruiken in sessie 0-processen
- Ondersteuning voor schaduwbuffer op functieniveau 9
- Verwante onderwerpen
Verbeteringen van Shader-tracering en compiler
Met Direct3D 11.1 kunt u shader-tracering gebruiken om ervoor te zorgen dat uw code naar behoren presteert en als u het probleem niet kunt detecteren en oplossen. De Windows Software Development Kit (SDK) voor Windows 8 bevat verbeteringen van de HLSL-compiler. Shader-tracering en de HLSL-compiler worden geïmplementeerd in D3dcompiler_nn.dll.
De shader tracing-API en de verbeteringen van de HLSL-compiler bestaan uit de volgende methoden en functies.
- ID3D11RefaultTrackingOptions::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-
- D3DDisassemble11Trace-
- D3DDisassembleRegion
- D3DGetTraceInstructionOffsets
- D3DReadFileToBlob-
- D3DSetBlobPart-
- D3DWriteBlobToFile-
Voor de D3dcompiler.lib-bibliotheek is D3dcompiler_nn.dllvereist. Dit DLL-bestand maakt geen deel uit van Windows 8; deze bevindt zich in de \bin folder of the Windows SDK for Windows 8 along with the Fxc.exe opdrachtregelversie van de HLSL-compiler.
Notitie
Hoewel u deze bibliotheek en DLL-combinatie voor ontwikkeling kunt gebruiken, kunt u geen Windows Store-apps implementeren die gebruikmaken van deze combinatie. Daarom moet u in plaats daarvan HLSL-shaders compileren voordat u uw Windows Store-app verzendt. U kunt binaire hlSL-compilatiebestanden naar schijf schrijven of de compiler kan headers genereren met statische bytematrices die de shader-blobgegevens bevatten. U gebruikt de ID3DBlob--interface voor toegang tot de blobgegevens. Als u uw Windows Store-app wilt ontwikkelen, roept u D3DCompile2 of D3DCompileFromFile aan om de onbewerkte HLSL-bron te compileren en voert u vervolgens de resulterende blobgegevens in naar Direct3D.
Direct3D-apparaat delen
Met Direct3D 11.1 kunnen Direct3D 10-API's en Direct3D 11-API's één onderliggend renderingapparaat gebruiken.
Deze Direct3D 11.1-functie bestaat uit de volgende methoden en interface.
- ID3D11Device1::CreateDeviceContextState
- ID3D11DeviceContext1::SwapDeviceContextState
- ID3DDeviceContextState
Ondersteuning voor nieuwe Direct3D 11.1-functies en -indelingen controleren
Met Direct3D 11.1 kunt u controleren op nieuwe functies die het grafische stuurprogramma mogelijk ondersteunt en nieuwe manieren waarop een indeling wordt ondersteund op een apparaat. Microsoft DirectX Graphics Infrastructure (DXGI) 1.2 geeft ook nieuwe DXGI_FORMAT waarden op.
Deze Direct3D 11.1-functie bestaat uit de volgende API.
- ID3D11Device::CheckFeatureSupport met D3D11_FEATURE_DATA_D3D11_OPTIONS, D3D11_FEATURE_DATA_ARCHITECTURE_INFO, D3D11_FEATURE_DATA_D3D9_OPTIONS, D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORTen D3D11_FEATURE_DATA_D3D9_SHADOW_SUPPORT structuren
- ID3D11Device::CheckFormatSupport met D3D11_FORMAT_SUPPORT_DECODER_OUTPUT, D3D11_FORMAT_SUPPORT_VIDEO_PROCESSOR_OUTPUT, D3D11_FORMAT_SUPPORT_VIDEO_PROCESSOR_INPUT, D3D11_FORMAT_SUPPORT_VIDEO_ENCODERen D3D11_FORMAT_SUPPORT2_OUTPUT_MERGER_LOGIC_OP
Minimale precisie van HLSL gebruiken
Vanaf Windows 8 kunnen grafische stuurprogramma's minimale precisie implementeren scalaire HLSL-gegevenstypen door elke precisie te gebruiken die groter is dan of gelijk is aan de opgegeven bitprecisie. Wanneer uw HLSL-code voor minimale precisie-shader wordt gebruikt op hardware die minimale precisie van HLSL implementeert, gebruikt u minder geheugenbandbreedte en als gevolg hiervan gebruikt u ook minder systeemkracht.
U kunt een query uitvoeren voor de minimale precisieondersteuning die het grafische stuurprogramma biedt door ID3D11Device::CheckFeatureSupport aan te roepen met de D3D11_FEATURE_SHADER_MIN_PRECISION_SUPPORT waarde. In dit ID3D11Device::CheckFeatureSupport aanroep geeft u een aanwijzer door naar een D3D11_FEATURE_DATA_SHADER_MIN_PRECISION_SUPPORT structuur die ID3D11Device::CheckFeatureSupport vult met de minimale precisieniveaus die het stuurprogramma ondersteunt voor de pixel-shaderfase en voor andere arceringsfasen. De geretourneerde informatie geeft alleen aan dat de grafische hardware HLSL-bewerkingen met een lagere precisie kan uitvoeren dan de standaard 32-bits floatprecisie, maar garandeert niet dat de grafische hardware daadwerkelijk met een lagere precisie wordt uitgevoerd.
U hoeft niet meerdere shaders te maken die wel en geen minimale precisie gebruiken. Maak in plaats daarvan shaders met minimale precisie en de minimale precisievariabelen gedragen zich met volledige 32-bits precisie als het grafische stuurprogramma rapporteert dat deze geen minimale precisie ondersteunt. Zie HlSL-minimumprecisie gebruikenvoor meer informatie over de minimale precisie van HLSL.
HlSL-minimumprecisie-shaders werken niet op besturingssystemen die ouder zijn dan Windows 8.
Gebruikersclipvlakken opgeven in HLSL op functieniveau 9 en hoger
Vanaf Windows 8 kunt u het kenmerk clipplanes functie gebruiken in een declaratie van een HLSL-functie in plaats van SV_ClipDistance om ervoor te zorgen dat uw shader werkt op functieniveau 9_x en hoger op functieniveau 10 en hoger. Zie Gebruikersclipvlakken op hardwareniveau 9 op functieniveau 9voor meer informatie.
Grotere constante buffers maken dan een shader kan openen
Met Direct3D 11.1 kunt u constante buffers maken die groter zijn dan de maximale constante buffergrootte waartoe een shader toegang heeft (4096 32-bits*4-componentconstanten – 64 kB). Wanneer u de buffers later koppelt aan de pijplijn, bijvoorbeeld via PSSetConstantBuffers of PSSetConstantBuffers1, kunt u een bereik van buffers opgeven waartoe de shader toegang heeft die binnen de limiet van 4096 past.
Direct3D 11.1 werkt de methode ID3D11Device::CreateBuffer methode voor deze functie bij.
Logische bewerkingen gebruiken in een renderdoel
Met Direct3D 11.1 kunt u logische bewerkingen gebruiken in plaats van een renderdoel te combineren. U kunt logische bewerkingen echter niet combineren met het combineren van meerdere renderdoelen.
Deze Direct3D 11.1-functie bestaat uit de volgende API.
Het aantal voorbeelden afdwingen om een rasterizerstatus te maken
Met Direct3D 11.1 kunt u een aantal geforceerde steekproeven opgeven wanneer u een rasterizerstatus maakt.
Deze Direct3D 11.1-functie bestaat uit de volgende API.
Notitie
Als u wilt renderen met het aantal steekproefsgeforceerd naar 1 of hoger, moet u de volgende richtlijnen volgen:
- Bind geen dieptestencilweergaven.
- Dieptetests uitschakelen.
- Zorg ervoor dat de arcering geen uitvoerdiepte uitvoert.
- Als u een weergavedoelweergave hebt gebonden (D3D11_BIND_RENDER_TARGET) en u het aantal steekproeven hebt afgedwongen op meer dan 1, moet u ervoor zorgen dat elk renderdoel slechts één steekproef heeft.
- Gebruik de shader niet bij voorbeeldfrequentie. Daarom retourneert ID3D11ShaderReflection::IsSampleFrequencyShaderFALSE.
Anders is het weergavegedrag niet gedefinieerd. Zie Configureren van Depth-Stencil Functionaliteitvoor meer informatie over het configureren van dieptestencils.
Videoresources verwerken met shaders
Met Direct3D 11.1 kunt u weergaven (SRV/RTV/UAV) maken naar videoresources, zodat Direct3D-shaders deze videoresources kunnen verwerken. De indeling van een onderliggende videoresource beperkt de indelingen die de weergave kan gebruiken. De opsomming DXGI_FORMAT bevat nieuwe waarden voor de indeling van videoresources. Deze DXGI_FORMAT waarden geven de geldige weergave-indelingen op die u kunt maken en hoe de Direct3D 11.1-runtime de weergave toe wijst. U kunt meerdere weergaven van verschillende delen van hetzelfde oppervlak maken, en afhankelijk van de indeling kunnen de grootten van de weergaven van elkaar verschillen.
Direct3D 11.1 werkt de volgende methoden voor deze functie bij.
- ID3D11Device::CreateShaderResourceView
- ID3D11Device::CreateRenderTargetView
- ID3D11Device::CreateUnorderedAccessView
Uitgebreide ondersteuning voor gedeelde Texture2D-resources
Direct3D 11.1 garandeert dat u Texture2D-resources kunt delen die u hebt gemaakt met bepaalde resourcetypen en indelingen. Als u Texture2D-resources wilt delen, gebruikt u de markeringen D3D11_RESOURCE_MISC_SHARED, D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEXof een combinatie van de markeringen D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX en D3D11_RESOURCE_MISC_SHARED_NTHANDLE (nieuw voor Windows 8) wanneer u deze resources maakt.
Direct3D 11.1 garandeert dat u Texture2D-resources kunt delen die u hebt gemaakt met deze DXGI_FORMAT waarden:
- 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
Bovendien garandeert Direct3D 11.1 dat u Texture2D-resources kunt delen die u hebt gemaakt met een mipmapniveau van 1, matrixgrootte van 1, bindingsvlagmen van D3D11_BIND_SHADER_RESOURCE en D3D11_BIND_RENDER_TARGET gecombineerd, standaardgebruik (D3D11_USAGE_DEFAULT), en alleen deze D3D11_RESOURCE_MISC_FLAG waarden:
- D3D11_RESOURCE_MISC_SHARED
- D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX
- D3D11_RESOURCE_MISC_SHARED_NTHANDLE
- D3D11_RESOURCE_MISC_GDI_COMPATIBLE
Met Direct3D 11.1 kunt u een grotere verscheidenheid aan texture2D-resourcetypen en -indelingen delen. U kunt opvragen of het grafische stuurprogramma en de hardware uitgebreide Texture2D-resource delen ondersteunen door ID3D11Device::CheckFeatureSupport aan te roepen met de D3D11_FEATURE_D3D11_OPTIONS waarde. In deze ID3D11Device::CheckFeatureSupport aanroep geeft u een aanwijzer door aan een D3D11_FEATURE_DATA_D3D11_OPTIONS structuur. ID3D11Device::CheckFeatureSupport stelt het lid ExtendedResourceSharing- lid van D3D11_FEATURE_DATA_D3D11_OPTIONS in op TRUE- als het hardware- en stuurprogramma uitgebreide Texture2D-resources delen ondersteunt.
Als ID3D11Device::CheckFeatureSupportTRUE in ExtendedResourceSharing-retourneert, kunt u resources delen die u met deze DXGI_FORMAT waarden hebt gemaakt:
- 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
Als ID3D11Device::CheckFeatureSupport retourneert TRUE- in ExtendedResourceSharing-, kunt u resources delen die u hebt gemaakt met deze functies en vlaggen:
- D3D11_USAGE_DEFAULT
- D3D11_BIND_SHADER_RESOURCE
- D3D11_BIND_RENDER_TARGET
- D3D11_RESOURCE_MISC_GENERATE_MIPS
- D3D11_BIND_UNORDERED_ACCESS
- Mipmapniveaus (een of meer niveaus) in de 2D-patroonresources (opgegeven in de MipLevels lid van D3D11_TEXTURE2D_DESC)
- Matrices van 2D-patroonresources (een of meer patronen) (opgegeven in de ArraySize lid van D3D11_TEXTURE2D_DESC)
- D3D11_BIND_DECODER
- D3D11_RESOURCE_MISC_RESTRICTED_CONTENT
- D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE
- D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER
Notitie
Wanneer ExtendedResourceSharing is TRUE, hebt u meer flexibiliteit wanneer u bindingsvlagmen opgeeft voor het delen van Texture2D-resources. Het grafische stuurprogramma en de hardware ondersteunen niet alleen meer bindingsvlagmen, maar ook meer mogelijke combinaties van bindingsvlagmen. U kunt bijvoorbeeld alleen D3D11_BIND_RENDER_TARGET of geen bindingsvlagmen opgeven, enzovoort.
Zelfs als ID3D11Device::CheckFeatureSupportTRUE- retourneert in ExtendedResourceSharing, kunt u nog steeds geen resources delen die u hebt gemaakt met deze functies en vlaggen:
- D3D11_BIND_DEPTH_STENCIL
- 2D-patroonbronnen in de MSAA-modus (multisample antialiasing) (opgegeven met DXGI_SAMPLE_DESC)
- D3D11_RESOURCE_MISC_RESOURCE_CLAMP
- D3D11_USAGE_IMMUTABLE, D3D11_USAGE_DYNAMICof D3D11_USAGE_STAGING (dat wil gezegd, toe te wijzen)
- D3D11_RESOURCE_MISC_TEXTURECUBE
Subresources wijzigen met nieuwe kopieeropties
Met Direct3D 11.1 kunt u nieuwe kopieervlagmen gebruiken om subresources te kopiëren en bij te werken. Wanneer u een subresource kopieert, kunnen de bron- en doelresources identiek zijn en kunnen de bron- en doelregio's elkaar overlappen.
Deze Direct3D 11.1-functie bestaat uit de volgende API.
Resources en resourceweergaven verwijderen
Met Direct3D 11.1 kunt u resources en weergaven van resources uit de apparaatcontext verwijderen. Deze nieuwe functionaliteit informeert de GPU dat bestaande inhoud in resources of resourceweergaven niet meer nodig is.
Deze Direct3D 11.1-functie bestaat uit de volgende API.
- ID3D11DeviceContext1::D iscardResource
- ID3D11DeviceContext1::D iscardView
- ID3D11DeviceContext1::D iscardView1
Ondersteuning voor een groter aantal UAV's
Met Direct3D 11.1 kunt u een groter aantal UVS's gebruiken wanneer u resources koppelt aan de fase van uitvoerfusie en wanneer u een matrix met weergaven instelt voor een niet-geordende resource.
Direct3D 11.1 werkt de volgende methoden voor deze functie bij.
- ID3D11DeviceContext::OMSetRenderTargetsAndUnorderedAccessViews
- ID3D11DeviceContext::CSSetUnorderedAccessViews
Een subbereik van een constante buffer binden aan een shader
Met Direct3D 11.1 kunt u een subbereik van een constante buffer binden voor toegang tot een shader. U kunt een grotere constante buffer opgeven en de subrange opgeven die de shader kan gebruiken.
Deze Direct3D 11.1-functie bestaat uit de volgende API.
- ID3D11DeviceContext1::CSSetConstantBuffers1
- ID3D11DeviceContext1::D SSetConstantBuffers1
- ID3D11DeviceContext1::GSSetConstantBuffers1
- ID3D11DeviceContext1::HSSetConstantBuffers1
- ID3D11DeviceContext1::P SSetConstantBuffers1
- ID3D11DeviceContext1::VSSetConstantBuffers1
Het subbereik ophalen van een constante buffer die is gebonden aan een shader
Met Direct3D 11.1 kunt u het subbereik ophalen van een constante buffer die is gebonden aan een shader.
Deze Direct3D 11.1-functie bestaat uit de volgende API.
- ID3D11DeviceContext1::CSGetConstantBuffers1
- ID3D11DeviceContext1::D SGetConstantBuffers1
- ID3D11DeviceContext1::GSGetConstantBuffers1
- ID3D11DeviceContext1::HSGetConstantBuffers1
- ID3D11DeviceContext1::P SGetConstantBuffers1
- ID3D11DeviceContext1::VSGetConstantBuffers1
Alle of een deel van een resourceweergave wissen
Met Direct3D 11.1 kunt u een resourceweergave wissen (RTV, UAV of een videoweergave van een Texture2D-oppervlak). U past dezelfde kleurwaarde toe op alle delen van de weergave.
Deze Direct3D 11.1-functie bestaat uit de volgende API.
SRV's van dynamische buffers toewijzen met NO_OVERWRITE
Met Direct3D 11.1 kunt u arceringsresourceweergaven (SRV) van dynamische buffers toewijzen met D3D11_MAP_WRITE_NO_OVERWRITE. De Direct3D 11 en eerdere runtimes beperkt de toewijzing aan hoekpunt- of indexbuffers.
Direct3D 11.1 werkt de methode ID3D11DeviceContext::Map voor deze functie bij.
UAV's gebruiken in elke pijplijnfase
Met Direct3D 11.1 kunt u de volgende shader model 5.0-instructies gebruiken in alle arceringsfasen die eerder werden gebruikt in slechts pixel-shaders en compute-shaders.
- 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
- Alle atomische en onmiddellijke atomica (bijvoorbeeld atomic_and en imm_atomic_and)
Direct3D 11.1 werkt de volgende methoden voor deze functie bij.
- ID3D11DeviceContext::CreateDomainShader
- ID3D11DeviceContext::CreateGeometryShader
- ID3D11DeviceContext::CreateGeometryShaderWithStreamOutput
- ID3D11DeviceContext::CreateHullShader
- ID3D11DeviceContext::CreateVertexShader
Deze instructies bestonden in Direct3D 11.0 in ps_5_0 en cs_5_0. Omdat Direct3D 11.1 UAVs beschikbaar maakt in alle arceringsfasen, zijn deze instructies beschikbaar in alle shader-fasen.
Als u gecompileerde shaders (VS/HS/DS/HS) doorgeeft die een van deze instructies gebruiken voor een create-shader-functie, zoals CreateVertexShader, mislukt de functie create-shader op apparaten die UAV's niet ondersteunen in elke fase (inclusief bestaande stuurprogramma's die niet met deze functie worden geïmplementeerd). De functie create-shader mislukt ook als de shader probeert een UAV-site te gebruiken buiten de set UAV-sleuven die door de hardware worden ondersteund.
De UAV's waarnaar wordt verwezen door deze instructies, worden gedeeld in alle pijplijnfasen. Een UAV die is gebonden aan slot 0 in de uitvoerfusiefase is bijvoorbeeld beschikbaar op site 0 naar VS/HS/DS/GS/PS.
UAV heeft toegang tot het probleem dat u vanuit of in de arceringsfasen uitvoert die worden uitgevoerd binnen een bepaalde Draw*() of die u uitgeeft vanuit de compute-shader binnen een Dispatch*() zijn niet gegarandeerd voltooid in de volgorde waarin u ze hebt uitgegeven. Maar alle UAV-toegangen eindigen aan het einde van de Draw*() of Dispatch*().
Uitgebreide ondersteuning voor WARP-apparaten
Direct3D 11.1 breidt de ondersteuning uit voor WARP--apparaten, die u maakt door D3D_DRIVER_TYPE_WARP door te geven in de parameter DriverType van D3D11CreateDevice.
Vanaf Direct3D 11.1 WARP-apparaten wordt het volgende ondersteund:
- Alle direct3D-functieniveaus van 9.1 tot en met 11.1
- Compute-shaders en tesselatie
- Gedeelde oppervlakken. Dat wil gezegd, u kunt oppervlakken volledig delen tussen WARP-apparaten en tussen WARP-apparaten in verschillende processen.
WARP-apparaten bieden geen ondersteuning voor deze optionele functies:
Wanneer u een virtuele machine (VM) uitvoert, krijgt u Hyper-V, waarbij uw GPU (Graphics Processing Unit) is uitgeschakeld of zonder beeldschermstuurprogramma, een WARP-apparaat waarvan de beschrijvende naam 'Microsoft Basic Display Adapter' is. Dit WARP-apparaat kan de volledige Windows-ervaring uitvoeren, waaronder DWM-, Internet Explorer- en Windows Store-apps. Dit WARP-apparaat biedt ook ondersteuning voor het uitvoeren van verouderde apps die gebruikmaken van DirectDraw of apps uitvoeren die Direct3D 3 tot en met Direct3D 11.1 gebruiken.
Direct3D gebruiken in sessie 0-processen
Vanaf Windows 8 en Windows Server 2012 kunt u de meeste Direct3D-API's gebruiken in sessie 0-processen.
Notitie
Deze uitvoer-, venster-, wisselketen- en presentatie-gerelateerde API's zijn niet beschikbaar in sessie 0-processen omdat ze niet van toepassing zijn op de sessie 0-omgeving:
- IDXGIFactory::CreateSwapChain
- IDXGIFactory::GetWindowAssociation
- IDXGIFactory::MakeWindowAssociation
- IDXGIAdapter::EnumOutputs
- ID3D11Debug::SetFeatureMask
- ID3D11Debug::SetPresentPerRenderOpDelay-
- ID3D11Debug::SetSwapChain
- ID3D10Debug::SetFeatureMask-
- ID3D10Debug::SetPresentPerRenderOpDelay-
- ID3D10Debug::SetSwapChain
- D3D10CreateDeviceAndSwapChain
- D3D10CreateDeviceAndSwapChain1
- D3D11CreateDeviceAndSwapChain
Als u een van de voorgaande API's aanroept in een sessie 0-proces, wordt DXGI_ERROR_NOT_CURRENTLY_AVAILABLEgeretourneerd.
Ondersteuning voor schaduwbuffer op functieniveau 9
Gebruik een subset van Direct3D 10_0+-schaduwbufferfuncties om schaduweffecten te implementeren op functieniveau 9_x. Zie Schaduwbuffers implementeren voor Direct3D-functieniveau 9voor informatie over wat u moet doen om schaduweffecten op functieniveau op functie 9_x niveau 9 te implementeren.
Verwante onderwerpen