Commit graph

3110 commits

Author SHA1 Message Date
Iago Toral Quiroga
2a0d196abf v3dv: switch timestamp queries to using BO memory
Signed-off-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Maíra Canal <mcanal@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448>
2023-12-14 16:43:13 +00:00
Maíra Canal
e404ccba5b v3dv: use the indirect CSD user extension
The indirect CSD user extension allows the creation of a CSD
job linked to a CPU job. When we submit the CPU job, the CPU job
will run when the indirect CSD dependency is completed, map the
indirect buffer to read the CSD dispatch parameters and reconfigure
the CSD job accordingly.

Using the indirect CSD user extension, allows us to use the multisync
user extension to synchronize this type of job, which is not currently
possible from user-space without stalling.

Signed-off-by: Maíra Canal <mcanal@igalia.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448>
2023-12-14 16:43:13 +00:00
Maíra Canal
b1134775e0 v3dv: create a CPU queue type
We will be introducing a new type of queue, a CPU queue. This queue will
be responsible for handling the CPU jobs, such as timestamp queries and
indirect CSD dispatch.

Therefore, add a CPU queue to the enum v3dv_queue_type and its
respective barrier.

Signed-off-by: Maíra Canal <mcanal@igalia.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448>
2023-12-14 16:43:13 +00:00
Maíra Canal
e162308298 v3dv: check CPU queue availability
Include a check to assure that the kernel driver supports the CPU queue.
Also, indicate that, currently, the simulator doesn't have support for
the CPU queue.

Signed-off-by: Maíra Canal <mcanal@igalia.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448>
2023-12-14 16:43:13 +00:00
Maíra Canal
d2a6383c64 v3dv: allow set_multisync() to accept more wait syncobjs
Currently, set_multisync() doesn't allow using external syncobjs as
in_syncs objects in the multisync extension. Add the possibility to use
external syncobjs as in_syncs. This will ease the synchronization of CPU
jobs, as they sometimes depend on external syncobjs, such as
query availability syncobjs.

Signed-off-by: Maíra Canal <mcanal@igalia.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448>
2023-12-14 16:43:13 +00:00
Maíra Canal
f01d702d4a v3dv: allow different in/out sync queues
Allow in syncs and out syncs to be configured based on different queues.

Signed-off-by: Maíra Canal <mcanal@igalia.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448>
2023-12-14 16:43:13 +00:00
Maíra Canal
3a3acac8c5 v3dv: move multisync functions to the beginning of the file
With the support of CPU jobs by the kernelspace, now the CPU job
functions will also use the multisync extension. Therefore, move the
multisync functions to the beginning of the file to allow the CPU job
functions to call them.

Signed-off-by: Maíra Canal <mcanal@igalia.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26448>
2023-12-14 16:43:13 +00:00
Chris Spencer
30788edbcc v3dv/android: Only limit advertised Vulkan version in strict mode
Signed-off-by: Chris Spencer <spencercw@gmail.com>
Acked-by: Chia-I Wu <olvaffe@gmail.com>
Acked-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25101>
2023-12-13 20:09:37 +00:00
Iago Toral Quiroga
205938cd39 v3dv: disallow image stores on VK_KHR_DISPLAY surfaces
Display surfaces must be linear and V3D can only do linear TMU access
for 1D images. This would also restrict sampling usages, however, we
can currently work around those in the driver at a performance penalty.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10268
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26647>
2023-12-13 06:17:15 +00:00
Iago Toral Quiroga
6b89c71c90 broadcom: fix scheduling dependencies for SETMSF instruction
We use SETMSF to implement discard, so we need to ensure that any
TMU writes after a SETMSF don't actually execute. We emit a TMU flush
before a discard but we also need to ensure that the QPU scheduler
honors this.

Fixes some tests in dEQP-VK.spirv_assembly.instruction.terminate_invocation.*
when we expose the extension that would otherwise fail because the
QPU scheduler would incorrectly move some image writes emitted after a SETMSF
before the SETMSF instruction.

