共用方式為


HLSL 並排顯示的資源曝光

需要新的Microsoft高階著色器語言 (HLSL) 語法,才能支援 著色器模型 5中的磚資源。

新的 HLSL 語法只允許在支援並排顯示資源的裝置上。 下表中磚資源的每個相關 HLSL 方法都會接受一個(意見反應)或兩個(依此順序限制和意見反應)其他選擇性參數。 例如,Sample 方法是:

Sample(sampler, location [, offset [, clamp [, feedback] ] ])

Sample 方法的範例是 Texture2D.Sample(S,float,int,float,uint)

位移、夾板和意見反應參數是選擇性的。 您必須指定所有選擇性參數,以符合預設函式自變數的C++規則。 例如,如果需要意見反應狀態,即使可能不需要邏輯,還是必須明確提供位移和固定參數給 Sample

clamp 參數是純量浮點數。 clamp=0.0f 的常值表示不會執行夾子作業。

feedback 參數是 uint 變數,您可以提供給記憶體存取查詢內部 CheckAccessFullyMapped 函式。 您不得修改或解譯意見反應參數的值;但是,編譯程式不會提供任何進階分析和診斷來偵測您是否修改了值。

以下是 checkAccessFullyMapped 語法

bool CheckAccessFullyMapped(in uint FeedbackVar):

CheckAccessFullyMapped 解譯 FeedbackVar 的值,如果存取的所有數據都對應在資源中,則會傳回 true;否則,CheckAccessFullyMapped 會傳回 false。

如果有固定或意見反應參數存在,編譯程式會發出基本指令的變體。 例如,磚化資源的範例會產生 sample_cl_s 指令。 如果未指定限制或意見反應,編譯程式會發出基本指令,因此目前的行為不會有任何變更。 0.0f 的夾點值表示不會執行任何夾子;因此,驅動程式編譯程式可以進一步量身打造目標硬體的指示。 如果意見反應是指示中的NULL緩存器,表示意見反應未使用;因此,驅動程式編譯程式可以進一步量身打造目標架構的指示。

如果 HLSL 編譯程式推斷限制為 0.0f 且意見反應未使用,則編譯程式會發出對應的基本指令(例如,sample 而不是 sample_cl_s)。

如果磚式資源存取是由數個組成位元組程序代碼指示所組成,例如,針對結構化資源,編譯程式會透過 OR 作業匯總個別的意見反應值,以產生最終的意見反應值。 因此,您會看到這類複雜存取的單一意見反應值。

這是 HLSL 方法的摘要表,這些方法已變更為支援意見反應和/或限制。 這些都適用於所有維度的並排和非磚資源。 非並排顯示的資源一律會完全對應。

HLSL 物件 具有意見反應選項的內建方法 \ - 也有固定選項
[RW]Texture2D
[RW]Texture2DArray
TextureCUBE
TextureCUBEArray
收集
GatherRed
GatherGreen
GatherBlue
GatherAlpha
GatherCmp
GatherCmpRed
GatherCmpGreen
GatherCmpBlue
GatherCmpAlpha
[RW]Texture1D
[RW]Texture1DArray
[RW]Texture2D
[RW]Texture2DArray
[RW]Texture3D
TextureCUBE
TextureCUBEArray
樣本*
SampleBias*
SampleCmp*
SampleCmpLevelZero
SampleGrad*
SampleLevel
[RW]Texture1D
[RW]Texture1DArray
[RW]Texture2D
Texture2DMS
[RW]Texture2DArray
Texture2DArrayMS
[RW]Texture3D
[RW]緩衝區
[RW]ByteAddressBuffer
[RW]StructuredBuffer
負荷

管線存取磚資源