Commit Graph

3104 Commits

Author SHA1 Message Date
Juan A. Suarez Romero fa0a8b8d2c v3d/ci: add new flakes in rpi5
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30438>
2024-07-31 11:50:47 +00:00
Juan A. Suarez Romero 07cd860b52 broadcom/ci: annotate some of the failures
We already know the reason of some of the failures. Let's include the
reason.

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30438>
2024-07-31 11:50:47 +00:00
Eric Engestrom 38ede4334f rpi/ci: shorten the boot timeout to 90 seconds
5 minutes is too long and doesn't leave enough time after the retry to
still complete the job, especially if two boots fail in a row, removing
10 out of the worst-case 20 minutes allowed.

90 seconds is more than enough, the boot output normally starts after
~40-45 seconds.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30409>
2024-07-31 09:01:32 +02:00
Eric Engestrom 1e5fb15afa ci/poe-powered: rename --test-timeout to --test-timeout-minutes to be more explicit
Due to how python's argparse works, anyone anywhere else that would
continue passing `--test-timeout` would not see any change, it will
transparently work for them too.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30409>
2024-07-31 08:58:20 +02:00
Juan A. Suarez Romero 9b1302f80a v3d/ci: enable full run jobs for rpi5
Now that there are more rpi5 devices in the CI, run all the GL/GLES
tests and CL tests nightly.

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/30349>
2024-07-30 15:50:30 +00:00
Juan A. Suarez Romero 3c61489a3e v3d/vc4/ci: add address sanitizer jobs
This runs part of GL and Vulkan tests in vc4/v3d/v3dv with the address
sanitizer enabled to detect memory issues and leaks.

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/30349>
2024-07-30 15:50:30 +00:00
Eric Engestrom ff58f0afbe rpi4/ci: mark fs variant of arb_texture_buffer_object as flaky too
See eg.:
https://gitlab.freedesktop.org/mesa/mesa/-/jobs/61482695
https://gitlab.freedesktop.org/mesa/mesa/-/jobs/61594844

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30404>
2024-07-29 10:06:10 +02:00
Eric Engestrom 79389b9f6f v3d/ci: mark glx@glx-visuals-depth as flaky on rpi4, just like the -stencil variant
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30387>
2024-07-26 20:18:12 +00:00
Eric Engestrom 1337e00a89 v3d/ci: mark spec@amd_performance_monitor@api as flaky on rpi4
It's been failing a lot in the last few days, blocking a bunch of MRs.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30385>
2024-07-26 19:31:56 +02:00
Eric Engestrom f1f8c465d5 vc4,v3d,v3dv: avoid compiling in unused sim_file field in the {vc4,v3d}_screen/v3dv_physical_device struct
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30287>
2024-07-24 19:11:24 +00:00
Eric Engestrom eae740f2e4 v3d,v3dv: simplify USE_V3D_SIMULATOR/using_v3d_simulator logic
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30287>
2024-07-24 19:11:24 +00:00
Eric Engestrom 5577078ac1 v3d,v3dv: figure out whether we're using the simulator only once
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30287>
2024-07-24 19:11:23 +00:00
Eric Engestrom f90d1182e0 v3d,v3dv: reuse dep_v3d_hw from simulator/meson.build
broadcom/simulator/ gets parsed before broadcom/vulkan/ or
gallium/drivers/v3d/ so this is safe.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30287>
2024-07-24 19:11:23 +00:00
Juan A. Suarez Romero c30e5d44b1 v3d/ci: add new flakes
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30337>
2024-07-24 09:19:05 +02:00
Juan A. Suarez Romero 559eaaf0e6 v3d/ci: add failures from piglit all profile
While we don't run this profile in the CI, our expected lists already
have some tests from old days when we run the all profile.

