Sintaxis

A continuación se incluye la sintaxis para llamar a FXC.exe, la herramienta del compilador de efectos. Para obtener un ejemplo, consulte Compilación sin conexión.

Uso

fxc SwitchOptions nombres_archivos

Argumentos

Separe cada opción de conmutador con un espacio o dos puntos.

SwitchOptions

[in] Opciones de compilación. Solo hay una opción necesaria y muchas más que son opcionales. Separe cada una con un espacio o dos puntos.

Opción necesaria

/T <perfil>

Modelo de sombreador (consulte Perfiles).

Opciones no necesarias

/?, /help

Imprimir ayuda para FXC.exe.

@<command.option.file>

Archivo que contiene opciones de compilación adicionales. Esta opción se puede mezclar con otras opciones de compilación de línea de comandos. command.option.file debe contener solo una opción por línea. command.option.file no puede contener ninguna línea en blanco. Las opciones especificadas en el archivo no deben contener ningún espacio inicial o final.

/all_resources_bound

Habilitar el acoplamiento agresivo en SM5.1+. Novedades de Direct3D 12.

/Cc

Genera el ensamblado codificado en color.

/compress

Comprime el código de bytes del sombreador DX10 de los archivos.

/D <id>=<texto>

Define macro.

/decompress

Descomprime el código de bytes del sombreador DX10 del primer archivo. Los archivos de salida deben aparecer en el orden en que estaban durante la compresión.

/dumpbin

Carga un archivo binario en lugar de compilar un sombreador.

/E <nombre>

Punto de entrada del sombreador. Si no se da ningún punto de entrada, main se considera el nombre de entrada del sombreador.

/enable_unbounded_descriptor_tables

Activa las tablas descriptoras sin enlazar. Novedades de Direct3D 12.

/extractrootsignature <archivo>

Extrae la firma raíz del código de bytes del sombreador. Novedades de Direct3D 12.

/Fc <archivo>

Genera el archivo de lista de código de ensamblado.

/Fd <archivo>

Extrae la información de la base de datos del programa de sombreador (PDB) y escribe en el archivo especificado. Al compilar el sombreador, se usa /Fd para generar un archivo PDB con información de depuración del sombreador.

/Fe <archivo>

Genera advertencias y errores en el archivo especificado.

/Fh <archivo>

Genera archivo de encabezado que contiene código de objeto.

/Fl <archivo

Genera una biblioteca. Requiere el archivo D3dcompiler_47.dll o una versión posterior del archivo DLL.

/Fo <archivo>

Genera el archivo de objeto. A menudo se da la extensión ".fxc", aunque se usan otras extensiones, como ".o", ".obj" o ".dxbc".

/Fx <archivo>

Genera el código de ensamblado y el archivo de lista hexadecimal.

/Gch

Compila como efecto secundario para los perfiles fx_4_x.

Nota

La compatibilidad con perfiles de efectos heredados está en desuso.

/Gdp

Deshabilita el modo de rendimiento del efecto.

/Gec

habilita el modo de compatibilidad con versiones anteriores

/Ges

Habilita el modo strict.

/getprivate <archivo>

Guarda los datos privados del blob del sombreador (binario del sombreador compilado) en el archivo especificado. Extrae datos privados, previamente incrustados por /setprivate, del blob del sombreador.

Debe especificar la opción /dumpbin con /getprivate. Por ejemplo:

fxc /getprivate ps01.private.data 
    /dumpbin ps01.with.private.obj
/Gfa

Evita construcciones de control de flujo.

/Gfp

Prefiere construcciones de control de flujo.

/Gis

Fuerza la rigurosidad de IEEE.

/Gpp

Fuerza precisión parcial.

/I <incluir>

Ruta de inclusión adicional.

/Lx

Genera literales hexadecimales. Requiere el archivo D3dcompiler_47.dll o una versión posterior del archivo DLL.

/matchUAVs

Hacer coincidir las asignaciones de ranuras UAV del sombreador de plantillas en el sombreador actual. Para obtener más información, consulte Comentarios.

/mergeUAVs

Combina asignaciones de ranuras UAV del sombreador de plantillas y del sombreador actual. Para obtener más información, consulte Comentarios.

/Ni

Genera números de instrucción en listas de ensamblados.

/No

Genera desplazamiento de bytes de instrucción en listas de ensamblados. Al generar el ensamblado, usar /No para anotarlo con el desplazamiento de bytes para cada instrucción.

Se suprime el mensaje de copyright.

/Od

Deshabilite las optimizaciones. /Od implica /Gfp, a pesar de que la salida puede no ser idéntica a /Od /Gfp.

/Op

Deshabilita los presombreadores (en desuso).

/O0 /O1, /O2, /O3

Niveles de optimización. O1 es el valor predeterminado.

  • O0: deshabilita la reordenación de instrucciones. Esto ayuda a reducir la carga de registro y permite una simulación de bucle más rápida.
  • O1: deshabilita el reordenamiento de instrucciones para ps_3_0 y versiones posteriores.
  • O2: igual que O1. Reservado para uso futuro.
  • O3: igual que O1. Reservado para uso futuro.
/P <archivo>

Preprocesar al archivo (se debe usar solo).

/Qstrip_debug

Quita los datos de depuración del código de bytes del sombreador para perfiles de más de 4_0+.

/Qstrip_priv

