From 5566dd8a617cd6f90ceabb6ab5f94aa2996f0fbd Mon Sep 17 00:00:00 2001 From: Timothy Arceri Date: Fri, 24 Aug 2018 21:06:18 +1000 Subject: [PATCH] radeonsi: add radeonsi_zerovram driconfig option MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit More and more games seem to require this so lets make it a config option. Reviewed-by: Marek Olšák --- src/gallium/drivers/radeonsi/driinfo_radeonsi.h | 1 + src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c | 10 +++++++--- src/util/xmlpool/t_options.h | 5 +++++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/gallium/drivers/radeonsi/driinfo_radeonsi.h b/src/gallium/drivers/radeonsi/driinfo_radeonsi.h index 7f57b4ea892..8c5078c13f3 100644 --- a/src/gallium/drivers/radeonsi/driinfo_radeonsi.h +++ b/src/gallium/drivers/radeonsi/driinfo_radeonsi.h @@ -3,6 +3,7 @@ DRI_CONF_SECTION_PERFORMANCE DRI_CONF_RADEONSI_ENABLE_SISCHED("false") DRI_CONF_RADEONSI_ASSUME_NO_Z_FIGHTS("false") DRI_CONF_RADEONSI_COMMUTATIVE_BLEND_ADD("false") + DRI_CONF_RADEONSI_ZERO_ALL_VRAM_ALLOCS("false") DRI_CONF_SECTION_END DRI_CONF_SECTION_DEBUG diff --git a/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c b/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c index 882f500bc69..dcbc075e3c5 100644 --- a/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c +++ b/src/gallium/winsys/amdgpu/drm/amdgpu_winsys.c @@ -32,6 +32,7 @@ #include "util/u_hash_table.h" #include "util/hash_table.h" +#include "util/xmlconfig.h" #include #include #include @@ -49,7 +50,9 @@ static simple_mtx_t dev_tab_mutex = _SIMPLE_MTX_INITIALIZER_NP; DEBUG_GET_ONCE_BOOL_OPTION(all_bos, "RADEON_ALL_BOS", false) /* Helper function to do the ioctls needed for setup and init. */ -static bool do_winsys_init(struct amdgpu_winsys *ws, int fd) +static bool do_winsys_init(struct amdgpu_winsys *ws, + const struct pipe_screen_config *config, + int fd) { if (!ac_query_gpu_info(fd, ws->dev, &ws->info, &ws->amdinfo)) goto fail; @@ -63,7 +66,8 @@ static bool do_winsys_init(struct amdgpu_winsys *ws, int fd) ws->check_vm = strstr(debug_get_option("R600_DEBUG", ""), "check_vm") != NULL; ws->debug_all_bos = debug_get_option_all_bos(); ws->reserve_vmid = strstr(debug_get_option("R600_DEBUG", ""), "reserve_vmid") != NULL; - ws->zero_all_vram_allocs = strstr(debug_get_option("R600_DEBUG", ""), "zerovram") != NULL; + ws->zero_all_vram_allocs = strstr(debug_get_option("R600_DEBUG", ""), "zerovram") != NULL || + driQueryOptionb(config->options, "radeonsi_zerovram"); return true; @@ -279,7 +283,7 @@ amdgpu_winsys_create(int fd, const struct pipe_screen_config *config, ws->info.drm_major = drm_major; ws->info.drm_minor = drm_minor; - if (!do_winsys_init(ws, fd)) + if (!do_winsys_init(ws, config, fd)) goto fail_alloc; /* Create managers. */ diff --git a/src/util/xmlpool/t_options.h b/src/util/xmlpool/t_options.h index ecf495a2f29..945d0e60f90 100644 --- a/src/util/xmlpool/t_options.h +++ b/src/util/xmlpool/t_options.h @@ -414,3 +414,8 @@ DRI_CONF_OPT_END DRI_CONF_OPT_BEGIN_B(radeonsi_clear_db_cache_before_clear, def) \ DRI_CONF_DESC(en,"Clear DB cache before fast depth clear") \ DRI_CONF_OPT_END + +#define DRI_CONF_RADEONSI_ZERO_ALL_VRAM_ALLOCS(def) \ +DRI_CONF_OPT_BEGIN_B(radeonsi_zerovram, def) \ + DRI_CONF_DESC(en,"Zero all vram allocations") \ +DRI_CONF_OPT_END -- 2.30.2