Константы 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
являются новыми, начиная с D3dcompiler_47.dll, поставляемых с пакетом SDK для Windows 8.1 или более поздней версии.
Примечание
Константы D3DCOMPILE_DEBUG_NAME_FOR_SOURCE
компилятора и D3DCOMPILE_DEBUG_NAME_FOR_BINARY
являются новыми, начиная с D3dcompiler_47.dll, поставляемых с пакетом SDK обновления Windows 10 Fall Creator (версия 16299) или более поздней версии. См. эту статью в блоге.
Примечание
Для DirectX 12, шейдерная модель 5.1, API D3DCompile и FXC являются устаревшими. Вместо этого используйте модель шейдера 6 через DXIL. См. GitHub.
Требования
Требование | Значение |
---|---|
Заголовок |
|