共用方式為


指示權杖

指令權杖會通知驅動程式要執行的特定作業,並且由下列位組成:

[15:00] 位 0 到 15 表示 作業程式碼。 D3DSIO_* 是作業程式碼的範例,其中 * 代表指令。 例如,下列程式碼片段會顯示 ADD 指示

// D3DSIO_ADD d, s1, s2

[23:16] 位 16 到 23 表示與作業程式碼相關的特定控制項。

[27:24] 對於 2 _0 之前的圖元和頂點著色器版本,位 24 到 27 會保留並設定為 0x0。

對於圖元和頂點著色器版本 2_0 和更新版本,位 24 到 27 指定指令的 DWORD 大小,不包括指令標記本身 (,也就是組成指令標記的標記數目,不包括指令權杖) 。

[28] 對於 2_0 之前的圖元和頂點著色器版本,位 28 會保留並設定為 0x0。

對於圖元和頂點著色器版本 2_0 和更新版本,位 28 表示指令是否 (述詞,也就是在著色器程式碼結尾包含額外的述詞來源權杖。 如果此位設定為 0x1,則會述詞指示。

[29] 保留。 此值設定為 0x0。

[30] 對於 2_0 之前的圖元著色器版本,位 30 是共同問題位。 如果設定為 1,請使用先前的指示來執行此指令;否則,請個別執行。

對於圖元著色器 2_0 版和更新版本和所有頂點著色器版本,位 30 會保留並設定為 0x0。

[31] 位 31 為零 (0x0) 。

評論

如需可在指令權杖 0 到 15 位中指定之作業的詳細資訊,請參閱最新 DirectX SDK 檔中的圖元著色器參考和頂點著色器參考。

DirectX3D 執行時間從應用程式接收著色器程式碼之後,執行時間會在將程式碼傳遞至驅動程式之前驗證程式代碼。 一般而言,執行時間會使用 「D3DSIO_」 前置片語譯工具指令,以建立作業程式碼。 例如,下列組合器指令會對應至核心模式作業:

組合器指令 核心模式作業

新增

D3DSIO_ADD

mov

D3DSIO_MOV

sub

D3DSIO_SUB

tex

D3DSIO_TEX

texcoord

D3DSIO_TEXCOORD

請注意,在所有頂點著色器版本中, 組合器指令會實作為D3DSIO_ADD作業,並將來源修飾詞 (位 27:24) 設為否定 (0x1) 。

tex 和texcoord指令適用于圖元著色器 1_0 到 1_3 版;每個指令都有一個與其相關聯的目的地參數

texldtexcrd指令是圖元著色器 1_4 版和更新版本的新功能;每個指令都有與其相關聯的目的地和來源參數

執行時間會將 tex 和texld組合器指令轉換為D3DSIO_TEX核心模式作業。 執行時間會將 texcoordtexcrd 組合器指令轉換為D3DSIO_TEXCOORD核心模式作業。 驅動程式會先驗證著色器程式碼的圖元著色器版本,然後據以處理指示。 例如,如果驅動程式使用D3DSIO_TEX作業來確認它收到 1_4 版圖元著色器程式碼,驅動程式會判斷目的地和來源參數是否遵循指示權杖。

需求

可在 Windows Vista 和更新版本的 Windows 作業系統中使用。