diff --git a/src/amd/vulkan/radv_pipeline.c b/src/amd/vulkan/radv_pipeline.c index 5e24050b4e6..59772f77bc5 100644 --- a/src/amd/vulkan/radv_pipeline.c +++ b/src/amd/vulkan/radv_pipeline.c @@ -235,6 +235,10 @@ get_hash_flags(const struct radv_device *device, bool stats) hash_flags |= RADV_HASH_SHADER_FORCE_VRS_2x1; if (device->force_vrs != RADV_FORCE_VRS_1x2) hash_flags |= RADV_HASH_SHADER_FORCE_VRS_1x2; + if (device->robust_buffer_access) /* forces per-attribute vertex descriptors */ + hash_flags |= RADV_HASH_SHADER_ROBUST_BUFFER_ACCESS; + if (device->robust_buffer_access2) /* affects load/store vectorizer */ + hash_flags |= RADV_HASH_SHADER_ROBUST_BUFFER_ACCESS2; return hash_flags; } diff --git a/src/amd/vulkan/radv_private.h b/src/amd/vulkan/radv_private.h index bddba22e840..b548b81dce2 100644 --- a/src/amd/vulkan/radv_private.h +++ b/src/amd/vulkan/radv_private.h @@ -1677,6 +1677,8 @@ struct radv_event { #define RADV_HASH_SHADER_FORCE_VRS_2x1 (1 << 10) #define RADV_HASH_SHADER_FORCE_VRS_1x2 (1 << 11) #define RADV_HASH_SHADER_FORCE_NGG_CULLING (1 << 13) +#define RADV_HASH_SHADER_ROBUST_BUFFER_ACCESS (1 << 14) +#define RADV_HASH_SHADER_ROBUST_BUFFER_ACCESS2 (1 << 15) void radv_hash_shaders(unsigned char *hash, const VkPipelineShaderStageCreateInfo **stages, const struct radv_pipeline_layout *layout,