So let's update the list with new failures from this all profile,
allowing us to have a more comprehensive list of failing tests for our
drivers.

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30318>
2024-07-23 16:52:13 +00:00
Karol Herbst bad67ee77c spirv: handle function parameters passed by value
Cc: mesa-stable
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29896>
2024-07-22 21:16:58 +00:00
Eric Engestrom 547de1e928 v3d/ci: mark spec@amd_performance_monitor@vc4 tests as flaky
Turns out it was not fixed, it just happened to pass a bunch of times in
a row, but it actually fails randomly, so mark it as such.

Fixes: 4696e9c49b ("v3d/ci: mark spec@amd_performance_monitor@vc4 tests as fixed")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30290>
2024-07-22 10:56:09 +02:00
Daniel Stone e05415a82e format: Generate endian-independent format aliases
Instead of having a hardcoded list of endian-independent format aliases
in the header, generate them from the format definitions.

Signed-off-by: Daniel Stone <daniels@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29649>
2024-07-19 13:50:42 +00:00
Eric Engestrom 4696e9c49b v3d/ci: mark spec@amd_performance_monitor@vc4 tests as fixed
Fixed by a commit in the range 452fed52..decc040a, but no obvious
candidate stands out.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30259>
2024-07-19 09:11:16 +00:00
Juan A. Suarez Romero 433a0422d5 v3dv: don't leak cache key
The hashtable stores a hash generated from the key, so there is no need
to duplicate the key, as otherwise it is a leak.

Found through address sanitizer.

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30204>
2024-07-18 11:49:07 +00:00
Juan A. Suarez Romero 2d54a605fe v3dv: free temp image created when copying with blit
This fixes a leak that happens when copying a image using blit, and the
image is a compressed one.

In this case a new image view is created that can be re-interpreted to
perform the copy, but was not properly free.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30161>
2024-07-15 11:14:29 +00:00
Juan A. Suarez Romero f8623ea7da v3dv: adversise VK_EXT_depth_clamp_zero_one
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30148>
2024-07-15 09:17:40 +00:00
Eric Engestrom ce7e1e0f7a v3d/ci: add disabled job for CL testing on the RPi5
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30076>
2024-07-15 08:29:36 +00:00
Eric Engestrom 7c40c35b97 v3d/ci: rename "rusticl on v3d" suite to v3d-rusticl
There's nothing rpi4-specific in there, it just tests rusticl on v3d,
and the next commit will do exactly that on the rpi5.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30076>
2024-07-15 08:29:36 +00:00
Eric Engestrom beb05d14ae v3d/ci: add disabled job for GL testing on the RPi5
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30076>
2024-07-15 08:29:36 +00:00
Eric Engestrom 29c4961b53 v3d/ci: include results of CL run in expectations
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30134>
2024-07-12 10:12:38 +00:00
Eric Engestrom 10af395f72 v3d/ci: include results of GL full run in expectations
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30134>
2024-07-12 10:12:38 +00:00
Juan A. Suarez Romero 795b3f83ff v3d/ci: update expected list
Add new failures, and update comments.

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30117>
2024-07-11 09:29:39 +02:00
Juan A. Suarez Romero 2c74872bbc broadcom/ci: update traces for rpi4
Mainly mark some traces as flake.

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/30087>
2024-07-10 10:31:24 +00:00
Juan A. Suarez Romero 4bb564f40d broadcom/ci: add more jobs to test with rpi5
Now that there are more rpi5 in the CI, let's add pre-merge jobs.

This also restrict the nightly job to be executed by devices allocated
to run full runs.

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/30087>
2024-07-10 10:31:24 +00:00
Iago Toral Quiroga bb63b7b802 v3dv: don't lower fsat on V3D 7.x
This requires that our nir options are different across V3D versions
so we can't use a static global any more.

Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30086>
2024-07-10 08:30:21 +02:00
Iago Toral Quiroga 5b1e88760a v3dv: make nir helpers receive nir compiler options from caller
We are about to make a change that will make compiler options
depend on v3d version, so helpers would usually need additional
parameters to retrieve them. Isntead of doing this, we will make
the callers get the options instead and provide them to the
helpers.

Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30086>
2024-07-10 08:30:15 +02:00
Iago Toral Quiroga 33187012ab broadcom/compiler: implement nir_op_fsat
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30086>
2024-07-10 08:29:59 +02:00
Iago Toral Quiroga d62082a131 broadcom/compiler: disallow copy propagation of FMOV exclusive modifiers
Since .sat, .nsat and .max0 are only supported with FMOV we can't copy
propagate an FMOV with any of these unpack modifiers into a different
opcode.

Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30086>
2024-07-10 08:29:50 +02:00
Iago Toral Quiroga fa959c2993 broadcom/compiler: add new float32 unpack modifiers in V3D 7.x
These are only supported with FMOV.

Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30086>
2024-07-10 08:29:40 +02:00
Juan A. Suarez Romero 4581bf595b broadcom: follow version naming convention
We usually name the functions that depend on hardware version as
v3d<version>_foo.

Keep the same convention in QPU and lower_image_load_store, so it makes
easier when searching for versioned functions.

Acked-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30000>
2024-07-08 11:19:31 +00:00
Juan A. Suarez Romero a10957adb6 broadcom/qpu: clean all versions not supported
Right now we only support V3D 4.2 and V3D 7.1, so clean older versions
that were left in the QPU.

Acked-by: Iago Toral Quiroga <itoral@igalia.com>
Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30000>
2024-07-08 11:19:30 +00:00
Eric Engestrom 801ed4d032 ci: simplify setting .no-auto-retry now that it isn't bundled with unrelated rules:
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30004>
2024-07-07 19:31:44 +00:00
Eric Engestrom f37af2ab8c ci: split .no-auto-retry out of .scheduled_pipeline-rules
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30004>
2024-07-07 19:31:44 +00:00
Juan A. Suarez Romero 2a3b983728 broadcom/ci: run some GL tests in arm32 arch
While Raspberry PI OS 64-bit is the suggested version for rpi3 devices
and newers, for older devices like rpi1 to rpi2, which uses the same
GPU, the recommended flavour is 32-bit.

Also, while 64-bit is the recommended version, users can still decide to
use the 32-bit flavour.

Hence, spend a bit of nightly time to run a subset of the OpenGL/ES
tests.

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/30003>
2024-07-03 09:40:04 +00:00
Juan A. Suarez Romero 8554feab0c vc4/ci: run tests in 64-bits
Nowadays the recommended version for Raspberry Pi OS in rpi3 is 64-bits.
Hence, let's run our tests in 64-bits too.

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/30003>
2024-07-03 09:40:03 +00:00
Juan A. Suarez Romero a10ea7cec8 broadcom/ci: remove arch from hardware name
The same device can be run with 32-bits or 64-bits, so no need to
include the arch in the name.

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/30003>
2024-07-03 09:40:03 +00:00
Juan A. Suarez Romero a16d7a0ba4 broadcom/ci: read 32-bit kernel from arm32 path
Makes it clear using arm32 name in contrast to arm64, than armhf.

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/30003>
2024-07-03 09:40:03 +00:00
Eric Engestrom 17c081380d broadcom/ci: disable auto-retry on manual jobs
The v3d manual rules had this line but the vc4 and v3dv ones were
missing it.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29999>
2024-07-03 09:16:16 +00:00
Iago Toral Quiroga 1d418a3419 broadcom/compiler: add missing signal compatibilities for V3D 7.x
total instructions in shared programs: 11281777 -> 11246706 (-0.31%)
instructions in affected programs: 2230213 -> 2195142 (-1.57%)
helped: 11830
HURT: 487
Instructions are helped.

total max-temps in shared programs: 2226424 -> 2225398 (-0.05%)
max-temps in affected programs: 16833 -> 15807 (-6.10%)
helped: 722
HURT: 23
Max-temps are helped.

total sfu-stalls in shared programs: 14894 -> 14977 (0.56%)
sfu-stalls in affected programs: 138 -> 221 (60.14%)
helped: 30
HURT: 112
Inconclusive result (%-change mean confidence interval includes 0).

