D3DCOMPILE 常數
D3DCOMPILE 常數會指定編譯器如何編譯 HLSL 程式碼。
常數 | 描述 | 注意 |
---|---|---|
|
指示編譯器將偵錯檔案/行/類型/符號資訊插入輸出程式碼中。 | 請參閱D3DXSHADER_DEBUG |
|
指示編譯器不要根據已知功能和條件約束驗證產生的程式碼。 建議您只搭配過去成功編譯的著色器使用此常數。 DirectX 一律會先驗證著色器,再將其設定為裝置。 | 請參閱D3DXSHADER_SKIPVALIDATION |
|
指示編譯器在程式碼產生期間略過優化步驟。 建議您只針對偵錯目的設定這個常數。 | 請參閱D3DXSHADER_SKIPOPTIMIZATION |
|
指示編譯器以資料列主要順序封裝著色器輸入和輸出的矩陣。 | 請參閱D3DXSHADER_PACKMATRIX_ROWMAJOR |
|
指示編譯器在著色器的輸入和輸出上,以資料行主要順序封裝矩陣。 這種封裝通常更有效率,因為一系列的點產品接著可以執行向量矩陣乘法。 | 請參閱D3DXSHADER_PACKMATRIX_COLUMNMAJOR |
|
指示編譯器以部分精確度執行所有計算。 如果您設定這個常數,編譯的程式碼可能會在某些硬體上執行得更快。 | 請參閱D3DXSHADER_PARTIALPRECISION |
|
指示編譯器編譯下一個最高著色器設定檔的頂點著色器。 這個常數會開啟偵錯並關閉優化。 | 此旗標僅適用于 Direct3D 9。 請參閱D3DXSHADER_FORCE_VS_SOFTWARE_NOOPT |
|
指示編譯器編譯下一個最高著色器設定檔的圖元著色器。 這個常數也會開啟偵錯並關閉優化。 | 此旗標僅適用于 Direct3D 9。 請參閱D3DXSHADER_FORCE_PS_SOFTWARE_NOOPT |
|
指示編譯器停用 Preshaders。 如果您設定這個常數,編譯器不會提取靜態運算式以供評估。 | 此旗標僅適用于舊版 Direct3D 9 和 Direct3D 10 效果 (FX) 。 請參閱D3DXSHADER_NO_PRESHADER |
|
指示編譯器盡可能不使用流程式控制制建構。 | 請參閱D3DXSHADER_AVOID_FLOW_CONTROL |
|
強制嚴格編譯,這可能不允許舊版語法。 根據預設,編譯器會停用已淘汰語法的嚴格性。 | |
|
強制 IEEE 嚴格編譯,以避免可能會中斷 IEEE 規則的優化。 | 請參閱D3DXSHADER_IEEE_STRICTNESS |
|
指示編譯器讓較舊的著色器編譯成 5_0 目標。 | 請參閱D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY |
|
指示編譯器使用最低優化層級。 如果您設定這個常數,編譯器可能會產生較慢的程式碼,但更快速地產生程式碼。 當您反復開發著色器時,請設定這個常數。 | 請參閱D3DXSHADER_OPTIMIZATION_LEVEL0 |
|
指示編譯器使用第二個最低優化層級。 | 請參閱D3DXSHADER_OPTIMIZATION_LEVEL1 |
|
指示編譯器使用第二個最高優化層級。 | 請參閱D3DXSHADER_OPTIMIZATION_LEVEL2 |
|
指示編譯器使用最高優化層級。 如果您設定這個常數,編譯器會產生最佳的可能程式碼,但可能需要很長的時間才能這麼做。 當效能是最重要的因素時,請為應用程式的最終組建設定這個常數。 | 請參閱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 的 Update SDK (16299 版) 或更新版本隨附的D3dcompiler_47.dll開始。 請參閱此部落格文章。
注意
針對 DirectX 12,著色器模型 5.1、D3DCompile API 和 FXC 全都已被取代。 請改為透過 DXIL 使用著色器模型 6。 請參閱 GitHub。
規格需求
需求 | 值 |
---|---|
標頭 |
|