From e88cac1df03d01a9e8a1de1a4a2ee888149e727a Mon Sep 17 00:00:00 2001 From: James Legg Date: Thu, 16 Mar 2017 17:48:13 +0000 Subject: [PATCH] radv: Fix using more than 4 bound descriptor sets Avoid a buffer overflow in ac_nir_to_llvm.c's create_function when using more than 4 descriptor sets. radv claims support for 8. Cc: 17.0 Reviewed-by: Bas Nieuwenhuizen --- src/amd/common/ac_nir_to_llvm.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/amd/common/ac_nir_to_llvm.h b/src/amd/common/ac_nir_to_llvm.h index 6c2b78b..bb860e5 100644 --- a/src/amd/common/ac_nir_to_llvm.h +++ b/src/amd/common/ac_nir_to_llvm.h @@ -27,6 +27,7 @@ #include "llvm-c/Core.h" #include "llvm-c/TargetMachine.h" #include "amd_family.h" +#include "../vulkan/radv_descriptor_set.h" struct ac_shader_binary; struct ac_shader_config; @@ -81,7 +82,8 @@ enum ac_ud_index { AC_UD_MAX_UD = AC_UD_VS_MAX_UD, }; -#define AC_UD_MAX_SETS 4 +// Match MAX_SETS from radv_descriptor_set.h +#define AC_UD_MAX_SETS MAX_SETS struct ac_userdata_locations { struct ac_userdata_info descriptor_sets[AC_UD_MAX_SETS]; -- 2.7.4