From: Nicolai Hähnle <nicolai.haeh...@amd.com> --- src/gallium/drivers/radeonsi/si_shader.c | 13 +++++++++++++ 1 file changed, 13 insertions(+)
diff --git a/src/gallium/drivers/radeonsi/si_shader.c b/src/gallium/drivers/radeonsi/si_shader.c index 7272313..628b8c3 100644 --- a/src/gallium/drivers/radeonsi/si_shader.c +++ b/src/gallium/drivers/radeonsi/si_shader.c @@ -7172,20 +7172,21 @@ int si_compile_tgsi_shader(struct si_screen *sscreen, tgsi_dump(sel->tokens, 0); si_dump_streamout(&sel->so); } si_init_shader_ctx(&ctx, sscreen, shader, tm); ctx.no_prolog = is_monolithic; ctx.no_epilog = is_monolithic; ctx.separate_prolog = !is_monolithic; if (ctx.type == PIPE_SHADER_VERTEX || + ctx.type == PIPE_SHADER_TESS_EVAL || ctx.type == PIPE_SHADER_FRAGMENT) { ctx.no_prolog = false; ctx.no_epilog = false; } memset(shader->info.vs_output_param_offset, 0xff, sizeof(shader->info.vs_output_param_offset)); shader->info.uses_instanceid = sel->info.uses_instanceid; @@ -7216,20 +7217,32 @@ int si_compile_tgsi_shader(struct si_screen *sscreen, if (need_epilog) { union si_shader_part_key epilog_key; si_get_vs_epilog_key(shader, &shader->key.vs.epilog, &epilog_key); si_build_vs_epilog_function(&ctx, &epilog_key); parts[need_prolog ? 2 : 1] = ctx.main_fn; } si_build_wrapper_function(&ctx, parts, 1 + need_prolog + need_epilog, need_prolog ? 1 : 0); + } else if (is_monolithic && ctx.type == PIPE_SHADER_TESS_EVAL && + !shader->key.tes.as_es) { + LLVMValueRef parts[2]; + union si_shader_part_key epilog_key; + + parts[0] = ctx.main_fn; + + si_get_vs_epilog_key(shader, &shader->key.tes.epilog, &epilog_key); + si_build_vs_epilog_function(&ctx, &epilog_key); + parts[1] = ctx.main_fn; + + si_build_wrapper_function(&ctx, parts, 2, 0); } else if (is_monolithic && ctx.type == PIPE_SHADER_FRAGMENT) { LLVMValueRef parts[3]; union si_shader_part_key prolog_key; union si_shader_part_key epilog_key; bool need_prolog; si_get_ps_prolog_key(shader, &prolog_key, false); need_prolog = si_need_ps_prolog(&prolog_key); parts[need_prolog ? 1 : 0] = ctx.main_fn; -- 2.7.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev