High Level Shading Language
HLSL自体は、シェーダー関数および各シェーダーステージのエントリーポイント(いわゆるメイン関数)を記述するために使われるが、この複数のシェーダーステージをまとめて管理・適用する「エフェクト」と呼ばれる仕組みも存在する。つまり、例えば2つの頂点シェーダーエントリーポイントVS1(), VS2()と2つのピクセルシェーダーエントリーポイントPS1(), PS2()を単一のHLSLソースプログラムファイル(通例.fx拡張子が付けられ、エフェクトファイルと呼ばれる)に記述し、さらにVS1+PS1, VS2+PS2, VS1+PS2, VS2+PS1といったシェーダーステージの組み合わせ(パス)のほか、各種レンダリングステートの設定をエフェクトファイル中に記述して関連付けることができる。エフェクトを扱うAPIはDirect3D 10のコアライブラリもしくはDirect3D 9/11のエクステンションライブラリ(D3DX)に用意されており、レンダリングパイプラインの管理をC++コードから分離することができる。
DirectX 10.x世代。
統合型シェーダーアーキテクチャの採用。なお、GPGPU用APIのCUDAやOpenCLに対応するのはSM 4.0世代以降である。
定数レジスタ(定数バッファ)容量の大幅な拡張。
ジオメトリシェーダーの追加。
追加のテクスチャ命令などをサポートするマイナーバージョン4.1が存在する。
対応GPU: RadeonはHD 2xxx-HD 4xxxシリーズ、GeForceは8xxx-GT 3xxシリーズ。
ゲーム機であるWii U用GPUは、SM4.0またはその派生版と思われる。