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.
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 |