Delen via


Hardwarefunctieniveaus

Beschrijft de functionaliteit van de hardwarefuncties 11_0 tot en met 12_1.

Microsoft Direct3D 11 heeft het concept van functieniveaus geïntroduceerd om de diversiteit van videokaarten op nieuwe en bestaande machines af te handelen. Elke videokaart implementeert een bepaald niveau van Microsoft DirectX-functionaliteit (DX), afhankelijk van de gpu's (graphics processing units) die zijn geïnstalleerd. Een functieniveau is een goed gedefinieerde set GPU-functionaliteit. Het functieniveau 11_0 implementeert bijvoorbeeld de functionaliteit die is geïmplementeerd in Direct3D 11.

Wanneer u nu een apparaat maakt, kunt u proberen een apparaat te maken voor het functieniveau dat u wilt aanvragen. Als het apparaat wordt gemaakt, bestaat dat functieniveau, als dat niet het geval is, de hardware biedt geen ondersteuning voor dat functieniveau. U kunt proberen een apparaat opnieuw te maken op een lager functieniveau of u kunt ervoor kiezen om de toepassing af te sluiten.

De basiseigenschappen van functieniveaus zijn:

  • Alle Direct3D 12-stuurprogramma's zijn Functieniveau 11_0 of beter.
  • Een GPU waarmee een apparaat kan worden gemaakt, voldoet aan of overschrijdt de functionaliteit van dat functieniveau.
  • Een functieniveau bevat altijd de functionaliteit van eerdere of lagere functieniveaus.
  • Een functieniveau impliceert geen prestaties, alleen functionaliteit. Prestaties zijn afhankelijk van hardware-implementatie.
  • Er wordt een functieniveau gekozen wanneer u D3D12CreateDeviceaanroept.
  • Voor meer gedetailleerde informatie over ondersteunde functies (met name de functies die zijn gemarkeerd als Optionele in de onderstaande tabel, betekent dit dat de hardware de functie mogelijk ondersteunt, maar niet vereist is) CheckFeatureSupportaanroept.

Zie Beperkingen voor het maken van WARP- en referentieapparatenvoor informatie over beperkingen die niet-hardwaretypen maken op bepaalde functieniveaus. Raadpleeg de Direct3D 11-documentatie over Direct3D-functieniveausvoor meer informatie over de introductie van functieniveaus.

Nummeringssystemen

Hardwarefunctiesniveaus worden niet hetzelfde als API-versies. Er is bijvoorbeeld een D3D11.3-API, maar er is geen hardwarefunctieniveau 11_3. Functieniveaus worden gedefinieerd in de D3D_FEATURE_LEVEL enum.

Er zijn drie verschillende nummeringssystemen:

  • Direct3D-versies maken gebruik van een periode; Bijvoorbeeld Direct3D 12.0.
  • Arceringsmodellen maken gebruik van een punt; Bijvoorbeeld shader model 5.1.
  • Functieniveaus gebruiken een onderstrepingsteken; Bijvoorbeeld functieniveau 12_0.

Ondersteuning op functieniveau

De volgende functies zijn beschikbaar voor elk Direct3D-functieniveau.

De koppen in de bovenste rij zijn Direct3D-functieniveaus. De koppen in de linkerkolom zijn functies.

Functie \ functieniveau 12_1⁰ 12_0⁰ 11_1¹ 11_0
Shader-model 6.0 6.0 6.0/5.1² 6.0/5.1²
resourcebindingslaag Laag2³ Laag2³ Laag1³ Laag1³
tegelbronnen Laag2³ Laag2³ Facultatief Facultatief
Conservatieve rasterisering Laag1³ Facultatief Facultatief Nee
Rasterizer geordende weergaven Ja Facultatief Facultatief Nee
min/max filters Ja Ja Facultatief Nee
Standaardbuffer toewijzen Facultatief Facultatief Facultatief Facultatief
arceringsreferentiewaarde stencil opgegeven Facultatief Facultatief Facultatief Nee
getypte niet-geordende access-weergave laadt 18 indelingen, meer optioneel 18 indelingen, meer optioneel 3 indelingen, meer optioneel 3 indelingen, meer optioneel
Geometrie-shader Ja Ja Ja Ja
Stream Out- Ja Ja Ja Ja
DirectCompute/Compute Shader- Ja Ja Ja Ja
Hull and Domain Shaders Ja Ja Ja Ja
resourcematrices patroon Ja Ja Ja Ja
Cubemap-resourcematrices Ja Ja Ja Ja
BC1 naar BC7-compressie Ja Ja Ja Ja
alfa-naar-dekking Ja Ja Ja Ja
Logic Operations (Output Merger) Ja Ja Ja Facultatief
Doelonafhankelijke rasterisatie Ja Ja Ja Nee
Meerdere renderdoel (MRT) met ForcedSampleCount 1 Ja Ja Ja Facultatief
Maximum aantal geforceerde steekproeven voor alleen-UAV-rendering 16 16 16 8
Maximale patroondimensie 16384 16384 16384 16384
Maximale kubuskaartdimensie 16384 16384 16384 16384
Maximale volumehoeveelheid 2048 2048 2048 2048
Max. patroon herhalen 16384 16384 16384 16384
Max Anisotropie 16 16 16 16
Maximum aantal primitieven 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1
Max. hoekpuntindex 2^32 – 1 2^32 – 1 2^32 – 1 2^32 – 1
Maximum aantal invoersites 32 32 32 32
Gelijktijdige renderdoelen 8 8 8 8
Occlusiequery's Ja Ja Ja Ja
Afzonderlijke alfamix Ja Ja Ja Ja
Eenmaal spiegelen Ja Ja Ja Ja
Overlappende hoekpuntelementen Ja Ja Ja Ja
Onafhankelijke schrijfmaskers Ja Ja Ja Ja
Instancing Ja Ja Ja Ja

 

  • ⁰ Vereist de Direct3D 11.3- of Direct3D 12-runtime.
  • ¹ Vereist de Direct3D 11.1-runtime.
  • ² Shader model 5.0 kan optioneel ondersteuning bieden voor arceringen met dubbele precisie, uitgebreide arceringen met dubbele precisie, de SAD4 arceringsinstructie en gedeeltelijke precisie-shaders. Als u de beschikbare opties van het shadermodel 5.0 wilt bepalen, roept u ID3D12Device::CheckFeatureSupportaan. Sommige compatibiliteit is afhankelijk van de hardware waarop u werkt: Shader-model 5.1 wordt alleen ondersteund op hardware die ondersteuning biedt voor de DirectX 12-API, ongeacht het functieniveau dat wordt gebruikt. DirectX 11-hardware ondersteunt alleen maximaal shader model 5.0. De DirectX 12-API gaat alleen omlaag naar functieniveau 11_0.
  • Hogere lagen zijn optioneel.
  • Voor functieniveaus 12_0 en 12_1 is de Direct3D 11.3- of Direct3D 12-runtime vereist.
  • Voor functieniveau 11_1 is de Direct3D 11.1-runtime vereist.
  • Voor functieniveau 11_0 is de Direct3D 11.0-runtime vereist.

Hardwareondersteuning voor DXGI-indelingen

Als u tabellen met DXGI-indelingen en hardwarefuncties wilt weergeven, raadpleegt u:

mogelijkheid om query's uit te voeren op

Understanding Direct3D 12