mesa/src/panfrost/midgard
Karol Herbst f2b7c4ce29 nir: rework and fix rotate lowering
No driver supports urol/uror on all bit sizes. Intel gen11+ only for 16
and 32 bit, Nvidia GV100+ only for 32 bit. Etnaviv can support it on 8,
16 and 32 bit.

Also turn the `lower` into a `has` option as only two drivers actually
support `uror` and `urol` at this momemt.

Fixes crashes with CL integer_rotate on iris and nouveau since we emit
urol for `rotate`.

v2: always lower 64 bit

Fixes: fe0965afa6 ("spirv: Don't use libclc for rotate")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by (Intel and nir): Ian Romanick <ian.d.romanick@intel.com>

Reviewed-by: David Heidelberg <david.heidelberg@collabora.com>
Acked-by: Yonggang Luo <luoyonggang@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27090>
2024-01-22 10:27:44 +00:00
..
compiler.h treewide: Replace the include of nir_types.h with glsl_types.h 2023-12-30 15:08:11 +00:00
disassemble.c panfrost: clang-format the tree 2022-12-24 02:22:57 +00:00
disassemble.h panfrost: clang-format the tree 2022-12-24 02:22:57 +00:00
helpers.h pan/mdg: Remove reference to removed macro 2023-03-11 06:30:02 +00:00
meson.build pan/mdg: Propagate modifiers in the backend 2023-06-30 16:29:35 -04:00
midgard.h pan/mdg: Remove MSGS debug 2023-01-16 22:20:43 +00:00
midgard_address.c nir: Drop "SSA" from NIR language 2023-08-12 16:44:41 -04:00
midgard_compile.c treewide: Replace the include of nir_types.h with glsl_types.h 2023-12-30 15:08:11 +00:00
midgard_compile.h nir: rework and fix rotate lowering 2024-01-22 10:27:44 +00:00
midgard_derivatives.c nir: Drop nir_alu_dest 2023-08-14 21:22:53 +00:00
midgard_emit.c panfrost: clang-format the tree 2022-12-24 02:22:57 +00:00
midgard_errata_lod.c pan/mdg: Use nir_builder for load_sampler_lod_parameters_pan 2024-01-08 07:23:40 +00:00
midgard_helper_invocations.c panfrost: clang-format the tree 2022-12-24 02:22:57 +00:00
midgard_liveness.c panfrost: clang-format the tree 2022-12-24 02:22:57 +00:00
midgard_nir.h pan/mdg: Type CSEL with a NIR pass 2023-06-30 16:29:35 -04:00
midgard_nir_algebraic.py pan/mdg: Lower isub in common code 2023-06-30 16:29:35 -04:00
midgard_nir_lower_image_bitsize.c treewide: Drop nir_ssa_for_src users 2023-09-18 10:25:17 -04:00
midgard_nir_type_csel.c nir: Drop nir_alu_dest 2023-08-14 21:22:53 +00:00
midgard_ops.c panfrost: Fix up some formatting for clang-format 2022-12-24 02:22:57 +00:00
midgard_ops.h panfrost: clang-format the tree 2022-12-24 02:22:57 +00:00
midgard_opt_copy_prop.c pan/mdg: Copy-prop even with swizzle restrictions 2023-06-30 16:29:35 -04:00
midgard_opt_dce.c panfrost: clang-format the tree 2022-12-24 02:22:57 +00:00
midgard_opt_perspective.c panfrost: clang-format the tree 2022-12-24 02:22:57 +00:00
midgard_opt_prop.c pan/mdg: Propagate modifiers in the backend 2023-06-30 16:29:35 -04:00
midgard_print.c panfrost: clang-format the tree 2022-12-24 02:22:57 +00:00
midgard_print_constant.c panfrost: clang-format the tree 2022-12-24 02:22:57 +00:00
midgard_quirks.h panfrost: clang-format the tree 2022-12-24 02:22:57 +00:00
midgard_ra.c pan/mdg: Lower special reads better 2023-06-30 16:29:35 -04:00
midgard_ra_pipeline.c panfrost: clang-format the tree 2022-12-24 02:22:57 +00:00
midgard_schedule.c pan/mdg: Reset predicate.exclude while scheduling 2023-06-30 16:29:35 -04:00
mir.c pan/mdg: Fix temp count calculation 2023-06-30 16:29:35 -04:00
mir_promote_uniforms.c panfrost: clang-format the tree 2022-12-24 02:22:57 +00:00
mir_squeeze.c panfrost: clang-format the tree 2022-12-24 02:22:57 +00:00
nir_fuse_io_16.c nir: Use getters for nir_src::parent_* 2023-10-10 04:58:05 -04:00