Commit graph

16396 commits

Author SHA1 Message Date
Yiwei Zhang
936ceed0a6 anv: amend missing shader dump finish upon device destruction
Fixes: 0a965c0bce ("anv: add a shader-dump debug option")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42095>
2026-06-09 06:00:14 +00:00
Alyssa Rosenzweig
8150ce8531 anv: enable jay ray query
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42006>
2026-06-08 23:57:46 +00:00
Calder Young
4aca86b383 jay: Implement ray tracing trace intrinsics
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42006>
2026-06-08 23:57:46 +00:00
Calder Young
667a330512 jay: Implement ray tracing topology id intrinsics
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42006>
2026-06-08 23:57:46 +00:00
Calder Young
576fc784c9 jay: Disable SIMD32 if ray queries are used
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42006>
2026-06-08 23:57:46 +00:00
Alyssa Rosenzweig
773a0e71ce jay/lower_pre_ra: allow immediate on bfe
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42006>
2026-06-08 23:57:46 +00:00
Calder Young
03bff227db brw: Move topology id helper intrinsics to NIR
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42006>
2026-06-08 23:57:46 +00:00
Calder Young
9f2c6fdca4 brw: Move ray payload bitfield generation to NIR
This will save us the trouble of faking constant folding for the BVH level and
trace ray control values when we lower this intrinsic in the new backends.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42006>
2026-06-08 23:57:46 +00:00
Yiwei Zhang
301a1f9a61 anv: fix lock scope in anv_ensure_fp64_shader
Fixes: 7d3b62e13d ("anv: only load fp64 software shader when needed")
Reviewed-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42094>
2026-06-08 21:55:45 +00:00
Paulo Zanoni
547432e85a intel/blorp: don't include "util/format_rgb9e5.h"
We don't use anything from that header. We call
nir_format_pack_r9g9b9e5(), which comes from nir_format_convert.h,
which we already include.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41976>
2026-06-08 21:18:47 +00:00
Paulo Zanoni
0d8f487e06 intel/blorp: move struct blorp_blit_prog_key to blorp_blit.c
The key is only used inside that file. Make it like we do with the
keys in blorp_clear.c.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41976>
2026-06-08 21:18:47 +00:00
Paulo Zanoni
081dd1db75 intel/blorp: fix blorp base key initialization
When you use designated initializers, anything that is not explicitly
set is set to zero. When you do something like:

  struct blorp_blit_prog_key {
    .base = BLORP_BASE_KEY_INIT(BLORP_SHADER_TYPE_BLIT),
    .base.shader_pipeline = BLORP_SHADER_PIPELINE_RENDER,
  };

the second initialization is the only one that does something: it sets
shader_pipeline to the desired value, and all the other fields in
"base" are set to 0. This is easily verifiable by just examining the
contents of all the blorp keys we initialize this way: name and
shader_type are always zero.

This means that if two blorp shaders of different types have the
same key size, the shader cache could confuse them. Still, I don't
think this is happening in the real world.

Fixes: 22ecb4a10f ("intel/blorp: Support compute for slow clears")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/11690
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41976>
2026-06-08 21:18:46 +00:00
Paulo Zanoni
ed098570bc intel/blorp: don't silently ignore compilation failures
If we fail to compile a Kernel, don't silently fail: call mesa_loge()
so we can at least know it happened. On debug builds, just assert(),
so if they ever happen in CI, we'll know.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41976>
2026-06-08 21:18:46 +00:00
José Roberto de Souza
573368af88 anv: Replace most parameters of fill_inline_param() by a struct
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
A future patch will add more parameters to fill_inline_param(), so lets reduce
the number of parameters by passing a struct to this function instead.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41351>
2026-06-08 18:41:25 +00:00
José Roberto de Souza
dbfb0a3b0d anv: Add assert to make sure we don't push more than max_push_regs to push constants
As the push constant size limit is only valid in stages that don't use inline
param I had to add and call stage_has_inline_param() first.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41351>
2026-06-08 18:41:25 +00:00
Alyssa Rosenzweig
ce4d2d7faa jay/register_allocate: make phi webs conservative
Noticed in a bunch of vkpeak shaders which had extra moves in the loop.

