mirror of https://gitlab.freedesktop.org/mesa/mesa
2316b80d77
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> |
||
---|---|---|
.. | ||
test | ||
valhall | ||
ISA.xml | ||
Notes.txt | ||
README.md | ||
bi_builder.h.py | ||
bi_helper_invocations.c | ||
bi_layout.c | ||
bi_liveness.c | ||
bi_lower_divergent_indirects.c | ||
bi_lower_swizzle.c | ||
bi_opcodes.c.py | ||
bi_opcodes.h.py | ||
bi_opt_constant_fold.c | ||
bi_opt_copy_prop.c | ||
bi_opt_cse.c | ||
bi_opt_dce.c | ||
bi_opt_dual_tex.c | ||
bi_opt_message_preload.c | ||
bi_opt_mod_props.c | ||
bi_opt_push_ubo.c | ||
bi_pack.c | ||
bi_packer.c.py | ||
bi_pressure_schedule.c | ||
bi_print.c | ||
bi_print_common.c | ||
bi_print_common.h | ||
bi_printer.c.py | ||
bi_quirks.h | ||
bi_ra.c | ||
bi_schedule.c | ||
bi_scoreboard.c | ||
bi_test.h | ||
bi_validate.c | ||
bifrost.h | ||
bifrost_compile.c | ||
bifrost_compile.h | ||
bifrost_isa.py | ||
bifrost_nir.h | ||
bifrost_nir_algebraic.py | ||
bir.c | ||
cmdline.c | ||
compiler.h | ||
disassemble.c | ||
disassemble.h | ||
gen_disasm.py | ||
meson.build | ||
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)