etnaviv: lower (un)pack_{2x16,2x32}_split and extract_{byte,word}

Signed-off-by: Italo Nicola <italonicola@collabora.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22210>
This commit is contained in:
Italo Nicola
2022-10-14 18:12:52 +00:00
committed by Marge Bot
parent 70bb190279
commit 9dc4ee9121
2 changed files with 8 additions and 0 deletions

View File

@@ -53,6 +53,8 @@ etna_compiler_create(const char *renderer, const struct etna_specs *specs)
.lower_fmod = true,
.lower_vector_cmp = true,
.lower_fdph = true,
.lower_extract_byte = true,
.lower_extract_word = true,
.lower_insert_byte = true,
.lower_insert_word = true,
.lower_fdiv = true, /* !specs->has_new_transcendentals */
@@ -67,6 +69,10 @@ etna_compiler_create(const char *renderer, const struct etna_specs *specs)
.force_indirect_unrolling = nir_var_all,
.max_unroll_iterations = 32,
.vectorize_io = true,
.lower_pack_32_2x16_split = true,
.lower_pack_64_2x32_split = true,
.lower_unpack_32_2x16_split = true,
.lower_unpack_64_2x32_split = true,
};
compiler->regs = etna_ra_setup(compiler);

View File

@@ -1148,6 +1148,8 @@ etna_compile_shader(struct etna_shader_variant *v)
etna_optimize_loop(s);
NIR_PASS_V(s, etna_lower_io, v);
NIR_PASS_V(s, nir_lower_pack);
etna_optimize_loop(s);
if (v->shader->specs->vs_need_z_div)
NIR_PASS_V(s, nir_lower_clip_halfz);