SIMD16:
   Totals from 547 (20.66% of 2647) affected shaders:
   Instrs: 1139024 -> 1131482 (-0.66%); split: -0.68%, +0.02%
   CodeSize: 15919528 -> 15834088 (-0.54%); split: -0.56%, +0.02%

SIMD32:
   Totals from 523 (19.76% of 2647) affected shaders:
   Instrs: 1271749 -> 1263534 (-0.65%); split: -0.75%, +0.10%
   CodeSize: 18180076 -> 18091180 (-0.49%); split: -0.60%, +0.11%

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42056>
2026-06-08 15:56:28 +00:00
Alyssa Rosenzweig
62e8998e39 jay: optimize out more early eot related copies
SIMD16:
   Totals from 1790 (67.62% of 2647) affected shaders:
   Instrs: 2082218 -> 2080428 (-0.09%)
   CodeSize: 29060912 -> 29046464 (-0.05%)

SIMD32:
   Totals from 2071 (78.24% of 2647) affected shaders:
   Instrs: 2163230 -> 2161159 (-0.10%)
   CodeSize: 30923760 -> 30906832 (-0.05%)

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42056>
2026-06-08 15:56:28 +00:00
Alyssa Rosenzweig
6812bddfe1 jay: uniformize bti indirects
these must be dynamically uniform but can be GPR. fixes validation on
dEQP-GLES31.functional.shaders.opaque_type_indexing.ubo.dynamically_uniform_tessellation_evaluation,
and probably really bugs doing indirect loads in divergent control flow
(when lane 0 is masked off).

no fossil-db changes.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42056>
2026-06-08 15:56:28 +00:00
Kenneth Graunke
9b82818510 anv: Fix shader stats when using jay for non-compute stages
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42056>
2026-06-08 15:56:27 +00:00
Calder Young
04cbd47f72 jay: Disable avoid_ternary_with_two_constants when using jay
This optimization mostly helped BRW because 3-src instructions can't take
immediates, and BRW can't allocate scalars without wasting an entire GRF unit
per scalar. Jay has a better RA that can pack many scalars into a single GRF
unit, so allocating temporary registers for the immediates is far less likely
to lead to as much spilling as it does on BRW.

SIMD16:
   Totals from 1331 (50.28% of 2647) affected shaders:
   Instrs: 1665848 -> 1665514 (-0.02%); split: -0.16%, +0.14%
   CodeSize: 23192072 -> 23215672 (+0.10%); split: -0.30%, +0.40%

SIMD32:
   Totals from 1114 (42.09% of 2647) affected shaders:
   Instrs: 1959968 -> 1960548 (+0.03%); split: -0.30%, +0.33%
   CodeSize: 28004460 -> 28023468 (+0.07%); split: -0.39%, +0.46%
   Number of spill instructions: 31157 -> 31161 (+0.01%); split: -0.01%, +0.03%
   Number of fill instructions: 32138 -> 32130 (-0.02%); split: -0.05%, +0.02%

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42056>
2026-06-08 15:56:27 +00:00
Alyssa Rosenzweig
e5450c4c85 jay: allow null in jay_collect_vectors
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42056>
2026-06-08 15:56:27 +00:00
Calder Young
101cc5e331 jay: Add support for saturating f2i16 and f2i8 NIR opcodes
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42056>
2026-06-08 15:56:27 +00:00
Alyssa Rosenzweig
010b443778 jay: fix last-use accounting with ARF sources
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42056>
2026-06-08 15:56:27 +00:00
Calder Young
6e66d1427d jay: Do not propagate ARF src unless its src0
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42056>
2026-06-08 15:56:27 +00:00
Alyssa Rosenzweig
8085f983b1 jay: follow source order for mad/bfe
otherwise s == 0 checks don't do the right thing.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42056>
2026-06-08 15:56:27 +00:00
Calder Young
7e74ba122a jay: Use gen_names.h to print CMODs and ARFs
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42056>
2026-06-08 15:56:27 +00:00
Calder Young
68753701e6 jay: Use gen_arf enums instead of jay_arf
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42056>
2026-06-08 15:56:27 +00:00
Kenneth Graunke
7db6fb7f0a jay: Fix rewrite_without_flags for SEL with other flag sources
The idea here is to eliminate the flag used for the select condition,
not eliminate other flag sources.

