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 bits siguientes:

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 de sombreador de píxeles y vértices 2_0 y versiones posteriores, los bits del 24 al 27 especifican el tamaño en DWORDs de la instrucción sin incluir el propio token de instrucción (es decir, el número de tokens que componen la instrucción excluyendo el token de instrucción).

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

En el caso de las versiones 2_0 y posteriores del sombreador de vértices y píxeles, el bit 28 indica si la instrucción está predescripta (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 está condicionada.

[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 coemisión. 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 de

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 de 0 a 15 de tokens de instrucción.

Una vez que el runtime de Direct3D recibe el código de sombreador de una aplicación, lo valida antes de remitirlo al controlador. Normalmente, el tiempo de ejecución antepone a las instrucciones del ensamblador el prefijo "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

agregar

D3DSIO_ADD

Mov

D3DSIO_MOV

sustituto

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 de tex y texcoord 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 los parámetros de destino y de origen 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 tiempo de ejecución convierte las instrucciones del ensamblador texcoord y texcrd en la operación en modo kernel de D3DSIO_TEXCOORD. Los controladores comprueban primero la versión del sombreador de píxeles en el código del sombreador y, por último, procesan las instrucciones según corresponda. 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.