radeonsi: add si_get_tcs_epilog_key
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16304>
This commit is contained in:
parent
20bb85e2ec
commit
59673001c8
|
@ -1966,6 +1966,13 @@ static bool si_shader_select_vs_parts(struct si_screen *sscreen, struct ac_llvm_
|
|||
return si_get_vs_prolog(sscreen, compiler, shader, debug, shader, &shader->key.ge.part.vs.prolog);
|
||||
}
|
||||
|
||||
void si_get_tcs_epilog_key(struct si_shader *shader, union si_shader_part_key *key)
|
||||
{
|
||||
memset(key, 0, sizeof(*key));
|
||||
key->tcs_epilog.wave32 = shader->wave_size == 32;
|
||||
key->tcs_epilog.states = shader->key.ge.part.tcs.epilog;
|
||||
}
|
||||
|
||||
/**
|
||||
* Select and compile (or reuse) TCS parts (epilog).
|
||||
*/
|
||||
|
@ -1984,9 +1991,7 @@ static bool si_shader_select_tcs_parts(struct si_screen *sscreen, struct ac_llvm
|
|||
|
||||
/* Get the epilog. */
|
||||
union si_shader_part_key epilog_key;
|
||||
memset(&epilog_key, 0, sizeof(epilog_key));
|
||||
epilog_key.tcs_epilog.wave32 = shader->wave_size == 32;
|
||||
epilog_key.tcs_epilog.states = shader->key.ge.part.tcs.epilog;
|
||||
si_get_tcs_epilog_key(shader, &epilog_key);
|
||||
|
||||
shader->epilog = si_get_shader_part(sscreen, &sscreen->tcs_epilogs, MESA_SHADER_TESS_CTRL, false,
|
||||
&epilog_key, compiler, debug, si_llvm_build_tcs_epilog,
|
||||
|
|
|
@ -177,6 +177,7 @@ void si_get_vs_prolog_key(const struct si_shader_info *info, unsigned num_input_
|
|||
struct nir_shader *si_get_nir_shader(struct si_shader_selector *sel,
|
||||
const union si_shader_key *key,
|
||||
bool *free_nir);
|
||||
void si_get_tcs_epilog_key(struct si_shader *shader, union si_shader_part_key *key);
|
||||
bool si_need_ps_prolog(const union si_shader_part_key *key);
|
||||
void si_get_ps_prolog_key(struct si_shader *shader, union si_shader_part_key *key,
|
||||
bool separate_prolog);
|
||||
|
|
|
@ -1141,8 +1141,7 @@ bool si_llvm_compile_shader(struct si_screen *sscreen, struct ac_llvm_compiler *
|
|||
|
||||
/* TCS epilog */
|
||||
union si_shader_part_key tcs_epilog_key;
|
||||
memset(&tcs_epilog_key, 0, sizeof(tcs_epilog_key));
|
||||
tcs_epilog_key.tcs_epilog.states = shader->key.ge.part.tcs.epilog;
|
||||
si_get_tcs_epilog_key(shader, &tcs_epilog_key);
|
||||
si_llvm_build_tcs_epilog(&ctx, &tcs_epilog_key);
|
||||
parts[3] = ctx.main_fn;
|
||||
|
||||
|
|
Loading…
Reference in New Issue