summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>2020-10-16 10:41:49 +0200
committerMarge Bot <eric+marge@anholt.net>2020-10-20 07:11:29 +0000
commit6d32fcaaafb4b26b2459bd01380eea0a00fdd3da (patch)
treea8e5b00eb1e9646e3869094a63d64c2d5e97e450 /src
parentd8435c1628ce6659e28c0f0625c9af42f3a19860 (diff)
Revert "radv/aco: disable NGG GS support because it randomly hangs the GPU"
This reverts commit b84d1a0c42c5a1973ebc53a49fd941590e540a82. Reviewed-by: Timur Kristóf <timur.kristof@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7213>
Diffstat (limited to 'src')
-rw-r--r--src/amd/vulkan/radv_device.c2
-rw-r--r--src/amd/vulkan/radv_pipeline.c9
-rw-r--r--src/amd/vulkan/radv_private.h3
-rw-r--r--src/amd/vulkan/radv_query.c2
-rw-r--r--src/amd/vulkan/radv_shader.c2
5 files changed, 2 insertions, 16 deletions
diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
index e589d86f5e8..2e88fea703b 100644
--- a/src/amd/vulkan/radv_device.c
+++ b/src/amd/vulkan/radv_device.c
@@ -402,8 +402,6 @@ radv_physical_device_try_create(struct radv_instance *instance,
device->rad_info.has_dedicated_vram &&
!(device->instance->debug_flags & RADV_DEBUG_NO_NGG);
- /* FIXME: ACO NGG GS randomly hangs the GPU with CTS. */
- device->use_ngg_gs = device->use_ngg && device->use_llvm;
device->use_ngg_streamout = false;
/* Determine the number of threads per wave for all stages. */
diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c
index 50233f57e47..b21b4c87788 100644
--- a/src/amd/vulkan/radv_pipeline.c
+++ b/src/amd/vulkan/radv_pipeline.c
@@ -2619,15 +2619,6 @@ radv_fill_shader_keys(struct radv_device *device,
keys[MESA_SHADER_TESS_EVAL].vs_common_out.as_ngg = false;
}
- if (!device->physical_device->use_ngg_gs) {
- if (nir[MESA_SHADER_GEOMETRY]) {
- if (nir[MESA_SHADER_TESS_CTRL])
- keys[MESA_SHADER_TESS_EVAL].vs_common_out.as_ngg = false;
- else
- keys[MESA_SHADER_VERTEX].vs_common_out.as_ngg = false;
- }
- }
-
gl_shader_stage last_xfb_stage = MESA_SHADER_VERTEX;
for (int i = MESA_SHADER_VERTEX; i <= MESA_SHADER_GEOMETRY; i++) {
diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h
index eb651b547fa..6287e26f77a 100644
--- a/src/amd/vulkan/radv_private.h
+++ b/src/amd/vulkan/radv_private.h
@@ -300,9 +300,6 @@ struct radv_physical_device {
/* Whether to enable NGG. */
bool use_ngg;
- /* Whether to enable NGG GS. */
- bool use_ngg_gs;
-
/* Whether to enable NGG streamout. */
bool use_ngg_streamout;
diff --git a/src/amd/vulkan/radv_query.c b/src/amd/vulkan/radv_query.c
index b2e61abc9ae..d49bc0f0564 100644
--- a/src/amd/vulkan/radv_query.c
+++ b/src/amd/vulkan/radv_query.c
@@ -1134,7 +1134,7 @@ radv_query_pool_needs_gds(struct radv_device *device,
* TODO: fix use of NGG GS and non-NGG GS inside the same begin/end
* query.
*/
- return device->physical_device->use_ngg_gs &&
+ return device->physical_device->use_ngg &&
(pool->pipeline_stats_mask & VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT);
}
diff --git a/src/amd/vulkan/radv_shader.c b/src/amd/vulkan/radv_shader.c
index 118c0bbeb08..6950cb0ab12 100644
--- a/src/amd/vulkan/radv_shader.c
+++ b/src/amd/vulkan/radv_shader.c
@@ -557,7 +557,7 @@ radv_shader_compile_to_nir(struct radv_device *device,
if (nir->info.stage == MESA_SHADER_GEOMETRY) {
unsigned nir_gs_flags = nir_lower_gs_intrinsics_per_stream;
- if (device->physical_device->use_ngg_gs && !radv_use_llvm_for_stage(device, stage)) {
+ if (device->physical_device->use_ngg && !radv_use_llvm_for_stage(device, stage)) {
/* ACO needs NIR to do some of the hard lifting */
nir_gs_flags |= nir_lower_gs_intrinsics_count_primitives |
nir_lower_gs_intrinsics_count_vertices_per_primitive |