D3DCOMPILE-Konstanten
Die D3DCOMPILE-Konstanten geben an, wie der Compiler den HLSL-Code kompiliert.
Konstante | BESCHREIBUNG | Hinweis |
---|---|---|
|
Weist den Compiler an, Debugdatei-/Zeilen-/Typ-/Symbolinformationen in den Ausgabecode einzufügen. | Siehe D3DXSHADER_DEBUG |
|
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 |
|
Weist den Compiler an, Optimierungsschritte während der Codegenerierung zu überspringen. Es wird empfohlen, diese Konstante nur zu Debugzwecken festzulegen. | Siehe D3DXSHADER_SKIPOPTIMIZATION |
|
Weist den Compiler an, Matrizen bei Eingaben und Ausgaben aus dem Shader in Zeilen-Hauptreihenfolge zu packen. | Siehe D3DXSHADER_PACKMATRIX_ROWMAJOR |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
Weist den Compiler an, nach Möglichkeit keine Flusssteuerungskonstrukte zu verwenden. | Siehe D3DXSHADER_AVOID_FLOW_CONTROL |
|
Erzwingt eine strikte Kompilierung, die möglicherweise keine Legacysyntax zulässt. Standardmäßig deaktiviert der Compiler die Strenge bei veralteter Syntax. | |
|
Erzwingt die IEEE Strict-Kompilierung, wodurch Optimierungen vermieden werden, die IEEE-Regeln möglicherweise brechen. | Siehe D3DXSHADER_IEEE_STRICTNESS |
|
Weist den Compiler an, älteren Shadern die Kompilierung zu 5_0-Zielen zu ermöglichen. | Siehe D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY |
|
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 |
|
Weist den Compiler an, die zweitniedrigste Optimierungsebene zu verwenden. | Siehe D3DXSHADER_OPTIMIZATION_LEVEL1 |
|
Weist den Compiler an, die zweithöchste Optimierungsebene zu verwenden. | Siehe D3DXSHADER_OPTIMIZATION_LEVEL2 |
|
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 |
|
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. | |
|
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 |
|
Weist den Compiler an, ungebundene Deskriptortabellen zu aktivieren. | Gilt nur für DirectX 12/Shader-Modell 5.1 |
|
Weist den Compiler an, sicherzustellen, dass alle Ressourcen gebunden sind. | Gilt nur für DirectX 12/Shader-Modell 5.1 |
|
Beim Generieren von Debug-PDBs werden die Quelldatei und die Binärdatei für den Hash verwendet. | |
|
Beim Generieren von Debug-PDBs wird der binäre Dateiname nur für den Hash verwendet. |
Hinweis
Die D3DCOMPILE_RESOURCES_MAY_ALIAS
Compilerkonstanten , D3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLES
und 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 |
|