語法
參數
ThreadGroupCountX _In_類型:UINT XBOX 上所有的網格著色器叫用都是一維的。此參數指定要啟動多少個執行緒群組。 Flags _In_
類型:UINT64 值 0 — 啟動網格著色器執行緒群組 值 1 — 啟動放大著色器執行緒群組 IndirectArgsPointer _In_
類型:UINT64 指向放大著色器要寫入之目的地間接引數的指標。
寫入的記錄格式為 D3D12XBOX_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH_X。
如果要在執行間接呼叫中使用此指標,則指標必須指向具有 D3D12XBOX_RESOURCE_FLAG_ALLOW_INDIRECT_BUFFER 旗標的緩衝區資源內部。
此指標必須 256B 對齊,且設定的位元不能超過 40b (ABI 在將其傳遞給著色器之前,會將其右移 8b 成為 32b 值)。
未選取放大著色器時,指標必須為 0。
緩衝區的大小應足以容納 ThreadGroupCountX 個 D3D12XBOX_INDIRECT_ARGUMENT_TYPE_DISPATCH_MESH_X 執行個體。 PayloadPointer _In_
類型:UINT64 指向網格著色器承載儲存體之目的地或來源的指標。
如果選取放大著色器,則它會指向寫入每個執行緒群組承載的位置。作為目的地使用時,承載指標必須 256B 對齊 (ABI 在將其傳遞至著色器之前,會將其右移 8b 成為 32b 值)。
如果選取網格著色器,則它會指向網格著色器中所用承載的來源。作為來源使用時,承載指標必須 16B 對齊。
無論哪種情況,緩衝區設定的位元都不能超過 40 個。
傳回值
類型:void備註
呼叫一般的 DispatchMesh 時,驅動程式基本上會使用此功能,但會提供執行間接命令簽章和暫存緩衝區。 以下是一些使用範例-
僅使用手動傳遞的承載指標啟動網格著色器
-
啟動放大著色器,然後以執行間接方式執行網格著色器
需求
標頭: d3d12_xs.h 程式庫: d3d12_xs.lib支援的平台: XBOX Series 主機
