ID3D11DeviceContext::PSSetShader method (d3d11.h)

Sets a pixel shader to the device.


void PSSetShader(
  [in, optional] ID3D11PixelShader   *pPixelShader,
  [in, optional] ID3D11ClassInstance * const *ppClassInstances,
                 UINT                NumClassInstances


[in, optional] pPixelShader

Type: ID3D11PixelShader*

Pointer to a pixel shader (see ID3D11PixelShader). Passing in NULL disables the shader for this pipeline stage.

[in, optional] ppClassInstances

Type: ID3D11ClassInstance*

A pointer to an array of class-instance interfaces (see ID3D11ClassInstance). Each interface used by a shader must have a corresponding class instance or the shader will get disabled. Set ppClassInstances to NULL if the shader does not use any interfaces.


Type: UINT

The number of class-instance interfaces in the array.

Return value



The method will hold a reference to the interfaces passed in. This differs from the device state behavior in Direct3D 10.

The maximum number of instances a shader can have is 256.

Set ppClassInstances to NULL if no interfaces are used in the shader. If it is not NULL, the number of class instances must match the number of interfaces used in the shader. Furthermore, each interface pointer must have a corresponding class instance or the assigned shader will be disabled.

Windows Phone 8: This API is supported.


Requirement Value
Target Platform Windows
Header d3d11.h
Library D3D11.lib

See also