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.
/nologo
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
- 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
- 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 sombreador | Perfiles |
---|---|
Sombreador de cálculo |
cs_4_1 cs_5_0 cs_5_1 |
Sombreador de dominio |
ds_5_1 |
Sombreador de geometría |
gs_4_1 gs_5_0 gs_5_1 |
Vinculación del 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 |
Sombreador de casco |
hs_5_1 |
Sombreador de píxeles |
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 |
|
Sombreador de texturas |
|
Sombreador de vértices |
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.