numthreads

定義在分派計算著色器 (查看 ID3D11DeviceCoNtext::D ispatch) 時,在單一線程群組中執行的執行緒數目。

numthreads(X, Y, Z)    

X、Y 和 Z 值會以特定方向指出執行緒群組的大小,而 X*Y*Z 總計會提供群組中的執行緒數目。 能夠跨三個維度指定執行緒群組的大小,允許以邏輯方式 2D 和 3D 資料結構存取個別執行緒。

例如,如果計算著色器正在新增 4x4 矩陣,則 numthreads 可能會設定為 numthreads (4,4,1) ,而個別執行緒中的索引會自動比對矩陣專案。 計算著色器也可以使用 16,16 個執行緒 (16) 個執行緒群組來宣告執行緒群組, (16,1,1) ,不過它接著必須根據目前的執行緒編號來計算目前的矩陣專案。

numthreads的允許參數值取決於計算著色器版本。

計算著色器 最大 Z X*Y*Z (執行緒上限)
cs_4_x 1 768
cs_5_0 64 1024

 

下圖顯示傳遞至ID3D11DeviceCoNtext::D ispatch的參數之間的關聯性。 分派 (5,3,2) 、numthreads 屬性中指定的值、numthreads (10,8,3) ,以及傳遞給執行緒相關系統值的計算著色器的值, (SV_GroupIndexSV_DispatchThreadID,SV_GroupThreadIDSV_GroupID) 。

分派、執行緒群組和執行緒之間的關聯性圖例

下列著色器類型支援此屬性:

頂點 船體 網域 幾何形狀 像素 計算
x

 

著色器模型 5 屬性

著色器模型 5