Commit graph

62484 commits

Author SHA1 Message Date
Konstantin Seurer
3bf60f904b zink: Initialize primitive types to an invalid value
The memory is zero initialized which corresponds to MESA_PRIM_POINTS.

Fixes: 659c39f ("zink: rework primitive rasterization type logic")
Reviewed-by: Antonino Maniscalco <antonino.maniscalco@collabora.com>
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25335>
2023-10-04 23:20:52 +00:00
Igor Torrente
f0762f003d zink: fix for startup crash of weston running on top of zink + venus
Venus asserts if we are transitioning to/from
`VK_IMAGE_LAYOUT_PRESENT_SRC_KHR` if we are not dealing with a wsi
image.

Now we detects this case and avoid transition the layout in this case.

Signed-off-by: Igor Torrente <igor.torrente@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25423>
2023-10-04 22:28:32 +00:00
Marek Olšák
59ea386065 gallium/util: add more tests for compute-only contexts
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25389>
2023-10-04 21:39:34 +00:00
Marek Olšák
b9289c51b5 gallium/util: fix GALLIUM_TESTS=1 by using cso_set_vertex_buffers_and_elements
util_draw_user_vertex_buffer no longer works with u_vbuf.
Add util_draw_user_vertices that does the right thing and use it.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25389>
2023-10-04 21:39:34 +00:00
Marek Olšák
bc432ab9a0 radeonsi/ci: update navi10 results
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25515>
2023-10-04 12:35:15 +00:00
Marek Olšák
f4d08bf92d Revert "radeonsi: specialize si_draw_rectangle using a C++ template"
This reverts commit cd7e20f513.

Navi1x turns off NGG when streamout queries are active, which breaks
the assumption of specialized si_draw_rectangle that NGG is always
enabled on Navi1x.

Fixes: cd7e20f513

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25515>
2023-10-04 12:35:15 +00:00
Karol Herbst
93d5d85d35 rusticl: fix clippys bool_to_int_with_if
New in clippy-1.65

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25538>
2023-10-04 11:44:51 +00:00
Martin Roukala (né Peres)
cbdd4f5373 zink/ci: remove 19 tests from the zink-radv-polaris10-fails list
It seems that most crashes in glgetteximage-related tests were fixed,
likely by [1] \o/.

[1]: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25460

Signed-off-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25535>
2023-10-04 11:13:29 +00:00
Mike Blumenkrantz
a2641ddf0d gallium: add PIPE_MAP_NONE
not actually used, just for trace printing

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25189>
2023-10-04 02:57:08 +00:00
Mike Blumenkrantz
ef00ea7b50 aux/trace: dump enum names for map usage
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25189>
2023-10-04 02:57:07 +00:00
Mike Blumenkrantz
72323f66d9 zink: guarantee egl syncobj lifetime
according to spec, egl syncobjs can be deleted before they complete,
which means they need to be preserved while they're still in progress

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25460>
2023-10-04 02:27:53 +00:00
Mike Blumenkrantz
4ef2226210 zink: fix end-of-batch barrier pipeline stages
ALL_COMMANDS covers all the layouts used here

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25460>
2023-10-04 02:27:53 +00:00
Mike Blumenkrantz
d0dd973fe2 zink: move v3dv scalarBlockLayout workaround
this isn't actually device-level workaround, it's just error suppression

fixes #9895

Fixes: 2978b85789 ("zink: don't warn about missing scalarBlockLayout on v3dv")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25456>
2023-10-04 02:00:20 +00:00
Mike Blumenkrantz
2531050ec9 zink: move push descriptor disable to driver workarounds
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25456>
2023-10-04 02:00:20 +00:00
Mike Blumenkrantz
c3f5416eaf zink: fix crashing in image rebinds
this is invalid for buffer textures

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25379>
2023-10-04 01:34:55 +00:00
Samuel Pitoiset
60dd34b02a zink/ci: bump zink-anv-tgl-full timeout to 1h45m
It can timeout otherwise. Might be due to recent uprev CTS.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25509>
2023-10-03 19:38:39 +00:00
Samuel Pitoiset
91cb09b236 zink/ci: update list of expectations for zink-anv-tgl
See https://gitlab.freedesktop.org/mesa/mesa/-/pipelines/995410.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25509>
2023-10-03 19:38:39 +00:00
Emma Anholt
57aa6dad16 ci/crocus: Add a related flake to a known one.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25509>
2023-10-03 19:38:39 +00:00
Emma Anholt
c3c2a8def0 ci/zink: Skip more doubles tests on anv that flake at 3 minute timeouts.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25509>
2023-10-03 19:38:39 +00:00
Rob Clark
366367eba8 freedreno: Move/add some attach_bo()
In some cases we were missing this, in others we just needed to move it
before the OUT_RELOC().

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25465>
2023-10-03 15:18:03 +00:00
Rob Clark
9870cca6a0 freedreno: Add missing indirect_draw_count tracking
Fixes: f677f64e80 ("freedreno: implement GL_ARB_indirect_parameters")
Fixes: b43e5aec0d ("freedreno/batch: Move submit bo tracking to batch")
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25465>
2023-10-03 15:18:03 +00:00
Rob Clark
8a3b4b69a2 freedreno: Add private-BO tracking
There are some internally used buffers that we should just attach to
every submit up-front.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25465>
2023-10-03 15:18:03 +00:00
Rob Clark
c6f17d89c7 freedreno/batch: Move query_buf allocation
This lets us move fd_batch_update_queries() after resource tracking.
Which will become needed in the next patch which adds validation to
assert needed BOs are attached to the submit.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25465>
2023-10-03 15:18:03 +00:00
Rob Clark
2189920e49 freedreno: Fix user const buffer dirtiness
If we went the upload_user_buffer() path, cb->buffer would be null,
causing fd_dirty_shader_resource() to be a no-op.  What we want to
use is &so->cb[index].

Fixes: b43e5aec0d ("freedreno/batch: Move submit bo tracking to batch")
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25465>
2023-10-03 15:18:03 +00:00
Rob Clark
4c0defda8a freedreno: Fix streamout offset_buf dirtiness
We also need to mark the offset buffer as dirty.

Fixes: b43e5aec0d ("freedreno/batch: Move submit bo tracking to batch")
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25465>
2023-10-03 15:18:03 +00:00
Rob Clark
1f6e20cca6 freedreno/a6xx: Remove dummy packet for globals
Unneeded since commit b43e5aec0d ("freedreno/batch: Move submit bo
tracking to batch")

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25465>
2023-10-03 15:18:03 +00:00
Rob Clark
8c537a35e6 freedreno: Use explicit QCOM_TILED3 modifier
Now that this is in upstream drm_fourcc.h we can drop the private
internal modifier.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25465>
2023-10-03 15:18:03 +00:00
Rob Clark
d0b861200e freedreno: Indentation fix
Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25465>
2023-10-03 15:18:03 +00:00
Tapani Pälli
a49ff4e024 iris: HDC flush is available only for GFX_VER 12+
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25399>
2023-10-02 12:05:54 +00:00
Tapani Pälli
c02db0d90f iris: flush data cache when flushing HDC on GFX < 12
This matches what anv driver does.

Fixes: a969ad1d ("iris: Demote DC flush to HDC flush in cache tracker")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6314
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25399>
2023-10-02 12:05:53 +00:00
Tapani Pälli
524e8865ce iris/anv: move Wa_14018912822 as a drirc workaround
This should be toggled on only for applications that hit the issue.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9886
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25424>
2023-10-02 08:26:14 +00:00
Tapani Pälli
ebe95fee21 iris: correct dst alpha blend factor in Wa_14018912822
Fixes: 0e9a26372b ("iris: implement Wa_14018912822")
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25424>
2023-10-02 08:26:14 +00:00
Iago Toral Quiroga
4afbf4ad31 v3d: get rid of shader_state pointer in v3d_key
Having this pointer in the key is undesirable since it makes
copying keys difficult and error prone (as seen in previous
patches), also, it is only there for convenience and we don't
strictly need it (in fact the vulkan driver doesn't use it at
all), so let's just get rid of it so our v3d_key is fully
static.

Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25418>
2023-10-02 06:35:07 +00:00
Iago Toral Quiroga
3fb9e27a3d v3d: fix RAM shader cache
The RAM shader cache was using the v3d_key for hashes and
comparisons which is not correct. Particularly, this struct
has a void pointer where we store a reference to an uncompiled
shader with the NIR code, and that is of course not accounted
for when hashing and comparing keys, which can lead to bogus
cache hits.

This patch introduces a v3d_cache_key that has both the v3d key
and a sha1 of the uncompiled NIR. Now key hashing and comparison
is done on the static part of the v3d key (that is, excluding the
uncompiled shader pointer, which may be invalid in the cache if
the original shader was deleted) and taking the sha1 from the
uncompiled shader. This also makes sure the shader key we store
in the cache has a NULL shader_state pointer to make it more
clear that this field may not be used at all for caching purposes.

This fixes GPU hangs with some OpenCL tests (through Rusticl)
caused by incorrect RAM cache hits.

Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25418>
2023-10-02 06:35:07 +00:00
Iago Toral Quiroga
8a4bd328cf v3d: use pre-computed shader sha1 for disk cache
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25418>
2023-10-02 06:35:06 +00:00
Iago Toral Quiroga
0ed36b524c v3d: compute nir sha1 for uncompiled shader state
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25418>
2023-10-02 06:35:06 +00:00
Alyssa Rosenzweig
c87095e518 asahi: Use a 2D Array texture for array render targets
Fixes KHR-GLES31.core.geometry_shader.layered_framebuffer.blending_support with
eMRT forced.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2023-10-01 12:37:55 -04:00
Alyssa Rosenzweig
87a7b239e1 asahi: Write to cubes/etc attachments as 2D array
To reduce shader variants, the tilebuffer lowering code does not know the
actual texture targets of the spilled render targets, only whether they are
layered or not. As such, all layered targets (3D, cube map, etc) get written out
uniformly as 2D Arrays. For that to work, the driver needs to do the
corresponding transform.

Regular imageStore() instructions are not affected by any of this.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2023-10-01 12:37:55 -04:00
Alyssa Rosenzweig
0cbecc1ad1 asahi: Predicate layer ID reads
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2023-10-01 12:37:55 -04:00
Alyssa Rosenzweig
68437eb0ba asahi: Account for layering for attachment views
Do not force a single-layer view, use an actual array attachment when there are
multiple layers, since this corresponds to a layered framebuffer that will write
to an array with the eMRT path.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2023-10-01 12:37:55 -04:00
Alyssa Rosenzweig
9dc87a00fd asahi: Expose VS_LAYER_VIEWPORT behind a flag
We can't technically expose the extension without a higher GL version, but the
implemented subset should work and this lets us test with piglit.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2023-10-01 12:37:55 -04:00
Alyssa Rosenzweig
2396d3fe62 asahi: Use layered layouts
For correct eMRT code.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2023-10-01 12:37:55 -04:00
Alyssa Rosenzweig
8a48af4f8f agx/lower_tilebuffer: Support spilled layered RTs
If we spill render targets with a layered framebuffer, our spilled targets are
assumed to be 2D Arrays (in general). We need to use arrayed image operations to
load/store from these. The layer is given by the layer as read in the fragemnt
shader. This handles the eMRT portion of layered rendering.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2023-10-01 12:37:55 -04:00
Alyssa Rosenzweig
041451b655 agx/tilebuffer: Support layered layouts
Just add a flag for it. We don't care about the actual # of layers when
calculating the layout, only the boolean fact of being layered or not. The
reason we need this at all is because the eMRT implementation needs to
account for layering and that is only keyed off the tilebuffer layout.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2023-10-01 12:37:55 -04:00
Alyssa Rosenzweig
4a954dff07 asahi,agx: Select layered rendering outputs
These 2 are together

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2023-10-01 12:32:12 -04:00
Alyssa Rosenzweig
9a894c9a33 agx: Set PIPE_SHADER_CAP_CONT_SUPPORTED
So we get adequate testing of continues, rather than lowering them in GLSL. We
don't really /want/ to see continues but lowering them away will just make them
harder to test... and besides, we should be optimizing them in NIR (not GLSL) so
we can get the win on Vulkan too.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2023-10-01 12:32:11 -04:00
Alyssa Rosenzweig
cb14cddfa5 asahi: Clamp index buffer extent to what's read
This makes for cleaner agxdecodes, I think this matches what I've seen on the
macOS side but I might be misremembering. Certainly shouldn't hurt.

This only applies for direct draws.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
2023-10-01 12:32:11 -04:00
Vitaliy Triang3l Kuzmin
a43ee1ca50 r600: Replace R600_BIG_ENDIAN with UTIL_ARCH_BIG_ENDIAN
In particular, removes the dependency of r600_formats.h on r600_pipe.h so
it can be shared between Gallium and Vulkan.

Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Signed-off-by: Vitaliy Triang3l Kuzmin <triang3l@yandex.ru>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24513>
2023-10-01 09:25:50 +00:00
Marek Olšák
43e7285069 winsys/amdgpu: pad gfx and compute IBs with a single NOP packet
to minimize CP overhead

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25043>
2023-10-01 08:45:22 +00:00
Marek Olšák
b6f435888b ac/gpu_info: replace ib_alignment with per-IP IB base and size alignments
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25043>
2023-10-01 08:45:22 +00:00