mesa/src/panfrost/bifrost
Alyssa Rosenzweig 5b056971a3 pan/bi: Preload r60/r61 for MSAA + blend shader
This is the sort of leakiness I hate about blend shaders. MSAA + blend shader is
somewhat obscure but gets hit in the CTS.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15586>
2022-03-30 17:29:12 +00:00
..
test pan/bi: Model offset for LOAD/STORE 2022-03-03 00:41:43 +00:00
valhall pan/va: Lower BLEND to call blend shaders 2022-03-25 19:00:13 +00:00
bi_builder.h.py pan/bi: Move typesize to common code 2021-06-15 20:27:22 +00:00
bi_helper_invocations.c pan/bi: Fix typo in helper invocation analysis 2021-11-12 16:30:02 +00:00
bi_layout.c pan/bi: Garbage collect stuff in bi_layout.c 2021-07-28 00:26:06 +00:00
bi_liveness.c pan/bi: Clean up nits in liveness analysis 2022-02-22 16:57:30 +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: Optimize replication 2022-02-19 03:02:10 +00:00
bi_opcodes.c.py pan/bi: Track instruction size in opcode table 2021-06-15 20:27:22 +00:00
bi_opcodes.h.py pan/bi: Make some headers compilable with C++ 2021-11-08 19:02:01 +00:00
bi_opt_constant_fold.c pan/bi: Use a progress loop for constant folding 2022-03-01 19:43:22 +00:00
bi_opt_copy_prop.c pan/bi: Use is_staging_src helper 2022-01-02 01:12:05 +00:00
bi_opt_cse.c pan/bi: Allow CSE of preloaded registers 2022-03-01 19:43:22 +00:00
bi_opt_dce.c pan/bi: Do not cull post-RA staging writes 2022-02-22 16:57:30 +00:00
bi_opt_dual_tex.c pan/bi: Add dual texture fusing pass 2021-11-12 16:30:02 +00:00
bi_opt_message_preload.c pan/bi: Support message preloading 2022-02-24 14:09:14 -05:00
bi_opt_mod_props.c pan/bi: Switch to lower_bool_to_bitsize 2022-02-19 03:02:10 +00:00
bi_opt_push_ubo.c pan/bi: Reorder pushed uniforms to avoid moves 2022-02-24 01:35:33 +00:00
bi_pack.c pan/bi: Use bi_dontcare for ZS_EMIT 2022-03-18 18:52:06 +00:00
bi_packer.c.py pan/bi: Use consistent modifier lists in packing 2022-03-25 19:00:13 +00:00
bi_print.c pan/bi: Print scoreboarding state 2022-02-22 16:57:30 +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: Print Valhall-specific FAU indices 2022-03-18 18:52:06 +00:00
bi_quirks.h pan/bi: Assume future Valhall is 16-wide warps 2022-01-28 17:47:46 +00:00
bi_ra.c pan/bi: Split out load/store to thread storage 2022-03-30 17:29:12 +00:00
bi_schedule.c pan/bi: Rename PATOM_C to ATOM 2022-03-25 19:00:13 +00:00
bi_scoreboard.c pan/bi: Add BIFROST_MESA_DEBUG=nosb option 2022-02-22 16:57:30 +00:00
bi_test.h pan/bi: Extract INSTRUCTION_CASE macro 2022-03-01 19:43:23 +00:00
bi_validate.c pan/bi: Validate the live set starts empty 2021-07-29 23:40:46 +00:00
bifrost.h pan/bi: Support message preloading 2022-02-24 14:09:14 -05:00
bifrost_compile.c pan/bi: Preload r60/r61 for MSAA + blend shader 2022-03-30 17:29:12 +00:00
bifrost_compile.h bifrost: Lower usub_borrow 2022-03-12 02:27:02 +00:00
bifrost_isa.py pan/bi: Skip psuedo sources in ISA.xml 2022-03-05 14:55:00 -05:00
bifrost_nir.h pan/bi: Add back custom algebraic opts 2021-06-15 20:27:22 +00:00
bifrost_nir_algebraic.py pan/bi: Switch to lower_bool_to_bitsize 2022-02-19 03:02:10 +00:00
bir.c pan/bi: Model Valhall-style A(CMP)XCHG 2022-03-25 19:00:13 +00:00
cmdline.c pan/bi: Support standalone Valhall disassembly 2022-03-01 19:43:22 +00:00
compiler.h pan/va: Optimize add with imm to ADD_IMM 2022-03-25 19:00:13 +00:00
disassemble.c pan/bi: Fix format specifiers in disassembler 2021-08-25 20:03:08 +00:00
disassemble.h pan/bi: Print the clause of branch targets 2021-08-01 13:04:20 +00:00
gen_disasm.py pan/bi: Make disassembler build reproducibly 2022-03-05 14:55:00 -05:00
ISA.xml pan/bi: Fix write_mask size 2022-03-30 17:29:12 +00:00
meson.build pan/va: Add packing unit tests 2022-03-25 19:00:13 +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)