Skip to main content
定義圖形著色器的限制。

語法

成員

MaxWavesWithLateAllocParameterCache
類型:UINT
指定在未於延遲配置參數快取中配置空間的情況下,允許執行的最後階段 wave 數目上限。較高的數值可讓更多 wave 執行,但可能會在單一指令多重資料單元 (SIMD) 中造成爭用,因為著色器會在第一個 exp 指令停滯,直到有可用空間為止,這可能會佔用 wave 槽位、GPR 及其他共用資源。 「最後階段」是指在像素著色器之前發生的階段:VS、DS 或 GS。對於 GS,這只會影響著色器的傳遞部分。 若要為場景的不同部分找出最佳設定,請考慮使用 Dr. PIX 實驗。 將 MaxWavesWithLateAllocParameterCache 設定為高於 22 可能會導致 GPU 死結。如果這些死結是由 GPU 管線轉換所造成,則可能很少發生且難以重現。若要在 MaxWavesWithLateAllocParameterCache 成員設定為較高值時防止此類死結,請確保 VSDisableCUMask 成員具有非零值,讓至少一個計算單元 (CU) 不執行頂點著色器,從而防止死結。一般而言,相對於設定 MaxWavesWithLateAllocParameterCache 所帶來的效能提升,遮罩作業對效能的影響微不足道。 VSDisableFlags
類型:D3D12XBOX_SHADER_UNIT_DISABLE_FLAGS
指定要對頂點著色器停用之計算單元的位元欄位。 reserved0
類型:UINT
保留。 GSDisableFlags
類型:D3D12XBOX_SHADER_UNIT_DISABLE_FLAGS
指定要對幾何著色器停用之計算單元的位元欄位。 PSDisableFlags
類型:D3D12XBOX_SHADER_UNIT_DISABLE_FLAGS
指定要對像素著色器停用之計算單元的位元欄位。 VSMaxWaves
類型:UINT
指定允許在 GPU 上同時執行的 VS wave 數目上限。 HSMaxWaves
類型:UINT
指定允許在 GPU 上同時執行的 HS wave 數目上限。 reserved1
類型:UINT
保留。 GSMaxWaves
類型:UINT
指定允許在 GPU 上同時執行的 GS wave 數目上限。 PSMaxWaves
類型:UINT
指定允許在 GPU 上同時執行的 PS wave 數目上限。 VSMaxWavesForCuLocking
類型:UINT
指定允許發生 CU 鎖定的 VS wave 數目上限。 HSMaxWavesForCuLocking
類型:UINT
指定允許發生 CU 鎖定的 HS wave 數目上限。 reserved2
類型:UINT
保留。 GSMaxWavesForCuLocking
類型:UINT
指定允許發生 CU 鎖定的 GS wave 數目上限。 PSMaxWavesForCuLocking
類型:UINT
指定允許發生 CU 鎖定的 PS wave 數目上限。

備註

使用 MaxWavesForCuLocking 參數時,如果正在執行的 wave 數目少於此上限,且有新的 wave 已就緒但無法排程到任何地方,GPU 就會「鎖定」一個計算單元 (CU),使來自其他階段 (或管道) 的新 wave 都無法使用它,直到此階段的新 wave 最終啟動為止。這有助於控制「資源匱乏」。 使用內嵌協助程式函式 D3D12XboxInitializeDefaultGraphicsShaderLimits,以預設值初始化 D3D12XBOX_GRAPHICS_SHADER_LIMITS_DESC 結構。

需求

標頭: d3d12_xs.h
支援的平台:XBOX Series 主機

另請參閱

d3d12_xs
Last modified on October 6, 2026