summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml1
-rw-r--r--docs/envvars.rst2
-rw-r--r--docs/relnotes/new_features.txt2
-rw-r--r--src/amd/vulkan/radv_debug.h1
-rw-r--r--src/amd/vulkan/radv_device.c14
-rw-r--r--src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c6
-rw-r--r--src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.h2
7 files changed, 9 insertions, 19 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index fd895e44c01..4b8713bb026 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1116,7 +1116,6 @@ arm64_a530_gles31:
variables:
VK_DRIVER: radeon
ACO_DEBUG: validateir,validatera
- RADV_PERFTEST: aco
# Can only be triggered manually on personal branches because RADV is the only
# driver that does Vulkan testing at the moment.
diff --git a/docs/envvars.rst b/docs/envvars.rst
index bebc1e1a48d..bc431ccf1f1 100644
--- a/docs/envvars.rst
+++ b/docs/envvars.rst
@@ -575,8 +575,6 @@ RADV driver environment variables
``RADV_PERFTEST``
a comma-separated list of named flags, which do various things:
- ``aco``
- enable ACO experimental compiler
``bolist``
enable the global BO list
``cswave32``
diff --git a/docs/relnotes/new_features.txt b/docs/relnotes/new_features.txt
index a0f3789877b..4260ad90103 100644
--- a/docs/relnotes/new_features.txt
+++ b/docs/relnotes/new_features.txt
@@ -12,3 +12,5 @@ VK_GOOGLE_user_type on ANV and RADV.
VK_KHR_shader_subgroup_extended_types on RADV/ACO.
GL_ARB_gl_spirv on nvc0/nir.
GL_ARB_spirv_extensions on nvc0/nir.
+RADV now uses ACO per default as backend
+RADV_DEBUG=llvm option to enable LLVM backend for RADV
diff --git a/src/amd/vulkan/radv_debug.h b/src/amd/vulkan/radv_debug.h
index 2935f6a79a7..c7559875de9 100644
--- a/src/amd/vulkan/radv_debug.h
+++ b/src/amd/vulkan/radv_debug.h
@@ -70,7 +70,6 @@ enum {
RADV_PERFTEST_PS_WAVE_32 = 0x40,
RADV_PERFTEST_GE_WAVE_32 = 0x80,
RADV_PERFTEST_DFSM = 0x100,
- RADV_PERFTEST_ACO = 0x200,
};
bool
diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
index 23777f3cde4..0a0443e3f0e 100644
--- a/src/amd/vulkan/radv_device.c
+++ b/src/amd/vulkan/radv_device.c
@@ -338,7 +338,7 @@ radv_physical_device_try_create(struct radv_instance *instance,
device->local_fd = fd;
device->ws->query_info(device->ws, &device->rad_info);
- device->use_llvm = !(instance->perftest_flags & RADV_PERFTEST_ACO);
+ device->use_llvm = instance->debug_flags & RADV_DEBUG_LLVM;
snprintf(device->name, sizeof(device->name),
"AMD RADV %s (%s)",
@@ -360,7 +360,7 @@ radv_physical_device_try_create(struct radv_instance *instance,
disk_cache_format_hex_id(buf, device->cache_uuid, VK_UUID_SIZE * 2);
device->disk_cache = disk_cache_create(device->name, buf, shader_env_flags);
- if (device->rad_info.chip_class < GFX8)
+ if (device->rad_info.chip_class < GFX8 || !device->use_llvm)
fprintf(stderr, "WARNING: radv is not a conformant vulkan implementation, testing use only.\n");
radv_get_driver_uuid(&device->driver_uuid);
@@ -528,7 +528,6 @@ static const struct debug_control radv_perftest_options[] = {
{"pswave32", RADV_PERFTEST_PS_WAVE_32},
{"gewave32", RADV_PERFTEST_GE_WAVE_32},
{"dfsm", RADV_PERFTEST_DFSM},
- {"aco", RADV_PERFTEST_ACO},
{NULL, 0}
};
@@ -559,7 +558,7 @@ radv_handle_per_app_options(struct radv_instance *instance,
instance->debug_flags |= RADV_DEBUG_NO_LOAD_STORE_OPT;
} else if (!strcmp(name, "Wolfenstein: Youngblood")) {
if (!(instance->debug_flags & RADV_DEBUG_NO_SHADER_BALLOT) &&
- !(instance->perftest_flags & RADV_PERFTEST_ACO)) {
+ (instance->debug_flags & RADV_DEBUG_LLVM)) {
/* Force enable VK_AMD_shader_ballot because it looks
* safe and it gives a nice boost (+20% on Vega 56 at
* this time). It also prevents corruption on LLVM.
@@ -678,13 +677,6 @@ VkResult radv_CreateInstance(
instance->perftest_flags = parse_debug_string(getenv("RADV_PERFTEST"),
radv_perftest_options);
- if (instance->debug_flags & RADV_DEBUG_LLVM) {
- instance->perftest_flags &= ~RADV_PERFTEST_ACO;
- }
-
- if (instance->perftest_flags & RADV_PERFTEST_ACO)
- fprintf(stderr, "WARNING: Experimental compiler backend enabled. Here be dragons! Incorrect rendering, GPU hangs and/or resets are likely\n");
-
if (instance->debug_flags & RADV_DEBUG_STARTUP)
radv_logi("Created an instance");
diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c
index 3c0e6a52332..29e7b20b886 100644
--- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c
+++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.c
@@ -46,13 +46,13 @@ do_winsys_init(struct radv_amdgpu_winsys *ws, int fd)
return false;
/* LLVM 11 is required for GFX10.3. */
- if (ws->info.chip_class == GFX10_3 && !ws->use_aco && LLVM_VERSION_MAJOR < 11) {
+ if (ws->info.chip_class == GFX10_3 && ws->use_llvm && LLVM_VERSION_MAJOR < 11) {
fprintf(stderr, "radv: GFX 10.3 requires LLVM 11 or higher\n");
return false;
}
/* LLVM 9.0 is required for GFX10. */
- if (ws->info.chip_class == GFX10 && !ws->use_aco && LLVM_VERSION_MAJOR < 9) {
+ if (ws->info.chip_class == GFX10 && ws->use_llvm && LLVM_VERSION_MAJOR < 9) {
fprintf(stderr, "radv: Navi family support requires LLVM 9 or higher\n");
return false;
}
@@ -194,7 +194,7 @@ radv_amdgpu_winsys_create(int fd, uint64_t debug_flags, uint64_t perftest_flags)
ws->use_local_bos = perftest_flags & RADV_PERFTEST_LOCAL_BOS;
ws->zero_all_vram_allocs = debug_flags & RADV_DEBUG_ZERO_VRAM;
- ws->use_aco = perftest_flags & RADV_PERFTEST_ACO;
+ ws->use_llvm = debug_flags & RADV_DEBUG_LLVM;
list_inithead(&ws->global_bo_list);
pthread_mutex_init(&ws->global_bo_list_lock, NULL);
ws->base.query_info = radv_amdgpu_winsys_query_info;
diff --git a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.h b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.h
index 2ec223df3d8..0601481625c 100644
--- a/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.h
+++ b/src/amd/vulkan/winsys/amdgpu/radv_amdgpu_winsys.h
@@ -46,7 +46,7 @@ struct radv_amdgpu_winsys {
bool use_ib_bos;
bool zero_all_vram_allocs;
bool use_local_bos;
- bool use_aco;
+ bool use_llvm;
unsigned num_buffers;
pthread_mutex_t global_bo_list_lock;