mesa/src/intel/compiler/jay
Alyssa Rosenzweig a7b8395c15 jay/lower_scoreboard: run RegDist globally
poking around, it seems branches stall the pipelines so we don't need to do any
dataflow analysis, but we do need to fall through for correctness. just keep
going across block boundaries. this isn't optimal yet but it reduces a
pile of A@1's already.

Totals from 1389 (52.47% of 2647) affected shaders:
CodeSize: 56385376 -> 56325776 (-0.11%); split: -0.13%, +0.03%

--

this also fixes issues where the first instruction of a block is a SEND that has
an unmet register dependency, since the old code was fundamentally broken. oops.
lol. fixes
dEQP-VK.compute.pipeline.workgroup_memory_explicit_layout.zero.uint8_t_array_to_uint_array_1
among many others.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41510>
2026-05-12 22:46:33 +00:00
..
test jay: do moves on the float pipe where possible 2026-05-06 23:25:25 +00:00
.clang-format
jay.h
jay_assign_accumulators.c jay: assign accumulators post-RA 2026-05-06 23:25:25 +00:00
jay_assign_flags.c jay: drop a bunch of stale TODO and XXX 2026-04-28 23:13:50 +00:00
jay_builder.h jay: introduce a physical control flow graph 2026-04-28 23:13:50 +00:00
jay_builder_opcodes.h.py
jay_extra_info.h.py
jay_from_nir.c jay/lower_scoreboard: refactor 2026-05-12 22:46:33 +00:00
jay_insert_fp_mode.c jay: introduce a physical control flow graph 2026-04-28 23:13:50 +00:00
jay_ir.h jay: fix comment 2026-05-12 22:46:32 +00:00
jay_liveness.c jay: introduce a physical control flow graph 2026-04-28 23:13:50 +00:00
jay_lower_post_ra.c jay: have proper UNDEF 2026-05-12 22:46:32 +00:00
jay_lower_pre_ra.c jay: fix bfn with 0xffff constant 2026-05-12 22:46:30 +00:00
jay_lower_scoreboard.c jay/lower_scoreboard: run RegDist globally 2026-05-12 22:46:33 +00:00
jay_lower_spill.c jay: drop UGPR->UMEM spilling path 2026-04-28 23:13:50 +00:00
jay_nir.c iris: Implement force_dual_color_blend_by_location via NIR 2026-05-07 08:29:40 +00:00
jay_nir_algebraic.py
jay_opcodes.py jay: have proper UNDEF 2026-05-12 22:46:32 +00:00
jay_opcodes_gen.py
jay_opt_dead_code.c jay/opt_dead_code: handle predication 2026-04-20 22:32:02 +00:00
jay_opt_predicate.c jay: predicate NoMask instructions in uniform IF's 2026-04-28 23:13:50 +00:00
jay_opt_propagate.c jay: propagate inverse-ballots only locally 2026-04-28 23:13:50 +00:00
jay_print.c jay: drop UGPR->UMEM spilling path 2026-04-28 23:13:50 +00:00
jay_private.h jay/lower_scoreboard: refactor 2026-05-12 22:46:33 +00:00
jay_prog_data.c brw: Stop tracking inline parameter usage in prog_key/prog_data 2026-04-30 16:39:22 +00:00
jay_register_allocate.c jay: drop UGPR->UMEM spilling path 2026-04-28 23:13:50 +00:00
jay_repair_ssa.c jay: introduce a physical control flow graph 2026-04-28 23:13:50 +00:00
jay_simd_width.c jay: drop a bunch of stale TODO and XXX 2026-04-28 23:13:50 +00:00
jay_spill.c jay: drop UGPR->UMEM spilling path 2026-04-28 23:13:50 +00:00
jay_to_binary.c jay: fix bfn with 0xffff constant 2026-05-12 22:46:30 +00:00
jay_validate.c jay/lower_scoreboard: be the sole emitter of SYNC 2026-05-06 23:25:26 +00:00
jay_validate_ra.c jay: drop a bunch of stale TODO and XXX 2026-04-28 23:13:50 +00:00
meson.build jay: assign accumulators post-RA 2026-05-06 23:25:25 +00:00
README.md jay: clarify development model 2026-05-12 22:46:32 +00:00
register-file.md

Xe2 compiler experiments.

Work-in-progress, not ready for users/benchmarks.


Jay is written by humans, not Large Language Models, due to our focus on delivering high quality software and nurturing healthy software teams. For information on the issues, see the notes of veteran Mesa developers like Erik Faye-Lund. Please respect our wishes and do not send Jay patches that are not human authored. Thank you!