Create a hull shader.
HRESULT CreateHullShader( [in] const void *pShaderBytecode, [in] SIZE_T BytecodeLength, [in, optional] ID3D11ClassLinkage *pClassLinkage, [out, optional] ID3D11HullShader **ppHullShader );
- pShaderBytecode [in]
Type: const void*
A pointer to a compiled shader.
- BytecodeLength [in]
Size of the compiled shader.
- pClassLinkage [in, optional]
A pointer to a class linkage interface (see ID3D11ClassLinkage); the value can be NULL.
- ppHullShader [out, optional]
Address of a pointer to a ID3D11HullShader interface.
This method returns one of the Direct3D 11 Return Codes.
The Direct3D 11.1 runtime, which is available starting with Windows 8, provides the following new functionality for CreateHullShader.
The following shader model 5.0 instructions are available to just pixel shaders and compute shaders in the Direct3D 11.0 runtime. For the Direct3D 11.1 runtime, because unordered access views (UAV) are available at all shader stages, you can use these instructions in all shader stages.
Therefore, if you use the following shader model 5.0 instructions in a hull shader, you can successfully pass the compiled hull shader to pShaderBytecode. That is, the call to CreateHullShader succeeds.
If you pass a compiled shader to pShaderBytecode that uses any of the following instructions on a device that doesn’t support UAVs at every shader stage (including existing drivers that are not implemented to support UAVs at every shader stage), CreateHullShader fails. CreateHullShader also fails if the shader tries to use a UAV slot beyond the set of UAV slots that the hardware supports.
- All atomics and immediate atomics (for example, atomic_and and imm_atomic_and)