Commit graph

205134 commits

Author SHA1 Message Date
Lionel Landwerlin
b8a80c88cb brw: improve VUE printout
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34109>
2025-05-08 06:48:34 +00:00
Lionel Landwerlin
4f10a1f618 anv: switch to brw helpers to figure out if a fragment is dynamic
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34109>
2025-05-08 06:48:34 +00:00
Lionel Landwerlin
cb461fa287 anv: switch to use the tcs_prog_data for dynamic input vertices
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34109>
2025-05-08 06:48:34 +00:00
Lionel Landwerlin
7f500cc6e4 brw: store input_vertices on tcs_prog_data
Will allow the driver to know if the vertices count is dynamic.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34109>
2025-05-08 06:48:34 +00:00
Lionel Landwerlin
a9ee498347 brw: add helpers to check if a fragment shader execution is dynamic
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34109>
2025-05-08 06:48:34 +00:00
Lionel Landwerlin
4717382f84 anv: lower input vertices for TCS unconditionally
Take the opportunity to reuse the backend pass.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34109>
2025-05-08 06:48:34 +00:00
Lionel Landwerlin
119ef792c5 anv: remove tbimr workaround check
Already handled by having a special range created

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34109>
2025-05-08 06:48:34 +00:00
Lionel Landwerlin
99580a815f compiler: add VARYING_BIT_PRIMITIVE_INDICES
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34109>
2025-05-08 06:48:34 +00:00
Lionel Landwerlin
07303c3fbc compiler: add VARYING_BIT_CULL_PRIMITIVE
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34109>
2025-05-08 06:48:34 +00:00
Ella Stanforth
b3cc871b7c v3d/compiler: remove requirement for format information for fbfetch
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34742>
2025-05-08 06:25:22 +00:00
Ella Stanforth
9a71e6dcc2 v3d/compiler: use mask for 16bit and 32bit return values
There are only ever two possibilities here so lets use a mask.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34742>
2025-05-08 06:25:22 +00:00
Ella Stanforth
bb07364c54 v3d/compiler: remove num_samplers_used from shader key
This is only ever used by assertions.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34742>
2025-05-08 06:25:22 +00:00
Ella Stanforth
01d0ccd664 v3d/compiler: remove unused texture swizzle
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34742>
2025-05-08 06:25:22 +00:00
Ella Stanforth
76e27d2d0d v3d/compiler: remove return_channels from the shader key
This isn't used anywhere.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34742>
2025-05-08 06:25:22 +00:00
Ella Stanforth
b39fc710ee v3d/compiler: remove int/uint tracking
We don't need this anymore as we do not support anything older than 4.2.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34742>
2025-05-08 06:25:22 +00:00
Jesse.Zhang
d8624e6a79 winsys/amdgpu: Add support for queue priority in Mesa
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
This patch adds support for queue priority levels in Mesa's AMDGPU winsys layer.
The changes include:

1. Updated ac_drm_create_userqueue() to accept and pass through flags parameter
2. Modified amdgpu_userq_init() to use the flags when creating queues
3. Added flags field to amdgpu_userq struct to store priority settings
4. Updated header definitions to match kernel UAPI changes

This aligns with the kernel changes provided by Alex:
https://lists.freedesktop.org/archives/amd-gfx/2025-April/122782.html
https://lists.freedesktop.org/archives/amd-gfx/2025-April/122780.html
https://lists.freedesktop.org/archives/amd-gfx/2025-April/122786.html

v2: We only need 1 normal priority queue and 1 TMZ normal priority queue.(Marek Olšák)
v3: Simplified to only support normal priority queues
v4: use a local variable instead of being in struct amdgpu_userq.(Marek Olšák)
v5: rebase the latest main branch.

Signed-off-by: Jesse.Zhang <Jesse.zhang@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34568>
2025-05-08 04:29:29 +00:00
Marek Olšák
870d17012a ac: adjust maximum HS workgroup size
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
This has no effect on triangles because max 64 patches implied max 192
threads, but it improves performance for cases when the number of threads
per patch is > 3.

