mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 02:48:06 +02:00
panfrost: Move lower_res_indices before postproc
Signed-off-by: Lorenzo Rossi <lorenzo.rossi@collabora.com> Reviewed-by: Christoph Pillmayer <christoph.pillmayer@arm.com> Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com> Reviewed-by: Lars-Ivar Hesselberg Simonsen <lars-ivar.simonsen@arm.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40844>
This commit is contained in:
parent
eafc822dbd
commit
d096a8e962
2 changed files with 11 additions and 6 deletions
|
|
@ -91,11 +91,13 @@ static bool
|
|||
lower_ssbo_intrin(nir_builder *b, nir_intrinsic_instr *intrin)
|
||||
{
|
||||
b->cursor = nir_before_instr(&intrin->instr);
|
||||
bool is_store = intrin->intrinsic == nir_intrinsic_store_ssbo;
|
||||
nir_src *handle = &intrin->src[is_store ? 1 : 0];
|
||||
|
||||
nir_def *new_offset = nir_ior_imm(b, intrin->src[0].ssa,
|
||||
nir_def *new_handle = nir_ior_imm(b, handle->ssa,
|
||||
pan_res_handle(PAN_TABLE_SSBO, 0));
|
||||
|
||||
nir_src_rewrite(&intrin->src[0], new_offset);
|
||||
nir_src_rewrite(handle, new_handle);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
@ -107,7 +109,8 @@ lower_intrinsic(nir_builder *b, nir_intrinsic_instr *intrin,
|
|||
switch (intrin->intrinsic) {
|
||||
case nir_intrinsic_image_load:
|
||||
case nir_intrinsic_image_store:
|
||||
case nir_intrinsic_image_texel_address:
|
||||
case nir_intrinsic_image_atomic:
|
||||
case nir_intrinsic_image_atomic_swap:
|
||||
return lower_image_intrin(b, intrin);
|
||||
case nir_intrinsic_load_input:
|
||||
case nir_intrinsic_load_interpolated_input:
|
||||
|
|
@ -115,7 +118,9 @@ lower_intrinsic(nir_builder *b, nir_intrinsic_instr *intrin,
|
|||
case nir_intrinsic_load_ubo:
|
||||
return lower_load_ubo_intrin(b, intrin);
|
||||
case nir_intrinsic_load_ssbo:
|
||||
case nir_intrinsic_load_ssbo_address:
|
||||
case nir_intrinsic_store_ssbo:
|
||||
case nir_intrinsic_ssbo_atomic:
|
||||
case nir_intrinsic_ssbo_atomic_swap:
|
||||
return lower_ssbo_intrin(b, intrin);
|
||||
default:
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -184,10 +184,10 @@ panfrost_shader_compile(struct panfrost_screen *screen, const nir_shader *ir,
|
|||
panfrost_device_gpu_prod_id(dev) < 0x700);
|
||||
}
|
||||
|
||||
pan_postprocess_nir(s, panfrost_device_gpu_id(dev));
|
||||
|
||||
/* Lower resource indices */
|
||||
NIR_PASS(_, s, panfrost_nir_lower_res_indices, &inputs);
|
||||
|
||||
pan_postprocess_nir(s, panfrost_device_gpu_id(dev));
|
||||
pan_nir_lower_texture_late(s, inputs.gpu_id);
|
||||
|
||||
if (s->info.stage == MESA_SHADER_VERTEX) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue