Commit Graph

191575 Commits

Author SHA1 Message Date
Rhys Perry
f842bd81ca aco: use s_pack_*_b32_b16 more in p_insert/p_extract lowering
This opcode doesn't write SCC, which gives later passes more freedom to
move instructions.

fossil-db (navi21):
Totals from 727 (0.92% of 79395) affected shaders:
Latency: 14943483 -> 14942704 (-0.01%); split: -0.01%, +0.00%
InvThroughput: 3225790 -> 3225766 (-0.00%); split: -0.00%, +0.00%

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29912>
2024-07-01 17:34:22 +00:00
Rhys Perry
ca161a96d1 aco: combine extracts into s_pack_ll_b32_b16
fossil-db (navi21):
Totals from 3 (0.00% of 79395) affected shaders:
Instrs: 45941 -> 45924 (-0.04%)
CodeSize: 241768 -> 241756 (-0.00%)
Latency: 176501 -> 176491 (-0.01%)
Copies: 6884 -> 6882 (-0.03%)
SALU: 6101 -> 6088 (-0.21%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29912>
2024-07-01 17:34:21 +00:00
Rhys Perry
98cb50297b aco: use s_pack_ll_b32_b16 for pack_32_2x16_split
fossil-db (navi21):
Totals from 3 (0.00% of 79395) affected shaders:
Instrs: 45963 -> 45941 (-0.05%)
CodeSize: 241908 -> 241768 (-0.06%)
Latency: 176508 -> 176501 (-0.00%)
SALU: 6123 -> 6101 (-0.36%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29912>
2024-07-01 17:34:21 +00:00
Samuel Pitoiset
6326cc4a5e radv: use radv_get_user_sgpr() more in DGC
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29980>
2024-07-01 16:54:09 +00:00
Samuel Pitoiset
598e85b3e9 radv: use the graphics pipeline from the DGC info
Doesn't change anything because it's required to bind one graphics
pipeline before using DGC but it's cleaner.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29980>
2024-07-01 16:54:09 +00:00
Samuel Pitoiset
4c8d44aed0 radv: move radv_CmdPreprocessGeneratedCommandsNV() to radv_cmd_buffer.c
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29980>
2024-07-01 16:54:09 +00:00
Samuel Pitoiset
e7f6388ac7 radv: use radv_dgc_with_task_shader() more
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29980>
2024-07-01 16:54:09 +00:00
Samuel Pitoiset
b51b8c54c0 radv: cleanup using vtx_base_sgpr for userdata with DGC
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29980>
2024-07-01 16:54:09 +00:00
Samuel Pitoiset
c77e26daa5 radv: do not emit compute userdata for empty dispatches
Unnecessary.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29980>
2024-07-01 16:54:09 +00:00
Samuel Pitoiset
3f919c0df6 radv: remove unused parameter to dgc_emit_draw_mesh_tasks_ace()
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29980>
2024-07-01 16:54:09 +00:00
Valentine Burley
c2af4f61a7 tu: Use vk_query_pool
Signed-off-by: Valentine Burley <valentine.burley@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29441>
2024-07-01 16:23:29 +00:00
Valentine Burley
cc432c358a tu: Use the common versions of vkBegin/EndQuery()
Move all the logic into tu_CmdBegin/EndQueryIndexedEXT. CmdBegin/EndQuery in
the common runtime is a wrapper that calls tu_CmdBegin/EndQueryIndexedEXT with
index 0.

Signed-off-by: Valentine Burley <valentine.burley@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29441>
2024-07-01 16:23:29 +00:00
Valentine Burley
45a3c2d197 tu: Rename tu_query.cc/h to tu_query_pool.cc/h
Match the structure of the common Vulkan runtime and NVK.
Additionally update a comment to reflect the current state.

Signed-off-by: Valentine Burley <valentine.burley@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29441>
2024-07-01 16:23:28 +00:00
Valentine Burley
d8ebc632eb tu: Move buffer view related code to tu_buffer_view.cc/h
More code isolation. Match the structure of the common Vulkan runtime,
NVK and RADV.

Signed-off-by: Valentine Burley <valentine.burley@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29441>
2024-07-01 16:23:28 +00:00
Valentine Burley
09d224685d tu: Drop tu_buffer_view_init helper function
Simplify the code by inlining the logic from tu_buffer_view_init
directly into tu_CreateBufferView.

Signed-off-by: Valentine Burley <valentine.burley@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29441>
2024-07-01 16:23:28 +00:00
Valentine Burley
c21faf12e7 tu: Use vk_buffer_view
Signed-off-by: Valentine Burley <valentine.burley@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29441>
2024-07-01 16:23:28 +00:00
Michel Dänzer
cbd19e09d1 dri: Go back to hard-coded list of RGBA formats
Catching these programmatically without false positives / negatives is
surprisingly tricky, go back to the known-working list for now.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/11398
Fixes: ad0edea53a ("st/dri: Check format properties from format helpers")
Fixes: 5ca85d75c0 ("dri: Fix BGR format exclusion")

v2:
* Also put back lima fails removed by 9eeaa4618f ("egl/gbm: Enable
  RGBA configs"), as those tests are now failing again.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29979>
2024-07-01 15:42:58 +00:00
Mike Blumenkrantz
a7f86e38ca zink: free sparse page for miptail on uncommit
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29818>
2024-07-01 14:24:57 +00:00
Erik Faye-Lund
0277d0321a docs/panfrost: quote identifiers
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29902>
2024-07-01 14:17:26 +00:00
Erik Faye-Lund
577b9efa75 docs/panfrost: use c:func-role for function
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29902>
2024-07-01 14:17:26 +00:00
Erik Faye-Lund
a5f892b5cb docs/panfrost: use math-role more
This renders cleaner and more consistent with the other math around
here.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29902>
2024-07-01 14:17:26 +00:00
Erik Faye-Lund
7033623acd docs/panfrost: fix math-notation
less or equal uses \leq, not <= in latex.

Fixes: e0752673be ("docs/panfrost: Move description of instancing")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29902>
2024-07-01 14:17:26 +00:00
Erik Faye-Lund
41698eee96 docs/panfrost: fix numbered list
This got broken when it got moved into the documentation.

Fixes: e0752673be ("docs/panfrost: Move description of instancing")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29902>
2024-07-01 14:17:26 +00:00
Samuel Pitoiset
484f613a97 radv: use radv_get_user_sgpr_loc() for the GS copy shader too
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29957>
2024-07-01 13:39:51 +00:00
Samuel Pitoiset
f22ee282fc radv: add radv_get_user_sgpr{_loc}() helpers
To simplify all the user sgpr computations which are very redundant.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29957>
2024-07-01 13:39:51 +00:00
Samuel Pitoiset
bf852536fc radv: rename radv_get_user_sgpr() to radv_get_user_sgpr_info()
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29957>
2024-07-01 13:39:51 +00:00
Sergi Blanch Torne
81424e1d50 Revert "ci: disable Collabora's farm due to maintenance"
This reverts commit c0138e99e6.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29978>
2024-07-01 12:21:10 +00:00
Juan A. Suarez Romero
f77216e9ac Revert "ci: disable Igalia farm"
This reverts commit f0b0a71a9b.

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29984>
2024-07-01 11:57:43 +00:00
Eric Engestrom
48a7c212ba radeonsi/ci: mark test as fixed
This was fixed by one of the commits in the range 5cb15a6c...6006588a.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29981>
2024-07-01 10:01:38 +00:00
Luc Ma
6b5a12611b meson: Build pipe-loader when build-tests is true
Gallium/tests/trivial requires dynamic pipe loader at runtime, that is,
$prefix/$libdir/gallium-pipe/pipe_*.so must get built and installed.
so let's build it if build-tests is enabled.

v2:
- Fix error of meson when both of clover and tests are enabled (dbaker)

Signed-off-by: Luc Ma <luc@sietium.com>
Acked-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Dylan Baker <dylan@pnwbakers.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27180>
2024-07-01 09:24:49 +00:00
Lionel Landwerlin
884397b587 anv: workaround flaky xfb query results on Gfx11
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29836>
2024-07-01 09:04:12 +00:00
Juan A. Suarez Romero
feaa5ce1ec vc4: fix out-of-bounds access to array
Detected by by Undefined Behaviour Sanitizer (UBSan), this fixes trying
to access index 5 in `util_format_channel_description`, which is
declared of size 4.

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
b827aee3a3 vc4: do not create 0-bytes variable length arrays
When declaring an array with variable length, like `nir_variable
*vars[num_entries]`, ensure the length is always greater than 0

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
2a16575dec vc4: do not pass NULL pointer to function not expecting NULLs
memcmp() 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
eab3ee8d71 vc4: 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
Juan A. Suarez Romero
5e09b2b3f3 vc4: use unsigned types when performing bitshifting
Ensure unsigned integers of proper size are used instead of signed ones
when performing left bit shifts.

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
1bcf9c5da9 v3d: 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
417f70ef5a v3d: 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
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
Juan A. Suarez Romero
7dc6b8df11 broadcom/compiler: use unsigned types when performing bitshifting
Ensure unsigned integers are used instead of signed ones when performing
left bit shifts.

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
Lionel Landwerlin
b8f8926026 anv: emit the right shader instruction for protected mode
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29778>
2024-07-01 06:48:06 +00:00
Lionel Landwerlin
57e74d7b56 anv: allocate compute scratch using the right scratch pool
Cc: mesa-stable
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29778>
2024-07-01 06:48:06 +00:00
Lionel Landwerlin
3ccf80f9b1 anv: prepare 2 variants of all shader instructions
One variant uses a protected scratch surface the other not.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29778>
2024-07-01 06:48:06 +00:00
Lionel Landwerlin
08a4e0a2e3 anv: add a protected scratch pool
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29778>
2024-07-01 06:48:06 +00:00
Sergi Blanch Torne
c0138e99e6 ci: disable Collabora's farm due to maintenance
Planned downtime in the farm:
* Start: 2024-07-01 07:00 UTC
* End: 2024-07-01 13:00 UTC

Signed-off-by: Sergi Blanch Torne <sergi.blanch.torne@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29891>
2024-07-01 05:53:15 +00:00
David Heidelberg
68215332a8 build: pass licensing information in SPDX form
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Acked-by: Dylan Baker <dylan.c.baker@intel.com>
Acked-by: Eric Engestrom <eric@igalia.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Signed-off-by: David Heidelberg <david@ixit.cz>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29972>
2024-06-29 12:42:49 -07:00
José Roberto de Souza
3b6e2475e4 intel/perf: Enable perf on Xe KMD
Support was added in the previous patches, so this check can now be
removed.

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/29312>
2024-06-29 01:17:37 +00:00