mesa/src/panfrost/bifrost
Alyssa Rosenzweig 2316b80d77 panfrost: Don't use nir_variable to link varyings
NIR deemphasizes nir_variable. We want to transition off it. Instead of walking
the list of variables and playing games with the GLSL types to collect varying
information, walk the list of instructions and use the I/O semantics to collect
similar information.

In addition to avoiding the reliance on nir_variable, this fixes handling of
struct varyings under certain circumstances. Such programs are compiled by the
GLES3.1 CTS but not used, so without this fix, the affected tests would regress
when precompiling.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19363>
2022-11-02 16:52:11 +00:00
..
test pan/bi: Strip negate when lowering swizzles 2022-09-19 17:22:58 +00:00
valhall pan/va: Add 8-bit integer max assembler case 2022-09-19 17:22:58 +00:00
ISA.xml
Notes.txt
README.md
bi_builder.h.py
bi_helper_invocations.c pan/bi: Add and use bi_foreach_ssa_src macro 2022-09-02 16:03:24 +00:00
bi_layout.c
bi_liveness.c pan/bi: Add and use bi_foreach_ssa_src macro 2022-09-02 16:03:24 +00:00
bi_lower_divergent_indirects.c
bi_lower_swizzle.c pan/bi: Strip negate when lowering swizzles 2022-09-19 17:22:58 +00:00
bi_opcodes.c.py
bi_opcodes.h.py
bi_opt_constant_fold.c pan/bi: Assume non-null sources in constant folding 2022-09-02 16:03:23 +00:00
bi_opt_copy_prop.c pan/bi: Add and use bi_replace_src helper 2022-09-02 16:03:24 +00:00
bi_opt_cse.c pan/bi: Add and use bi_replace_src helper 2022-09-02 16:03:24 +00:00
bi_opt_dce.c pan/bi: Add and use bi_foreach_ssa_src macro 2022-09-02 16:03:24 +00:00
bi_opt_dual_tex.c
bi_opt_message_preload.c pan/bi: Assume SSA in minor passes 2022-09-02 16:03:23 +00:00
bi_opt_mod_props.c pan/bi: Remove assert(bi_is_ssa(dest)) 2022-09-02 16:03:24 +00:00
bi_opt_push_ubo.c
bi_pack.c
bi_packer.c.py
bi_pressure_schedule.c pan/bi: Add and use bi_foreach_ssa_src macro 2022-09-02 16:03:24 +00:00
bi_print.c
bi_print_common.c
bi_print_common.h
bi_printer.c.py pan/bi: Remove NIR registers from the IR 2022-09-02 16:03:24 +00:00
bi_quirks.h
bi_ra.c pan/bi: Fix memory leaks. 2022-09-18 10:18:04 -07:00
bi_schedule.c pan/bi: Add and use bi_replace_src helper 2022-09-02 16:03:24 +00:00
bi_scoreboard.c
bi_test.h
bi_validate.c pan/bi: Strengenth assert in the validator 2022-09-02 16:03:24 +00:00
bifrost.h
bifrost_compile.c panfrost: Don't use nir_variable to link varyings 2022-11-02 16:52:11 +00:00
bifrost_compile.h pan/bi: Lower fisnormal 2022-09-19 17:22:58 +00:00
bifrost_isa.py
bifrost_nir.h
bifrost_nir_algebraic.py pan/bi: Implement unpack_64_2x32 2022-09-19 17:22:58 +00:00
bir.c pan/bi: Add and use bi_num_successors helper 2022-09-02 16:03:24 +00:00
cmdline.c
compiler.h pan/bi: Add and use bi_num_successors helper 2022-09-02 16:03:24 +00:00
disassemble.c
disassemble.h
gen_disasm.py
meson.build panfrost: Use compute-based XFB on Midgard 2022-10-27 20:13:11 +00:00
nodearray.h

README.md

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)