mesa/src/panfrost/bifrost
Alyssa Rosenzweig aa765c54bd pan/bi: Add divergent intrinsic lowering pass
This is undefined behaviour in the hardware but perfectly legal NIR, so
lower to an if ladder predicated on the lane ID (the blob's preferred
strategy).

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10022>
2021-05-07 18:20:30 +00:00
..
bi_builder.h.py pan/bi: Fix loads and stores smaller than 32 bits 2021-05-03 15:10:20 +00:00
bi_layout.c pan/bi: Extract bi_ec0_packed helper 2021-02-08 14:07:29 +00:00
bi_liveness.c pan/bi: Make bi_writemask take a destination 2021-02-22 19:17:50 +00:00
bi_lower_divergent_indirects.c pan/bi: Add divergent intrinsic lowering pass 2021-05-07 18:20:30 +00:00
bi_lower_swizzle.c pan/bi: Change swizzled scalars to identity 2021-05-06 23:26:21 +00:00
bi_opcodes.c.py pan/bi: Emit branch and table bits in opcode table 2021-01-29 16:55:44 +00:00
bi_opcodes.h.py pan/bi: Emit branch and table bits in opcode table 2021-01-29 16:55:44 +00:00
bi_opt_constant_fold.c pan/bi: Add simple constant folding pass 2021-05-03 15:10:20 +00:00
bi_opt_copy_prop.c pan/bi: Copyprop constants 2021-05-06 23:26:21 +00:00
bi_opt_dce.c pan/bi: Only run DCE once 2021-04-03 12:47:29 -04:00
bi_opt_push_ubo.c panfrost: Add a knob to disable the UBO -> push constants optimization 2021-03-11 15:10:57 +00:00
bi_pack.c pan/bi: Don't set the EOS flag if there's at least one successor 2021-04-21 15:46:16 +02:00
bi_packer.c.py pan/bi: Add "lane_dest" modifier 2021-05-03 15:10:20 +00:00
bi_print.c pan/bi: Add pcrel_idx to bi_clause 2021-02-08 14:07:29 +00:00
bi_print_common.c pan/bi: Move modifier prints out of common code 2020-12-23 12:48:06 -05:00
bi_print_common.h pan/bi: Move modifier prints out of common code 2020-12-23 12:48:06 -05:00
bi_printer.c.py pan/bi: Add "lane_dest" modifier 2021-05-03 15:10:20 +00:00
bi_quirks.h pan/bi: Add "lanes per warp" accessor 2021-05-07 18:20:30 +00:00
bi_ra.c pan/bi: Mark message-passing sources/dests live 2021-03-07 15:10:12 +00:00
bi_schedule.c pan/bi: Add two tuples to a clause when needed with NOSCHED 2021-05-06 14:45:13 +00:00
bi_scoreboard.c pan/bi: Stub scoreboarding 2021-02-18 21:48:21 +00:00
bi_test_pack.c pan/bi: Add packing format tests 2021-01-29 16:55:44 +00:00
bifrost.h pan/bi: Remove unused definitions 2021-02-22 19:17:50 +00:00
bifrost_compile.c pan/bi: Add divergent intrinsic lowering pass 2021-05-07 18:20:30 +00:00
bifrost_compile.h pan/bi: Enable NIR vectorization 2021-05-06 23:26:21 +00:00
bifrost_isa.py pan/bi: Union modifiers from across variants 2021-05-03 15:10:20 +00:00
bir.c pan/bi: Determine block successors correctly 2021-04-11 02:05:31 +00:00
cmdline.c panfrost: Move the shader compilation logic out of the gallium driver 2021-02-15 11:23:46 +00:00
compiler.h pan/bi: Add divergent intrinsic lowering pass 2021-05-07 18:20:30 +00:00
disassemble.c Convert most remaining free-form fall-through comments to FALLTHROUGH 2021-04-15 16:01:22 +00:00
disassemble.h pan/bi: Move bi_constants to bifrost.h 2021-01-29 16:55:44 +00:00
gen_disasm.py pan/bi: Rename isa_parse to bifrost_isa 2020-12-23 17:06:57 +00:00
ISA.xml pan/bi: Replace lane0 modifier with lane_dest for load instructions 2021-05-03 15:10:20 +00:00
meson.build pan/bi: Add divergent intrinsic lowering pass 2021-05-07 18:20:30 +00:00
Notes.txt pan/bi: Move notes on ADD ops to notes file 2020-03-03 00:03:50 +00:00
README.md pan/bi: Document register conventions 2021-04-03 12:47:29 -04:00

Bifrost compiler

Register file

Defined partially in software, partially in hardware.

Blend shaders

R0 - R3: input (color #0) R4 - R7: input (color #1) R8 - R15: general purpose R48: return address

Fragment

Anything live during BLEND must respect blend shader registers.

R0 - R3: preloaded (message #0) R4 - R7: preloaded (message #1) R57 - R63: preloaded (various)

R0 - R15: general purpose (full threads) R48 - R63: general purpose (full threads)

R32 - R47: general purpose (half threads, or v6)