mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 13:58:04 +02:00
winsys/radeon: add guard pages when R600_DEBUG=check_vm is enabled
This should help flush out GPU VM faults. Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
parent
49c0b4a0db
commit
bc4b7ebbfd
3 changed files with 7 additions and 2 deletions
|
|
@ -555,8 +555,10 @@ static struct radeon_bo *radeon_create_bo(struct radeon_drm_winsys *rws,
|
|||
|
||||
if (rws->info.has_virtual_memory) {
|
||||
struct drm_radeon_gem_va va;
|
||||
unsigned va_gap_size;
|
||||
|
||||
bo->va = radeon_bomgr_find_va(rws, size, alignment);
|
||||
va_gap_size = rws->check_vm ? MAX2(4 * alignment, 64 * 1024) : 0;
|
||||
bo->va = radeon_bomgr_find_va(rws, size + va_gap_size, alignment);
|
||||
|
||||
va.handle = bo->handle;
|
||||
va.vm_id = 0;
|
||||
|
|
|
|||
|
|
@ -527,6 +527,8 @@ static boolean do_winsys_init(struct radeon_drm_winsys *ws)
|
|||
(ws->info.family == CHIP_HAWAII &&
|
||||
ws->accel_working2 < 3);
|
||||
|
||||
ws->check_vm = strstr(debug_get_option("R600_DEBUG", ""), "check_vm") != NULL;
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
@ -742,7 +744,7 @@ radeon_drm_winsys_create(int fd, radeon_screen_create_t screen_create)
|
|||
if (!do_winsys_init(ws))
|
||||
goto fail1;
|
||||
|
||||
pb_cache_init(&ws->bo_cache, 500000, 2.0f, 0,
|
||||
pb_cache_init(&ws->bo_cache, 500000, ws->check_vm ? 1.0f : 2.0f, 0,
|
||||
MIN2(ws->info.vram_size, ws->info.gart_size),
|
||||
radeon_bo_destroy,
|
||||
radeon_bo_can_reclaim);
|
||||
|
|
|
|||
|
|
@ -91,6 +91,7 @@ struct radeon_drm_winsys {
|
|||
|
||||
uint64_t va_offset;
|
||||
struct list_head va_holes;
|
||||
bool check_vm;
|
||||
|
||||
struct radeon_surface_manager *surf_man;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue