Commit Graph

188881 Commits

Author SHA1 Message Date
Yiwei Zhang 423ba5d1c7 meson: disallow Venus debug + LTO build via GCC
This is likely a GCC issue per below (always succeed with clang):

|with gcc                  |optimization   |-Db_lto=true|
|-                         |-              |-           |
|-Dbuildtype=plain         |plain (default)|fail        |
|-Dbuildtype=debug         |0 (default)    |fail        |
|-Dbuildtype=debugoptimized|2 (default)    |succeed     |
|-Dbuildtype=release       |3 (default)    |succeed     |
|-Dbuildtype=minsize       |s (default)    |succeed     |
|-Dbuildtype=custom        |plain          |fail        |
|-Dbuildtype=custom        |0              |fail        |
|-Dbuildtype=custom        |g              |succeed     |
|-Dbuildtype=custom        |1              |succeed     |
|-Dbuildtype=custom        |2              |succeed     |
|-Dbuildtype=custom        |3              |succeed     |
|-Dbuildtype=custom        |s              |succeed     |

Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Acked-by: David Heidelberg <david.heidelberg@collabora.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28729>
2024-05-08 19:58:24 +00:00
Georg Lehmann be7c137229 aco/gfx11+: optimize v_fma_mix throughput
Foz-DB Navi31:
Totals from 18677 (23.58% of 79206) affected shaders:
Latency: 83613889 -> 83558801 (-0.07%)
InvThroughput: 12696661 -> 12635199 (-0.48%)

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29047>
2024-05-08 19:36:07 +00:00
Mike Blumenkrantz f02310934c ci: disable g52
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29109>
2024-05-08 19:01:29 +00:00
Eric Engestrom 76725c2fac docs: add sha256sum for 24.0.7
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29107>
2024-05-08 17:43:55 +00:00
Eric Engestrom a2218002ad docs: update calendar for 24.0.7
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29107>
2024-05-08 17:43:55 +00:00
Eric Engestrom bd725681e4 docs: add release notes for 24.0.7
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29107>
2024-05-08 17:43:55 +00:00
Tapani Pälli c225f89d34 anv: skip gfx push constants alloc optimization on gfx9/11
Always reallocate in cmd_buffer_flush_gfx_push_constants like was done
before the the optimization got introduced.

Fixes: 62d96a6546 ("anv: add dirty tracking for push constant data")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/11064
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Tested-by: Mark Janes <markjanes@swizzler.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28999>
2024-05-08 17:21:26 +00:00
Rob Clark 065b3b04d2 freedreno/ir3: Skip DAG validation on release builds
Was triggering a stack overflow in android CTS with
dEQP-VK.spirv_assembly.instruction.compute.spirv_ids_abuse.lots_ids and
friends, presumably due to smaller stack size with bionic.  But there
isn't really any point to doing this validation in release builds so
lets limit it to debug builds (which will cover mesa-CI).

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29088>
2024-05-08 16:46:46 +00:00
Rob Clark a3e5c15664 tu: Fix a6xx lineWidthGranularity
Fixes dEQP-VK.info.device_properties.

Fixes: 48da361eb7 ("tu: wideLines support for a7xx.")
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29088>
2024-05-08 16:46:46 +00:00
Rob Clark 5c7f5362c0 tu: Add missing error path cleanup
Fixes dEQP-VK.api.device_init.create_instance_device_intentional_alloc_fail.basic
with virtgpu (virtio_device_finish() needs to vk_free()).

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29088>
2024-05-08 16:46:46 +00:00
Juan A. Suarez Romero 9f72e22230 broadcom/compiler: remove unused parameters in vpm read
A few of the parameters are not actually used at all. So let's clean
them.

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/29101>
2024-05-08 14:13:07 +00:00
Eric Engestrom b8e79d2769 mr-label-maker: fix yaml syntax
Only whitespace changes, and the parser was lenient enough to not raise
an error, but let's fix it anyway.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29104>
2024-05-08 12:25:29 +00:00
Samuel Pitoiset 1173058002 radv: add a new mechanism for tracking registers per cmdbuf
We already track a couple of registers per cmdbuf and this introduces
a generic mechanism, instead of having a bunch of last_xxx fields.

Loosely based on RadeonSI.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28644>
2024-05-08 11:45:52 +00:00
Alejandro Piñeiro 39a9f68685 v3dv: enable VK_EXT_extended_dynamic_state2
Note that we don't support (and clarify on code why) two of the
features of this extension:

 * extendedDynamicState2PatchControlPoints: as we don't support
   Tessellation Shaders

 * extendedDynamicState2LogicOp: as supporting it would need to allow
   compile shader variants after pipeline creation, that we try to
   avoid as much as possible (and it is not supported right now)

Note that those two features are not mandatory for Vulkan 1.3. From
spec:

 "Promotion to Vulkan 1.3

  This extension has been partially promoted. The dynamic state
  enumerants VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT,
  VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT, and
  VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT; and the
  corresponding entry points in this extension are included in core
  Vulkan 1.3, with the EXT suffix omitted. The enumerants and entry
  points for dynamic logic operation and patch control points are not
  promoted, nor is the feature structure. Extension interfaces that
  were promoted remain available as aliases of the core functionality."

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28980>
2024-05-08 11:18:28 +00:00
Alejandro Piñeiro 8a2d7e3830 v3dv: SetRasterizerDiscardEnable is dynamic now
Note that when it is dynamic, it goes to the codepath of having
enabled raster_enabled at the pipeline, even if at the end it will be
disabled. The fragment shader compilation, and the stage keys, depends
on rasterization being enabled or not. As mentioned, if the state is
dynamic, it assumes that the rasterization is enabled.

That would work, as then the rasterization could be discarded at the
CFG_BITS package, by the command buffer at draw time. We just have a
(discarded) shader slightly more complex that it would have been with
rasterization enabled.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28980>
2024-05-08 11:18:28 +00:00
Alejandro Piñeiro 6b59e1d8e4 v3dv: DepthBiasEnable is dynamic now
Since VK_EXT_extended_dynamic_state2

We just move all related with depth bias to the command buffer. There
is not good reason to compute and save it at the pipeline.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28980>
2024-05-08 11:18:28 +00:00
Alejandro Piñeiro 8ab0c55a53 v3dv: PrimitiveRestartEnable is now dynamic.
Since VK_EXT_extended_dynamic_state2

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28980>
2024-05-08 11:18:28 +00:00
Alejandro Piñeiro ebbb824240 v3dv: fixes StencilTestEnable handling
While working on VK_EXT_extended_dynamic_state2 we found two issues
the stencil emission code, after the update for StencilTestEnable
being dynamic.

Specifically:

  * pack_stencil_cfg: if we don't have a ds_info, we need to return,
    as pack_single_stencil_cfg uses it to fill it up. Also the check
    for MESA_VK_DYNAMIC_DS_STENCIL_TEST_ENABLE was not needed. That
    state doesn't affect the content of the STENCIL_CFG
    packet. Stencil is enabled/disabled at the CFG_BITS packet.

  * cmd_buffer_emit_stencil: we can't use pipeline->emit_stencil_cfg
    to filter if it is needed to emit that as since
    stencil_test_enable and stencil_op become dynamic.

    We also update which states we check that are dynamic. As
    mentioned STENCIL_TEST_ENABLE doesn't affect here.

Fixes: 60e9237e81 ("v3dv: StencilOp and StencilTestEnable are now dynamic")

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28980>
2024-05-08 11:18:28 +00:00
Alejandro Piñeiro ef5697a884 v3dv/cmd_buffer: missing updates due PrimitiveTopology being dynamic now
There were some pending places to update after PrimitiveTopology
become dynamic. FWIW, this was not catched by any CTS test.

As we are here we add a comment to explain why we still use the
topology on the pipeline.

Fixes: 2526f74ade ("v3dv: PrimitiveTopology is now dynamic")

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28980>
2024-05-08 11:18:28 +00:00
Karol Herbst 6bcc300e00 rusticl: add RUSTICL_MAX_WORK_GROUPS
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27666>
2024-05-08 09:00:18 +00:00
Karol Herbst 91552bb4ec rusticl: lower huge grids
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27666>
2024-05-08 09:00:18 +00:00
Karol Herbst 204c287327 rusticl/kernel: properly handle grid and offsets being usize
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27666>
2024-05-08 09:00:18 +00:00
Karol Herbst 8da8c6c2d8 rusticl: use stream uploader for cb0 if prefered
Using the same buffer without a barrier actually can lead to data races as
drivers might not properly synchronize the content. Using the stream
uploader is a neat fix which prevents us from having to use a barrier but
still keep high throughput when launching kernels back-to-back.

Fixes: 5ff33f9905 ("rusticl: use real buffer for cb0 for drivers prefering")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27666>
2024-05-08 09:00:18 +00:00
Maíra Canal 56f7b0297e v3dv: Use errno when logging an error to stderr
When logging a failed IOCTL, an errno is more useful than the output of
`drmIoctl()`. When the IOCTL fails, the return is usually -1 and this
value isn't very useful. On the other hand, the errno can help us to
debug the reason why the IOCTL failed.

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/29067>
2024-05-08 05:42:21 +00:00
Mike Blumenkrantz e2b9c5a9e3 zink: move blocking gfx program init functions to thread
this should unblock the main thread

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28955>
2024-05-08 01:14:27 +00:00
Mike Blumenkrantz 66dc759d0f zink: precompile_job() -> gfx_program_precompile_job()
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28955>
2024-05-08 01:14:27 +00:00
Mike Blumenkrantz 54db502053 zink: split gfx program creation into 2-stage functions
the wrapper function should ensure that this commit has no functional changes

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28955>
2024-05-08 01:14:27 +00:00
Mike Blumenkrantz da04a316f7 zink: reorder fencing in zink_create_gfx_program()
no functional changes

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28955>
2024-05-08 01:14:27 +00:00
Mike Blumenkrantz 7d849da0fd zink: reorder some code in zink_create_gfx_program()
no functional changes

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28955>
2024-05-08 01:14:27 +00:00
Mike Blumenkrantz 921fbac6a3 zink: move gfx shader init to thread
zink_shader_init is a long function, and making it async unblocks
the main app thread to improve startup/load times

this also eliminates a deserialize from separate shader compile by
linking up the lifetime of the nir_shader with the shader compilation

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28955>
2024-05-08 01:14:27 +00:00
Mike Blumenkrantz 450447257b zink: split generated tcs creation into 2-stage functions
same as gfx

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28955>
2024-05-08 01:14:27 +00:00
Mike Blumenkrantz 68eaba7e87 zink: reorder precompile_separate_shader_job() in file
no functional changes

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28955>
2024-05-08 01:14:27 +00:00
Mike Blumenkrantz ca51c5a9da zink: split shader create into 2-stage functions
this allows for a 2-stage creation of shaders with a quick create()
and a longer init()

no functional changes

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28955>
2024-05-08 01:14:26 +00:00
Mike Blumenkrantz 8b54012941 zink: use zink_shader type directly in zink_create_gfx_shader_state()
no functional changes

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28955>
2024-05-08 01:14:26 +00:00
Mike Blumenkrantz b6b91a3ed9 zink: more effectively synchronize separate shader program precompiles
this avoids a race condition that could occur if a shader used by a
precompile was destroyed between creating the full_prog and the full_prog's
shader generation

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28955>
2024-05-08 01:14:26 +00:00
Mike Blumenkrantz 27fe924cf0 zink: always block the precompile threads when pruning shaders
this will avoid desync with separate shader program compiles

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28955>
2024-05-08 01:14:26 +00:00
Mike Blumenkrantz ac1d003d37 zink: break out shadow sampler scanning
this is now a pre/post pass which is split between scanning and rewrites

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28955>
2024-05-08 01:14:26 +00:00
Mike Blumenkrantz de6139027c zink: rename zink_shader variable in create functions
this matches the canonical variable name everywhere else

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28955>
2024-05-08 01:14:26 +00:00
Mike Blumenkrantz 3849f367cc zink: simplify flagging legacy shadow samplers
the binding is generated from the driver_location anyway

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28955>
2024-05-08 01:14:26 +00:00
Mike Blumenkrantz 95e4a2b37e zink: simplify confusing return in rewrite_tex_dest
no functional changes

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28955>
2024-05-08 01:14:26 +00:00
Mike Blumenkrantz 21a61d75b7 zink: use info.fs.uses_sample_qualifier instead of manual scan
this should be a superset of the previous case, so at least it won't
be wrong

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28955>
2024-05-08 01:14:26 +00:00
Mike Blumenkrantz 7bdaf6e95f zink: use zink_shader_key_optimal unions for pipeline state asserts
no functional changes, just easier to debug fails

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28955>
2024-05-08 01:14:26 +00:00
Mike Blumenkrantz 8432876614 zink: delete GS conditional in update_so_info
I'm not exactly sure when, but at some point this became no longer necessary

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28955>
2024-05-08 01:14:26 +00:00
Mike Blumenkrantz d77a1762bd zink: clamp buffer_indices_hashlist resets to used region
memsetting 65k of memory after every batch submit is costly, but the
memset region can be greatly reduced by tracking a min/max hash used
and memsetting that region

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29041>
2024-05-07 23:09:03 +00:00
Sergi Blanch Torne 72b3c2e4ba ci: identify and label S3 buckets
As for the S3 bucket where the kernel image is stored has been identified and
labeled, the other buckets in use can also be identified and labeled.

cc: mesa-stable

Signed-off-by: Sergi Blanch Torne <sergi.blanch.torne@collabora.com>
Co-developed-by: Guilherme Gallo <guilherme.gallo@collabora.com
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28979>
2024-05-07 22:08:07 +00:00
Sergi Blanch Torne cc6bd04dd7 ci: kernel stored in a different s3 bucket
Due to the expiration time in `mesa-lava` (1m), the kernel used in mesa is now
using `mesa-rootfs` (1y). Due to this change, a fresh kernel image has been
prepared and mesa has also a few changes to adapt to this redirection.

cc: mesa-stable

Signed-off-by: Sergi Blanch Torne <sergi.blanch.torne@collabora.com>
Co-developed-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28979>
2024-05-07 22:08:07 +00:00
José Roberto de Souza 73188a4590 intel/perf: Add function to open perf stream
This will make easy to add Xe KMD support and reduce code duplication.
No changes in behavior are expected here.

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/29077>
2024-05-07 21:44:34 +00:00
José Roberto de Souza d27dcb815e intel/perf: Add and use a function to return platform OA format
The platform version check to return the OA format was duplicated
in a few places, so adding a function and dropping this duplication.

While at it, already making it future proof for Xe KMD support and
split i915 specific code to its own file.

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/29077>
2024-05-07 21:44:34 +00:00
José Roberto de Souza b98538d54c crocus: Free intel_perf_config and intel_perf_context
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/29077>
2024-05-07 21:44:34 +00:00
José Roberto de Souza eb97d813c2 iris: Free intel_perf_config and intel_perf_context
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/29077>
2024-05-07 21:44:34 +00:00