From: Marek Olšák <marek.ol...@amd.com> --- src/gallium/drivers/radeon/radeon_llvm.h | 3 +-- src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c | 4 ++-- src/gallium/include/pipe/p_state.h | 1 + src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 11 +++-------- 4 files changed, 7 insertions(+), 12 deletions(-)
diff --git a/src/gallium/drivers/radeon/radeon_llvm.h b/src/gallium/drivers/radeon/radeon_llvm.h index 8612ef8..f249ca6 100644 --- a/src/gallium/drivers/radeon/radeon_llvm.h +++ b/src/gallium/drivers/radeon/radeon_llvm.h @@ -33,7 +33,6 @@ #define RADEON_LLVM_MAX_INPUTS 32 * 4 #define RADEON_LLVM_MAX_OUTPUTS 32 * 4 -#define RADEON_LLVM_MAX_ARRAYS 16 #define RADEON_LLVM_INITIAL_CF_DEPTH 4 @@ -130,7 +129,7 @@ struct radeon_llvm_context { unsigned loop_depth; unsigned loop_depth_max; - struct tgsi_declaration_range arrays[RADEON_LLVM_MAX_ARRAYS]; + struct tgsi_declaration_range arrays[PIPE_MAX_SHADER_ARRAYS]; unsigned num_arrays; LLVMValueRef main_fn; diff --git a/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c b/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c index 8638537..2bef4b2 100644 --- a/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c +++ b/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c @@ -86,7 +86,7 @@ get_array_range(struct lp_build_tgsi_context *bld_base, { struct radeon_llvm_context * ctx = radeon_llvm_context(bld_base); if (File != TGSI_FILE_TEMPORARY || reg->ArrayID == 0 || - reg->ArrayID > RADEON_LLVM_MAX_ARRAYS) { + reg->ArrayID > PIPE_MAX_SHADER_ARRAYS) { struct tgsi_declaration_range range; range.First = 0; range.Last = bld_base->info->file_max[File]; @@ -252,7 +252,7 @@ static void emit_declaration( } case TGSI_FILE_TEMPORARY: - if (decl->Declaration.Array && decl->Array.ArrayID <= RADEON_LLVM_MAX_ARRAYS) + if (decl->Declaration.Array && decl->Array.ArrayID <= PIPE_MAX_SHADER_ARRAYS) ctx->arrays[decl->Array.ArrayID - 1] = decl->Range; if (uses_temp_indirect_addressing(bld_base)) { lp_emit_declaration_soa(bld_base, decl); diff --git a/src/gallium/include/pipe/p_state.h b/src/gallium/include/pipe/p_state.h index e01c62c..ad1404c 100644 --- a/src/gallium/include/pipe/p_state.h +++ b/src/gallium/include/pipe/p_state.h @@ -53,6 +53,7 @@ extern "C" { /** * Implementation limits */ +#define PIPE_MAX_SHADER_ARRAYS 256 /* maximum number of array declarations */ #define PIPE_MAX_ATTRIBS 32 #define PIPE_MAX_CLIP_PLANES 8 #define PIPE_MAX_COLOR_BUFS 8 diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp index f0f2a77..e308c55 100644 --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp @@ -57,11 +57,6 @@ (1 << PROGRAM_CONSTANT) | \ (1 << PROGRAM_UNIFORM)) -/** - * Maximum number of arrays - */ -#define MAX_ARRAYS 256 - #define MAX_GLSL_TEXTURE_OFFSET 4 class st_src_reg; @@ -317,7 +312,7 @@ public: int next_temp; - unsigned array_sizes[MAX_ARRAYS]; + unsigned array_sizes[PIPE_MAX_SHADER_ARRAYS]; unsigned next_array; int num_address_regs; @@ -4362,7 +4357,7 @@ struct st_translate { unsigned temps_size; struct ureg_dst *temps; - struct ureg_dst arrays[MAX_ARRAYS]; + struct ureg_dst arrays[PIPE_MAX_SHADER_ARRAYS]; struct ureg_src *constants; int num_constants; struct ureg_src *immediates; @@ -4373,7 +4368,7 @@ struct st_translate { struct ureg_src samplers[PIPE_MAX_SAMPLERS]; struct ureg_src systemValues[SYSTEM_VALUE_MAX]; struct tgsi_texture_offset tex_offsets[MAX_GLSL_TEXTURE_OFFSET]; - unsigned array_sizes[MAX_ARRAYS]; + unsigned array_sizes[PIPE_MAX_SHADER_ARRAYS]; const GLuint *inputMapping; const GLuint *outputMapping; -- 2.1.0 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev