Commit graph

204280 commits

Author SHA1 Message Date
Ian Romanick
07dc1d4043 brw/algebraic: Clear condition modifier on optimized SEL instruction
The condition modifier on SEL means something completely different than
it means on MOV.  On MOV it means to modify the flags based on the value
written to the destination. On SEL it means to compare the sources using
that mode and pick the result (i.e., as min() or max()) without
modifying the flags.

The resulting MOV should not have a condition modifier for the same
reason it (already) doesn't have a predicate. This bug was found by
inspection, so I added a unit test.

No shader-db or shader-db changes on any Intel platform.

Fixes: fab92fa1cb ("i965/fs: Optimize SEL with the same sources into a MOV.")
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34192>
2025-04-15 23:59:31 +00:00
Ian Romanick
1d2ebeca17 nir/algebraic: Allow fmin(a,a) optimization when flush denorm to zero is not set
I was surprised this had any affect on Intel GPUs because we have been
unconditionally performing this optimization in the backend since June
2014.

Once that error is fixed (later in this MR), this change prevents a
couple dozen regressions in shader-db and around 90 regressions in
fossil-db. Many of the regressions in fossil-db were loss of SIMD32, and
that can be a big deal.

v2: Add 64-bit too. Suggested by Alyssa.

shader-db:

All Intel platforms had similar results. (Lunar Lake shown)
total instructions in shared programs: 16970141 -> 16970139 (<.01%)
instructions in affected programs: 40 -> 38 (-5.00%)
helped: 2 / HURT: 0

total cycles in shared programs: 914617580 -> 914617548 (<.01%)
cycles in affected programs: 3428 -> 3396 (-0.93%)
helped: 2 / HURT: 0

fossil-db:

All Intel platforms had similar results. (Lunar Lake shown)
Totals:
Cycle count: 30546028462 -> 30546025224 (-0.00%); split: -0.00%, +0.00%
Non SSA regs after NIR: 237017827 -> 237017731 (-0.00%)

Totals from 83 (0.01% of 706657) affected shaders:
Cycle count: 3042978 -> 3039740 (-0.11%); split: -0.13%, +0.02%
Non SSA regs after NIR: 78997 -> 78901 (-0.12%)

Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34192>
2025-04-15 23:59:31 +00:00
Faith Ekstrand
44b01b55d5 nvk: Handle shifted QMD cbuf addrs in indirect command processing
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34443>
2025-04-15 23:38:54 +00:00
Faith Ekstrand
8b2f0be254 nak/qmd: Add QMD version 4.0 for Hopper
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34443>
2025-04-15 23:38:54 +00:00
Faith Ekstrand
a62c59d7e0 nak/qmd: Add support for shifted cbuf addresses
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34443>
2025-04-15 23:38:54 +00:00
Faith Ekstrand
7050a285a3 nak/qmd: Rework cbuf size suffix handling
Addresses will also be shifted starting with QMD version 4.0 and we'll
need something a little more general for that.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34443>
2025-04-15 23:38:54 +00:00
Faith Ekstrand
c8a5086213 nvk: Disable VK_EXT_descriptor_buffer pre-Maxwell
Our strategy of covering the entire address space in buffer views
requires that we be able to create very large buffer views.  The
pre-Maxwell texture unit doesn't allow for this.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34542>
2025-04-15 18:03:53 -05:00
Faith Ekstrand
c135bd6542 nak: Get rid of RegRef::zero
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34538>
2025-04-15 22:17:38 +00:00
Faith Ekstrand
7125b25800 nak/sm70: Add zero_reg() and true_reg() helpers
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34538>
2025-04-15 22:17:38 +00:00
Faith Ekstrand
c4452c5fa4 nak/sm50: Add zero_reg() and true_reg() helpers
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34538>
2025-04-15 22:17:38 +00:00
Faith Ekstrand
32570924cf nak: Move some legalization helpers from sm50 to common code
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34538>
2025-04-15 22:17:38 +00:00
Dave Airlie
6a4c1ac464 nak: add F2FP to sm75 instr latencies
hw_tests found this was missing, copy it from Ampere.

Fixes: 6b8a4e6bb7 ("nak: Add Turing latency information")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34537>
2025-04-15 21:56:55 +00:00
Ryan Mckeever
1efa53ac17 panvk: shaderStorageImageWriteWithoutFormat support
Signed-off-by: Ryan Mckeever <ryan.mckeever@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33787>
2025-04-15 21:30:41 +00:00
Ryan Mckeever
e79a568442 panvk: shaderStorageImageReadWithoutFormat support
Signed-off-by: Ryan Mckeever <ryan.mckeever@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33787>
2025-04-15 21:30:41 +00:00
Ryan Mckeever
70b8056df1 panvk: Enable KHR_format_feature_flags2 and use them
We need to enable this to use
VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT and
VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT.

Signed-off-by: Ryan Mckeever <ryan.mckeever@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Acked-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33787>
2025-04-15 21:30:41 +00:00
Ryan Mckeever
d95423686f pan/format: Add PAN_BIND_STORAGE_IMAGE flag
The HW does not support STORAGE_IMAGE for all formats that can be sampled
or used as render targets. The HW does not support STORAGE_TEXEL_BUFFER
for all formats that can be used as render targets.

Signed-off-by: Ryan Mckeever <ryan.mckeever@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33787>
2025-04-15 21:30:41 +00:00
Ryan Mckeever
b9a9798c46 pan/format: Update format flags to follow HW spec
Fixes: 861e7dca ("panfrost: Switch formats to table")

Signed-off-by: Ryan Mckeever <ryan.mckeever@collabora.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33787>
2025-04-15 21:30:41 +00:00
Faith Ekstrand
58321cf2e5 nak: Add stubs for Fermi and Kepler A
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34536>
2025-04-15 16:04:10 -05:00
Faith Ekstrand
c0cd01241a nak: Add stubs for Kepler B
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34536>
2025-04-15 16:04:10 -05:00
Faith Ekstrand
af6093a712 nak/legalize: Add a helper for lowering ineg
This is similar to the helper we have for lowering float modifiers.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34536>
2025-04-15 16:04:09 -05:00
Faith Ekstrand
d16e75e55f nak: Lower texture inputs for Kepler B
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34535>
2025-04-15 20:02:52 +00:00
Faith Ekstrand
9c5a0eca95 nak: Add False and True to IntCmpOp
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34535>
2025-04-15 20:02:52 +00:00
Faith Ekstrand
eb4fb70bae nak: Add a plop2 test
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34535>
2025-04-15 20:02:52 +00:00
Faith Ekstrand
e84f210362 nak/hw_tests: Feed predicate/carry sources with 0/1 data
Instead of doing the &1 on the GPU, do it on the CPU.  This saves an
instruction and also makes things easier to debug.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34535>
2025-04-15 20:02:51 +00:00
Erik Faye-Lund
26a4a2ee18 docs/panvk: add missing new features
We missed these from the release notes, let's add them.

Fixes: fbb2805575 ("panvk: Advertise KHR_dynamic_rendering_local_read support")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34525>
2025-04-15 20:54:09 +02:00
Erik Faye-Lund
c6025f6cb6 docs/panvk: document EXT extension aswell
We're supporting both, let's mention both in the release notes.

Fixes: 4fabd37a3c ("panvk: enable KHR_line_rasterization support")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34525>
2025-04-15 20:53:55 +02:00
Erik Faye-Lund
469985cfa4 docs/panvk: document ycbr in terms of extensions
We usually document these features in terms of extensions when they
exist, so let's do that here too.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34525>
2025-04-15 20:53:55 +02:00
Erik Faye-Lund
37e75da005 docs/panvk: add VK_-prefix for extension name
We're using the VK_-prefix elsewhere, let's be consistent.

Fixes: d4797b8ab7 ("panvk: enable KHR_spirv_1_4 on v10+")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34525>
2025-04-15 20:53:55 +02:00
Erik Faye-Lund
d5fce25fb0 docs/panvk: fixup docs around float controls
We both misnamed the extension, and missed the v10+ detail for the
second version.

Fixes: 22fa3e88dd ("panvk: advertise VK_KHR_float_controls2")
Fixes: 7612dc4713 ("panvk: advertise VK_KHR_shader_float_controls")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34525>
2025-04-15 20:53:55 +02:00
Erik Faye-Lund
68669ba0c1 docs/panvk: remove disabled extension
We ended up reverting this one, let's remove it from the release notes
and features.txt.

