From: Marek Olšák <marek.ol...@amd.com> --- src/gallium/drivers/radeonsi/si_shader.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index b9ad4be..696f67b 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c +++ b/src/gallium/drivers/radeonsi/si_shader.c @@ -98,29 +98,31 @@ struct si_shader_context */ int param_tess_offchip; LLVMTargetMachineRef tm; unsigned invariant_load_md_kind; unsigned range_md_kind; unsigned uniform_md_kind; LLVMValueRef empty_md; + /* Preloaded descriptors. */ LLVMValueRef const_buffers[SI_NUM_CONST_BUFFERS]; - LLVMValueRef lds; LLVMValueRef shader_buffers[SI_NUM_SHADER_BUFFERS]; LLVMValueRef sampler_views[SI_NUM_SAMPLERS]; LLVMValueRef sampler_states[SI_NUM_SAMPLERS]; LLVMValueRef fmasks[SI_NUM_SAMPLERS]; LLVMValueRef images[SI_NUM_IMAGES]; LLVMValueRef esgs_ring; LLVMValueRef gsvs_ring[4]; + + LLVMValueRef lds; LLVMValueRef gs_next_vertex[4]; LLVMValueRef return_value; LLVMTypeRef voidt; LLVMTypeRef i1; LLVMTypeRef i8; LLVMTypeRef i32; LLVMTypeRef i64; LLVMTypeRef i128; LLVMTypeRef f32; @@ -5856,21 +5858,21 @@ static void create_function(struct si_shader_context *ctx) LLVMArrayType(ctx->i32, 64), "ddxy_lds", LOCAL_ADDR_SPACE); if ((ctx->type == PIPE_SHADER_VERTEX && shader->key.vs.as_ls) || ctx->type == PIPE_SHADER_TESS_CTRL || ctx->type == PIPE_SHADER_TESS_EVAL) declare_tess_lds(ctx); } -static void preload_constants(struct si_shader_context *ctx) +static void preload_constant_buffers(struct si_shader_context *ctx) { struct lp_build_tgsi_context *bld_base = &ctx->radeon_bld.soa.bld_base; struct gallivm_state *gallivm = bld_base->base.gallivm; const struct tgsi_shader_info *info = bld_base->info; unsigned buf; LLVMValueRef ptr = LLVMGetParam(ctx->radeon_bld.main_fn, SI_PARAM_CONST_BUFFERS); for (buf = 0; buf < SI_NUM_CONST_BUFFERS; buf++) { if (info->const_file_max[buf] == -1) continue; @@ -6790,21 +6792,21 @@ int si_compile_tgsi_shader(struct si_screen *sscreen, case PIPE_SHADER_COMPUTE: ctx.radeon_bld.declare_memory_region = declare_compute_memory; break; default: assert(!"Unsupported shader type"); return -1; } create_meta_data(&ctx); create_function(&ctx); - preload_constants(&ctx); + preload_constant_buffers(&ctx); preload_shader_buffers(&ctx); preload_samplers(&ctx); preload_images(&ctx); preload_ring_buffers(&ctx); if (ctx.is_monolithic && sel->type == PIPE_SHADER_FRAGMENT && shader->key.ps.prolog.poly_stipple) { LLVMValueRef list = LLVMGetParam(ctx.radeon_bld.main_fn, SI_PARAM_RW_BUFFERS); si_llvm_emit_polygon_stipple(&ctx, list, -- 2.7.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev