dcl_semantics (sm3 - ps asm)
Declare la asociación entre la salida del sombreador de vértices y la entrada del sombreador de píxeles.
Sintaxis
dcl_semantics [_centroid] dst[.write_mask]
Donde:
- _semantics: identifica el uso de datos previsto y puede ser cualquiera de los valores de D3DDECLUSAGE (sin el prefijo D3DDECLUSAGE_). Además, se puede anexar un índice entero a la semántica para distinguir los parámetros que usan una semántica similar.
- [_Centroid] es un modificador de instrucción opcional. Se admite en las instrucciones dcl_usage que declaran los registros de entrada y en las instrucciones de búsqueda de texturas. El centroide se anexa sin espacio.
- dst: registro de destino. Consulte Registros de ps_3_0.
- write_mask: el mismo registro de salida se puede declarar varias veces, cada vez con una máscara de escritura única (por lo que se pueden aplicar semánticas diferentes a componentes individuales). Sin embargo, no se puede usar la misma semántica varias veces en una declaración. Por tanto, los vectores deben ser cuatro componentes o menos y no pueden cruzar límites de registro de cuatro componentes (registros de salida individuales). Cuando se usa la semántica _psize, debe tener una máscara de escritura completa, ya que se considera escalar. Cuando se usa la semántica _position, debe tener una máscara de escritura completa, ya que deben escribirse los cuatro componentes.
Comentarios
Versiones del sombreador de píxeles | 1_1 | 1_2 | 1_3 | 1_4 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|---|---|---|
dcl_usage | x | x |
Todas las instrucciones dcl_usage deben aparecer antes de la primera instrucción ejecutable.
Ejemplos de declaración
ps_3_0
; Declaring inputs
dcl_normal v0.xyz
dcl_blendweight v0.w ; Must be same reg# as normal, matching vshader packing
dcl_texcoord1 v1.y ; Mask can be any subset of mask from vshader semantic
dcl_texcoord0 v1.zw; Has to be same reg# as texcoord1, to match vshader
; Declaring samplers
dcl_2d s0
dcl_2d s1
def c0, 0, 0, 0, 0
mov r0.x, v1.y ; texcoord1
mov r0.y, c0
texld r0, r0, s0
texld r1, v1.zw, s1
...
(output regs in ps_3_0 are same as ps_2_0: oC0-oC3, oDepth)
Temas relacionados