mesa/src/panfrost/midgard
Boris Brezillon 39e4b7279d pan/midg: Fix swizzling on 8-bit sources
Even though 8-bit ALUs are not supported, we can have [un]pack_32_4x8
instructions which translate to IMOVs, and those operate on 8-bit
vectors. The problem is, the swizzling granularity is 16 bit, which
means we don't support

      MOV.i8 R0.xyzw, TMP0.xxxx, R1.zyxw

and the compiler doesn't even complain, it just applies 8 bit
swizzling directly, which obviously doesn't work.

This is probably not the right way to fix that, but I thought I'd
raised the issue with a hack to fix, so we can get the discussion
started.

(Found while debugging FB store lowering on Midgard).

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/14885>
2022-02-04 17:12:35 -05:00
..
compiler.h treewide: drop mtypes/macros includes from main 2021-12-08 22:14:45 +00:00
disassemble.c pan/midg: Prefix scalar immediates with '#' instead of '<' 2022-02-04 17:12:35 -05:00
disassemble.h pan/mdg: Hide units behind MIDGARD_MESA_DEBUG=verbose 2021-05-04 20:04:03 +00:00
helpers.h pan/mdg: Fix definition of UBO unpack 2021-12-14 03:42:28 +00:00
meson.build pan/mdg: Lower stores from helpers 2021-02-12 16:44:30 -05:00
midgard.h pan/midg: Add a flag to dump internal shaders 2021-06-22 14:07:33 +00:00
midgard_address.c pan/mdg: properly encode/decode ldst instructions 2021-04-27 07:04:08 +00:00
midgard_compile.c panfrost: Centralize our model list 2022-01-28 17:47:46 +00:00
midgard_compile.h pan/mdg: Remove duplicate compiler option 2021-11-12 16:30:02 +00:00
midgard_derivatives.c pan/mdg: improve tex opcode decoding and add missing ops 2021-04-27 07:04:08 +00:00
midgard_emit.c pan/midg: Fix swizzling on 8-bit sources 2022-02-04 17:12:35 -05:00
midgard_errata_lod.c nir: Drop the unused instr arg for src/dest copy functions. 2021-09-14 17:53:06 +00:00
midgard_helper_invocations.c pan/mdg: eliminate references to ins->texture.op 2020-07-30 22:55:36 +00:00
midgard_liveness.c pan/mdg: Add missing Collabora copyright notices 2020-11-09 16:45:25 +00:00
midgard_nir.h pan/mdg: Lower stores from helpers 2021-02-12 16:44:30 -05:00
midgard_nir_algebraic.py nir,panfrost: Suffix fsat_signed and fclamp_pos with _mali 2021-06-21 09:03:34 -05:00
midgard_nir_lower_helper_writes.c pan/mdg: Lower stores from helpers 2021-02-12 16:44:30 -05:00
midgard_nir_lower_image_bitsize.c pan/mdg: create nir pass to lower image coord bitsize 2021-01-27 12:39:41 +00:00
midgard_ops.c pan/mdg: Reduce size of tex_opcode_props 2021-08-16 14:18:36 +00:00
midgard_ops.h pan/mdg: Remove unused midgard_int_alu_op_prefix 2021-05-18 19:19:01 +00:00
midgard_opt_copy_prop.c pan/mdg: Remove midgard_opt_copy_prop_reg 2021-05-06 16:40:50 +00:00
midgard_opt_dce.c pan/mdg: improve tex opcode decoding and add missing ops 2021-04-27 07:04:08 +00:00
midgard_opt_perspective.c pan/mdg: properly encode/decode ldst instructions 2021-04-27 07:04:08 +00:00
midgard_print.c pan/mdg: Use consistent casing in midgard_print 2021-06-10 18:06:10 +00:00
midgard_print_constant.c pan/mdg: stop querying datatype by reading opcode name 2021-04-27 07:04:07 +00:00
midgard_quirks.h panfrost: Don't pass quirks to pan_lower_framebuffer 2022-01-28 17:47:46 +00:00
midgard_ra.c pan/midg: Add intra-bundle interferences 2022-02-04 17:12:34 -05:00
midgard_ra_pipeline.c pan/mdg: Dual source blend input/writeout support 2020-07-15 01:30:00 +00:00
midgard_schedule.c pan/mdg: Use the correct swizzle for condition moves 2021-10-04 14:55:07 +00:00
mir.c pan/midg: Fix swizzling on 8-bit sources 2022-02-04 17:12:35 -05:00
mir_promote_uniforms.c pan/mdg: Create a mask of UBOs that need to be uploaded 2021-07-03 13:23:29 +00:00
mir_squeeze.c util/hash_table: do not leak u64 struct key 2021-04-29 12:58:23 +02:00
nir_fuse_io_16.c nir: Make nir_ssa_def_rewrite_uses_after take an SSA value 2021-03-08 16:59:55 +00:00