D3D11DDIARG_TESSELLATION_IO_SIGNATURES Struktur (d3d10umddi.h)
Die D3D11DDIARG_TESSELLATION_IO_SIGNATURES-Struktur beschreibt eine Tessellation-E/A-Signatur.
Syntax
typedef struct D3D11DDIARG_TESSELLATION_IO_SIGNATURES {
[in] D3D10DDIARG_SIGNATURE_ENTRY *pInputSignature;
[in] UINT NumInputSignatureEntries;
[in] D3D10DDIARG_SIGNATURE_ENTRY *pOutputSignature;
[in] UINT NumOutputSignatureEntries;
[in] D3D10DDIARG_SIGNATURE_ENTRY *pPatchConstantSignature;
[in] UINT NumPatchConstantSignatureEntries;
} D3D11DDIARG_TESSELLATION_IO_SIGNATURES;
Member
[in] pInputSignature
Ein Array von D3D10DDIARG_SIGNATURE_ENTRY Strukturen für den Eingabeteil einer Signatur.
[in] NumInputSignatureEntries
Die Anzahl der Einträge im Array, die das pInputSignature-Element angibt.
[in] pOutputSignature
Ein Array von D3D10DDIARG_SIGNATURE_ENTRY Strukturen für den Ausgabeteil einer Signatur.
[in] NumOutputSignatureEntries
Die Anzahl von Einträgen im Array, die das pOutputSignature-Element angibt.
[in] pPatchConstantSignature
Ein Array von D3D10DDIARG_SIGNATURE_ENTRY Strukturen für die Signaturpatches.
[in] NumPatchConstantSignatureEntries
Die Anzahl von Einträgen im Array, die das pPatchConstantSignature-Element angibt.
Hinweise
Eine Signatur ist im Grunde die Vereinigung aller Register, die von jedem Shader eingegeben und ausgegeben werden, der die Signatur gemeinsam verwendet. Daher kann eine Signatur eine Übermenge dessen sein, was ein bestimmter Shader tatsächlich eingibt oder ausgibt.
Die Hardware sollte festlegen, dass die Upstream Phase in der Pipeline einige oder alle Daten in der Signatur bereitstellen kann, die als pInputSignature- und NumInputSignatureEntries-Member angegeben sind. Auf ähnliche Weise sollte die Hardware bestimmen, dass die Downstreamphase in der Pipeline möglicherweise einige oder alle Daten in der Signatur verbraucht, die als pOutputSignature - und NumInputSignatureEntries-Member angegeben ist.
Um die Anforderung zu erfüllen, dass die Ereigniseingabe- und Ausgaberegister während der Shaderkompilierung neu sortiert werden müssen, wird die vollständige Signatur an den Treiber übergeben. Eine solche Neuanordnung kann davon abhängen, ob der Treiber alle Register in der Signatur ermitteln kann und welche Register Systemnamen aufweisen (z. B. Namen, die das SystemValue-Element der D3D10DDIARG_SIGNATURE_ENTRY-Struktur angibt). Eine solche Neuanordnung hängt möglicherweise auch davon ab, dass der Treiber Register ermitteln kann, die im aktuellen Shader nicht vorhanden sind.
Die Deklarationen im Shadercode selbst zeigen auch an, welche Register tatsächlich von einem bestimmten Shader verwendet werden. Diese Register sind möglicherweise eine Teilmenge der Eingabe- und Ausgabeteile der Signatur. Wenn zur Kompilierzeit keine Hardware zum Neuanordnen von Eingabe- und Ausgaberegistern erforderlich ist, kann der Treiber für diese Hardware die vollständige Signatur, die die D3D11DDIARG_TESSELLATION_IO_SIGNATURES-Struktur bereitstellt, vollständig ignorieren. Die Verweisrasterung erfordert beispielsweise nicht die Informationen, die die D3D11DDIARG_TESSELLATION_IO_SIGNATURES-Struktur bereitstellt.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | D3D11DDIARG_TESSELLATION_IO_SIGNATURES wird ab dem Windows 7-Betriebssystem unterstützt. |
Kopfzeile | d3d10umddi.h (einschließlich D3d10umddi.h) |