Also fixes spec@arb_shader_atomic_counters@fragment-discard

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26631>
2023-12-12 12:58:42 +00:00
Yonggang Luo
8fa16452ba broadcom/compiler: remove include of gallium headers from meson.build
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26579>
2023-12-12 10:03:11 +00:00
Yonggang Luo
238a9ef5ff broadcom/(compiler,common): avoid include of gallium headers in header files
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26579>
2023-12-12 10:03:10 +00:00
Eric Engestrom
b0ad9995d6 v3dv/ci: only trigger on relevant changes
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26597>
2023-12-08 22:19:50 +00:00
Eric Engestrom
7301327f9c broadcom/ci: avoid running the rpi4 jobs when changing the rpi3 expectations, and vice-versa
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26256>
2023-12-07 18:44:03 +00:00
Yonggang Luo
e5ebd59dd5 broadcom: remove unused headers include
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26571>
2023-12-07 17:22:47 +00:00
Yonggang Luo
35133551e1 broadcom/compiler: remove unused blend in v3d_fs_key
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26571>
2023-12-07 17:22:47 +00:00
Yonggang Luo
575c4f6802 broadcom/compiler: Use correct type pipe_logicop for logicop_func in struct v3d_fs_key
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26570>
2023-12-07 16:36:50 +00:00
Yonggang Luo
0eaf200974 v3dv: Use correct type VkStencilOp in function translate_stencil_op
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26570>
2023-12-07 16:36:50 +00:00
Eric Engestrom
90a77f55de ci: drop containers, builds, and tests from post-merge pipeline
All these jobs are redundant and a waste of resources:
- the containers have already been built & pushed in the merge pipeline
- the mesa build variants have already all passed
- the driver tests have already all passed

None of these jobs are doing anything useful in this pipeline, but it
costs a factor of 2x to our infrastructure, so let's remove them.

In other words, the only job left in the post-merge pipeline is the
`pages` job that deploys the update to the website.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26451>
2023-12-06 08:26:04 +00:00
Eric Engestrom
38ce0c1747 v3dv: drop duplicate flag
`VK_PIPELINE_STAGE_2_TRANSFER_BIT` is the old name for
`VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT` which is already on the next
line; drop the duplicate.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26485>
2023-12-04 04:13:39 +00:00
Eric Engestrom
1e03ac324f v3dv: update symbols that have become aliases for newer ones
All of these have been renamed in the spec (usually by being promoted);
renamed them in our code too.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26485>
2023-12-04 04:13:39 +00:00
Juan A. Suarez Romero
a181c86e73 broadcom/ci: separate hiden jobs to -inc.yml files
make it easier to re-use the hidden jobs by other project (e.g. linux)
without enabling the executable jobs.

Inspired on 9442571664 ("ci: separate hiden jobs to -inc.yml files").

Acked-by: David Heidelberg <david.heidelberg@collabora.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26350>
2023-11-24 15:09:30 +00:00
Eric Engestrom
4de3ce1f2c ci/piglit: specify only the traces file in the job config
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26278>
2023-11-20 15:23:40 +00:00
Alejandro Piñeiro
8191acd41e broadcom/compiler: update image store lowering to use v71 new packing/conversion instructions
Vulkan shaderdb stats with pattern dEQP-VK.image.*.with_format.*.*:
   total instructions in shared programs: 35993 -> 33245 (-7.63%)
   instructions in affected programs: 21153 -> 18405 (-12.99%)
   helped: 394
   HURT: 1
   Instructions are helped.

   total uniforms in shared programs: 8550 -> 7418 (-13.24%)
   uniforms in affected programs: 5136 -> 4004 (-22.04%)
   helped: 399
   HURT: 0
   Uniforms are helped.

   total max-temps in shared programs: 6014 -> 5905 (-1.81%)
   max-temps in affected programs: 473 -> 364 (-23.04%)
   helped: 58
   HURT: 0
   Max-temps are helped.

   total nops in shared programs: 1515 -> 1504 (-0.73%)
   nops in affected programs: 46 -> 35 (-23.91%)
   helped: 14
   HURT: 2
   Inconclusive result (%-change mean confidence interval includes 0).

