mesa/src/panfrost/bifrost
Alyssa Rosenzweig 9b2a383af8 pan/bi: Support dual texture scheduling
Teach the scheduler about dual texturing to avoid an artifical "must not
last" constraint causing suboptimal scheduling like

clause_1:
ds(0) nbb tex ncph dwb(0)
{
    *NOP t0
    +TEXC.skip t1, r0, r1, 0xf1e00144, @r4
    *NOP t0
    +NOP t1
}

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13723>
2021-11-12 16:30:02 +00:00
..
test pan/bi: Use gtest for test-constant-fold 2021-11-08 19:02:02 +00:00
valhall pan/va: Document IEEE 754 conformance of clamps 2021-08-11 14:58:58 -04:00
ISA.xml pan/bi: Add second destination to TEXC 2021-11-12 16:30:02 +00:00
Notes.txt
README.md
bi_builder.h.py
bi_helper_invocations.c pan/bi: Fix typo in helper invocation analysis 2021-11-12 16:30:02 +00:00
bi_layout.c
bi_liveness.c
bi_lower_divergent_indirects.c
bi_lower_swizzle.c pan/bi: Use FCLAMP pseudo op for clamp prop 2021-08-11 14:59:26 -04:00
bi_opcodes.c.py
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: Constant fold texturing lowerings 2021-08-11 14:59:24 -04:00
bi_opt_copy_prop.c
bi_opt_cse.c
bi_opt_dce.c
bi_opt_mod_props.c pan/bi: Fuse DISCARD with conditions 2021-08-11 14:59:26 -04:00
bi_opt_push_ubo.c pan/bi: Make bi_opt_push_ubo optional 2021-08-11 18:00:45 +00:00
bi_pack.c pan/bi: Teach meson about Bifrost packing test 2021-07-28 22:16:14 +00:00
bi_packer.c.py
bi_print.c
bi_print_common.c
bi_print_common.h
bi_printer.c.py
bi_quirks.h pan/bi: Use CLPER_V6 on Mali G31 2021-08-20 20:13:27 +00:00
bi_ra.c pan/bi: Assert l != NULL in bi_ra 2021-08-25 20:03:08 +00:00
bi_schedule.c pan/bi: Support dual texture scheduling 2021-11-12 16:30:02 +00:00
bi_scoreboard.c
bi_test.h pan/bi: Drop unused test helpers 2021-11-08 19:02:02 +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: Add bifrost_dual_texture_operation struct 2021-11-12 16:30:02 +00:00
bifrost_compile.c pan/bi: Use BIFROST_TEXTURE_OPERATION_SINGLE enum 2021-11-12 16:30:02 +00:00
bifrost_compile.h nir: add indirect loop unrolling to compiler options 2021-08-03 10:54:50 +00:00
bifrost_isa.py
bifrost_nir.h
bifrost_nir_algebraic.py pan/bi: Optimize abs(derivative) 2021-10-06 00:40:57 +00:00
bir.c pan/bi: Add second destination to TEXC 2021-11-12 16:30:02 +00:00
cmdline.c pan/bi: Fix infinite loop parsing arguments for bifrost_compiler 2021-08-01 13:04:20 +00:00
compiler.h pan/bi: Add secondary staging count 2021-11-12 16:30:02 +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: Print the clause of branch targets 2021-08-01 13:04:20 +00:00
meson.build pan/bi: Use gtest for test-constant-fold 2021-11-08 19:02:02 +00:00

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)