D3DCOMPILE 상수
D3DCOMPILE 상수는 컴파일러가 HLSL 코드를 컴파일하는 방법을 지정합니다.
상수 | 설명 | 참고 |
---|---|---|
|
디버그 파일/줄/유형/기호 정보를 출력 코드에 삽입하도록 컴파일러에 지시합니다. | See D3DXSHADER_DEBUG |
|
알려진 기능 및 제약 조건에 대해 생성된 코드의 유효성을 검사하지 않도록 컴파일러에 지시합니다. 이전에 성공적으로 컴파일된 셰이더에만 이 상수를 사용하는 것이 좋습니다. DirectX는 디바이스에 설정하기 전에 항상 셰이더의 유효성을 검사합니다. | D3DXSHADER_SKIPVALIDATION 참조 |
|
코드 생성 중에 최적화 단계를 건너뛰도록 컴파일러에 지시합니다. 디버그 목적으로만 이 상수를 설정하는 것이 좋습니다. | D3DXSHADER_SKIPOPTIMIZATION 참조 |
|
컴파일러가 셰이더의 입출력에서 행 주요 순서로 행렬을 압축하도록 지시합니다. | See D3DXSHADER_PACKMATRIX_ROWMAJOR |
|
셰이더의 입출력에서 열 주요 순서로 행렬을 압축하도록 컴파일러에 지시합니다. 일련의 내적이 벡터-행렬 곱셈을 수행할 수 있기 때문에 이러한 형식의 채우기는 일반적으로 더 효율적입니다. | See D3DXSHADER_PACKMATRIX_COLUMNMAJOR |
|
부분 정밀도로 모든 계산을 수행하도록 컴파일러에 지시합니다. 이 상수를 설정하면 컴파일된 코드가 일부 하드웨어에서 더 빠르게 실행될 수 있습니다. | D3DXSHADER_PARTIALPRECISION 참조 |
|
다음으로 높은 셰이더 프로필에 대한 꼭짓점 셰이더를 컴파일하도록 컴파일러에 지시합니다. 이 상수는 디버깅을 켜고 최적화를 끕니다. | 이 플래그는 Direct3D 9에만 적용할 수 있습니다. See D3DXSHADER_FORCE_VS_SOFTWARE_NOOPT |
|
다음으로 높은 셰이더 프로필에 대한 픽셀 셰이더를 컴파일하도록 컴파일러에 지시합니다. 이 상수는 또한 디버깅을 켜고 최적화를 끕니다. | 이 플래그는 Direct3D 9에만 적용할 수 있습니다. See D3DXSHADER_FORCE_PS_SOFTWARE_NOOPT |
|
Preshaders를 사용하지 않도록 컴파일러에 지시합니다. 이 상수를 설정하면 컴파일러는 평가를 위해 정적 식을 끌어오지 않습니다. | 이 플래그는 레거시 Direct3D 9 및 Direct3D 10 효과(FX)에만 적용할 수 있었습니다. See D3DXSHADER_NO_PRESHADER |
|
가능한 경우 흐름 제어 구문을 사용하지 않도록 컴파일러에 지시합니다. | See D3DXSHADER_AVOID_FLOW_CONTROL |
|
레거시 구문을 허용하지 않을 수 있는 엄격한 컴파일을 강제합니다. 기본적으로 컴파일러는 사용되지 않는 구문에 대한 엄격성을 사용하지 않도록 설정합니다. | |
|
IEEE 규칙을 위반할 수 있는 최적화를 방지하는 IEEE 엄격한 컴파일을 강제합니다. | D3DXSHADER_IEEE_STRICTNESS 참조 |
|
이전 셰이더가 5_0 대상으로 컴파일할 수 있도록 컴파일러에 지시합니다. | D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY 참조 |
|
가장 낮은 최적화 수준을 사용하도록 컴파일러에 지시합니다. 이 상수를 설정하면 컴파일러에서 더 느린 코드를 생성할 수 있지만 더 빠르게 코드를 생성합니다. 셰이더를 반복적으로 개발할 때 이 상수를 설정합니다. | See D3DXSHADER_OPTIMIZATION_LEVEL0 |
|
두 번째로 낮은 최적화 수준을 사용하도록 컴파일러에 지시합니다. | See D3DXSHADER_OPTIMIZATION_LEVEL1 |
|
두 번째로 높은 최적화 수준을 사용하도록 컴파일러에 지시합니다. | See D3DXSHADER_OPTIMIZATION_LEVEL2 |
|
가장 높은 최적화 수준을 사용하도록 컴파일러에 지시합니다. 이 상수를 설정하면 컴파일러에서 가능한 최상의 코드를 생성하지만 그렇게 하는 데 훨씬 더 오래 걸릴 수 있습니다. 성능이 가장 중요한 요소인 경우 애플리케이션의 최종 빌드에 대해 이 상수를 설정합니다. | See D3DXSHADER_OPTIMIZATION_LEVEL3 |
|
컴파일러가 셰이더 코드를 컴파일할 때 모든 경고를 오류로 처리하도록 지시합니다. 모든 경고를 해결하고 찾기 어려운 코드 결함 수를 줄일 수 있도록 새 셰이더 코드에 이 상수를 사용하는 것이 좋습니다. | |
|
UAV(순서가 지정되지 않은 액세스 뷰) 및 SRV(셰이더 리소스 뷰)가 cs_5_0에 대해 별칭을 지정할 수 있다고 가정하도록 컴파일러에 지시합니다. | DirectX 12 / 셰이더 모델 5.1에만 적용됩니다. |
|
무제한 설명자 테이블을 사용 설정하도록 컴파일러에 지시합니다. | DirectX 12 / 셰이더 모델 5.1에만 적용됩니다. |
|
모든 리소스가 바인딩되도록 컴파일러에 지시합니다. | DirectX 12 / 셰이더 모델 5.1에만 적용됩니다. |
|
디버그 PDB를 생성할 때 원본 파일과 해시용 이진 파일을 사용합니다. | |
|
디버그 PDB를 생성할 때 해시에 대해서만 이진 파일 이름을 사용합니다. |
참고
D3DCOMPILE_RESOURCES_MAY_ALIAS
, D3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLES
및 D3DCOMPILE_ALL_RESOURCES_BOUND
컴파일러 상수는 Windows 8.1 SDK 이상과 함께 제공되는 D3dcompiler_47.dll부터 새로 시작됩니다.
참고
D3DCOMPILE_DEBUG_NAME_FOR_SOURCE
및 D3DCOMPILE_DEBUG_NAME_FOR_BINARY
컴파일러 상수는 Windows 10 Fall Creator의 업데이트 SDK(버전 16299) 이상과 함께 제공되는 D3dcompiler_47.dll부터 새로 시작됩니다. 이 블로그 게시물을 참조하세요.
참고
DirectX 12의 경우 셰이더 모델 5.1, D3DCompile API 및 FXC는 모두 사용되지 않습니다. 대신 DXIL을 통해 셰이더 모델 6을 사용합니다. GitHub를 참조하세요.
요구 사항
요구 사항 | 값 |
---|---|
헤더 |
|