Constantes D3DCOMPILE

As constantes D3DCOMPILE especificam como o compilador compila o código HLSL.

Constante Descrição Observação
D3DCOMPILE_DEBUG
/Zi
Direciona o compilador para inserir informações de arquivo/linha/tipo/símbolo de depuração no código de saída. Consulte D3DXSHADER_DEBUG
D3DCOMPILE_SKIP_VALIDATION
/Vd
Direciona o compilador para não validar o código gerado em relação a funcionalidades e restrições conhecidas. Recomendamos que você use essa constante apenas com sombreadores que foram compilados com êxito no passado. O DirectX sempre valida os sombreadores antes de define-los para um dispositivo. Consulte D3DXSHADER_SKIPVALIDATION
D3DCOMPILE_SKIP_OPTIMIZATION
/Od
Direciona o compilador para ignorar as etapas de otimização durante a geração de código. Recomendamos que você defina essa constante apenas para fins de depuração. Consulte D3DXSHADER_SKIPOPTIMIZATION
D3DCOMPILE_PACK_MATRIX_ROW_MAJOR
/Zpr
Direciona o compilador para empacotar matrizes em ordem de linha principal na entrada e saída do sombreador. Consulte D3DXSHADER_PACKMATRIX_ROWMAJOR
D3DCOMPILE_PACK_MATRIX_COLUMN_MAJOR
/Zpc
Direciona o compilador para empacotar matrizes em ordem de coluna principal na entrada e saída do sombreador. Esse tipo de empacotamento geralmente é mais eficiente porque uma série de produtos de ponto pode executar multiplicação de matriz de vetor. Consulte D3DXSHADER_PACKMATRIX_COLUMNMAJOR
D3DCOMPILE_PARTIAL_PRECISION
/Gpp
Direciona o compilador para executar todos os cálculos com precisão parcial. Se você definir essa constante, o código compilado poderá ser executado mais rapidamente em algum hardware. Consulte D3DXSHADER_PARTIALPRECISION
D3DCOMPILE_FORCE_VS_SOFTWARE_NO_OPT
Direciona o compilador para compilar um sombreador de vértice para o próximo perfil de sombreador mais alto. Essa constante ativa e desativa a depuração e as otimizações. Esse sinalizador foi aplicável somente ao Direct3D 9. Consulte D3DXSHADER_FORCE_VS_SOFTWARE_NOOPT
D3DCOMPILE_FORCE_PS_SOFTWARE_NO_OPT
Direciona o compilador para compilar um sombreador de pixel para o próximo perfil de sombreador mais alto. Essa constante também ativa a depuração e as otimizações. Esse sinalizador foi aplicável somente ao Direct3D 9. Consulte D3DXSHADER_FORCE_PS_SOFTWARE_NOOPT
D3DCOMPILE_NO_PRESHADER
/Op
Direciona o compilador para desabilitar Preshaders. Se você definir essa constante, o compilador não efetua pull da expressão estática para avaliação. Esse sinalizador só se aplicava aos Efeitos herdados do Direct3D 9 e do Direct3D 10 (FX). Consulte D3DXSHADER_NO_PRESHADER
D3DCOMPILE_AVOID_FLOW_CONTROL
/Gfa
Direciona o compilador para não usar constructos de controle de fluxo sempre que possível. Consulte D3DXSHADER_AVOID_FLOW_CONTROL
D3DCOMPILE_ENABLE_STRICTNESS
/Ges
Força a compilação estrita, o que pode não permitir a sintaxe herdada. Por padrão, o compilador desabilita a rigidez na sintaxe preterida.
D3DCOMPILE_IEEE_STRICTNESS
/Gis
Força a compilação estrita do IEEE, que evita otimizações que podem quebrar as regras do IEEE. Consulte D3DXSHADER_IEEE_STRICTNESS
D3DCOMPILE_ENABLE_BACKWARDS_COMPATIBILITY
/Gec
Direciona o compilador para permitir que sombreadores mais antigos compilem para destinos 5_0. Consulte D3DXSHADER_ENABLE_BACKWARDS_COMPATIBILITY
D3DCOMPILE_OPTIMIZATION_LEVEL0
/O0
Direciona o compilador para usar o nível de otimização mais baixo. Se você definir essa constante, o compilador poderá produzir um código mais lento, mas produzirá o código mais rapidamente. Defina essa constante quando você desenvolver o sombreador iterativamente. Consulte D3DXSHADER_OPTIMIZATION_LEVEL0
D3DCOMPILE_OPTIMIZATION_LEVEL1
/O1
Direciona o compilador para usar o segundo nível de otimização mais baixo. Consulte D3DXSHADER_OPTIMIZATION_LEVEL1
D3DCOMPILE_OPTIMIZATION_LEVEL2
/O2
Direciona o compilador para usar o segundo nível de otimização mais alto. Consulte D3DXSHADER_OPTIMIZATION_LEVEL2
D3DCOMPILE_OPTIMIZATION_LEVEL3
/O3
Direciona o compilador para usar o nível de otimização mais alto. Se você definir essa constante, o compilador produzirá o melhor código possível, mas poderá levar muito mais tempo para fazer isso. Defina essa constante para builds finais de um aplicativo quando o desempenho for o fator mais importante. Consulte D3DXSHADER_OPTIMIZATION_LEVEL3
D3DCOMPILE_WARNINGS_ARE_ERRORS
/WX
Direciona o compilador para tratar todos os avisos como erros ao compilar o código do sombreador. Recomendamos que você use essa constante para novo código de sombreador, para que possa resolve todos os avisos e reduzir o número de defeitos de código difíceis de encontrar.
D3DCOMPILE_RESOURCES_MAY_ALIAS
/res_may_alias
Direciona o compilador para assumir que as exibições de acesso não ordenadas (UAVs) e as SRVs (exibições de recurso de sombreador) podem ser alias para cs_5_0. Aplica-se somente ao DirectX 12 /Shader Model 5.1
D3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLES
/enable_unbounded_descriptor_tables
Direciona o compilador para habilitar tabelas de descritor não associados. Aplica-se somente ao DirectX 12 /Shader Model 5.1
D3DCOMPILE_ALL_RESOURCES_BOUND
/all_resources_bound
Direciona o compilador para garantir que todos os recursos estejam associados. Aplica-se somente ao DirectX 12/Modelo de Sombreador 5.1
D3DCOMPILE_DEBUG_NAME_FOR_SOURCE
/Zss
Ao gerar PDBs de depuração, isso usa o arquivo de origem e o binário para o hash.
D3DCOMPILE_DEBUG_NAME_FOR_BINARY
/Zsb
Ao gerar PDBs de depuração, isso usa o nome de arquivo binário somente para o hash.

Observação

As D3DCOMPILE_RESOURCES_MAY_ALIASconstantes do compilador , D3DCOMPILE_ENABLE_UNBOUNDED_DESCRIPTOR_TABLESe D3DCOMPILE_ALL_RESOURCES_BOUND são novas, começando com o D3dcompiler_47.dll fornecido com o SDK do Windows 8.1 ou posterior.

Observação

As D3DCOMPILE_DEBUG_NAME_FOR_SOURCE constantes do compilador e D3DCOMPILE_DEBUG_NAME_FOR_BINARY são novas, começando com o D3dcompiler_47.dll fornecido com o SDK do Windows 10 Fall Creator's Update (versão 16299) ou posterior. Veja esta postagem no blog.

Observação

Para o DirectX 12, o Modelo de Sombreador 5.1, a API D3DCompile e o FXC foram preteridos. Em vez disso, use o Modelo de Sombreador 6 via DXIL. Confira GitHub.

Requisitos

Requisito Valor
parâmetro
D3DCompiler.h

Confira também

Constantes D3DCompiler