FWIW, that one HURT on the instructions count is for just one
instruction.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25726>
2023-11-20 08:20:31 +00:00
Erico Nunes
898700ca64 v3dv: Rework to remove drm authentication for wsi
For Wayland wsi allocations, v3dv used the wl_drm protocol, which is now
being phased out in favor of dmabuf feedback.
wl_drm is used to figure out the display device (in v3dv assumed to be
vc4) and then to authenticate with the Wayland compositor in order to
allocate scanout-able buffers (in this case, dumb buffers) directly at
the display device.
Recent commit 88c03ddd34 changed the behavior of the wsi code, and
wl_drm is now passing the render device instead, which broke Wayland
wsi.
It turns out that the authentication code is not really needed and since
we would like to remove wl_drm usage and the master device is assumed to
be vc4 anyway, we can just remove some unneeded device-specific wsi code
and get Vulkan Wayland wsi back to work.

Fixes: 88c03ddd34 ("egl/drm: get compatible render-only device fd for kms-only device")

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26200>
2023-11-19 17:00:49 +00:00
David Heidelberg
1eff68dd2a ci/traces: drop the freedoom-phase2-gl-high.trace
See https://gitlab.freedesktop.org/mesa/mesa/-/issues/8080#note_2154467

Fixes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8080
Cc: mesa-stable
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26199>
2023-11-15 12:56:01 +00:00
Maíra Canal
4d95b4861e v3dv: implement VK_EXT_multi_draw
Implement the Vulkan extension VK_EXT_multi_draw. It was tested with
deqp-vk -n dEQP-VK.draw.*multi_draw*.

Signed-off-by: Maíra Canal <mcanal@igalia.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26138>
2023-11-14 06:20:21 +00:00
Eric Engestrom
c5ccd55a8e v3d/ci: add new failures
Possibly a regression from 56451ce773 ("v3d: Don't implicitly
clear the content of the imported buffer"), but not bisected to confirm.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26176>
2023-11-13 16:10:41 +00:00
Eric Engestrom
282ba9a467 v3d/ci: run manual jobs in daily pipeline
Fixes: f2dfb0f6ee ("broadcom: use `.never-post-merge-rules` for all rpi tests")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26093>
2023-11-07 16:58:36 +00:00
David Heidelberg
5e44cee47d ci: inject gfx-ci/linux S3 artifacts without rebuilding containers
We need update kernel often. We need test kernel changes often.

Introduced `KERNEL_EXTERNAL_TAG` to differ between `KERNEL_TAG` which is
also used to rebuild the containers. We don't need rebuild containers
for the external kernel, so this way we don't have to.

Updating kernel goes wruuuuuum.

Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23563>
2023-11-07 12:22:09 +00:00
Eric Engestrom
ac342f6851 rpi4/ci: skip more timing out tests in the dEQP-VK.ssbo.layout.* group
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25975>
2023-11-06 12:45:50 +00:00
Eric Engestrom
208f94f7ec vc4/ci: add piglit "full run" variant of vc4-rpi3-gl:arm32 as a manual job
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25975>
2023-11-06 12:45:50 +00:00
Eric Engestrom
4c00cff2d2 v3dv/ci: add "full run" variant of v3dv-rpi4-vk:arm64 as a manual job
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25975>
2023-11-06 12:45:50 +00:00
Eric Engestrom
725a4338fc v3d/ci: add "full run" variant of v3d-rpi4-gl:arm64 as a manual job
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25975>
2023-11-06 12:45:50 +00:00
Eric Engestrom
85ecf9d487 v3dv/ci: add manual variant of .v3dv-rules
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25975>
2023-11-06 12:45:49 +00:00
Eric Engestrom
8ca683fb12 vc4/ci: add manual variant of .vc4-rules
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25975>
2023-11-06 12:45:49 +00:00
Eric Engestrom
8803d6d9d9 broadcom/ci: split broadcom-common manual rules to .broadcom-common-manual-rules
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25975>
2023-11-06 12:45:49 +00:00
Eric Engestrom
692b779f67 broadcom/ci: fix list indentation
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25975>
2023-11-06 12:45:49 +00:00
Eric Engestrom
9349b7d2fb broadcom/ci: merge gl test lists to use a single deqp instance
This makes the config file easier to read, and also shaves 5-10 seconds
of deqp-run per job, but that's cancelled out by all the random network
delays of everything else in the job so we'll never actually notice the
difference.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26039>
2023-11-06 11:13:10 +00:00
Juan A. Suarez Romero
9bdee8cd39 vc4/ci: comment why piglit is disabled
We disabled piglit testsuite some time ago because it is causing GPU
hangs from time to time, and we didn't find out yet what are the tests
causing such issue.

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26021>
2023-11-04 02:41:21 +00:00
Eric Engestrom
c826f70c37 rpi4/ci: remove spec@!opengl 1.1@depthstencil-default_fb-drawpixels-32f_24_8_rev samples=2 from fails as it's a flaky test and already marked as such
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25974>
2023-11-03 20:57:31 +00:00
Eric Engestrom
ed90430027 rpi4/ci: move spec@!opengl 1.1@depthstencil-default_fb-drawpixels-24_8 samples=2 from fails for flakes after an UnexpectedPass
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25974>
2023-11-03 20:57:31 +00:00
Eric Engestrom
9f281899dc rpi4/ci: add more known dEQP-EGL.functional.*.*_context.gles*.other failures
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25974>
2023-11-03 20:57:31 +00:00
Jesse Natalie
228329f4da vulkan: Consolidate common ICD methods
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25998>
2023-11-03 20:01:14 +00:00
Jesse Natalie
32f0034ec9 vulkan: Remove no-longer-needed prototypes for ICD entrypoints
The comment around these is no longer true, vk_icd.h does in fact
have prototypes for these functions.

Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25998>
2023-11-03 20:01:14 +00:00
Connor Abbott
2313a517d2 v3d/ci: Remove minetest trace
For the same reason as the previous commit. For examples of commits
causing spurious changes see 8019a1b9 and d89ca14e.

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25864>
2023-11-02 21:46:55 +00:00
Faith Ekstrand
2db20af82e v3d: Stop assuming glsl_get_length() returns 0 for vectors
Checking for whether or not it's a plain vector is actually what we want
anyway. There's no point in handling arays of length 1.

Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22580>
2023-11-02 20:28:46 +00:00
Alejandro Piñeiro
87a673cac4 broadcom/cle: rename xml files
This has been confusing for some time, as from a xml file with the
suffix v33 (so suggesting just one version) we were generating the
headers for v33, v40, v41 and v71.

So now there is a header for the vc4 driver, and one header for the
v3d/v3dv (so v3d "platform") drivers.

FWIW, this means that now the name of the original xml and the header
files generated doesn't maintain a so similar pattern, but again the
equivalence were not there anyway.

Acked-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25851>
2023-11-02 11:59:08 +01:00
Alejandro Piñeiro
9c4829473a broadcom/cle: remove v33 and v41 from xml definition
For the case of v41 is mostly update to v42.

Acked-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25851>
2023-11-02 11:59:08 +01:00
Alejandro Piñeiro
e9fa6c0bc6 broadcom/compiler: set properly lod query
Acked-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25851>
2023-11-02 11:59:08 +01:00