estructura D3D11_TRACE_STEP (d3d11shadertracing.h)

Describe un paso de seguimiento, que es una instrucción .

Sintaxis

typedef struct D3D11_TRACE_STEP {
  UINT                             ID;
  BOOL                             InstructionActive;
  UINT8                            NumRegistersWritten;
  UINT8                            NumRegistersRead;
  D3D11_TRACE_MISC_OPERATIONS_MASK MiscOperations;
  UINT                             OpcodeType;
  UINT64                           CurrentGlobalCycle;
} D3D11_TRACE_STEP;

Miembros

ID

Número que identifica la instrucción, como desplazamiento en las instrucciones ejecutables presentes en el sombreador.

La información de depuración de HLSL usa la misma convención. Por lo tanto, las instrucciones de HLSL coinciden con un conjunto de identificadores. A continuación, puede asignar un identificador a una cadena desensamblado que se puede mostrar al usuario.

InstructionActive

Valor que especifica si la instrucción está activa. Este valor es TRUE si algo sucedió; por lo tanto, debe analizar otros datos en esta estructura. De lo contrario, no pasó nada; por ejemplo, si una instrucción está deshabilitada debido al control de flujo aunque otros píxeles de la marca lo ejecuten.

NumRegistersWritten

Número de registros de la instrucción en la que se escriben. El intervalo de registros es [0...NumRegistersWritten-1]. Puede pasar un número de registro al parámetro writeRegisterIndex de ID3D11ShaderTrace::GetWrittenRegister para recuperar información individual de registro de escritura.

NumRegistersRead

Número de registros de la instrucción de la que se leen. El intervalo de registros es [0...NumRegistersRead-1]. Puede pasar un número de registro al parámetro readRegisterIndex de ID3D11ShaderTrace::GetReadRegister para recuperar información individual de registro de lectura.

MiscOperations

Combinación de los valores siguientes que se combinan mediante una operación OR bit a bit. El valor resultante especifica la máscara para las operaciones varias de seguimiento. Estas marcas indican el posible efecto de una operación de sombreador cuando no escribe ningún registro de salida. Por ejemplo, la operación "add r0, r1 ,r2" escribe en el registro r0; por lo tanto, puede examinar la información del registro escrito por seguimiento para determinar cuál ha cambiado la operación. Sin embargo, algunas instrucciones del sombreador no escriben ningún registro, pero siguen afectando a esos registros.

Marca Descripción
D3D11_TRACE_MISC_GS_EMIT (0x1) La operación era una emisión de datos del sombreador de geometría.
D3D11_TRACE_MISC_GS_CUT (0x2) La operación era un corte de tira de sombreador de geometría.
D3D11_TRACE_MISC_PS_DISCARD (0x4) La operación era un descarte del sombreador de píxeles, que rechaza el píxel.
D3D11_TRACE_MISC_GS_EMIT_STREAM (0x8) Igual que D3D11_TRACE_MISC_GS_EMIT, excepto en el modelo de sombreador 5 , donde puede especificar una secuencia determinada a la que se va a emitir.
D3D11_TRACE_MISC_GS_CUT_STREAM (0x10) Igual que D3D11_TRACE_MISC_GS_CUT, excepto en el modelo de sombreador 5 , donde puede especificar una secuencia determinada para cortar.
D3D11_TRACE_MISC_HALT (0x20) La operación era una instrucción de detención del sombreador, que detiene la ejecución del sombreador. La función intrínseca de anulación de HLSL provoca una detención.
D3D11_TRACE_MISC_MESSAGE (0x40) La operación era una salida de mensaje de sombreador, que se puede registrar en la cola de información. Las funciones intrínsecas printf y errorf de HLSL provocan mensajes.
 

Si el miembro NumRegistersWritten es 0, examine este miembro aunque este miembro todavía podría estar vacío (0).

OpcodeType

Número que especifica el tipo de instrucción (por ejemplo, agregar,mul, etc.). Puede omitir este miembro si no conoce el número del tipo de instrucción. Este miembro ofrece una pequeña comodidad a costa de sobredimensionar el seguimiento ligeramente. Puede usar el miembro id . y volver a asignarlo al código del sombreador original para recuperar la información completa sobre la instrucción.

CurrentGlobalCycle

Recuento de ciclo global para este paso. Puede usar este miembro para correlacionar la ejecución de subprocesos paralelos a través de varios seguimientos simultáneos, por ejemplo, para el sombreador de proceso.

Nota Varios subprocesos en el mismo punto de ejecución podrían registrar el mismo CurrentGlobalCycle.
 

Comentarios

Esta API requiere el Kit de desarrollo de software (SDK) de Windows para Windows 8.

Requisitos

   
Cliente mínimo compatible Windows 8 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2012 [solo aplicaciones de escritorio]
Encabezado d3d11shadertracing.h

Consulte también

Estructuras de los sombreadores