Previously, if we had an instruction like:

   gpr = SEL <not in flag> 0 <already in flag>

we would process source 0 and try to rewrite_without_flags().  Because
it's not in a flag, we think eliminating flags would be useful, so we
rewrite it.  But this only eliminates the source 2 selection flag, not
the source 0 flag.  It's valid to do so (but debatably useful).
However, we thought we were done, and skipped the setup that ensures
source 0's value was actually loaded into a flag.

Instead, we should just perform this optimization when processing the
selection flag (source 2).  By that point, we will have properly set
up any flags for sources 0 and 1.  And if source 2 is not in a flag,
we can decide to rewrite without it.  Or, if it's already in a flag,
we can keep it as-is.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42056>
2026-06-08 15:56:26 +00:00
Kenneth Graunke
a8b2f15dc4 jay: Improve unconditional discard removal
delete_solo_discard was removing unconditional discards in the case
where the entire program had been optimized away.  However, we can
do better: unconditional discards in the end block can be removed if

1. All render target writes after the discard have been eliminated
2. No intrinsics with side-effects (e.g. image stores) come after

See
dEQP-VK.fragment_operations.early_fragment.discard_early_fragment_tests_depth
where there's a discard at the end of the program which can be removed.

Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42056>
2026-06-08 15:56:26 +00:00
Kenneth Graunke
e7cfcf41f4 jay: Ignore RT store condition if there are no outputs
opt_unconditional_discards may eliminate all render target stores
due to all pixels being discarded.  In that case, it tries to add
one back with a Null RT and no colour/depth/stencil outputs, just
to end the thread.  In that case, we don't want to predicate it on
helper invocations - we just need a basic message to end the thread.

In particular, we already lowered nir_intrinsic_is_helper_invocation
so we don't want to emit it again, as nothing would lower it afterwards.

Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42056>
2026-06-08 15:56:26 +00:00
Kenneth Graunke
d4dce9d96c jay: Fix hard coded number of FS inputs
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42056>
2026-06-08 15:56:26 +00:00
Kenneth Graunke
c164ad3a00 jay: Assert FS input deltas exist
Clearer error message to help debugging.

Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/42056>
2026-06-08 15:56:26 +00:00
Emma Anholt
b6661df5f0 vulkan: Enable GOOGLE_display_timing on KHR_display across multiple drivers.
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
This covers some drivers which expose KHR_display and EXT_present_timing.

Based on Emma Anholt's work from 2025, rebased on current Mesa 26.2-devel,
tiny compile fixes and docs/features updates by Mario Kleiner.
See MR 38472 for reference of Emma's work, based on Keith's work.

Tested locally on AMD Polaris for radv, Intel Kabylake for anv, and on
Mesa CI's VK-CTS VK_GOOGLE_display_timing test case for AMD radv,
Intel anv, Qualcomm Adreno tu.

Original code of Emma is
Reviewed-by: Mario Kleiner <mario.kleiner.de@gmail.com>

Update of docs/features.txt + new_features.txt updates is

Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Reviewed-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41168>
2026-06-05 10:21:51 +00:00
Samuel Pitoiset
64e63051dc anv: declare common VK drirc options using the helper
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41843>
2026-06-05 09:14:45 +02:00
Hyunjun Ko
bea1212ee7 anv/video: Change size of the cached array of recently decoded AV1 frames.
Current size of prev_refs is 8, which just means the size of ref-frames
but needs to be aligned with full size of dpb, which is 9.
Also prev_refs is now indexed by dpb slot and holds the last intra frame
written to that slot.

This fixes visible artifacts on AV1 streams that mix super-res and
non-super-res frames in a hierarchical reference structure.

