다음을 통해 공유


컴파일러 대상 지정

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 (컴퓨팅 셰이더)1
gs_4_1 지오메트리 셰이더
ps_4_1 픽셀 셰이더
vs_4_1 꼭짓점 셰이더

 

Direct3D 10.0 기능 수준

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

목표 설명
cs_4_0 DirectCompute 4.0(컴퓨팅 셰이더)1
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 함수인 D3DXCreateTextureShader 및 D3DXFillTextureTX 에서 사용하는 텍스처 셰이더 프로필
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를 지원할 수 있습니다. 지원을 확인하려면 ID3D11Device::CheckFeatureSupport에서 D3D11_FEATURE_D3D10_X_HARDWARE_OPTIONS를 사용하십시오.
  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의 마지막 버전은 DirectX SDK의 2006년 10월 릴리스에서 D3DX9였습니다.
  5. D3DX 및 DirectX SDK의 모든 버전은 더 이상 사용되지 않습니다. 자세한 내용은 DirectX SDK의 위치를 참조하세요.

HLSL을 위한 프로그래밍 가이드