Rob Clark
38dd2e6e41
freedreno: Remove assert
...
In multi-context scenarios, one context writing to a resource can race
with a pctx->flush_resource() on another context/thread. Which means
that by the end of flush_resource() we can have a new write_batch.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11200 >
2021-06-09 19:09:09 -07:00
Rob Clark
cbb5280a00
freedreno: Add tid to DBG() msgs
...
I keep hacking this up locally when debugging TC sort of issues. Which
is maybe a sign that we should just add this upstream.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11200 >
2021-06-09 19:09:06 -07:00
Rob Clark
97222bcd36
freedreno: Move assert
...
The batch can be flushed immediately after unlocking, so this assert
needs to move.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11200 >
2021-06-09 19:09:03 -07:00
Rob Clark
93b540c72e
freedreno: Add string-marker debug trace
...
This is useful in combination with --markers arg to apitrace.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11200 >
2021-06-09 19:08:58 -07:00
Rob Clark
256938e2a1
gallium/u_threaded: Missing driver-thread marking
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11200 >
2021-06-09 19:08:53 -07:00
Rob Clark
3f758afe6a
freedreno: Fix fdperf flush
...
We created and initialized the fence, but forgot to pass it to
fd_submit_flush().
Fixes: aafcd8aacb ("freedreno: Re-work fd_submit fence interface")
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11200 >
2021-06-09 19:08:53 -07:00
Rob Clark
507f701d9e
freedreno: Fix batch flush race condition
...
We need to remove the batch cache entry before marking as flushed.
Note that we are already holding the batch lock, to prevent flushing
something that another context is emitting cmdstream to, but there is
a window between batch cache lookup (under screen lock) and acquiring
the batch lock that could previously result in batch cache lookup
returning a flushed batch.
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11200 >
2021-06-09 19:08:53 -07:00
Jason Ekstrand
36414fb4db
iris: Move target_to_isl_surf_dim to iris_resource.c
...
It's only remaining caller lives there.
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11235 >
2021-06-09 23:26:04 +00:00
Jason Ekstrand
2ccdd639c2
iris: Use isl_surf_get_image_surf instead of hand-rolling it
...
For the 3D RT read case on BDW, we can use the ISL helper. For the 1D
array case, we don't actually need to flatten; we can just smash it to a
2D array surface because the layout for 1D and 2D is the same on BDW.
Reviewed-by: Nanley Chery <nanley.g.chery@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11235 >
2021-06-09 23:26:04 +00:00
Rob Clark
5066839ffd
Revert "st/mesa: execute glFlush asynchronously if no image has been imported/exported"
...
A number of the piglit glx tests use multiple contexts on a single
thread, and previously the flush in MakeCurrent() was enforcing the
ordering between draws on those different contexts. When that flush
made ASYNC, now there is nothing ordering the draws because we have
two (or more) driver threads for a single frontend thread which is
using nothing more than glxMakeCurrent() to enforce the ordering.
This reverts commit 057a702a3f .
Fixes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4903
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11278 >
2021-06-09 22:18:35 +00:00
Mike Blumenkrantz
3c5b7dca30
util/vbuf: fix buffer overrun in attribute conversions
...
using the stride to calculate the buffer map size here is not correct, as
the stride is not necessarily equal to the attribute size, it's only the distance
between elements. for the case of overlapping elements (cts does this), the result
is that the attribute conversion will read past the end of the mapped src region
this is usually fine for drivers when they directly map the vertex buffer, as the memory
past the requested region is usually made available, but in the case where the readback
occurs using a staging resource sized exactly to the map region, this overflows and fails
silently, not even triggering a valgrind error because gpu memory lol
instead, add the size of the largest possible element, which will automatically be clamped
and ensure any staging buffers are correctly sized
Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10963 >
2021-06-09 21:52:12 +00:00
John Bates
df1a4e749f
add execmem build option
...
The execmem option can be set to false to disable the dynamic
dispatch patching that requires mmap(PROT_WRITE | PROT_EXEC),
which is undesirable on some platforms.
Signed-off-by: John Bates <jbates@chromium.org >
Reviewed-by: Chia-I Wu <olvaffe@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10987 >
2021-06-09 21:28:17 +00:00
Yiwei Zhang
8b7ff78443
egl/android: refactor to use the legit vndk/window.h header
...
Using the system/window.h header can potentially cause AHB breakage
because the system header is reserved for platform internal use.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11206 >
2021-06-09 21:07:54 +00:00
Yiwei Zhang
1ea949429c
egl/android: fix cached buffer slots for EGL Android winsys
...
Android WSI api contract requires to allocate min_undequeued_buffers + 2
to achieve "triple buffering" effect, which is when the composer backend
acquired the allowed max numbder of buffers, the producer still has 2
buffers to rotate.
ANativeWindow either belongs to SurfaceView which presents directly to
SurfaceFlinger or belongs to other surfaces from the UI framework. For
the former, SurfaceFlinger hardcodes triple buffering for EGL. For the
latter, the surface caps decide the buffer limits or HWUI intercepts and
adjusts the min_undequeued_buffers to hint the EGL implementation to
prepare enough buffer cache slots while HWUI sets the max dequeued
buffer count accordingly.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11206 >
2021-06-09 21:07:53 +00:00
Adam Jackson
a4dc2021b8
classic/xlib: Fix the build after !9817
...
This commit mostly exists to be backported to 21.1.x, because the
classic binding to xlib is soon to be retired.
Fixes: 4daef7ffe3 mesa: Remove redundant gl_config::sampleBuffers
Closes : mesa/mesa#4900
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11270 >
2021-06-09 20:57:24 +00:00
Erik Faye-Lund
f34ff03702
zink/ci: increase piglit and deqp-runner timeouts
...
A bunch of tests are currently taking ~60 seconds, dangerously close to
the current 60 seconds timeout. Add some congesion or just bad luck to
a runner, or some other background-task, and we can very easily be
pushed above that.
Since we're rendering on LLVMpipe rather than HW, this isn't as
unreasonable as it might sound at first. So let's copy a trick from
VirGL's CI playbook, and bump the timeout to 180 seconds, three times
of what we currently use.
That might seem a bit excessive, but it's better to make it *very*
unlikely to cause trouble than a little bit unlikely.
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Acked-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11272 >
2021-06-09 20:20:06 +00:00
Daniel Stone
890f96c0e6
ci: Add Piglit gl-1.0-blend-func to everyone's skips
...
I've seen this timing out on Zink, v3d, radeonsi, and Panfrost
periodically, but more and more lately. Try to minimise the damage by
just universally skipping it until someone comes up with a better idea.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11267 >
2021-06-09 19:46:30 +00:00
Tomeu Vizoso
f1b952fa73
ci: Run tests inside Crosvm
...
Allow running tests within Crosvm for testing the virtio-gpu winsys in
Virgl, tested with Piglit only for now.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10862 >
2021-06-09 19:14:00 +00:00
Tomeu Vizoso
4d5ef807da
ci: Store the credentials in /tmp
...
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10862 >
2021-06-09 19:14:00 +00:00
Tomeu Vizoso
d08e2e5a96
ci: Move Kernel build tasks into its own file
...
Allows to reuse the Kernel build tasks everywhere it is needed.
The x86_test-gl container now need a kernel image to use for the crosvm environment,
Reuse this task there.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10862 >
2021-06-09 19:14:00 +00:00
Tomeu Vizoso
dc9cd18f52
ci: Build Crosvm in our container
...
And also add the required bits to the x86_64 kernel.
syslogd is needed by Crosvm.
iptables is needed to route packets in and out the VM.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10862 >
2021-06-09 19:14:00 +00:00
Daniel Stone
f4531bd11e
ci/windows: Re-enable Windows build
...
The GStreamer-provided Windows build machine is back now.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11261 >
2021-06-09 18:33:23 +00:00
Daniel Stone
b0fca984d0
ci/windows: Artifact Meson build and test logs
...
These are useful, especially when tests fail. The other jobs do this, so
fall into line.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11261 >
2021-06-09 18:33:23 +00:00
Ilia Mirkin
738f4d8158
mesa: also flush after compute dispatch when debug flag enabled
...
This makes MESA_DEBUG=flush also flush after compute dispatches.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Acked-by: Emma Anholt <emma@anholt.net >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11205 >
2021-06-09 17:59:17 +00:00
Daniel Stone
056719fb3d
ci/radeonsi: Skip flaky glx-swap-copy test
...
This seems to be failing a bunch lately, so let's just skip it for now.
Signed-off-by: Daniel Stone <daniels@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11265 >
2021-06-09 17:41:49 +00:00
Mike Blumenkrantz
02293316b3
zink: export PIPE_CAP_PROGRAMMABLE_SAMPLE_LOCATIONS
...
dynamic state required because pipeline hashing for this would be too pita
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11189 >
2021-06-09 17:26:52 +00:00
Mike Blumenkrantz
1ea682ed5a
zink: use dynamic state to apply sample locations during draw
...
not even going to attempt to figure out how to efficiently hash this
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11189 >
2021-06-09 17:26:52 +00:00
Mike Blumenkrantz
bc2acc87d7
zink: add a pipe_context::evaluate_depth_buffer hook
...
this works by flagging the next barrier to use the current sample locations
so that everything works as expected during decompression
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11189 >
2021-06-09 17:26:52 +00:00
Mike Blumenkrantz
7353d1d26b
zink: update vk sample location info during framebuffer setup
...
this needs to be stored as a persistent thing on the ctx so it can be
reused without needing to be recalculated
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11189 >
2021-06-09 17:26:52 +00:00
Mike Blumenkrantz
0901d362c7
zink: add a util function for populating VkSampleLocationsInfoEXT
...
this will be reused
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11189 >
2021-06-09 17:26:52 +00:00
Mike Blumenkrantz
dcbb77566e
zink: also flag sample_locations_changed if framebuffer samples changes
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11189 >
2021-06-09 17:26:52 +00:00
Mike Blumenkrantz
60e98d0f47
zink: add a pipe_context::set_sample_locations hook
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11189 >
2021-06-09 17:26:52 +00:00
Mike Blumenkrantz
9075f623a4
zink; add a pipe_screen::get_sample_pixel_grid hook
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11189 >
2021-06-09 17:26:52 +00:00
Mike Blumenkrantz
d364faa322
zink: set VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT on zs rts
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11189 >
2021-06-09 17:26:52 +00:00
Mike Blumenkrantz
652db34f8a
zink: populate maxSampleLocationGridSize for all available sample sizes on init
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11189 >
2021-06-09 17:26:52 +00:00
Timur Kristóf
1e49018ced
amd: Add extra source to the mbcnt_amd NIR intrinsic.
...
The v_mbcnt instructions can take an extra source that they add to
the result. This is not exposed in SPIR-V but we now expose it in NIR.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11072 >
2021-06-09 16:48:51 +00:00
Timur Kristóf
f6b2db298f
ac/nir: Refactor and optimize the repacking sequence.
...
According to feedback, the terminology with "exclusive scan"
and "reduction" is difficult. Change it to use "repack" instead,
which better fits what this sequence is actually used for.
The new sequence stores only 1 byte / wave to LDS, and uses packed
instructions to produce the results. This has lower latency and
fewer instructions than what we previously had.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11072 >
2021-06-09 16:48:51 +00:00
Timur Kristóf
b4e22eb482
aco: Keep VGPR destinations for uniform shared loads when beneficial.
...
When the result of these loads is only used by cross-lane instructions,
it is beneficial to use a VGPR destination. This is because this allows
to put the s_waitcnt further down, which decreases latency.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11072 >
2021-06-09 16:48:51 +00:00
Timur Kristóf
ce141e4c5f
aco: Implement byte and lane permute intrinsics.
...
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11072 >
2021-06-09 16:48:51 +00:00
Timur Kristóf
43ce80a58f
nir: Add AMD-specific byte and lane permute intrinsics.
...
These map directly to v_perm_b32 and v_permlane_b32.
Unfortunately there is no corresponding NIR opcode or
intrinsics, and it's too tedious to puzzle these things
together from the existing NIR instructions.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11072 >
2021-06-09 16:48:51 +00:00
Timur Kristóf
5713e059ea
aco: Add validation for v_permlane instructions.
...
Previously there hasn't been any validation for these instructions,
but after shooting myself in the leg with it a few times, I decided
to add the validation now.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11072 >
2021-06-09 16:48:51 +00:00
Timur Kristóf
fd6605367d
aco: Implement nir_op_sad_u8x4.
...
Fix up the operand size for v_sad instructions, and implement
the new NIR horizontal add. There is no viable way to do this
in SALU, so let's always use a VGPR destination.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11072 >
2021-06-09 16:48:51 +00:00
Timur Kristóf
c92dab8e2b
nir: Add nir_op_sad_u8x4 which corresponds to AMD's v_sad_u8.
...
NIR currently doesn't have any intrinsics for a horizontal packed add,
so this one is modeled after AMD's v_sad_u8.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11072 >
2021-06-09 16:48:51 +00:00
Timur Kristóf
228169c87c
aco: Add note about v_alignbyte in the ISA README.
...
We tried to use this instruction for a more optimal sequence,
but it turned out that it doesn't exactly work as it was
supposed to. This note is to help others who want to use it.
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com >
Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11072 >
2021-06-09 16:48:51 +00:00
Michel Zou
fe625241f7
llvmpipe: restrict optim bug workaround to gcc 10.x
...
seems fixed in 11.x, see https://gitlab.freedesktop.org/mesa/mesa/-/issues/3906
Reviewed-by: Jose Fonseca <jfonseca@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11209 >
2021-06-09 16:19:16 +00:00
Ilia Mirkin
cabafa5ed8
mesa: always expose NV_image_formats and OES_shader_image_atomic
...
As a result of some previous changes, it is now possible to expose ES
3.1 without having the ARB_shader_image_load_store enable set. However
we still want those other extensions. When there's a driver that's
capable of exposing ES 3.1 but not these extensions, more caps can be
added.
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu >
Reviewed-by: Emma Anholt <emma@anholt.net >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11204 >
2021-06-09 15:50:55 +00:00
Hoe Hao Cheng
e51097b938
zink: remove variable length arrays in ntv
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11171 >
2021-06-09 15:08:38 +00:00
Mike Blumenkrantz
fa8eca1605
util/prim_restart: simplify util_draw_vbo_without_prim_restart a bit
...
by initilizing variables up front and using actual draw structs for the
rewrite, a multidraw can be passed to the driver
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10966 >
2021-06-09 14:17:38 +00:00
Mike Blumenkrantz
aa78326e12
util/prim_restart: update index bounds before draws in util_draw_vbo_without_prim_restart
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10966 >
2021-06-09 14:17:38 +00:00
Mike Blumenkrantz
1627476079
util/prim_restart: store the total index count when rewriting draws
...
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10966 >
2021-06-09 14:17:38 +00:00