total inst-and-stalls in shared programs: 11296671 -> 11261683 (-0.31%)
inst-and-stalls in affected programs: 2230218 -> 2195230 (-1.57%)
helped: 11796
HURT: 495
Inst-and-stalls are helped.

total nops in shared programs: 270280 -> 270622 (0.13%)
nops in affected programs: 6492 -> 6834 (5.27%)
helped: 145
HURT: 349
Nops are HURT.

Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29995>
2024-07-03 08:05:37 +02:00
Qiang Yu 3151f5ec47 nir: add filter parameter to nir_lower_array_deref_of_vec
To be used by latter commits to limit the lowering to specific
variables.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29799>
2024-07-03 02:06:56 +00:00
Juan A. Suarez Romero fc286867fb v3dv: fix misalignment in descriptor layout structure
Current memory layout for v3dv_descriptior_set_layout structure is the
following:

```
                                                                  /* offset           size */
type = struct v3dv_descriptor_set_layout {
    struct vk_object_base base;                                   /*   0                64 */
    VkDescriptorSetLayoutCreateFlags flags;                       /*  64                 4 */
    uint32_t binding_count;                                       /*  68                 4 */
    uint32_t bo_size;                                             /*  72                 4 */
    uint16_t shader_stages;                                       /*  76                 2 */
                                                                  /*         PAD 2         */
    uint32_t descriptor_count;                                    /*  80                 4 */
    uint16_t dynamic_offset_count;                                /*  84                 2 */
                                                                  /*         PAD 2         */
    uint32_t ref_cnt;                                             /*  88                 4 */
    struct v3dv_descriptor_set_binding_layout binding[0];         /*  92                32 */
}                               [...]         binding[1];         /* 124                32 */
```

Besides wasting 4 bytes in padding, the main problem is that `binding`
fields are not aligned to 8 bytes (64-bits), which is undefined behaviour
in C.

Just moving `descriptor_count` field below we get the new layout:

```
                                                                  /* offset           size */
type = struct v3dv_descriptor_set_layout {
    struct vk_object_base base;                                   /*   0                64 */
    VkDescriptorSetLayoutCreateFlags flags;                       /*  64                 4 */
    uint32_t binding_count;                                       /*  68                 4 */
    uint32_t bo_size;                                             /*  72                 4 */
    uint16_t shader_stages;                                       /*  76                 2 */
    uint16_t dynamic_offset_count;                                /*  78                 2 */
    uint32_t descriptor_count;                                    /*  80                 4 */
    uint32_t ref_cnt;                                             /*  84                 4 */
    struct v3dv_descriptor_set_binding_layout binding[0];         /*  88                32 */
}                               [...]         binding[1];         /* 120                32 */
```

Which removes the padding requirement, and more important, make the
`binding` pointers to be correctly aligned.

This has been detected by the Undefined Behaviour Sanitizer (UBSan).

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29911>
2024-07-01 08:02:07 +00:00
Juan A. Suarez Romero 9696fd378a v3dv: restrict to channels when encoding border color
Not all the formats have 4 channels, so let's restrict the border
encoding to the number of channels.

This has been detected by the Undefined Behaviour Sanitizer (UBSan).

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29911>
2024-07-01 08:02:07 +00:00
Juan A. Suarez Romero 3ee47dc6d9 v3dv: do not pass NULL pointer to function not expecting NULLs
memcpy() pointers arguments are declared to be non NULL.

This has been detected by Undefined Behaviour Sanitizer (UBSan).

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29911>
2024-07-01 08:02:07 +00:00
Juan A. Suarez Romero 1d71be8e60 v3dv: do not access member of a NULL structure
Check if the structure is NULL before trying to get access to its
members.

This has been detected by the Undefined Behaviour Sanitizer (UBSan).

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29911>
2024-07-01 08:02:07 +00:00