D3DCOMPILE-Konstanten

Die D3DCOMPILE-Konstanten geben an, wie der Compiler den HLSL-Code kompiliert.

Konstante BESCHREIBUNG Hinweis
D3DCOMPILE_DEBUG
/ZI
Weist den Compiler an, Debugdatei-/Zeilen-/Typ-/Symbolinformationen in den Ausgabecode einzufügen. Siehe D3DXSHADER_DEBUG
D3DCOMPILE_SKIP_VALIDATION
/Vd
Weist den Compiler an, den generierten Code nicht anhand bekannter Funktionen und Einschränkungen zu überprüfen. Es wird empfohlen, diese Konstante nur mit Shadern zu verwenden, die in der Vergangenheit erfolgreich kompiliert wurden. DirectX überprüft Shader immer, bevor sie auf ein Gerät festgelegt werden. Siehe D3DXSHADER_SKIPVALIDATION
D3DCOMPILE_SKIP_OPTIMIZATION
/Od
Weist den Compiler an, Optimierungsschritte während der Codegenerierung zu überspringen. Es wird empfohlen, diese Konstante nur zu Debugzwecken festzulegen. Siehe D3DXSHADER_SKIPOPTIMIZATION
D3DCOMPILE_PACK_MATRIX_ROW_MAJOR
/Zpr
Weist den Compiler an, Matrizen bei Eingaben und Ausgaben aus dem Shader in Zeilen-Hauptreihenfolge zu packen. Siehe D3DXSHADER_PACKMATRIX_ROWMAJOR
D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR
/Zpc
Weist den Compiler an, Matrizen bei Eingaben und Ausgaben aus dem Shader in Spalten-Hauptreihenfolge zu packen. Diese Art der Verpackung ist im Allgemeinen effizienter, da eine Reihe von Punktprodukten dann eine Vektor-Matrix-Multiplikation durchführen kann. Siehe D3DXSHADER_PACKMATRIX_COLUMNMAJOR
D3DCOMPILE_PARTIAL_PRECISION
/Gpp
Weist den Compiler an, alle Berechnungen mit teilweiser Genauigkeit auszuführen. Wenn Sie diese Konstante festlegen, kann der kompilierte Code auf einigen Hardwarekomponenten schneller ausgeführt werden. Siehe D3DXSHADER_PARTIALPRECISION
D3DCOMPILE_FORCE_VS_SOFTWARE_NO_OPT
Weist den Compiler an, einen Vertex-Shader für das nächsthöhere Shaderprofil zu kompilieren. Diese Konstante aktiviert das Debuggen und die Optimierungen. Dieses Flag galt nur für Direct3D 9. Siehe D3DXSHADER_FORCE_VS_SOFTWARE_NOOPT
D3DCOMPILE_FORCE_PS_SOFTWARE_NO_OPT
Weist den Compiler an, einen Pixelshader für das nächsthöhere Shaderprofil zu kompilieren. Diese Konstante aktiviert auch das Debuggen und die Optimierungen. Dieses Flag galt nur für Direct3D 9. Siehe D3DXSHADER_FORCE_PS_SOFTWARE_NOOPT
D3DCOMPILE_NO_PRESHADER
/Op
Weist den Compiler an, Preshader zu deaktivieren. Wenn Sie diese Konstante festlegen, ruft der Compiler keinen statischen Ausdruck zur Auswertung ab. Dieses Flag galt nur für ältere Direct3D 9- und Direct3D 10-Effekte (FX). Siehe D3DXSHADER_NO_PRESHADER
D3DCOMPILE_AVOID_FLOW_CONTROL
/Gfa
Weist den Compiler an, nach Möglichkeit keine Flusssteuerungskonstrukte zu verwenden. Siehe D3DXSHADER_AVOID_FLOW_CONTROL
D3DCOMPILE_ENABLE_STRICTNESS
/Ges
Erzwingt eine strikte Kompilierung, die möglicherweise keine Legacysyntax zulässt. Standardmäßig deaktiviert der Compiler die Strenge bei veralteter Syntax.
D3DCOMPILE_IEEE_STRICTNESS
/Gis
Erzwingt die IEEE Strict-Kompilierung, wodurch Optimierungen vermieden werden, die IEEE-Regeln möglicherweise brechen. Siehe D3DXSHADER_IEEE_STRICTNESS
D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY
/Gec
Weist den Compiler an, älteren Shadern die Kompilierung zu 5_0-Zielen zu ermöglichen. Siehe D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY
D3DCOMPILE_OPTIMIZATION_LEVEL0
/O0
Weist den Compiler an, die niedrigste Optimierungsebene zu verwenden. Wenn Sie diese Konstante festlegen, erzeugt der Compiler möglicherweise langsameren Code, aber den Code schneller. Legen Sie diese Konstante fest, wenn Sie den Shader iterativ entwickeln. Siehe D3DXSHADER_OPTIMIZATION_LEVEL0
D3DCOMPILE_OPTIMIZATION_LEVEL1
/O1
Weist den Compiler an, die zweitniedrigste Optimierungsebene zu verwenden. Siehe D3DXSHADER_OPTIMIZATION_LEVEL1
D3DCOMPILE_OPTIMIZATION_LEVEL2
/O2
Weist den Compiler an, die zweithöchste Optimierungsebene zu verwenden. Siehe D3DXSHADER_OPTIMIZATION_LEVEL2
D3DCOMPILE_OPTIMIZATION_LEVEL3
/O3
Weist den Compiler an, die höchste Optimierungsebene zu verwenden. Wenn Sie diese Konstante festlegen, erzeugt der Compiler den bestmöglichen Code, kann aber erheblich länger dauern. Legen Sie diese Konstante für endgültige Builds einer Anwendung fest, wenn die Leistung der wichtigste Faktor ist. Siehe D3DXSHADER_OPTIMIZATION_LEVEL3
D3DCOMPILE_WARNINGS_ARE_ERRORS
/WX
Weist den Compiler an, alle Warnungen als Fehler zu behandeln, wenn er den Shadercode kompiliert. Es wird empfohlen, diese Konstante für neuen Shadercode zu verwenden, damit Sie alle Warnungen beheben und die Anzahl der schwer zu findenden Codefehler verringern können.
D3DCOMPILE_RESOURCES_MAY_ALIAS
/res_may_alias
Weist den Compiler an, davon auszugehen, dass ungeordnete Zugriffsansichten (UAVs) und Shaderressourcensichten (SRVs) einen Alias für cs_5_0. Gilt nur für DirectX 12/Shader-Modell 5.1
D3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLES
/enable_unbounded_descriptor_tables
Weist den Compiler an, ungebundene Deskriptortabellen zu aktivieren. Gilt nur für DirectX 12/Shader-Modell 5.1
D3DCOMPILE_ALL_RESOURCES_BOUND
/all_resources_bound
Weist den Compiler an, sicherzustellen, dass alle Ressourcen gebunden sind. Gilt nur für DirectX 12/Shader-Modell 5.1
D3DCOMPILE_DEBUG_NAME_FOR_SOURCE
/Zss
Beim Generieren von Debug-PDBs werden die Quelldatei und die Binärdatei für den Hash verwendet.
D3DCOMPILE_DEBUG_NAME_FOR_BINARY
/Zsb
Beim Generieren von Debug-PDBs wird der binäre Dateiname nur für den Hash verwendet.

Hinweis

Die D3DCOMPILE_RESOURCES_MAY_ALIASCompilerkonstanten , D3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLESund D3DCOMPILE_ALL_RESOURCES_BOUND sind neu, beginnend mit der D3dcompiler_47.dll, die im Windows 8.1 SDK oder höher enthalten ist.

Hinweis

Die D3DCOMPILE_DEBUG_NAME_FOR_SOURCE Compilerkonstanten und D3DCOMPILE_DEBUG_NAME_FOR_BINARY sind neu, beginnend mit der D3dcompiler_47.dll, die mit dem Windows 10 Fall Creator es Update SDK (Version 16299) oder höher enthalten ist. Weitere Informationen finden Sie in diesem Blogbeitrag.

Hinweis

Für DirectX 12 sind das Shadermodell 5.1, die D3DCompile-API und FXC veraltet. Verwenden Sie stattdessen Shadermodell 6 über DXIL. Weitere Informationen finden Sie unter GitHub.

Anforderungen

Anforderung Wert
Header
D3DCompiler.h

Siehe auch

D3DCompiler-Konstanten