From ebec42d799b22b7b3d06acd710f5687252446a06 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Thu, 12 Jan 2023 11:21:51 +0100 Subject: [PATCH] radv: fix hashing pipeline keys if RADV_PERFTEST=ngg_streamout is used On GFX10-10.3, RADV_PERFTEST=ngg_streamout can be used to replace the legacy path but it should be in the pipeline key. Otherwise, it's possible to load legacy shaders from the cache instead of NGG. Signed-off-by: Samuel Pitoiset Part-of: --- src/amd/vulkan/radv_pipeline.c | 2 ++ src/amd/vulkan/radv_private.h | 1 + 2 files changed, 3 insertions(+) diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c index 7ad689484d1..dfaaf5cffb9 100644 --- a/src/amd/vulkan/radv_pipeline.c +++ b/src/amd/vulkan/radv_pipeline.c @@ -248,6 +248,8 @@ radv_get_hash_flags(const struct radv_device *device, bool stats) hash_flags |= RADV_HASH_SHADER_SPLIT_FMA; if (device->instance->debug_flags & RADV_DEBUG_NO_FMASK) hash_flags |= RADV_HASH_SHADER_NO_FMASK; + if (device->physical_device->use_ngg_streamout) + hash_flags |= RADV_HASH_SHADER_NGG_STREAMOUT; return hash_flags; } diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h index f545aba5858..c04384d6b20 100644 --- a/src/amd/vulkan/radv_private.h +++ b/src/amd/vulkan/radv_private.h @@ -1900,6 +1900,7 @@ struct radv_event { #define RADV_HASH_SHADER_SPLIT_FMA (1 << 17) #define RADV_HASH_SHADER_RT_WAVE64 (1 << 18) #define RADV_HASH_SHADER_NO_FMASK (1 << 19) +#define RADV_HASH_SHADER_NGG_STREAMOUT (1 << 20) struct radv_pipeline_key;