語法
成員
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 位元欄位,指定要為頂點著色器停用的計算單元。 DSDisableFlags
類型:D3D12XBOX_SHADER_UNIT_DISABLE_FLAGS 位元欄位,指定要為網域著色器停用的計算單元。 GSDisableFlags
類型:D3D12XBOX_SHADER_UNIT_DISABLE_FLAGS 位元欄位,指定要為幾何著色器停用的計算單元。 PSDisableFlags
類型:D3D12XBOX_SHADER_UNIT_DISABLE_FLAGS 位元欄位,指定要為像素著色器停用的計算單元。 VSMaxWaves
類型:UINT 指定允許在 GPU 上同時執行的 VS wave 數目上限。 HSMaxWaves
類型:UINT 指定允許在 GPU 上同時執行的 HS wave 數目上限。 DSMaxWaves
類型:UINT 指定允許在 GPU 上同時執行的 DS wave 數目上限。 GSMaxWaves
類型:UINT 指定允許在 GPU 上同時執行的 GS wave 數目上限。 PSMaxWaves
類型:UINT 指定允許在 GPU 上同時執行的 PS wave 數目上限。 VSMaxWavesForCuLocking
類型:UINT 指定允許發生 CU 鎖定的 VS wave 數目上限。 HSMaxWavesForCuLocking
類型:UINT 指定允許發生 CU 鎖定的 HS wave 數目上限。 DSMaxWavesForCuLocking
類型:UINT 指定允許發生 CU 鎖定的 DS wave 數目上限。 GSMaxWavesForCuLocking
類型:UINT 指定允許發生 CU 鎖定的 GS wave 數目上限。 PSMaxWavesForCuLocking
類型:UINT 指定允許發生 CU 鎖定的 PS wave 數目上限。
備註
使用 MaxWavesForCuLocking 參數時,如果正在執行的 wave 數目小於此上限,而且有新的 wave 已就緒但無法排程到任何位置,GPU 就會「鎖定」某個計算單元 (CU),讓其他階段 (或管道) 的新 wave 都無法使用它,直到此階段的新 wave 最後啟動為止。這有助於控制「資源匱乏」的情況。 使用內嵌協助程式函式 D3D12XboxInitializeDefaultGraphicsShaderLimits,以預設值初始化 D3D12XBOX_GRAPHICS_SHADER_LIMITS_DESC 結構。 下列方法和結構會使用此結構:- D3D12XboxInitializeDefaultGraphicsShaderLimits
- SetGraphicsShaderLimitsX
- XboxSetGraphicsShaderLimits
- XboxSetGraphicsShaderLimits
- D3D12XBOX_DERIVED_GRAPHICS_STATE_DESC
- D3D12XBOX_EXTENDED_GRAPHICS_PIPELINE_STATE_DESC
- D3D12XBOX_EXTENDED_GRAPHICS_PIPELINE_STATE_DESC
