From f00bce0ee4f5da6c67f237c91d8e0199ff899e7c Mon Sep 17 00:00:00 2001 From: Rhys Perry Date: Tue, 3 Nov 2020 10:54:59 +0000 Subject: [PATCH] radv: fix shader caching with discard->demote workaround Signed-off-by: Rhys Perry Reviewed-by: Bas Nieuwenhuizen Reviewed-by: Samuel Pitoiset Fixes: bdd75874144 ("radv: use nir_lower_discard_to_demote to work around game bugs") Part-of: (cherry picked from commit 36f62494ec7148931201726dcb5f79e5d7965ae6) --- .pick_status.json | 2 +- src/amd/vulkan/radv_pipeline.c | 2 ++ src/amd/vulkan/radv_private.h | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.pick_status.json b/.pick_status.json index aac6ce28eba..51b73c4e918 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -5188,7 +5188,7 @@ "description": "radv: fix shader caching with discard->demote workaround", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "master_sha": null, "because_sha": "bdd7587414441920743fe476270560722b6beb18" }, diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c index 997b76261d3..d374bc3e5cf 100644 --- a/src/amd/vulkan/radv_pipeline.c +++ b/src/amd/vulkan/radv_pipeline.c @@ -219,6 +219,8 @@ static uint32_t get_hash_flags(struct radv_device *device) hash_flags |= RADV_HASH_SHADER_GE_WAVE32; if (device->physical_device->use_llvm) hash_flags |= RADV_HASH_SHADER_LLVM; + if (device->instance->debug_flags & RADV_DEBUG_DISCARD_TO_DEMOTE) + hash_flags |= RADV_HASH_SHADER_DISCARD_TO_DEMOTE; return hash_flags; } diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h index c0315fc7aab..fe8de8fac27 100644 --- a/src/amd/vulkan/radv_private.h +++ b/src/amd/vulkan/radv_private.h @@ -1589,6 +1589,7 @@ struct radv_shader_module; #define RADV_HASH_SHADER_PS_WAVE32 (1 << 2) #define RADV_HASH_SHADER_GE_WAVE32 (1 << 3) #define RADV_HASH_SHADER_LLVM (1 << 4) +#define RADV_HASH_SHADER_DISCARD_TO_DEMOTE (1 << 5) void radv_hash_shaders(unsigned char *hash,