D3D11DDIARG_TESSELLATION_IO_SIGNATURES structure (d3d10umddi.h)
The D3D11DDIARG_TESSELLATION_IO_SIGNATURES structure describes a tessellation I/O signature.
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;
Members
[in] pInputSignature
An array of D3D10DDIARG_SIGNATURE_ENTRY structures for the input part of a signature.
[in] NumInputSignatureEntries
The number of entries in the array that the pInputSignature member specifies.
[in] pOutputSignature
An array of D3D10DDIARG_SIGNATURE_ENTRY structures for the output part of a signature.
[in] NumOutputSignatureEntries
The number of entries in the array that the pOutputSignature member specifies.
[in] pPatchConstantSignature
An array of D3D10DDIARG_SIGNATURE_ENTRY structures for the signature patches.
[in] NumPatchConstantSignatureEntries
The number of entries in the array that the pPatchConstantSignature member specifies.
Remarks
A signature is basically the union of all registers that are input and output by any shader that shares the signature. Therefore, a signature might be a superset of what a given shader might actually input or output.
Hardware should determine that the upstream stage in the pipeline might provide some or all of the data in the signature that is laid out as the pInputSignature and NumInputSignatureEntries members specify. Similarly, hardware should determine that the downstream stage in the pipeline might consume some or all of the data in the signature that is laid out as the pOutputSignature and NumInputSignatureEntries members specify.
To comply with the requirement for the event input and output registers to be reordered during shader compilation, the full signature is passed to the driver. Such reordering might depend on the driver being able to determine all of the registers in the signature, as well as which registers have system names (for example, names that the SystemValue member of the D3D10DDIARG_SIGNATURE_ENTRY structure specifies). Such reordering might also depend on the driver being able to determine registers that are not present in the current shader.
The declarations within the shader code itself also show which registers are actually used by a particular shader. These registers are possibly a subset of the input and output parts of the signature. If some hardware is not required to reorder input and output registers at compile time, the driver for that hardware can completely ignore the full signature that the D3D11DDIARG_TESSELLATION_IO_SIGNATURES structure provides. The reference rasterizer, for example, does not require the information that the D3D11DDIARG_TESSELLATION_IO_SIGNATURES structure provides.
Requirements
Requirement | Value |
---|---|
Minimum supported client | D3D11DDIARG_TESSELLATION_IO_SIGNATURES is supported beginning with the Windows 7 operating system. |
Header | d3d10umddi.h (include D3d10umddi.h) |