Compartir a través de


Token de instrucción

Un token de instrucción informa al controlador de una operación específica para realizar y se compone de los siguientes bits:

Bits

[15:00] Los bits de 0 a 15 indican un código de operación. D3DSIO_* es un ejemplo de código de operación, donde * representa la instrucción . Por ejemplo, el siguiente fragmento de código muestra una instrucción ADD:

// D3DSIO_ADD d, s1, s2

[23:16] Los bits de 16 a 23 indican controles específicos relacionados con el código de operación.

[27:24] Para las versiones del sombreador de píxeles y vértices anteriores a 2_0, los bits de 24 a 27 están reservados y se establecen en 0x0.

Para las versiones del sombreador de píxeles y vértices 2_0 y versiones posteriores, los bits de 24 a 27 especifican el tamaño en DWORD de la instrucción excluyendo el propio token de instrucción (es decir, el número de tokens que componen la instrucción excepto el token de instrucción).

[28] Para versiones de sombreador de píxeles y vértices anteriores a 2_0, el bit 28 está reservado y se establece en 0x0.

En el caso de las versiones del sombreador de píxeles y vértices 2_0 y posteriores, el bit 28 indica si la instrucción se prefiere (es decir, contiene un token de origen de predicado adicional al final del código del sombreador). Si este bit se establece en 0x1, la instrucción se indica previamente.

[29] Reservado. Este valor se establece en 0x0.

[30] En el caso de las versiones del sombreador de píxeles anteriores a 2_0, el bit 30 es el bit de emisión conjunta. Si se establece en 1, ejecute esta instrucción con instrucciones anteriores; De lo contrario, ejecute por separado.

Para la versión del sombreador de píxeles 2_0 y versiones posteriores y todas las versiones del sombreador de vértices, el bit 30 está reservado y se establece en 0x0.

[31] El bit 31 es cero (0x0).

Comentarios

Consulte la referencia del sombreador de píxeles y la referencia del sombreador de vértices en la documentación más reciente del SDK de DirectX para obtener más información sobre las operaciones que se pueden especificar en bits 0 a 15 de tokens de instrucción.

Una vez que el tiempo de ejecución de DirectX3D recibe código de sombreador de una aplicación, el tiempo de ejecución valida el código antes de pasar el código al controlador. Normalmente, el ensamblador de prefijos en tiempo de ejecución instrucciones con "D3DSIO_" para crear el código de operación. Por ejemplo, las siguientes instrucciones del ensamblador corresponden a las operaciones en modo kernel:

Instrucción del ensamblador Operación en modo kernel

add

D3DSIO_ADD

Mov

D3DSIO_MOV

sub

D3DSIO_SUB

Tex

D3DSIO_TEX

texcoord

D3DSIO_TEXCOORD

Tenga en cuenta que en todas las versiones del sombreador de vértices, la instrucción del ensamblador secundario se implementa como una operación de D3DSIO_ADD con el modificador de origen (bits 27:24) del segundo origen establecido en negate (0x1).

Las instrucciones tex ytexcoord se aplican a las versiones del sombreador de píxeles 1_0 a 1_3; cada instrucción tiene un parámetro de destino asociado.

Las instrucciones texld y texcrd son nuevas en la versión 1_4 del sombreador de píxeles y versiones posteriores; cada instrucción tiene parámetros de origen y de destino asociados.

El tiempo de ejecución convierte las instrucciones del ensamblador tex y texld en la operación en modo kernel de D3DSIO_TEX. El runtime convierte las instrucciones del ensamblador texcoord y texcrd en la operación del modo kernel de D3DSIO_TEXCOORD. Los controladores comprueban primero la versión del sombreador de píxeles del código del sombreador y, a continuación, procesan las instrucciones en consecuencia. Por ejemplo, si un controlador comprueba que recibió código de sombreador de píxeles de la versión 1_4 con una operación de D3DSIO_TEX, el controlador determina que los parámetros de origen y destino siguen el token de instrucción.

Requisitos

Disponible en Windows Vista y versiones posteriores de los sistemas operativos Windows.