Sintaxe
Esta é a sintaxe para chamar FXC.exe, a ferramenta do compilador de efeitos. Para obter um exemplo, consulte Compilação offline.
Uso
fxcSwitchOptionsFilenames
Argumentos
Separe cada opção de comutador com um espaço ou dois-pontos.
SwitchOptions
[in] Opções de compilação. Há apenas uma opção necessária e muitas outras opcionais. Separe cada um com um espaço ou dois-pontos.
Opção necessária
Perfil /T<>
Modelo de sombreador (consulte Perfis).
Opções opcionais
/?, /help
Imprimir ajuda para FXC.exe
.
@<command.option.file>
Arquivo que contém opções de compilação adicionais. Essa opção pode ser misturada com outras opções de compilação de linha de comando. O command.option.file deve conter apenas uma opção por linha. O command.option.file não pode conter linhas em branco. As opções especificadas no arquivo não devem conter espaços à esquerda ou à direita.
/all_resources_bound
Habilite o nivelamento agressivo no SM5.1+. Novo para Direct3D 12.
/Cc
Assembly codificado por cor de saída.
/compress
Compacte o código de bytes do sombreador DX10 de arquivos.
/D <id>=<text>
Definir macro.
/Descomprimir
Descompacte o código de bytes do sombreador DX10 do primeiro arquivo. Os arquivos de saída devem ser listados na ordem em que estavam durante a compactação.
/Dumpbin
Carrega um arquivo binário em vez de compilar um sombreador.
/E <name>
Ponto de entrada do sombreador. Se nenhum ponto de entrada for fornecido, main será considerado o nome da entrada do sombreador.
/enable_unbounded_descriptor_tables
Habilita tabelas de descritores não associados. Novo para Direct3D 12.
Arquivo /extractrootsignature <>
Extrair assinatura raiz do código de bytes do sombreador. Novo para Direct3D 12.
Arquivo /Fc<>
Arquivo de listagem de código do assembly de saída.
Arquivo /Fd<>
Extraia informações do PDB (banco de dados do programa de sombreador) e escreva no arquivo especificado. Ao compilar o sombreador, use /Fd para gerar um arquivo PDB com informações de depuração de sombreador.
Arquivo /Fe<>
Avisos de saída e erros para o arquivo especificado.
Arquivo /Fh<>
Arquivo de cabeçalho de saída que contém o código do objeto.
Arquivo /Fl<
Saída de uma biblioteca. Requer o D3dcompiler_47.dll ou uma versão posterior da DLL.
Arquivo /Fo<>
Arquivo de objeto de saída. Geralmente, dada a extensão ".fxc", embora outras extensões sejam usadas, como ".o", ".obj" ou ".dxbc".
Arquivo /Fx<>
Código do assembly de saída e arquivo de listagem hexadecimal.
/Gch
Compile como um efeito filho para perfis fx_4_x.
Observação
O suporte para perfis de Efeitos herdados foi preterido.
/Pib
Desabilitar o modo de desempenho de efeito.
/Gec
Habilitar o modo de compatibilidade com versões anteriores.
/Ges
Habilitar o modo estrito.
Arquivo /getprivate <>
Salve dados privados do blob do sombreador (binário do sombreador compilado) no arquivo especificado. Extrai dados privados, inseridos anteriormente por /setprivate, do blob do sombreador.
Você deve especificar a opção /dumpbin com /getprivate. Por exemplo:
fxc /getprivate ps01.private.data
/dumpbin ps01.with.private.obj
/Gfa
Evite constructos de controle de fluxo.
/Gfp
Prefira constructos de controle de fluxo.
/Gis
Forçar a restrição do IEEE.
/Gpp
Forçar precisão parcial.
/I <include>
Caminho de inclusão adicional.
/Lx
Literais hexadecimais de saída. Requer o D3dcompiler_47.dll ou uma versão posterior da DLL.
/matchUAVs
Corresponder alocações de slot UAV do sombreador de modelo no sombreador atual. Para obter mais informações, consulte Comentários.
/mergeUAVs
Mesclar alocações de slot UAV do sombreador de modelo e do sombreador atual. Para obter mais informações, consulte Comentários.
/Ni
Números de instrução de saída em listagens de assembly.
/Não
Deslocamento de bytes de instrução de saída em listagens de assembly. Ao produzir o assembly, use /Não para anotá-lo com o deslocamento de bytes para cada instrução.
/nologo
Suprime uma mensagem de direitos autorais.
/Od
Desabilitar otimizações. /Od implica /Gfp, embora a saída possa não ser idêntica a /Od /Gfp.
/Op
Desabilitar preshaders (preterido).
/O0 /O1, /O2, /O3
Níveis de otimização. O1 é a configuração padrão.
- O0 – Desabilita a reordenação de instruções. Isso ajuda a reduzir a carga de registro e habilita a simulação de loop mais rápida.
- O1 – desabilita a reordenação de instruções para ps_3_0 e para cima.
- O2 – O mesmo que O1. Reservado para uso futuro.
- O3 – o mesmo que o O1. Reservado para uso futuro.
Arquivo /P<>
Pré-processar para arquivo (deve ser usado sozinho).
/Qstrip_debug
Remova os dados de depuração do código de byte do sombreador para perfis 4_0+.
/Qstrip_priv
Remova os dados privados do código de byte do sombreador 4_0+. Remove dados privados (sequência arbitrária de bytes) do blob de sombreador (binário de sombreador compilado) que você inseriu anteriormente com a opção /setprivate <file>
.
Você deve especificar a opção /dumpbin com /Qstrip_priv. Por exemplo:
fxc /Qstrip_priv /dumpbin /Fo ps01.no.private.obj
ps01.with.private.obj
/Qstrip_reflect
Remova dados de reflexão do código de byte do sombreador para perfis 4_0+.
/Qstrip_rootsignature
Remova a assinatura raiz do código de byte do sombreador. Novo para Direct3D 12.
/res_may_alias
Suponha que UAVs/SRVs possam ser alias para cs_5_0+. Requer o D3dcompiler_47.dll ou uma versão posterior da DLL.
Arquivo /setprivate <>
Adicione dados privados no arquivo especificado ao blob de sombreador compilado. Insira o arquivo fornecido, que é tratado como um buffer bruto, para o blob do sombreador. Use /setprivate para adicionar dados privados ao compilar um sombreador. Ou use a opção /dumpbin com /setprivate para carregar um objeto de sombreador existente e, depois que o objeto estiver na memória, para adicionar o blob de dados privado. Por exemplo, use um único comando com /setprivate para adicionar dados privados a um blob de sombreador compilado:
fxc /T ps_4_0 /Fo ps01.with.private.obj ps01.fx
/setprivate ps01.private.data
Ou use dois comandos em que o segundo comando carrega um objeto sombreador e adiciona dados privados:
fxc /T ps_4_0 /Fo ps01.no.private.obj ps01.fx
fxc /dumpbin /Fo ps01.with.private.obj ps01.no.private.obj
/setprivate ps01.private.data
Arquivo /setrootsignature <>
Anexe a assinatura raiz ao código de bytes do sombreador. Novo para Direct3D 12.
Arquivo /shtemplate <>
Use determinado arquivo de sombreador de modelo para mesclar (/mergeUAVs) e recursos correspondentes (/matchUAVs). Para obter mais informações, consulte Comentários.
/Vd
Desabilitar a validação.
/verifyrootsignature <file>
Verifique o código de byte do sombreador em relação à assinatura raiz. Novo para Direct3D 12.
/Vi
Exiba detalhes sobre o processo de inclusão.
/Vn <name>
Use o nome como nome da variável no arquivo de cabeçalho.
/WX
Tratar avisos como erros.
/Zi
Habilitar informações de depuração.
/Zpc
Empacotar matrizes em ordem de coluna principal.
/Zpr
Empacote matrizes em ordem de linha principal.
Nomes de arquivos
[in] Os arquivos que contêm os sombreadores e/ou os efeitos.
Comentários
Use as /mergeUAVs
opções , /matchUAVs
e /shtemplate
para alinhar os slots de associação UAV para uma cadeia de sombreadores.
Suponha que você tenha sombreadores A.fx, B.fx e C.fx. Para alinhar os slots de associação UAV para essa cadeia de sombreadores, você precisa de duas passagens de compilação:
Para alinhar os slots de associação UAV para uma cadeia de sombreadores
- Use /mergeUAVs para compilar sombreadores e especifique um blob de sombreador compilado anteriormente com /shtemplate. Por exemplo:
fxc.exe /T cs_5_0 C.fx /Fo C.o /mergeUAVs /shtemplate Btmp.o
- Use /matchUAVs para compilar sombreadores e especifique o último blob de sombreador da primeira passagem com /shtemplate. Você pode compilar em qualquer ordem. Por exemplo:
fxc.exe /T cs_5_0 A.fx /Fo A.o /matchUAVs /shtemplate C.o
Você não precisa recompilar C.fx na segunda passagem.
Depois de executar as duas passagens de compilação anteriores, você pode usar A.o, B.o e C.o como blobs de sombreador final com slots UAV alinhados.
Perfis
Cada modelo de sombreador é rotulado com um perfil HLSL. Para compilar um sombreador em um modelo de sombreador específico, escolha o perfil de sombreador apropriado na tabela a seguir.
Tipo de Sombreador | Perfis |
---|---|
Sombreador de Computação |
cs_4_1 cs_5_0 cs_5_1 |
Sombreador de domínio |
ds_5_1 |
Sombreador de geometria |
gs_4_1 gs_5_0 gs_5_1 |
Vinculação do sombreador HLSL |
lib_4_1 lib_4_0_level_9_1 lib_4_0_level_9_1_vs_only lib_4_0_level_9_1_ps_only lib_4_0_level_9_3 lib_4_0_level_9_3_vs_only lib_4_0_level_9_3_ps_only lib_5_0 |
{1>Sombreador Hull<1} |
hs_5_1 |
Sombreador de pixel |
ps_2_a ps_2_b ps_2_sw ps_3_0 ps_3_sw ps_4_0 ps_4_0_level_9_0 ps_4_0_level_9_1 ps_4_0_level_9_3 ps_4_1 ps_5_0 ps_5_1 |
Assinatura raiz |
|
Sombreador de Textura |
|
Sombreador de vértice |
vs_2_0 vs_2_a vs_2_sw vs_3_0 vs_3_sw vs_4_0 vs_4_0_level_9_0 vs_4_0_level_9_1 vs_4_0_level_9_3 vs_4_1 vs_5_0 vs_5_1 |
Notas de versão
Para Direct3D 12, consulte Especificando assinaturas raiz no HLSL, Associação de Recursos em HLSL e Indexação Dinâmica usando HLSL 5.1.
No Direct3D 10, use a API para obter o perfil de vértice, geometria e sombreador de pixel mais adequado para um determinado dispositivo chamando essas funções: D3D10GetVertexShaderProfile, D3D10GetPixelShaderProfile e D3D10GetGeometryShaderProfile.
No Direct3D 9, use os métodos GetDeviceCaps ou GetDeviceCaps para recuperar os perfis de sombreador de vértice e pixel com suporte de um dispositivo. A estrutura D3DCAPS9 retornada por esses métodos indica os perfis de vértice e sombreador de pixels compatíveis com um dispositivo em seus membros VertexShaderVersion e PixelShaderVersion .
Para obter exemplos, consulte Compilando com o compilador atual.
Tópicos relacionados
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de