Closes: mesa/mesa#15503

Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41846>
2026-06-04 15:43:54 +00:00
Hyunjun Ko
11c8930e2b anv/video: define ANV_VIDEO_AV1_MAX_DPB_SLOTS
this is a prep-work for the follwing fix.

Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41846>
2026-06-04 15:43:54 +00:00
Hyunjun Ko
6875286159 anv/video: Add to check size mismatch during motion field estimation.
Due to super resolution size can change so we need to keep coded size
and check whether the change happens during motion field estimation.

Closes: mesa/mesa#15503

Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41846>
2026-06-04 15:43:54 +00:00
Tapani Pälli
fdb9ce6087 anv: skip writing xfb buffer if we get null information
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Cc: mesa-stable
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/work_items/15582
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41930>
2026-06-04 05:30:22 +00:00
Paulo Zanoni
095e4f5f1b brw: control cache_mode through bypass_{l1,l3} variables
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
This change splits the algorithm in two steps: first we have the
logical decision of which caches to bypass based on the needs of the
send operation, and then we have the code that picks the caching modes
based on which caches to bypass.

This should make it significantly easier for us to add new workarounds
without the risk of breaking existing cases.

Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41319>
2026-06-04 00:08:44 +00:00
Paulo Zanoni
7fec64063e brw: have a single if-ladder to pick cache_modes
Instead of having an if ladder followed by another if that overwrites
the previous result, have a single if ladder.

Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41319>
2026-06-04 00:08:44 +00:00
Paulo Zanoni
6b52263d84 brw: split cache mode selection into atomic, load and store modes
This is the next - but not final - step into making this function more
organized: split cache_mode into atomic, load and store versions, then
pick the version at the end.

v2: Initialize {load,store}_cache_mode (Sagar).

Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41319>
2026-06-04 00:08:44 +00:00
Paulo Zanoni
2fcaa19a96 intel/brw: move cache_mode assignment to after send->sfid choice
We have code to choose cache_mode before send->sfid is assigned, but
after it we have more code to choose cache_mode that relies on
send->sfid. Move everything to after the selection of send->sfid so
the code to pick cache_mode is all together. I plan to simplify this
futher in the next commits, the goal of this patch is to make the next
diff easier to read.

Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41319>
2026-06-04 00:08:44 +00:00
Caio Oliveira
52ad6f58ec intel/gen: Support symbolic print/parse of BFN function
Use the format from src/util/lut.h.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41872>
2026-06-03 15:23:20 +00:00
Kenneth Graunke
0dcca5ad8c jay: Unroll loops before lowering deferred URB writes
Multiview often involves a loop over view indexes, and our output
handling assumes that everything is constant-indexed.  Unrolling
the loops takes care of this.  (brw already does this.)

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41872>
2026-06-03 15:23:20 +00:00
Kenneth Graunke
191dc6cb81 jay: Add an INTEL_JAY=all option
This enables Jay for all shader stages it currently supports.
Less typing than vs,tes,fs,cs.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41872>
2026-06-03 15:23:20 +00:00
Kenneth Graunke
4d49efc831 jay: Add tessellation evaluation shader support
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41872>
2026-06-03 15:23:20 +00:00
Kenneth Graunke
06c19e86ef jay: Pass proper simd_width to brw_nir_apply_key for fragment shaders
Thanks to Caio Marcelo for noticing this.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41872>
2026-06-03 15:23:20 +00:00
Kenneth Graunke
bfa07e906a jay: Implement fragment shader barycentrics
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41872>
2026-06-03 15:23:20 +00:00
Kenneth Graunke
7be50b714c jay: Don't swap FS interpolation .yz deltas
load_fs_interp_deltas wants .yz swapped, but load_input_vertex does not.
For simplicity, keep the payload fields in hardware order and have the
individual intrinsics swap.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41872>
2026-06-03 15:23:20 +00:00
Kenneth Graunke
d89a0b486a jay: Implement dual color blending (but require SIMD16)
It's mildly tempting to reuse the src0_alpha source for color1 since
the two features should never overlap, but for now we add an extra
optional source.

We require SIMD16 for now as we only have SIMD16 messages.  Eventually,
we're likely to want to support SIMD32 with 2x16 sends, but this gets
us going for now.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41872>
2026-06-03 15:23:20 +00:00