mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 19:40:10 +01:00
radv: Don't place CS in VRAM when bandwidth is too low.
People who use RADV on eGPU have reported poor performance by default. They also noted that the "nosam" option helps. This commit disables placing CS objects in VRAM when the bandwidth is below that of PCIe 3.0 x8. Note that eGPUs are typically PCIe 3.0 x4. Contributes-to: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7340 Signed-off-by: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20842>
This commit is contained in:
parent
ef668f3714
commit
95d06343c6
1 changed files with 7 additions and 1 deletions
|
|
@ -217,8 +217,14 @@ radv_amdgpu_cs_domain(const struct radeon_winsys *_ws)
|
|||
|
||||
bool enough_vram = ws->info.all_vram_visible ||
|
||||
p_atomic_read_relaxed(&ws->allocated_vram_vis) * 2 <= (uint64_t)ws->info.vram_vis_size_kb * 1024;
|
||||
|
||||
/* Bandwidth should be equivalent to at least PCIe 3.0 x8.
|
||||
* If there is no PCIe info, assume there is enough bandwidth.
|
||||
*/
|
||||
bool enough_bandwidth = !ws->info.has_pcie_bandwidth_info || ws->info.pcie_bandwidth_mbps >= 8 * 0.985 * 1024;
|
||||
|
||||
bool use_sam =
|
||||
(enough_vram && ws->info.has_dedicated_vram && !(ws->perftest & RADV_PERFTEST_NO_SAM)) ||
|
||||
(enough_vram && enough_bandwidth && ws->info.has_dedicated_vram && !(ws->perftest & RADV_PERFTEST_NO_SAM)) ||
|
||||
(ws->perftest & RADV_PERFTEST_SAM);
|
||||
return use_sam ? RADEON_DOMAIN_VRAM : RADEON_DOMAIN_GTT;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue