Share via


Registro de profundidad de salida

El registro de profundidad de salida del sombreador de píxeles (oDepth) es un registro escalar de solo escritura con el intervalo [0..1] que devuelve un nuevo valor de profundidad para una prueba de profundidad en el búfer de galería de símbolos de profundidad.

Sintaxis

oDepth

 

Donde:

Nombre Descripción
oDepth Nuevo valor de profundidad para una prueba de profundidad en el búfer de galería de símbolos de profundidad

 

Es importante tener en cuenta que escribir en oDepth provoca la pérdida de cualquier algoritmo de optimización de búfer de profundidad específico del hardware (es decir, Z jerárquico) que acelera el rendimiento de la prueba de profundidad.

Se requiere replicar swizzle de origen (.x | .y | .z | .w) al escribir en oDepth. No se permiten máscaras de escritura explícitas.

Al escribir en el registro de oDepth, se reemplaza el valor de profundidad interpolado (y se omiten los estados de representación de la escala de inclinación o inclinación de profundidad). Si no se ha creado o conectado ningún búfer de profundidad al dispositivo, se omite escribir en oDepth.

Si es multimuestreo y escribe en oDepth, ya que el sombreador de píxeles solo se ejecuta una vez por píxel, el valor de profundidad se replica para todas las ubicaciones de submuestreo cubiertas. La prueba de profundidad se sigue realizando por muestra, pero no tiene un valor de profundidad por muestra en la comparación del sombreador de píxeles, como tendría si no hubiera escrito oDepth.

Si una aplicación tiene un búfer w establecido como su búfer de profundidad, debe tenerlo en cuenta mientras se escribe en oDepth. Es posible que tenga que enviar información de rango w al sombreador de píxeles y calcular el rango w para escalar los valores w escritos en oDepth.

restricciones de ps_2_0 y ps_2_x

  • oDepth solo se puede escribir con la instrucción mov - ps y solo se puede hacer una vez.
  • No se permite ningún modificador de origen al escribir en oDepth.
  • No se permite ningún modificador de instrucción al escribir en oDepth.
  • No se escribe en oDepth desde dentro de una construcción de control de flujo o cuando se usa predicado.

Restricciones de ps_3_0

  • Para ps_3_0, los registros de salida oC# y oD# se pueden escribir varias veces. La salida del sombreador de píxeles procede del contenido de los registros de salida al final de la ejecución del sombreador. Si no se produce una escritura en un registro de salida, quizás debido al control de flujo o si el sombreador no lo ha escrito, el destino de representación correspondiente tampoco se actualiza. Si se escribe un subconjunto de los canales de un registro de salida, los valores no definidos se escribirán en los canales restantes.
  • Puede escribir en oDepth dentro del control de flujo o predicación siempre que todas las rutas de acceso posibles escriban en el registro.
  • No puede realizar ningún cálculo de degradado (o operaciones que invocan implícitamente cálculos de degradado como texld - ps_2_0 y up, texldb - ps, texldp - ps) dentro de instrucciones de control de flujo cuyas condiciones de bifurcación varían según una primitiva (es decir: instrucciones de control de flujo dinámico). El predicado de instrucción no se considera control de flujo dinámico.

Registros