語法
參數
pLaunchParameters _In_opt_類型:D3D12XBOX_COMPUTE_SHADER_LAUNCH_PARAMETERS* 指向要在管線狀態物件中覆寫之計算著色器啟動參數的指標。
傳回值
類型:void 沒有傳回值。備註
用來選擇性覆寫目前所設定計算管線狀態物件之啟動設定中的 LDS 與執行緒群組大小,以及 WGP/CU 模式參數。此函式可讓您以輕量方式變更設定,適用於無法以靜態方式建置計算管線狀態物件所有必要排列的使用案例。 此函式也可以在圖形命令佇列上,搭配D3D12XBOX_INDIRECT_ARGUMENT_TYPE_COMPUTE_SHADER_LAUNCH_PARAMETERSX 引數類型 (請參閱 D3D12_INDIRECT_ARGUMENT_TYPE) 用於間接分派。
使用此函式之前,您必須先以計算管線狀態物件呼叫
SetPipelineState (或使用對應的 D3D12XBOX_INDIRECT_ARGUMENT_TYPE_PIPELINE_STATE 引數以間接方式設定)。參數會保持覆寫狀態,直到您設定新的計算管線狀態物件,或驅動程式執行會重設目前所設定計算管線狀態物件的作業 (例如清除或資源解壓縮) 為止。覆寫執行緒群組大小時,您的著色器無法依賴
SV_DispatchThreadID 或 SV_GroupIndex 系統值,因為這些值是使用著色器編譯時指定的群組大小 (著色器進入點上的 HLSL [numthreads(XSize, YSize, ZSize)] 屬性) 來計算。此限制唯一的例外,是著色器最初編譯為 1D 執行緒群組,且您只變更該維度,此時可以繼續使用 SV_GroupIndex。如果您的著色器編譯時的執行緒群組大小小於或等於基礎波大小,著色器編譯器可能會將您對
GroupMemoryBarrier[WithGroupSync] 的呼叫最佳化移除。如果符合這些條件,且您打算將群組大小變更為超過單一波,則必須確保著色器以大於單一波的 numthreads 群組大小進行編譯,以避免這類最佳化。建議您將著色器中的 numthreads 設定為您打算執行的最大群組大小。需求
標頭: d3d12_xs.h 程式庫: d3d12_xs.lib支援的平台: XBOX Series 主機
