ID3D11Device::CreateVertexShader Method

Create a vertex-shader object from a compiled shader.

Syntax

public:
HRESULT CreateVertexShader(
         const void *pShaderBytecode,
         SIZE_T BytecodeLength,
         ID3D11ClassLinkage *pClassLinkage,
         ID3D11VertexShader **ppVertexShader
)  

Parameters

pShaderBytecode
Type: void *

[in] A pointer to the compiled shader.

BytecodeLength
Type: SIZE_T 

[in] Size of the compiled vertex shader.

pClassLinkage
Type: ID3D11ClassLinkage *

[in, optional] A pointer to a class linkage interface (see ID3D11ClassLinkage); the value can be NULL.

ppVertexShader
Type: ID3D11VertexShader **

[out, optional] Address of a pointer to a ID3D11VertexShader interface. If this is NULL, all other parameters will be validated, and if all parameters pass validation this API will return S_FALSE instead of S_OK.

Return value

Type: HRESULT 

This method returns one of the Direct3D 11 return codes.

Remarks

The Direct3D 11.1 runtime, which is available starting with Windows 8, provides the following new functionality for CreateVertexShader.

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 vertex shader, you can successfully pass the compiled vertex shader to pShaderBytecode. That is, the call to CreateVertexShader 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), CreateVertexShader fails. CreateVertexShader also fails if the shader tries to use a UAV slot beyond the set of UAV slots that the hardware supports.

Requirements

Header: Declared in d3d11_x.h (d3d11.h on other Windows platforms).

Library: Use d3d11_x.lib (d3d11.lib on other Windows platforms).

See also

ID3D11Device

ID3D11Device Members