[Mesa-dev] [PATCH] radv: move local bos usage to a perftest flag.

Bas Nieuwenhuizen bas at basnieuwenhuizen.nl
Thu Dec 28 08:15:12 UTC 2017


Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>

On Thu, Dec 28, 2017 at 7:14 AM, Dave Airlie <airlied at gmail.com> wrote:
> From: Dave Airlie <airlied at redhat.com>
>
> These seem mildly unstable on vega, crashing CTS in various fun ways,
> and looks like leaking memory.
>
> Disable for now, but leave the option to enable them.
>
> Signed-off-by: Dave Airlie <airlied at redhat.com>
> ---
>  src/amd/vulkan/radv_debug.h                       | 1 +
>  src/amd/vulkan/radv_device.c                      | 1 +
>  src/amd/vulkan/winsys/amdgpu/radv_amdgpu_bo.c     | 2 +-
>  src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c | 1 +
>  src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.h | 1 +
>  5 files changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/src/amd/vulkan/radv_debug.h b/src/amd/vulkan/radv_debug.h
> index 8e09c36528..af07564833 100644
> --- a/src/amd/vulkan/radv_debug.h
> +++ b/src/amd/vulkan/radv_debug.h
> @@ -47,6 +47,7 @@ enum {
>  enum {
>         RADV_PERFTEST_NO_BATCHCHAIN  =   0x1,
>         RADV_PERFTEST_SISCHED        =   0x2,
> +       RADV_PERFTEST_LOCAL_BOS      =   0x4,
>  };
>
>  bool
> diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
> index 788252c2c5..2a249b95e2 100644
> --- a/src/amd/vulkan/radv_device.c
> +++ b/src/amd/vulkan/radv_device.c
> @@ -343,6 +343,7 @@ radv_get_debug_option_name(int id)
>  static const struct debug_control radv_perftest_options[] = {
>         {"nobatchchain", RADV_PERFTEST_NO_BATCHCHAIN},
>         {"sisched", RADV_PERFTEST_SISCHED},
> +       {"localbos", RADV_PERFTEST_LOCAL_BOS},
>         {NULL, 0}
>  };
>
> diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_bo.c b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_bo.c
> index ffcc1a2ad3..4b11823b0a 100644
> --- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_bo.c
> +++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_bo.c
> @@ -335,7 +335,7 @@ radv_amdgpu_winsys_bo_create(struct radeon_winsys *_ws,
>                 request.flags |= AMDGPU_GEM_CREATE_CPU_GTT_USWC;
>         if (!(flags & RADEON_FLAG_IMPLICIT_SYNC) && ws->info.drm_minor >= 22)
>                 request.flags |= AMDGPU_GEM_CREATE_EXPLICIT_SYNC;
> -       if (flags & RADEON_FLAG_NO_INTERPROCESS_SHARING && ws->info.drm_minor >= 20) {
> +       if (flags & RADEON_FLAG_NO_INTERPROCESS_SHARING && ws->info.drm_minor >= 20 && ws->use_local_bos) {
>                 bo->base.is_local = true;
>                 request.flags |= AMDGPU_GEM_CREATE_VM_ALWAYS_VALID;
>         }
> diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c
> index 0c6374e71c..42e83f1482 100644
> --- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c
> +++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c
> @@ -177,6 +177,7 @@ radv_amdgpu_winsys_create(int fd, uint64_t debug_flags, uint64_t perftest_flags)
>         if (debug_flags & RADV_DEBUG_NO_IBS)
>                 ws->use_ib_bos = false;
>
> +       ws->use_local_bos = perftest_flags & RADV_PERFTEST_LOCAL_BOS;
>         ws->zero_all_vram_allocs = debug_flags & RADV_DEBUG_ZERO_VRAM;
>         ws->batchchain = !(perftest_flags & RADV_PERFTEST_NO_BATCHCHAIN);
>         LIST_INITHEAD(&ws->global_bo_list);
> diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.h b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.h
> index 66c93475e5..d6af6052a6 100644
> --- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.h
> +++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.h
> @@ -46,6 +46,7 @@ struct radv_amdgpu_winsys {
>         bool batchchain;
>         bool use_ib_bos;
>         bool zero_all_vram_allocs;
> +       bool use_local_bos;
>         unsigned num_buffers;
>
>         pthread_mutex_t global_bo_list_lock;
> --
> 2.14.3
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list