Partilhar via


Sintaxe

Aqui está a sintaxe para chamar FXC.exe, a ferramenta de compilador de efeitos. Para obter um exemplo, consulte Compilação offline.

Utilização

fxcSwitchOptionsNomes de arquivo

Argumentos

Separe cada opção de interruptor com um espaço ou dois pontos.

SwitchOptions

[em] Opções de compilação. Há apenas uma opção necessária, e muitas mais que são opcionais. Separe cada um com um espaço ou dois pontos.

Opção necessária

/T <perfil>

Modelo de sombreamento (consulte Perfis).

Opções opcionais

/?/Ajuda

Ajuda de impressão para FXC.exe.

@<command.option.file>

Arquivo que contém opções de compilação adicionais. Esta 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 achatamento agressivo no SM5.1+. Novo no Direct3D 12.

/cc

Saída de montagem codificada por cores.

/comprimir

Comprima o bytecode do sombreador DX10 a partir de ficheiros.

/D <id>=<texto>

Definir macro.

/descomprimir

Descompacte o bytecode do sombreador DX10 do primeiro arquivo. Os arquivos de saída devem ser listados na ordem em que estavam durante a compactação.

/lixeira

Carrega um arquivo binário em vez de compilar um sombreador.

/E <nome>

Ponto de entrada de sombreamento. Se nenhum ponto de entrada for fornecido, principal será considerado o nome da entrada do sombreador.

/enable_unbounded_descriptor_tables

Habilita tabelas de descritores não limitadas. Novo no Direct3D 12.

/extractrootsignature <arquivo>

Extraia a assinatura raiz do bytecode do sombreador. Novo no Direct3D 12.

Arquivo de </Fc>

Arquivo de listagem de código de assembly de saída.

Arquivo de </Fd>

Extraia informações do banco de dados do programa de sombreador (PDB) e grave no arquivo fornecido. Ao compilar o sombreador, use /Fd para gerar um arquivo PDB com informações de depuração do sombreador.

Arquivo de </Fe>

Avisos de saída e erros para o arquivo fornecido.

Arquivo de </Fh>

Arquivo de cabeçalho de saída contendo código objeto.

/Fl <arquivo

Saída de uma biblioteca. Requer o D3dcompiler_47.dll ou uma versão posterior da DLL.

/Fo <arquivo>

Arquivo de objeto de saída. Muitas vezes dada a extensão ".fxc", embora outras extensões sejam usadas, como ".o", ".obj" ou ".dxbc".

Arquivo de </Fx>

Código de montagem de saída e arquivo de listagem hexadecimal.

/Gch

Compilar como um efeito filho para fx_4_x perfis.

Observação

O suporte para perfis de efeitos herdados foi preterido.

/PIB

Desative o modo de desempenho de efeito.

/Gec

Habilite o modo de compatibilidade com versões anteriores.

/Ges

Habilite o modo estrito.

Arquivo de </getprivate>

Salve dados privados do blob de sombreador (binário de sombreador compilado) no arquivo fornecido. Extrai dados privados, anteriormente incorporados 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 construções de controle de fluxo.

/GFP

Prefira construções de controle de fluxo.

/SIG

Forçar o rigor do IEEE.

/GPG

Força precisão parcial.

/Eu <incluir>

Caminho adicional de inclusão.

/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 Observações.

/mergeUAVs

Mescle alocações de slots UAV do sombreador de modelo e do sombreador atual. Para obter mais informações, consulte Comentários.

/NI

Números de instruções de saída em listagens de montagem.

/Não

Deslocamento de byte de instrução de saída em listagens de assembly. Ao produzir assembly, use /No para anotá-lo com o deslocamento de byte para cada instrução.

Suprimir mensagem de direitos autorais.

/Od

Desative as otimizações. /Od implica /Gfp, embora a saída possa não ser idêntica a /Od /Gfp.

/Op

Desativar preshaders (preterido).

/O0 /O1, /O2, /O3

Níveis de otimização. O1 é a configuração padrão.

  • O0 - Desativa a reordenação de instruções. Isso ajuda a reduzir a carga do registro e permite uma simulação de loop mais rápida.
  • O1 - Desativa a reordenação de instruções para ps_3_0 e superiores.
  • O2 - O mesmo que O1. Reservado para uso futuro.
  • O3 - O mesmo que O1. Reservado para uso futuro.
Arquivo de </P>

Pré-processamento para arquivar (deve ser usado sozinho).

/Qstrip_debug

Remova os dados de depuração do bytecode do sombreador para perfis 4_0+.

/Qstrip_priv

Remova os dados privados do bytecode do sombreador 4_0+. Remove dados privados (sequência arbitrária de bytes) do blob de sombreador (binário de sombreador compilado) que você incorporou 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 os dados de reflexão do bytecode do sombreador para perfis 4_0+.

/Qstrip_rootsignature

Remova a assinatura raiz do bytecode do sombreador. Novo no Direct3D 12.

/res_may_alias

Suponha que UAVs/SRVs podem usar um alias para cs_5_0+. Requer o D3dcompiler_47.dll ou uma versão posterior da DLL.

Arquivo de </setprivate>

Adicione dados privados no arquivo fornecido ao blob de sombreador compilado. Incorpora o arquivo fornecido, que é tratado como um buffer bruto, no 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 privados. 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 onde o segundo comando carrega um objeto sombreador e, em seguida, 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
/setrootsignature <arquivo>

Anexe a assinatura raiz ao bytecode do sombreador. Novo no Direct3D 12.

/shtemplate <arquivo>

Use determinado arquivo de sombreador de modelo para mesclar (/mergeUAVs) e corresponder (/matchUAVs) recursos. Para obter mais informações, consulte Observações.

/Vd

Desative a validação.

/verifyrootsignature <arquivo>

Verifique o bytecode do sombreador em relação à assinatura raiz. Novo no Direct3D 12.

/vi

Exiba detalhes sobre o processo de inclusão.

/Vn <nome>

Use name como nome da variável no arquivo de cabeçalho.

/WX

Trate os avisos como erros.

/Zi

Habilite as informações de depuração.

/Zpc

Embale matrizes em ordem de coluna maior.

/Zpr

Embale matrizes em ordem de linha maior.

nomes de arquivo

[em] Os arquivos que contêm o(s) sombreador(es) e/ou o(s) efeito(s).

Comentários

Use as opções /mergeUAVs, /matchUAVse /shtemplate para alinhar os slots de vinculação de UAV para uma cadeia de sombreadores.

Suponha que você tenha sombreadores A.fx, B.fx e C.fx. Para alinhar os slots de vinculação UAV para essa cadeia de sombreadores, você precisa de duas etapas de compilação:

Para alinhar os slots de ligação UAV para uma cadeia de sombreadores

  1. 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
    
  2. 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 os dois passos de compilação anteriores, você pode usar A.o, B.o e C.o como blobs de sombreador finais com slots UAV alinhados.

Perfis

Cada modelo de sombreador é rotulado com um perfil HLSL. Para compilar um sombreador em relação a um modelo de sombreador específico, escolha o perfil de sombreador apropriado na tabela a seguir.

Tipo de sombreadorPerfis
Sombreador de computação
cs_4_0
cs_4_1
cs_5_0
cs_5_1
Shader de Domínio
ds_5_0
ds_5_1
Sombreador de geometria
gs_4_0
gs_4_1
gs_5_0
gs_5_1
Vinculação de sombreador HLSL
lib_4_0
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
Para obter mais informações sobre vinculação de sombreador, consulte ID3D11Linker e ID3D11FunctionLinkingGraph.
Sombreador de casco
hs_5_0
hs_5_1
Pixel Shader
ps_2_0
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
rootsig_1_0
Sombreador de textura
tx_1_0
Sombreador de vértice
vs_1_1
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, Vinculação de recursos no 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 a um determinado dispositivo chamando estas funções: D3D10GetVertexShaderProfile, D3D10GetPixelShaderProfilee D3D10GetGeometryShaderProfile.

No Direct3D 9, use o GetDeviceCaps ou métodos de GetDeviceCaps para recuperar os perfis de vértice e sombreador de pixel suportados por um dispositivo. A estrutura de D3DCAPS9 retornada por esses métodos indica os perfis de vértice e sombreador de pixel suportados por um dispositivo em seus VertexShaderVersion e PixelShaderVersion membros.

Para obter exemplos, consulte Compilando com o compilador atual.