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_GroupIndex,SV_DispatchThreadID,SV_GroupThreadID,SV_GroupID) 。
下列著色器類型支援此屬性:
頂點 | 船體 | 網域 | 幾何形狀 | 像素 | 計算 |
---|---|---|---|---|---|
x |
相關主題