컴파일러 대상 지정

D3DCompile, D3DCompile2 또는 D3DCompileFromFile 함수를 호출할 때 컴파일할 셰이더 대상(셰이더 기능 집합)을 지정해야 합니다. 이 항목에서는 D3DCompile* 함수 및 HLSL 컴파일러가 지원하는 다양한 프로필의 대상을 나열합니다.

Direct3D 11.0 및 11.1 기능 수준

다음은 Direct3D 11.0 및 11.1 기능 수준이 지원하는 셰이더 대상입니다.

대상 설명
cs_5_0 DirectCompute 5.0(컴퓨팅 셰이더)
ds_5_0 도메인 셰이더
gs_5_0 기하 도형 셰이더
hs_5_0 헐 셰이더
ps_5_0 픽셀 셰이더
vs_5_0 꼭짓점 셰이더

 

Direct3D 10.1 기능 수준

다음은 Direct3D 10.1 기능 수준이 지원하는 셰이더 대상입니다.

대상 설명
cs_4_1 DirectCompute 4.1(컴퓨팅 셰이더
gs_4_1 기하 도형 셰이더
ps_4_1 픽셀 셰이더
vs_4_1 꼭짓점 셰이더

 

Direct3D 10.0 기능 수준

다음은 Direct3D 10.0 기능 수준이 지원하는 셰이더 대상입니다.

대상 설명
cs_4_0 DirectCompute 4.0(컴퓨팅 셰이더
gs_4_0 기하 도형 셰이더
ps_4_0 픽셀 셰이더
vs_4_0 꼭짓점 셰이더

 

Direct3D 9.1, 9.2 및 9.3 기능 수준

다음은 Direct3D 9.1, 9.2 및 9.3 기능 수준이 지원하는 셰이더 대상입니다.

참고

*_4_0_level_9_x HLSL 셰이더 프로필을 사용하는 경우 셰이더 모델 2.x 프로필을 암시적으로 사용하여 Direct3D 9 가능 하드웨어를 지원합니다. 셰이더 모델 2.x 프로필은 셰이더 모델 4.x 이상 프로필보다 더 제한된 흐름 제어 동작을 지원합니다.

 

대상 설명
ps_4_0_level_9_1 9.1 및 9.2용 픽셀 셰이더(ps_2_0와 유사한 제한)
  • 산술 64개 및 텍스처 명령 32개
  • 임시 레지스터 12개
  • 종속 읽기 수준 4개
ps_4_0_level_9_3 9.3용 픽셀 셰이더(추가 셰이더 기능이 있는 ps_2_x²와 유사한 제한)
  • 명령 512개
  • 임시 레지스터 32개
  • 정적 흐름 제어(최대 깊이 4)
  • 동적 흐름 제어(최대 깊이 24)
  • D3DPS20CAPS_ARBITRARYSWIZZLE
  • D3DPS20CAPS_GRADIENTINSTRUCTIONS
  • D3DPS20CAPS_PREDICATION
  • D3DPS20CAPS_NODEPENDENTREADLIMIT
  • D3DPS20CAPS_NOTEXINSTRUCTIONLIMIT
vs_4_0_level_9_1 9.1 및 9.2용 꼭짓점 셰이더(vs_2_0와 유사)
  • 명령 256개
  • 임시 레지스터 12개
  • 정적 흐름 제어(최대 깊이 1)
vs_4_0_level_9_3 9.3용 꼭짓점 셰이더(추가 셰이더 기능 및 인스턴싱이 있는 vs_2_a²와 유사)
  • 명령 256개
  • 임시 레지스터 32개
  • 정적 흐름 제어(최대 깊이 4)
  • D3DVS20CAPS_PREDICATION

 

레거시 Direct3D 9 셰이더 모델 3.0

레거시 Direct3D 9 셰이더 모델 3.0³의 셰이더 대상은 다음과 같습니다.

대상 설명
ps_3_0 픽셀 셰이더 3.0
ps_3_sw 픽셀 셰이더 3.0(소프트웨어)
vs_3_0 꼭짓점 셰이더 3.0
vs_3_sw 꼭짓점 셰이더 3.0(소프트웨어)

 

레거시 Direct3D 9 셰이더 모델 2.0

레거시 Direct3D 9 셰이더 모델 2.0³의 셰이더 대상은 다음과 같습니다.

대상 설명
ps_2_0 픽셀 셰이더 2.0
ps_2_a 픽셀 셰이더 2a
ps_2_b 픽셀 셰이더 2b
ps_2_sw 픽셀 셰이더 2.0 소프트웨어
vs_2_0 꼭짓점 셰이더 2.0
vs_2_a 꼭짓점 셰이더 2a
vs_2_sw 꼭짓점 셰이더 2.0 소프트웨어

 

레거시 Direct3D 9 셰이더 모델 1.x

레거시 Direct3D 9 셰이더 모델 1.x⁴의 셰이더 대상은 다음과 같습니다.

대상 설명
tx_1_0 레거시 D3DX9⁵ 함수 D3DXCreateTextureShaderD3DXFillTextureTX가 사용하는 텍스처 셰이더 프로필
vs_1_1 꼭짓점 셰이더 1.1

 

레거시 효과

다음은 레거시 효과의 효과 대상입니다.

대상 설명
fx_2_0 D3DX9⁵의 Direct3D 9 효과(FX)
fx_4_0 D3DX10⁵의 Direct3D 10.0 효과(FX)
fx_4_1 D3DX10⁵의 Direct3D 10.1 효과(FX)
fx_5_0 Direct3D 11⁵ 효과(FX)

 

참고

다음은 이전 섹션에서 참조하는 몇 가지 참고 사항입니다.

  1. 기능 수준 10.0 및 10.1 디바이스는 필요에 따라 DirectCompute를 지원할 수 있습니다. 지원을 확인하려면 D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS와 함께 ID3D11Device::CheckFeatureSuppor를 사용하세요.
  2. 기능 수준 9.3에는 레거시 Direct3D 9 셰이더 모델 3.0의 요구 사항을 준수하는 하드웨어가 효과적으로 필요하지만 이 기능 수준은 vs_3_0 또는 ps_3_0 대상을 사용하지 않습니다.
  3. Direct3D 9 API가 있는 레거시 Direct3D 9 셰이더 모델만 사용합니다. 대신 Direct3D 10.x 및 11.x API가 있는 9.x 프로필을 사용하세요.
  4. 현재 HLSL 셰이더 D3DCompile* 함수는 레거시 1.x 픽셀 셰이더를 지원하지 않습니다. 이러한 대상을 지원하는 HLSL의 마지막 버전은 2006년 10월에 릴리스된 DirectX SDK의 D3DX9였습니다.
  5. D3DX 및 DirectX SDK의 모든 버전은 더 이상 사용되지 않습니다. 자세한 내용은 DirectX SDK 위치를 참조하세요.

HLSL에 대한 프로그래밍 지침