Поделиться через


Формат инструкций DCL

Инструкция DCL объявляет регистры.

Формат

Только шейдер пикселей 2_0 и более поздних версий.

Только регистр состояния выборки.

маркер инструкции

Содержит D3DSIO_DCL. Токен DWORD

Имеет следующий битовый формат:

[26:0] Зарезервировано. Задайте значение 0x0.

[30:27] Задайте значение D3DSAMPLER_TEXTURE_TYPE для двухd, куба и т. д.

[31] Задайте значение 0x1.

маркер параметра назначения

Указывает номер регистра и тип регистра как D3DSPR_SAMPLER. Это единственные поля, которые используются в этом токене.

Регистрируются только входные данные или текстуры.

маркер инструкции

Содержит D3DSIO_DCL. Токен DWORD

Имеет следующий битовый формат:

[30:0] Зарезервировано. Задайте значение 0x0.

[31] Задайте значение 0x1.

маркер параметра назначения

Указывает номер регистра входных данных или текстуры. Поле "Маска записи" указывает на объявленные компоненты.

Вершинный шейдер 2_0 и более поздних версий.

Только входной регистр.

маркер инструкции

Содержит D3DSIO_DCL. Токен DWORD

Имеет следующий битовый формат:

[4:0] Значение D3DDECLUSAGE (то есть D3DDECLUSAGE_TEXCOORD, D3DDECLUSAGE_NORMAL и т. д.).

[15:5] Зарезервировано. Задайте значение 0x0.

[19:16] Значение индекса использования.

[30:20] Зарезервировано. Задайте значение 0x0.

[31] Задайте значение 0x1.

маркер параметра назначения

Указывает номер регистра и тип регистра как D3DSPR_INPUT. Поле "Маска записи" указывает на объявленные компоненты.

Только шейдер пикселей 3_0 и более поздних версий.

Только регистрация текстуры.

маркер инструкции

Содержит D3DSIO_DCL. Токен DWORD

Имеет следующий битовый формат:

[4:0] Значение D3DDECLUSAGE (должно быть D3DDECLUSAGE_TEXCOORD или D3DDECLUSAGE_COLOR).

[15:5] Зарезервировано. Задайте значение 0x0.

[19:16] Значение индекса использования. Для D3DDECLUSAGE_TEXCOORD должно быть от 0 до 7. Для D3DDECLUSAGE_COLOR значение должно быть 0.

[30:20] Зарезервировано. Задайте значение 0x0.

[31] Задайте значение 0x1.

маркер параметра назначения

Указывает номер регистра и тип регистра как D3DSPR_TEXTURE. Поле "Маска записи" указывает на объявленные компоненты.

Только регистрация лиц.

маркер инструкции

Содержит D3DSIO_DCL. Токен DWORD

Имеет следующий битовый формат:

[30:0] Зарезервировано. Задайте значение 0x0.

[31] Задайте значение 0x1.

маркер параметра назначения

Указывает регистр лиц. Поле маски записи должно быть заполнено, хотя оно не используется. Поля с модификатором результатов и масштабом сдвига должны быть 0 (также неиспользуемые).

Только регистр позиции.

маркер инструкции

Содержит D3DSIO_DCL. Токен DWORD

Имеет следующий битовый формат:

[30:0] Зарезервировано. Задайте значение 0x0.

[31] Задайте значение 0x1.

маркер параметра назначения

Указывает регистр позиции. Поле "Маска записи" указывает на объявленные компоненты.

Вершинный шейдер 3_0 и более поздних версий.

Только регистрация выходных данных.

маркер инструкции

Содержит D3DSIO_DCL. Токен DWORD

Имеет следующий битовый формат:

[4:0] Значение D3DDECLUSAGE (то есть D3DDECLUSAGE_TEXCOORD, D3DDECLUSAGE_NORMAL и т. д.).

[15:5] Зарезервировано. Задайте значение 0x0.

[19:16] Значение индекса использования.

[30:20] Зарезервировано. Задайте значение 0x0.

[31] Задайте значение 0x1.

маркер параметра назначения

Указывает номер регистра и тип регистра как D3DSPR_OUTPUT. Поле "Маска записи" определяет, какие компоненты записываются.

Обратите внимание, что несколько инструкций DCL, описывающих выходные данные, могут использовать одно и то же смещение регистра. Однако компоненты маски записи для каждой инструкции DCL должны быть разными. Например, в вершинном шейдере 3_0 и более поздних версий допустимо следующее:

       DCL   o10.xy
       DCL   o10.zw

Выходные инструкции DCL должны объявлять все регистры, записанные вершинным шейдером 3_0 и более поздних версий.

Требования

Доступно в Windows Vista и более поздних версиях операционных систем Windows.