Verbesserungen der Direct3D-Renderingleistung
Windows Display Driver Model (WDDM) 1.3 und höher können Microsoft Direct3D-Rendering-Leistungsverbesserungen unterstützen, die es Direct3D 9-Hardware ermöglichen, Hardwarebefehlspuffer und Leistungsindikatoren besser zu nutzen und effiziente Kopien des Systemspeichers in Unterressourcen zu erstellen. Diese Funktionen, die einige der für Direct3D Version 10 verfügbaren Funktionen Spiegel, sind ab Windows 8.1 neu.
Neue Direct3D 11.1-Ressourcenkürzungen und Verbesserungen der Kartenstandardleistung sind ebenfalls verfügbar. Das Kartenstandardszenario wird im Abschnitt Verhaltensänderungen unten beschrieben.
Referenz zur Renderingleistung
In diesem Referenzabschnitt werden die Benutzermodus-Gerätetreiberschnittstellen (DDIs) beschrieben.
Vom Benutzermodustreiber implementierte Direct3D-Renderingleistungsfunktionen
Dieser Abschnitt enthält Funktionen, die ein Windows Display Driver Model (WDDM) 1.3 und höher für den Benutzermodusanzeigetreiber implementiert, um Verbesserungen der Microsoft Direct3D-Renderingleistung zu unterstützen.
PFND3DDDI_FLUSH1: PFND3DDDI_CHECKCOUNTERINFO
PFND3DDDI_CHECKCOUNTER: PFND3DDDI_UPDATESUBRESOURCEUP
Direct3D-Renderingleistungsstrukturen und -enumerationen
Diese Benutzermodusstrukturen und Enumerationen unterstützen Renderingleistungsverbesserungen und sind für Windows 8.1 neu oder aktualisiert. Alle gelten für Direct3D Level 9-Treiber mit Ausnahme von D3D11_1_DDI_FLUSH_FLAGS.
- D3DDDI_FLUSH_FLAGS (neu)
- D3DDDIARG_COPYFLAGS (neu)
- D3DDDIARG_COUNTER_INFO (neu)
- D3DDDIARG_UPDATESUBRESOURCEUP (neu)
- D3DDDICAPS_SIMPLE_INSTANCING_SUPPORT (neu)
- CreateResource2 (WDDM 1.3 und höher, Direct3D Level 9-Treiber müssen den E_INVALIDARG Fehlercode zurückgeben, wenn der CaptureBuffer-Flagwert festgelegt ist)
- D3D11_1_DDI_FLUSH_FLAGS (D3DWDDM1_3DDI_TRIM_MEMORY Konstante hinzugefügt)
- D3DDDI_DEVICEFUNCS (elemente pfnFlush1, pfnCheckCounterInfo, pfnCheckCounter, pfnUpdateSubresourceUP hinzugefügt)
- D3DDDI_POOL (D3DDDIPOOL_STAGINGMEM Konstante hinzugefügt)
- D3DDDICAPS_TYPE (D3DDDICAPS_GET_SIMPLE_INSTANCING_SUPPORT Konstante hinzugefügt)
- GetCaps (neue Informationen in Den Hinweisen)
DDI-Implementierungsanforderungen ab WDDM 1.3
Ab WDDM 1.3 sind die folgenden Funktionen für die Implementierung von Benutzermodustreibern erforderlich oder optional.
Funktionsgruppe | BESCHREIBUNG |
---|---|
Direct3D 9-Funktionen, die vor WDDM 1.3 optional sind. Jetzt erforderlich: |
|
Direct3D 9-Funktionen, die ab WDDM 1.3 verfügbar sind. Ein Treiber muss entweder alle oder keine dieser Funktionen implementieren: |
|
Wenn die optionalen Funktionen wddm 1.3 und höher unmittelbar oben implementiert sind, weisen diese Funktionen verhaltensänderungen auf: |
Diese Szenarien gelten, wenn GetCaps aufgerufen wird:
|
Diese Direct3D 11-Funktionen weisen Verhaltensänderungen auf: |
|
Verhaltensänderungen für Aufrufe von Funktionen zum Erstellen, Zuordnen und Aufheben der Zuordnung von Ressourcen
Für diese Funktionen, die von WDDM 1.3- und höher-Treibern implementiert werden, stellt die Direct3D-Runtime einen eingeschränkten Satz von Eingabewerten für das Kartenstandardszenario bereit. Diese eingeschränkten Werte gelten nur für Treiber, die die Featureebene 11.1 und höher unterstützen.
CreateResource(D3D11)-Funktion –
Diese Eingabe-D3D11DDIARG_CREATERESOURCE Strukturmember sind eingeschränkt:
Member | BESCHREIBUNG |
---|---|
ResourceDimension und Usage |
Diese Verhaltensänderungen gelten nur, wenn die Direct3D-Runtime den Typ D3D10DDIRESOURCE_BUFFER für ResourceDimension und den Typ D3D10_DDI_USAGE_DEFAULT für Usage bereitstellt. |
BindFlags |
Die Direct3D-Runtime legt nur die werte für die D3D10_DDI_BIND_SHADER_RESOURCE und D3D11_DDI_BIND_UNORDERED_ACCESS fest. |
MapFlags |
Wenn alle anderen hier aufgeführten Memberanforderungen erfüllt sind, kann die Runtime D3D10_DDI_MAP_READ-, D3D10_DDI_MAP_WRITE- und D3D10_DDI_MAP_READWRITE-Werte festlegen. Der Treiber muss diese Werte unterstützen. Die Werte von D3D10_DDI_MAP_WRITE_DISCARD und D3D10_DDI_MAP_WRITE_NOOVERWRITE sind ungültig. |
MiscFlags |
Die Laufzeit legt nur die D3D11_DDI_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS - und D3D11_DDI_RESOURCE_MISC_BUFFER_STRUCTURED-Werte fest. |
Format |
Die Runtime legt nur den wert DXGI_FORMAT_UNKNOWN fest. |
SampleDesc |
Die Runtime legt die DXGI_SAMPLE_DESC fest. Zählen Sie Member auf 1, und das Quality-Element auf 0. |
MipLevels |
Die Laufzeit legt den Wert auf 1 fest. |
ArraySize |
Die Laufzeit legt den Wert auf 1 fest. |
pPrimaryDesc |
Die Laufzeit legt den Wert auf NULL fest. |
Diese Eingabeparameter für ResourceMap sind eingeschränkt:
Parameter | BESCHREIBUNG |
---|---|
hResource |
Die Direct3D-Runtime legt nur eine D3D10DDIRESOURCE_BUFFER-Ressource fest, wenn ein Wert ungleich 0 für MapFlags im Erstellungsaufruf auf CreateResource(D3D11) festgelegt wird. |
Die Runtime legt nur den wert DXGI_FORMAT_UNKNOWN fest. |
|
Subresource |
Die Runtime legt den Wert nur auf 0 fest. |
DDIMap |
Wenn alle anderen hier aufgeführten Memberanforderungen erfüllt sind, kann die Runtime D3D10_DDI_MAP_READ-, D3D10_DDI_MAP_WRITE- oder D3D10_DDI_MAP_READWRITE-Werte festlegen, die dem MapFlags-Wert entsprechen, der im Erstellungsaufruf von CreateResource(D3D11) festgelegt wurde. |
Flaggen |
Obwohl der Eingabewert aus der Runtime nicht eingeschränkt ist, muss der Treiber in der Lage sein, den D3D10_DDI_MAP_FLAG_DONOTWAIT-Wert zu unterstützen. |
pMappedSubResource |
Obwohl der Eingabewert der Runtime nicht eingeschränkt ist, muss der Treiber dem D3D10DDI_MAPPED_SUBRESOURCE einen gültigen CPU-zwischenspeicherbaren Zeiger zuweisen. pData-Member und müssen rowPitch und DepthPitch so festlegen, dass sie der Größe des Puffers und den in pData bereitgestellten Daten entsprechen. |
Diese Eingabeparameter für ResourceUnmap sind eingeschränkt:
Parameter | BESCHREIBUNG |
---|---|
hGeräte |
Obwohl der Eingabewert aus der Direct3D-Runtime nicht eingeschränkt ist, ist der Wert, der mit dem hDevice-Wert aus dem ursprünglichen ResourceMap-Aufruf übereinstimmt. |
hResource |
Die Runtime legt nur eine D3D10DDIRESOURCE_BUFFER Ressource fest, wenn im Erstellungsaufruf von CreateResource(D3D11) ein Wert ungleich 0 für MapFlags festgelegt wird. |
Subresource |
Die Runtime legt den Wert nur auf 0 fest. |