radeonsi: add dummy implementation of si_nir_scan_tess_ctrl()
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com> Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
parent
14adf7853a
commit
452586b56a
|
@ -652,6 +652,9 @@ const char *si_get_shader_name(const struct si_shader *shader, unsigned processo
|
||||||
/* si_shader_nir.c */
|
/* si_shader_nir.c */
|
||||||
void si_nir_scan_shader(const struct nir_shader *nir,
|
void si_nir_scan_shader(const struct nir_shader *nir,
|
||||||
struct tgsi_shader_info *info);
|
struct tgsi_shader_info *info);
|
||||||
|
void si_nir_scan_tess_ctrl(const struct nir_shader *nir,
|
||||||
|
const struct tgsi_shader_info *info,
|
||||||
|
struct tgsi_tessctrl_info *out);
|
||||||
void si_lower_nir(struct si_shader_selector *sel);
|
void si_lower_nir(struct si_shader_selector *sel);
|
||||||
|
|
||||||
/* Inline helpers. */
|
/* Inline helpers. */
|
||||||
|
|
|
@ -130,6 +130,25 @@ static void scan_instruction(struct tgsi_shader_info *info,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void si_nir_scan_tess_ctrl(const struct nir_shader *nir,
|
||||||
|
const struct tgsi_shader_info *info,
|
||||||
|
struct tgsi_tessctrl_info *out)
|
||||||
|
{
|
||||||
|
memset(out, 0, sizeof(*out));
|
||||||
|
|
||||||
|
if (nir->info.stage != MESA_SHADER_TESS_CTRL)
|
||||||
|
return;
|
||||||
|
|
||||||
|
/* Initial value = true. Here the pass will accumulate results from
|
||||||
|
* multiple segments surrounded by barriers. If tess factors aren't
|
||||||
|
* written at all, it's a shader bug and we don't care if this will be
|
||||||
|
* true.
|
||||||
|
*/
|
||||||
|
out->tessfactors_are_def_in_all_invocs = true;
|
||||||
|
|
||||||
|
/* TODO: Implement scanning of tess factors, see tgsi backend. */
|
||||||
|
}
|
||||||
|
|
||||||
void si_nir_scan_shader(const struct nir_shader *nir,
|
void si_nir_scan_shader(const struct nir_shader *nir,
|
||||||
struct tgsi_shader_info *info)
|
struct tgsi_shader_info *info)
|
||||||
{
|
{
|
||||||
|
|
|
@ -2005,6 +2005,7 @@ static void *si_create_shader_selector(struct pipe_context *ctx,
|
||||||
sel->nir = state->ir.nir;
|
sel->nir = state->ir.nir;
|
||||||
|
|
||||||
si_nir_scan_shader(sel->nir, &sel->info);
|
si_nir_scan_shader(sel->nir, &sel->info);
|
||||||
|
si_nir_scan_tess_ctrl(sel->nir, &sel->info, &sel->tcs_info);
|
||||||
|
|
||||||
si_lower_nir(sel);
|
si_lower_nir(sel);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue