語法
成員
Flags類型:D3D12XBOX_COMPUTE_SHADER_LAUNCH_PARAMETER_FLAGS 控制旗標,決定要覆寫啟動設定的哪個部分。 LDSSize
類型:UINT 覆寫的 LDS 大小。此值控制為每個執行緒群組配置的 LDS 記憶體數量。有效範圍為 0 - 128 (單位為 128 個 DWORD)。無論 CU/ WPG 模式為何,執行緒群組最多可配置 64 KB。 NumThreadZ
類型:UINT 群組 Z 維度中的執行緒數目。最多 2048 (請參閱下方備註)。 NumThreadX
類型:UINT 群組 X 維度中的執行緒數目。最多 2048 (請參閱下方備註)。 NumThreadY
類型:UINT 群組 Y 維度中的執行緒數目。最多 2048 (請參閱下方備註)。
備註
此結構用於 SetComputeShaderLaunchParametersX 命令清單 API,以及在間接執行中透過D3D12XBOX_INDIRECT_ARGUMENT_TYPE_COMPUTE_SHADER_LAUNCH_PARAMETERSX 引數類型 (請參閱 D3D12_INDIRECT_ARGUMENT_TYPE) 使用此 API 時作為間接引數值。
WGP 與 CU 模式
在 XBOX Series 主機上,群組共用 (LDS) 記憶體可以在兩種不同的模式下運作。每個 WGP 都有 128 KB 的 LDS 記憶體,可以分成兩半 (CU 模式),或視為單一共用記憶體 (WGP 模式)。 在 CU 模式下,WGP 中的每個計算單元 (各包含 2 個 SIMD) 會被指派屬於不同執行緒群組的 wave。每個 CU 透過專用匯流排存取 64 KB 的 LDS 記憶體,總資料傳輸量可達 2 * 128 = 256 位元組/時脈。每個 CU 內的 wave 共用一個 256 KB 的 VGPR 實體集區。 在 WPG 模式下,WGP 內的全部 4 個 SIMD 都會被指派來自相同執行緒群組的 wave。全部 128 KB 的 LDS 記憶體都可以作為單一集區存取,但僅透過其中一個實體匯流排進行,這表示資料傳輸速率限制為 128 位元組/時脈。wave 共用一個 512 KB 的 VGPR 實體集區。執行緒群組大小
在 XBOX Series 主機上,無論 wave 寬度為何,執行緒群組大小上限都是 32 個 wave。這表示編譯為 wave-64 (預設) 的計算著色器支援最多 2048 (NumThreadX * NumThreadY * NumThreadZ) 個執行緒的執行緒群組大小,而編譯為 wave-32 的相同著色器只支援最多 1024 個執行緒的群組。您可以將 __XBOX_ENABLE_WAVE32 定義設為 1,以啟用 wave-32 編譯。
需求
標頭: d3d12_xs.h支援的平台: XBOX Series 主機