This improves the score for gfxbench5 "gl_tess_off" (offscreen) by 11%
on Navi48.

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34863>
2025-05-08 02:54:13 +00:00
Marek Olšák
b960137ebf aco: remove unused aco_shader_info::tcs_offchip_layout
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34863>
2025-05-08 02:54:13 +00:00
Marek Olšák
f6b3c2c97a radeonsi: remove dead gfx12 tess code from a gfx6-11 function
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34863>
2025-05-08 02:54:13 +00:00
Marek Olšák
dfc3c1135c ac/nir/tess: don't pass nir_intrinsic_instr to hs_output_lds_offset
It will be used without intrinsics.

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34863>
2025-05-08 02:54:13 +00:00
Marek Olšák
4bbe497d9b ac/nir/tess: don't pass nir_intrinsic_instr to VMEM IO calc helpers
These will be used without intrinsics.

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34863>
2025-05-08 02:54:13 +00:00
Marek Olšák
360494f50d ac/nir/tess: remove unused variables
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34863>
2025-05-08 02:54:12 +00:00
Marek Olšák
f58c0cbb6a nir: split *_accessed_indirectly* bitmasks into *_read/written_indirectly*
for AMD

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34863>
2025-05-08 02:54:12 +00:00
Marek Olšák
afd8fefb79 nir: add shader_info::tess::tcs_cross_invocation_outputs_written
for AMD

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34863>
2025-05-08 02:54:12 +00:00
Emma Anholt
f45356f4ac tu/perfetto: Forward VkDebugUtilsObjectNameInfoEXT to perfetto.
This gets us names on zink/wsi command buffers in perfetto, but may also
be useful some day for getting app names onto framebuffers and non-dynamic
renderpasses.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22350>
2025-05-08 01:21:25 +00:00
Emma Anholt
e0355b926d tu/perfetto: Move "have we already sent initial state?" into the helper.
I'm going to have to send initial state from another function too, shortly.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22350>
2025-05-08 01:21:25 +00:00
Emma Anholt
131284b943 tu/perfetto: Attach VkCommandBuffer handles to the GPU events.
All of the GPU renderstage events show a command buffer id/name field in
the UI (default 0/NULL), so let's get it filled with something useful.
This will also be used by perfetto's trace processor for associating
object names with cmdbuf executions.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22350>
2025-05-08 01:21:25 +00:00
Emma Anholt
7c130e5dcf intel/ds: Fix formatting of stage index.
draws had been bumped to stage #10, so they ended up appearing nested
between frame (#1) and cmdbuf (#2), instead of nested under them.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22350>
2025-05-08 01:21:25 +00:00
Emma Anholt
4cc66123ec anv/ds: Forward VkDebugUtilsObjectNameInfoEXT to perfetto.
This gets us names on zink/wsi command buffers in perfetto, but may also
be useful some day for getting app names onto framebuffers and non-dynamic
renderpasses.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22350>
2025-05-08 01:21:25 +00:00
Emma Anholt
b47a6a5418 perfetto: Add helpers for passing VkDebugUtilsObjectNameInfoEXT to perfetto.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22350>
2025-05-08 01:21:25 +00:00
Emma Anholt
55d788f434 anv/ds: Associate the VkCommandBuffer some anv-only renderstage events.
This means the perfetto UI will have a non-zero/NULL handle/name in the UI
on these renderstages.  Unfortunately, intel/ds is outside of vulkan so
unless we pull in anv headers, we can't just pass in the anv_cmd_buffer.
This also means it would be much more painful to pass the cmd buffer to
the rest of the events, so they'll still have unset command buffers.
Still, being able to see the name of the command buffer in at least one of
the events should be useful once that's glued together.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22350>
2025-05-08 01:21:25 +00:00
Emma Anholt
f873b15a48 perfetto: Allow tracepoint args to map to native perfetto fields.
Previously, our args all had to be an extra_data name/value pair.  But
some fields we want to set (such as Vulkan object names) will be a
set_fieldname() call directly.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22350>
2025-05-08 01:21:25 +00:00
Emma Anholt
546a100f26 intel/ds: Move "have we already sent initial state?" into the helper.
I'm going to have to send initial state from another function too, shortly.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22350>
2025-05-08 01:21:25 +00:00
Emma Anholt
ccfc3b5c12 perfetto: Move the debug_markers to the incremental state.
You need to re-emit name interning when incremental state is lost, so this
is the right home for the HT of "have we interned this name?".  The
emitter function is still on the datasource because it needs the
templating to get the tracecontext type, but now getting the locked
datasource is not really necessary other than being way more ergonomic
than repeating the template parameters.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22350>
2025-05-08 01:21:25 +00:00
Emma Anholt
dd81420ef1 perfetto: Create a common MesaRenderpassIncrementalState.
... and explain what its role is.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22350>
2025-05-08 01:21:25 +00:00
Emma Anholt
82656de029 zink: Add debug names to our command buffers.
This will be nice when debugging multiple sources of command buffers on a
system to see who's responsible.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22350>
2025-05-08 01:21:25 +00:00
Emma Anholt
188bd800c2 wsi: Label the WSI blit command buffer with a name.
Given that the command buffer will be long-lived, no reason not to just do
this so that debugging tools can see what the cmdbuf is doing.

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22350>
2025-05-08 01:21:25 +00:00
Timothy Arceri
600892802d mesa: fix color material tracking
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
f6c8ca06 changed this code to only set color materials mask when
the VERT_BIT_COLOR0 bit is set instead of when color material
is enabled. But this meant we always skipped over the
STATE_CURRENT_ATTRIB values.

Fixes: f6c8ca06f6 ("mesa: fix material inputs in ffvertex_prog.c")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7122
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34833>
2025-05-08 00:31:29 +00:00
Alyssa Rosenzweig
92f553bcff vtn: remove spurious texel buffer warning
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
The spec text here is:

   Image Type must be an OpTypeImage. It is the type of the image in the
   combined sampler and image type. It must not have a Dim of SubpassData.
   Additionally, starting with version 1.6, it must not have a Dim of Buffer.

For older SPIR-V versions, there is no analogous requirement. It is implicitly
valid to use a Dim of Buffer (even though it doesn't make much sense). Should
apps do it anyway? Probably not, but it doesn't matter and they do.
glslang considers this requirement relevant only for 1.6+:

   if (glslangIntermediate->getSpv().spv >= glslang::EShTargetSpv_1_6 &&
       texType.getSampler().isBuffer()) {
       // SamplerBuffer is not supported in spirv1.6 so
       // `samplerBuffer(textureBuffer, sampler)` is a no-op
       // and textureBuffer is the result going forward
       constructed = arguments[0];
   } else
       constructed = builder.createOp(spv::OpSampledImage, resultType(), arguments);

That means SPIR-V with an older declared version will warn even with a glslang
new enough to know about the 1.6 requirement. That includes a *lot* of SPIR-V's
built with the CTS.

I see no compelling reason to keep the warning for older than 1.6. Removing the
spurious warning silences a *huge* amount of noise from dEQP-VK (plus a bit from
KHR-GL46). In exchange I see very little tradeoff, it's not really our job to
lint for best practices not in the spec.

I see two viable options:

1. Try to convince the whole ecosystem outside of Mesa to pivot to our pedantic
   reading of the spec and get them to update all the old SPIR-V binaries in the
   wild, in the case of CTS being changed at the glslang level and then
   trickling down into CTS.
2. Merge this patch, simplifying Mesa and immediately forget about this forever.

I'm spending all my FOSS political capital on kernel upstreaming so I have a
strong preference for #2, aka hitting Marge on this MR and then moving on with
all of our lives.

("Ignore the problem and make deqp-runner annoying to use" is the secret 3rd
option I'd rather not do.)

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34847>
2025-05-07 22:26:02 +00:00
Martin Roukala (né Peres)
809cb17ce6 panfrost/ci: document new t860 flakes
They have been preventing merges, so documenting them in the hope that
the next attemot will be more successful.

Signed-off-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34795>
2025-05-07 21:02:16 +00:00
Eric Engestrom
d7743ac71f ci/ci-tron: uprev b2c to 0.9.15.1
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34795>
2025-05-07 21:02:16 +00:00
Eric Engestrom
2db1f908f9 radv/ci: rename .test-radv to .ci-tron-test-radv
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34795>
2025-05-07 21:02:16 +00:00
Martin Roukala (né Peres)
26e35d538a ci: rename all the .b2c- jobs into .ci-tron-
We named these jobs like this despite b2c being an implementation
detail because we did not have a name for this bare-metal infra.

Now that we do (CI-Tron), let's rename the jobs to remove the
confusion.

Co-authored-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34795>
2025-05-07 21:02:16 +00:00
Eric Engestrom
240ac9f2b9 radv/ci: set swap size for all amd jobs to 16g
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34795>
2025-05-07 21:02:16 +00:00
Eric Engestrom
7e32fdceba radv/ci: increase swap size on kabini to 16g
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34795>
2025-05-07 21:02:16 +00:00
Eric Engestrom
909d41ef89 ci/build: stop uploading python-artifacts to gitlab artifacts
Everyone uses the S3 bucket for artifacts now.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34795>
2025-05-07 21:02:16 +00:00
Eric Engestrom
a8e282b0c0 ci/ci-tron: print all the variables
This makes it easier to debug inheritance issues like the one fixed
earlier in this series, and makes it easier to reproduce a job without
needing more than looking at the job log.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34795>
2025-05-07 21:02:15 +00:00
Eric Engestrom
f4d2b2a060 ci/ci-tron: add check that the required variables are set
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34795>
2025-05-07 21:02:15 +00:00
Martin Roukala (né Peres)
37ace710fa ci/ci-tron: switch to the upstream ci-tron template
Up until now, every project using CI-Tron had to write their own job
submission flow because CI-Tron itself was not providing any official
way of interacting with it via GitLab.

This however changed, and the solution is vastly superior to what we
have been using in Mesa:

 * Ability to pass all the environment variables of the job to the DUT,
   so no need to remember to add variables in
   `export-gitlab-job-env-for-dut.sh` anymore

 * No dependency on Mesa code, which means no need to wait on
   python-artifacts and the ability to replicate a run by just copying
   the job description outputted by the job \o/

 * Ability to have as many initrd, HTTP, and TFTP artifacts as wanted

 * Ability to expose a variable through a TFTP/HTTP endpoint or as an
   initrd

 * Ability to overwrite the platform environment (machine-specific FW)

 * Ability to have as many kernel cmdline variables, all merged when
   generating the final cmdline. This makes it easy to share some
   snippets of cmdline between jobs

Transitioning from the custom to the generic template is however pretty
involved. This commit does the minimum changes needed to switch to the
new model, often simply replacing the B2C_ prefix with CI_TRON_.

Further renaming of "b2c" prefixes into "ci-tron" is left for future
commits.

Co-authored-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34795>
2025-05-07 21:02:15 +00:00
Eric Engestrom
a062f0dd3d zink+turnip/ci: fix inheritance/override order
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34795>
2025-05-07 21:02:15 +00:00