Quita los datos privados del código de bytes del sombreador 4_0+. Quita los datos privados (secuencia arbitraria de bytes) del blob del sombreador (binario del sombreador compilado) que ha incrustado anteriormente con la opción /setprivate <file>.

Debe especificar la opción /dumpbin con /Qstrip_priv. Por ejemplo:

fxc /Qstrip_priv /dumpbin /Fo ps01.no.private.obj 
    ps01.with.private.obj
/Qstrip_reflect

Quita los datos de reflexión del código de bytes del sombreador para perfiles de más de 4_0+.

/Qstrip_rootsignature

Quita la firma raíz del código de bytes del sombreador. Novedades de Direct3D 12.

/res_may_alias

Asume que los UAV/SRV pueden ser alias para cs_5_0+. Requiere el archivo D3dcompiler_47.dll o una versión posterior del archivo DLL.

/setprivate <archivo>

Añade datos privados en el archivo especificado al blob del sombreador compilado. Inserta el archivo especificado, que se trata como un búfer sin procesar, en el blob del sombreador. Use /setprivate para agregar datos privados al compilar un sombreador. O bien, use la opción /dumpbin con /setprivate para cargar un objeto de sombreador existente y, después de que el objeto esté en memoria, para agregar el blob de datos privado. Por ejemplo, use un único comando con /setprivate para agregar datos privados a un blob del sombreador compilado:

fxc /T ps_4_0 /Fo ps01.with.private.obj ps01.fx 
    /setprivate ps01.private.data

O bien, use dos comandos donde el segundo comando carga un objeto de sombreador y, a continuación, agregue datos 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 <archivo>

Adjunte la firma raíz al código de bytes del sombreador. Novedades de Direct3D 12.

/shtemplate <archivo>

Usa un archivo de sombreador de plantilla determinado para combinar recursos (/mergeUAVs) y buscar coincidencias (/matchUAVs). Para obtener más información, consulte Comentarios.

/Vd

Deshabilita la validación.

/verifyrootsignature <archivo>

Comprueba el código de bytes del sombreador con la firma raíz. Novedades de Direct3D 12.

/Vi

Muestra detalles sobre el proceso de inclusión.

/Vn <nombre>

Usa el nombre como nombre de variable en el archivo de encabezado.

/WX

Trata las advertencias como errores.

/Zi

Habilite la información de depuración.

/Zpc

Empaqueta matrices en orden principal de columna.

/Zpr

Empaqueta matrices en orden principal de fila.

Nombres de archivo

[in] Los archivos que contienen los sombreador o los efectos.

Comentarios

Usa las opciones /mergeUAVs, /matchUAVs y /shtemplate para alinear las ranuras de enlace UAV para una cadena de sombreadores.

Supongamos que tiene sombreadores A.fx, B.fx y C.fx. Para alinear las ranuras de enlace UAV para esta cadena de sombreadores, necesita dos pasos de compilación:

Alinear las ranuras de enlace UAV para una cadena de sombreadores

  1. Use /mergeUAVs para compilar sombreadores y especificare un blob del sombreador compilado previamente con /shtemplate. Por ejemplo:
    fxc.exe /T cs_5_0 C.fx /Fo C.o /mergeUAVs /shtemplate Btmp.o
    
  2. Use /matchUAVs para compilar sombreadores y especifique el último blob del sombreador desde el primer paso con /shtemplate. Puede compilar en cualquier orden. Por ejemplo:
    fxc.exe /T cs_5_0 A.fx /Fo A.o /matchUAVs /shtemplate C.o
    

No es necesario volver a compilar C.fx en el segundo paso.

Después de realizar los dos pasos de compilación anteriores, puede usar A.o, B.o y C.o como blobs de sombreador finales con ranuras UAV alineadas.

Perfiles

Cada modelo de sombreador se etiqueta con un perfil HLSL. Para compilar un sombreador en un modelo de sombreador determinado, elija el perfil de sombreador adecuado en la tabla siguiente.

Tipo de sombreadorPerfiles
Sombreador de cálculo
cs_4_0
cs_4_1
cs_5_0
cs_5_1
Sombreador de dominio
ds_5_0
ds_5_1
Sombreador de geometría
gs_4_0
gs_4_1
gs_5_0
gs_5_1
Vinculación del 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 obtener más información sobre la vinculación del sombreador, consulte ID3D11Linker e ID3D11FunctionLinkingGraph.
Sombreador de casco
hs_5_0
hs_5_1
Sombreador de píxeles
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
Firma raíz
rootsig_1_0
Sombreador de texturas
tx_1_0
Sombreador de vértices
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 la versión

Para Direct3D 12, consulte Especificación de firmas raíz en HLSL, Enlace de recursos en HLSL e Indexación dinámica mediante HLSL 5.1.

En Direct3D 10, use la API para obtener el perfil de vértice, geometría y sombreador de píxeles más adecuado para un dispositivo determinado mediante una llamada a estas funciones: D3D10GetVertexShaderProfile, D3D10GetPixelShaderProfile y D3D10GetGeometryShaderProfile.

En Direct3D 9, use los métodos GetDeviceCaps o GetDeviceCaps para recuperar los perfiles de vértice y sombreador de píxeles compatibles con un dispositivo. La estructura D3DCAPS9 devuelta por esos métodos indica los perfiles de vértice y sombreador de píxeles admitidos por un dispositivo en sus miembros VertexShaderVersion y PixelShaderVersion.

Para obtener ejemplos, consulte Compilación con el compilador actual.