D3DCOMPILE 상수

D3DCOMPILE 상수는 컴파일러가 HLSL 코드를 컴파일하는 방법을 지정합니다.

상수 설명 참고
D3DCOMPILE_DEBUG
/ZI
디버그 파일/줄/유형/기호 정보를 출력 코드에 삽입하도록 컴파일러에 지시합니다. See D3DXSHADER_DEBUG
D3DCOMPILE_SKIP_VALIDATION
/Vd
알려진 기능 및 제약 조건에 대해 생성된 코드의 유효성을 검사하지 않도록 컴파일러에 지시합니다. 이전에 성공적으로 컴파일된 셰이더에만 이 상수를 사용하는 것이 좋습니다. DirectX는 디바이스에 설정하기 전에 항상 셰이더의 유효성을 검사합니다. D3DXSHADER_SKIPVALIDATION 참조
D3DCOMPILE_SKIP_OPTIMIZATION
/Od
코드 생성 중에 최적화 단계를 건너뛰도록 컴파일러에 지시합니다. 디버그 목적으로만 이 상수를 설정하는 것이 좋습니다. D3DXSHADER_SKIPOPTIMIZATION 참조
D3DCOMPILE_PACK_MATRIX_ROW_MAJOR
/Zpr
컴파일러가 셰이더의 입출력에서 행 주요 순서로 행렬을 압축하도록 지시합니다. See D3DXSHADER_PACKMATRIX_ROWMAJOR
D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR
/Zpc
셰이더의 입출력에서 열 주요 순서로 행렬을 압축하도록 컴파일러에 지시합니다. 일련의 내적이 벡터-행렬 곱셈을 수행할 수 있기 때문에 이러한 형식의 채우기는 일반적으로 더 효율적입니다. See D3DXSHADER_PACKMATRIX_COLUMNMAJOR
D3DCOMPILE_PARTIAL_PRECISION
/Gpp
부분 정밀도로 모든 계산을 수행하도록 컴파일러에 지시합니다. 이 상수를 설정하면 컴파일된 코드가 일부 하드웨어에서 더 빠르게 실행될 수 있습니다. D3DXSHADER_PARTIALPRECISION 참조
D3DCOMPILE_FORCE_VS_SOFTWARE_NO_OPT
다음으로 높은 셰이더 프로필에 대한 꼭짓점 셰이더를 컴파일하도록 컴파일러에 지시합니다. 이 상수는 디버깅을 켜고 최적화를 끕니다. 이 플래그는 Direct3D 9에만 적용할 수 있습니다. See D3DXSHADER_FORCE_VS_SOFTWARE_NOOPT
D3DCOMPILE_FORCE_PS_SOFTWARE_NO_OPT
다음으로 높은 셰이더 프로필에 대한 픽셀 셰이더를 컴파일하도록 컴파일러에 지시합니다. 이 상수는 또한 디버깅을 켜고 최적화를 끕니다. 이 플래그는 Direct3D 9에만 적용할 수 있습니다. See D3DXSHADER_FORCE_PS_SOFTWARE_NOOPT
D3DCOMPILE_NO_PRESHADER
/Op
Preshaders를 사용하지 않도록 컴파일러에 지시합니다. 이 상수를 설정하면 컴파일러는 평가를 위해 정적 식을 끌어오지 않습니다. 이 플래그는 레거시 Direct3D 9 및 Direct3D 10 효과(FX)에만 적용할 수 있었습니다. See D3DXSHADER_NO_PRESHADER
D3DCOMPILE_AVOID_FLOW_CONTROL
/Gfa
가능한 경우 흐름 제어 구문을 사용하지 않도록 컴파일러에 지시합니다. See D3DXSHADER_AVOID_FLOW_CONTROL
D3DCOMPILE_ENABLE_STRICTNESS
/Ges
레거시 구문을 허용하지 않을 수 있는 엄격한 컴파일을 강제합니다. 기본적으로 컴파일러는 사용되지 않는 구문에 대한 엄격성을 사용하지 않도록 설정합니다.
D3DCOMPILE_IEEE_STRICTNESS
/Gis
IEEE 규칙을 위반할 수 있는 최적화를 방지하는 IEEE 엄격한 컴파일을 강제합니다. D3DXSHADER_IEEE_STRICTNESS 참조
D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY
/Gec
이전 셰이더가 5_0 대상으로 컴파일할 수 있도록 컴파일러에 지시합니다. D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY 참조
D3DCOMPILE_OPTIMIZATION_LEVEL0
/O0
가장 낮은 최적화 수준을 사용하도록 컴파일러에 지시합니다. 이 상수를 설정하면 컴파일러에서 더 느린 코드를 생성할 수 있지만 더 빠르게 코드를 생성합니다. 셰이더를 반복적으로 개발할 때 이 상수를 설정합니다. See D3DXSHADER_OPTIMIZATION_LEVEL0
D3DCOMPILE_OPTIMIZATION_LEVEL1
/O1
두 번째로 낮은 최적화 수준을 사용하도록 컴파일러에 지시합니다. See D3DXSHADER_OPTIMIZATION_LEVEL1
D3DCOMPILE_OPTIMIZATION_LEVEL2
/O2
두 번째로 높은 최적화 수준을 사용하도록 컴파일러에 지시합니다. See D3DXSHADER_OPTIMIZATION_LEVEL2
D3DCOMPILE_OPTIMIZATION_LEVEL3
/O3
가장 높은 최적화 수준을 사용하도록 컴파일러에 지시합니다. 이 상수를 설정하면 컴파일러에서 가능한 최상의 코드를 생성하지만 그렇게 하는 데 훨씬 더 오래 걸릴 수 있습니다. 성능이 가장 중요한 요소인 경우 애플리케이션의 최종 빌드에 대해 이 상수를 설정합니다. See D3DXSHADER_OPTIMIZATION_LEVEL3
D3DCOMPILE_WARNINGS_ARE_ERRORS
/WX
컴파일러가 셰이더 코드를 컴파일할 때 모든 경고를 오류로 처리하도록 지시합니다. 모든 경고를 해결하고 찾기 어려운 코드 결함 수를 줄일 수 있도록 새 셰이더 코드에 이 상수를 사용하는 것이 좋습니다.
D3DCOMPILE_RESOURCES_MAY_ALIAS
/res_may_alias
UAV(순서가 지정되지 않은 액세스 뷰) 및 SRV(셰이더 리소스 뷰)가 cs_5_0에 대해 별칭을 지정할 수 있다고 가정하도록 컴파일러에 지시합니다. DirectX 12 / 셰이더 모델 5.1에만 적용됩니다.
D3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLES
/enable_unbounded_descriptor_tables
무제한 설명자 테이블을 사용 설정하도록 컴파일러에 지시합니다. DirectX 12 / 셰이더 모델 5.1에만 적용됩니다.
D3DCOMPILE_ALL_RESOURCES_BOUND
/all_resources_bound
모든 리소스가 바인딩되도록 컴파일러에 지시합니다. DirectX 12 / 셰이더 모델 5.1에만 적용됩니다.
D3DCOMPILE_DEBUG_NAME_FOR_SOURCE
/Zss
디버그 PDB를 생성할 때 원본 파일과 해시용 이진 파일을 사용합니다.
D3DCOMPILE_DEBUG_NAME_FOR_BINARY
/Zsb
디버그 PDB를 생성할 때 해시에 대해서만 이진 파일 이름을 사용합니다.

참고

D3DCOMPILE_RESOURCES_MAY_ALIAS, D3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLESD3DCOMPILE_ALL_RESOURCES_BOUND 컴파일러 상수는 Windows 8.1 SDK 이상과 함께 제공되는 D3dcompiler_47.dll부터 새로 시작됩니다.

참고

D3DCOMPILE_DEBUG_NAME_FOR_SOURCED3DCOMPILE_DEBUG_NAME_FOR_BINARY 컴파일러 상수는 Windows 10 Fall Creator의 업데이트 SDK(버전 16299) 이상과 함께 제공되는 D3dcompiler_47.dll부터 새로 시작됩니다. 이 블로그 게시물을 참조하세요.

참고

DirectX 12의 경우 셰이더 모델 5.1, D3DCompile API 및 FXC는 모두 사용되지 않습니다. 대신 DXIL을 통해 셰이더 모델 6을 사용합니다. GitHub를 참조하세요.

요구 사항

요구 사항
헤더
D3DCompiler.h

추가 정보

D3DCompiler 상수