Fixes: 305925c439 ("panvk: disable VK_KHR_shader_quad_control")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34525>
2025-04-15 20:53:55 +02:00
Erik Faye-Lund
4efb1dac6b docs/panvk: fixup extension support
This extension is now only supported on PanVK/v10+

Fixes: 23c0d64e24 ("panvk: disable VK_EXT_image_drm_format_modifier for arch < 10")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34525>
2025-04-15 20:53:55 +02:00
Erik Faye-Lund
790093f625 panvk: enable dualSrcBlend
This is already implemented, we just didn't report it.

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34520>
2025-04-15 18:34:36 +00:00
Aleksi Sapon
9301b7098a llvmpipe: improve aniso filtering
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34438>
2025-04-15 18:03:22 +00:00
Eric Engestrom
54bcfb4c1f ci/deqp: fix vulkan video build
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34532>
2025-04-15 17:23:05 +00:00
Eric Engestrom
05926cc68b ci: fix image tags indentation
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34532>
2025-04-15 17:23:05 +00:00
David Rosca
f87759d537 radeonsi/video: Remove cs argument from si_video_resize_buffer
Not needed anymore.

Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34477>
2025-04-15 16:58:59 +00:00
David Rosca
996dbe0ba3 radeonsi/uvd,vce: Don't try to flush cs from buffer_map
There is nothing to do on cs flush anyway. Also remove the dummy
flush callback.

Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34477>
2025-04-15 16:58:59 +00:00
David Rosca
d12f2c65b1 radeonsi/vcn: Don't try to flush cs from buffer_map
There is nothing to do on cs flush anyway. Also remove the dummy
flush callback.

Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34477>
2025-04-15 16:58:59 +00:00
David Rosca
ee4d7e98d5 radeonsi/vpe: Don't try to flush cs from buffer_map
cs flush callback is NULL so this will crash when the buffer_map ends
up needing to flush the cs.

Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34477>
2025-04-15 16:58:59 +00:00
Mary Guillemard
e82e72b5b7 panvk: Fix inverted ZS read flags in DCD2 on v11+
Those flags are negative so it should have been the opposite (no read)

Fixes: 9b4886d6f4 ("panvk: Implement Z/S dependency tracking on v11+")
Signed-off-by: Mary Guillemard <mary.guillemard@collabora.com>
Reported-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34528>
2025-04-15 16:20:47 +00:00
Eric Engestrom
904052a9d8 docs/ci: follow convention of only running jobs by default for Marge
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Because `alpine/x86_64_build` references these rules, this commit fixes
that job as well.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34469>
2025-04-15 15:14:50 +00:00
Eric Engestrom
ddeaa10bfc docs/ci: split pre-merge & merge pipeline rules
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34469>
2025-04-15 15:14:50 +00:00
Eric Engestrom
6922ef5294 docs/ci: add comment explaining what that long rule actually does
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34469>
2025-04-15 15:14:50 +00:00
Eric Engestrom
bda8692b95 docs/ci: add link to the website preview for convenience
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34469>
2025-04-15 15:14:50 +00:00
Eric Engestrom
33f82078e0 docs/ci: replace deprecated pages job with pages: true
See https://docs.gitlab.com/ci/yaml/#pages

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34469>
2025-04-15 15:14:50 +00:00
Alyssa Rosenzweig
618409a934 agx: switch to common LOD bias lowering
only functional change is a slight instr count regression for cube map txd
because of pass ordering but lol.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34507>
2025-04-15 14:10:50 +00:00
Alyssa Rosenzweig
d53ad63c66 hk: handle lod/min_lod size mismatch
can be hit with the new lod bias lowering.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34507>
2025-04-15 14:10:50 +00:00
Alyssa Rosenzweig
63eb27d166 nir: add sampler LOD bias lowering
this is a cleaned up version of the lowering originally written for asahi, moved
to common code so it can be shared with an upcoming Vulkan implementation (not
honeykrisp).

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34507>
2025-04-15 14:10:50 +00:00
Alyssa Rosenzweig
9de7ea875d nir: handle mismatched bias/lod bitsizes
the sampler lod bias lowering uses fp16 for perf on AGX.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34507>
2025-04-15 14:10:49 +00:00
Alyssa Rosenzweig
2e15b42eec nir: unvendor lod_bias(_agx)
this will be useful for other backends.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34507>
2025-04-15 14:10:49 +00:00