From: James Legg Date: Thu, 16 Mar 2017 17:48:13 +0000 (+0000) Subject: radv: Fix using more than 4 bound descriptor sets X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e88cac1df03d01a9e8a1de1a4a2ee888149e727a;p=mesa.git 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 --- diff --git a/src/amd/common/ac_nir_to_llvm.h b/src/amd/common/ac_nir_to_llvm.h index 6c2b78b4e71..bb860e5d199 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];