Michel Zou [Wed, 10 Feb 2021 13:27:52 +0000 (14:27 +0100)]
zink: Fix win32 build
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8957>
Alyssa Rosenzweig [Wed, 10 Feb 2021 00:46:40 +0000 (19:46 -0500)]
pan/bi: Fix 2-write pseudo op scheduling
These cannot schedule to the last tuple, there needs to be other work in
the last clause, or a tuple of NOP's failing that. Can occur depending
on scheduling of CUBEFACE instructions, and will apply to computational
atomics in the near future.
Fixes: 77933d16d8c ("pan/bi: Switch to new scheduler")
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8962>
Alyssa Rosenzweig [Wed, 10 Feb 2021 00:45:03 +0000 (19:45 -0500)]
pan/bi: Fix 'last tuple' for terminal-NOP clauses
This incorrectly assumed the last tuple was nontrivial, an invariant
that holds by accident on the current scheduler but will break
momentarily. Fix this, and document the invariants.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8962>
Michel Zou [Wed, 10 Feb 2021 13:25:38 +0000 (14:25 +0100)]
vulkan: Fix windows api conflict
Closes #4247
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8956>
Erik Faye-Lund [Wed, 2 Dec 2020 20:28:19 +0000 (21:28 +0100)]
ci: run piglit on zink with lavapipe
Now that we can run on top of Lavapipe, we can finally start testing
Piglit on top of Zink in CI, yay!
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8879>
Erik Faye-Lund [Tue, 9 Feb 2021 17:28:17 +0000 (18:28 +0100)]
ci: make sure all lava-builders have libvulkan
In the next commit, we'll start building Zink in the meson-testing step,
and because mega-drivers end up stuffing all dependencies in the same
shared-object, we end up requiring libvulkan for other drivers as well.
So let's no longer track separately who needs vulkan and who doesn't,
and just always install it.
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8879>
Pierre-Eric Pelloux-Prayer [Fri, 5 Feb 2021 14:31:19 +0000 (15:31 +0100)]
gallium/u_upload_mgr: lower risk of hitting an assert
The assert(size < INT32_MAX / 2) can be triggered by large uploads.
Since we know that the caller of u_upload_alloc_buffer will consume
min_size bytes, we can init buffer_private_refcount to a much smaller
value.
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Fixes: ccf9ef36285 ("gallium/u_upload_mgr: eliminate all atomics for the upload buffer")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4235
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8880>
Mike Blumenkrantz [Fri, 14 Aug 2020 21:38:44 +0000 (17:38 -0400)]
zink: handle null xfb buffers
ARB_enhanced_layouts allows specifying explicit locations for xfb buffers,
which means we get arrays of buffers with gaps in the middle sometimes and
have to throw in a null handle
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8943>
Mike Blumenkrantz [Fri, 9 Oct 2020 15:13:57 +0000 (11:13 -0400)]
zink: create dummy xfb buffer
xfb spec disallows binding a null buffer, so we need something to throw in
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8943>
Mike Blumenkrantz [Fri, 9 Oct 2020 15:11:43 +0000 (11:11 -0400)]
zink: rename zink_context::dummy_buffer -> dummy_vertex_buffer
this is a bit more specific
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8943>
Lionel Landwerlin [Wed, 10 Feb 2021 10:25:49 +0000 (12:25 +0200)]
anv: print out perf permission warning only once
This warning is bothering a number of people and rightfully so.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8955>
Mike Blumenkrantz [Thu, 13 Aug 2020 14:55:13 +0000 (10:55 -0400)]
zink: enable PIPE_CAP_BUFFER_MAP_PERSISTENT_COHERENT
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8942>
Mike Blumenkrantz [Thu, 13 Aug 2020 14:54:25 +0000 (10:54 -0400)]
zink: flush all resources with persistent maps on work batch before draw/compute
these require explicit memory sync on our part
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8942>
Mike Blumenkrantz [Mon, 21 Sep 2020 13:16:33 +0000 (09:16 -0400)]
zink: slightly refactor batch resource referencing in update_descriptors()
this is easier to debug
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8942>
Mike Blumenkrantz [Thu, 13 Aug 2020 14:53:25 +0000 (10:53 -0400)]
zink: track persistent, non-coherent, writable transfer map count for resources
these require explicit memory flushes before being submitted to a batch
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8942>
Mike Blumenkrantz [Thu, 13 Aug 2020 14:24:46 +0000 (10:24 -0400)]
zink: set HOST_COHERENT bit for coherent resource creation
this allows memory to be mapped during draws without requiring a flush
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8942>
Mike Blumenkrantz [Thu, 13 Aug 2020 14:23:24 +0000 (10:23 -0400)]
zink: use = and not |= for VkMemoryPropertyFlags during resource creation
the previous value of this isn't used, so be explicit here
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8942>
Iago Toral Quiroga [Wed, 10 Feb 2021 07:34:05 +0000 (08:34 +0100)]
v3d/compiler: fix QPU scheduler TMU sequence shuffling
The QPU scheduler allows to move certain TMU instructions around and
since we enabled pipelining, we need to protect against the case where
doing this might break a TMU sequence. For example, this test:
dEQP-VK.rasterization.line_continuity.line-strip
Was generating this VIR:
mov tmud, t187
mov.pushz null, t176
mov.ifa tmua, t9
nop null; wrtmuc (img[0].p0 | 0x0)
mov tmut, t185
mov tmud, t180
mov.ifa tmusf, t183
nop null; thrsw
where we have a general TMU access (tmud,tmua) followed by an image
access (wrtmuc, tmut, tmud, tmusf), which the QPU scheduler was turning
into:
nop ; nop ; ldunifrf.rf22 (0xffffff00 / -nan)
nop ; nop ; wrtmuc (img[0].p0 | 0x0)
nop ; nop ; ldtmu.r2
add r0, r2, 1 ; nop ; ldtmu.r3
nop ; nop ; ldtmu.r4
nop ; mov tmud, r0
nop ; mov.ifa tmua, rf15
nop ; mov tmut, r4 ; thrsw
nop ; mov tmud, rf22
nop ; mov.ifa tmusf, r3
where it allowed the wrtmuc to move up and before the general TMU access,
leading to an incorrect TMU sequence.
Fix this by flagging TMUA writes (which are the sequence terminators for
general TMU accessess) as writing new TMU configuration, like we do for all
other TMU sequence terminators for textures and images.
Fixes: 197090a3fc ('broadcom/compiler: implement pipelining for general TMU operations')
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8954>
Mike Blumenkrantz [Tue, 18 Aug 2020 21:12:27 +0000 (17:12 -0400)]
zink: add a texture barrier hook
this just flushes all the pending batches, which is enough since we
do our batch work synchronously and everything is awful
will be reworked when this is no longer the case
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8948>
Mike Blumenkrantz [Tue, 18 Aug 2020 21:00:48 +0000 (17:00 -0400)]
zink: handle nir_texop_texture_samples
this is just a SpvOpImageQuerySamples
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8947>
Mike Blumenkrantz [Tue, 18 Aug 2020 19:07:18 +0000 (15:07 -0400)]
zink: rework viewport handling
viewport can be transformed at draw time based on clip_halfz, so we actually
want to do the conversion from gallium->vulkan at that time
as a nice bonus, we get to delete a struct member
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8946>
Danylo Piliaiev [Mon, 1 Feb 2021 19:02:00 +0000 (21:02 +0200)]
turnip: enable inheritedQueries
Passes relevant CTS tests.
Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8824>
Samuel Pitoiset [Tue, 9 Feb 2021 14:29:50 +0000 (15:29 +0100)]
radv: fix memory leaks if a submission fails
If the device isn't lost, the application might want to re-submit.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8931>
Mike Blumenkrantz [Wed, 19 Aug 2020 18:32:30 +0000 (14:32 -0400)]
zink: handle vote intrinsics in ntv
these are super simple and straightforward
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8950>
Mike Blumenkrantz [Wed, 19 Aug 2020 18:19:11 +0000 (14:19 -0400)]
zink: add spirv_builder wrapper for vote intrinsics
these are all going to use the same mechanics, so we can simplify a bit
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8950>
Michel Dänzer [Wed, 10 Feb 2021 11:20:25 +0000 (12:20 +0100)]
ci: Add trailing slash to path for documentation preview
Fixes the documentation preview link on the MR Overview tab. Found by
comparing with the same thing in weston.
(It still appears only after all jobs in the pipeline have at least
started once though)
Fixes: ae8f9584f4c9 "CI: always expose docs artifacts"
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8927>
Alejandro Piñeiro [Tue, 9 Feb 2021 12:12:03 +0000 (13:12 +0100)]
v3dv: support for depthBiasClamp
Gets tests like the following working:
dEQP-VK.dynamic_state.rs_state.depth_bias_clamp
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8928>
Rhys Perry [Tue, 9 Feb 2021 21:33:43 +0000 (21:33 +0000)]
aco: fix adjust_vertex_fetch_alpha
These offsets were wrong and didn't match the old behaviour.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Fixes: e8220e106bf ("aco: optimize AC_FETCH_FORMAT_SNORM alpha adjust")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8935>
Samuel Pitoiset [Tue, 9 Feb 2021 09:48:53 +0000 (10:48 +0100)]
radv: stop allocating useless ESGS scratch BO on GFX10+
On GFX10+, the ESGS ring is allocated in LDS. This saves one BO
when geometry shaders are used, and possibly two BOs if nothing
else (tess, scratch, etc) is used.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8926>
Samuel Pitoiset [Tue, 9 Feb 2021 22:13:15 +0000 (23:13 +0100)]
radv: fix double free when creating a fence failed
It's already freed in radv_destroy_fence().
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8938>
Eric Anholt [Wed, 20 Jan 2021 23:48:53 +0000 (15:48 -0800)]
gallium: Document behavior of more lowering pipe caps.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8601>
Eric Anholt [Wed, 20 Jan 2021 21:22:23 +0000 (13:22 -0800)]
v3d: Stop advertising support for flat shading.
The GL frontend can lower this weird GL feature away for us. This should
fix redeclaration of the gl_Color/SecondaryColor as centroid, since that
case had been missed in the !flat special case here.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8601>
Eric Anholt [Wed, 20 Jan 2021 21:05:59 +0000 (13:05 -0800)]
v3d: Stop advertising support for PIPE_CAP_*_COLOR_CLAMPED.
The GL frontend can lower away this deprecated GL feature for us.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8601>
Eric Anholt [Wed, 20 Jan 2021 20:55:44 +0000 (12:55 -0800)]
v3d: Stop advertising support for PIPE_CAP_TWO_SIDED_COLOR.
The GL frontend can lower away this deprecated GL feature for us.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8601>
Eric Anholt [Wed, 20 Jan 2021 20:33:49 +0000 (12:33 -0800)]
v3d: Clean up vestiges of alpha test lowering.
We had an unnecessary case in our uniforms upload switch statement, since
we no longer advertise the cap.
Fixes: 8ad931808e2d ("v3d: do not report alpha-test as supported")
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8601>
Eric Anholt [Wed, 20 Jan 2021 20:21:12 +0000 (12:21 -0800)]
vc4: Stop advertising support for VS color clamping.
This is special GL behavior that the frontend is now able to handle for
us.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8601>
Eric Anholt [Wed, 20 Jan 2021 20:13:55 +0000 (12:13 -0800)]
vc4: Stop advertising support for PIPE_CAP_TWO_SIDED_COLOR.
The GL frontend is perfectly able to handle this for us.
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8601>
Eric Anholt [Wed, 20 Jan 2021 20:07:54 +0000 (12:07 -0800)]
vc4: Remove vestiges of alpha test lowering.
We stopped reporting the alpha test screen cap, and stopped using the
value in the key, so now shrink the key. This gets another switch case
out of the hot uniforms upload path.
Fixes: 1404b8b1e5b6 ("vc4: do not report alpha-test as supported")
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8601>
Eric Anholt [Wed, 20 Jan 2021 20:01:50 +0000 (12:01 -0800)]
mesa/st: Assume that the default variant is always first in the list.
Since we always precompile now, we can remove some checks for presence of
the first variant or for it being the wrong key.
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8601>
Eric Anholt [Wed, 20 Jan 2021 19:55:12 +0000 (11:55 -0800)]
mesa/st: Always precompile the first shader variant.
Every driver wants the chance to see the default variant of the shader in
the hopes of avoiding draw-time shader compiles, even if they have some
NOS compiled into the shader by st/mesa. Before, every driver had to
avoid st/mesa lowering options to get this behavior, even if they would
like to have the shared lowering code, and some drivers were just missing
the behavior because nobody had debugged that it was missing yet.
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8601>
Eric Anholt [Fri, 29 Jan 2021 00:50:34 +0000 (16:50 -0800)]
freedreno/a5xx: Don't forget to count our custom blits against queries.
Noticed when comparing the a5xx and a6xx paths.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8873>
Eric Anholt [Thu, 28 Jan 2021 21:29:15 +0000 (13:29 -0800)]
freedreno: Remove FD_STAGE_* in favor of a "disable_all" flag.
The only paths are "prepare queries for rendering" and "finish all
queries", everything else is handled by set_active_query_state().
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8873>
Eric Anholt [Thu, 28 Jan 2021 23:40:35 +0000 (15:40 -0800)]
freedreno: Force updating active queries on batch reordering.
The state of queries for the batch we've just switched to may not reflect
the current active flag, so make sure that we update at the start of the
next draw.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8873>
Eric Anholt [Thu, 4 Feb 2021 00:38:04 +0000 (16:38 -0800)]
ci/virgl: Fix GLES31 testing on desktop GL.
The version overrides leaked into the virglrenderer server, breaking
compiling of all sorts of shaders. We already get GLES3.1 when running
virgl on llvmpipe GL without doing any overrides.
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8854>
Mike Blumenkrantz [Wed, 10 Feb 2021 00:26:47 +0000 (19:26 -0500)]
features: mark off GL 4.3 for zink
\o/
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8941>
Mike Blumenkrantz [Wed, 12 Aug 2020 19:23:23 +0000 (15:23 -0400)]
zink: GLSL 430
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8941>
Mike Blumenkrantz [Wed, 12 Aug 2020 21:03:15 +0000 (17:03 -0400)]
zink: enable compute
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>
Mike Blumenkrantz [Wed, 12 Aug 2020 21:02:42 +0000 (17:02 -0400)]
zink: export compute-specific shader/compute caps
this doesn't enable the compute cap itself, it just handles all the other
caps
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>
Mike Blumenkrantz [Wed, 12 Aug 2020 21:01:42 +0000 (17:01 -0400)]
zink: add launch_grid pipe_context hook for compute handling
we're reusing update_descriptors, so this is trivial
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>
Mike Blumenkrantz [Wed, 12 Aug 2020 21:00:09 +0000 (17:00 -0400)]
zink: flush gfx/compute batches when the other pipeline needs resource sync
if compute or gfx use a resource which is already in use by the other pipeline,
we need to ensure tha we flush that pipeline now in order to have commands execute
in the expected order
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>
Mike Blumenkrantz [Wed, 12 Aug 2020 20:58:57 +0000 (16:58 -0400)]
zink: handle descriptor set updates for compute operations
this is almost identical, the difference being that we need to explicitly
use the compute batch/program in a few places
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>
Mike Blumenkrantz [Wed, 12 Aug 2020 20:56:35 +0000 (16:56 -0400)]
zink: handle memory barriers for compute batch
this is a bit different since the regular functions cycle the gfx batch
array, but the compute batch isn't in an array
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>
Mike Blumenkrantz [Wed, 12 Aug 2020 20:55:36 +0000 (16:55 -0400)]
zink: setup compute batch and add handling
this is separate to the gfx batch array,
so we need separate struct members in zink_context for it
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>
Mike Blumenkrantz [Wed, 12 Aug 2020 20:47:03 +0000 (16:47 -0400)]
zink: break out descriptor updating into separate function
this is a massive block of code that we need to reuse for compute shaders
because we absolutely don't want to be copying it around
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>
Mike Blumenkrantz [Wed, 12 Aug 2020 20:37:46 +0000 (16:37 -0400)]
zink: add compute programs and pipelines
these are similar to the gfx variants, but mostly smaller
some things are implemented as placeholders for now to make the code
similar to gfx programs/pipelines and thus easier to read/review
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>
Mike Blumenkrantz [Thu, 26 Nov 2020 17:50:07 +0000 (12:50 -0500)]
zink: rename pipeline_cache_entry -> gfx_pipeline_cache_entry
prep for compute pipelines
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>
Mike Blumenkrantz [Wed, 12 Aug 2020 20:25:12 +0000 (16:25 -0400)]
zink: explicitly get shader stage from shader during binding setup in draw
the iterator matches the shader stage currently, but this won't always be the
case
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>
Mike Blumenkrantz [Wed, 12 Aug 2020 20:21:25 +0000 (16:21 -0400)]
zink: make allocate_descriptor_set() take more params instead of a gfx_program
this makes the function reusable between different types of programs
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>
Mike Blumenkrantz [Wed, 12 Aug 2020 20:15:59 +0000 (16:15 -0400)]
zink: refactor batch creation
by moving this into its own function, we can reuse it for creating a compute
batch, which will not be part of the gfx batch array
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>
Mike Blumenkrantz [Wed, 12 Aug 2020 20:11:02 +0000 (16:11 -0400)]
zink: take a pipe_reference param in zink_batch_reference_program
this lets us reuse the function for gfx and compute programs without much
churn, since in C we can use a pointer to the first member of a struct and
a pointer to the struct interchangeably
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>
Mike Blumenkrantz [Wed, 12 Aug 2020 20:04:07 +0000 (16:04 -0400)]
zink: ignore compute batch when starting/ending batches
compute batches don't have queries
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>
Mike Blumenkrantz [Wed, 12 Aug 2020 20:03:31 +0000 (16:03 -0400)]
zink: handle nir_intrinsic_memory_barrier_shared in ntv
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>
Mike Blumenkrantz [Wed, 12 Aug 2020 19:57:53 +0000 (15:57 -0400)]
zink: add handling for shared atomic ops in ntv
these are mostly the same as ssbo except they use the shared block variable
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>
Mike Blumenkrantz [Wed, 12 Aug 2020 19:57:17 +0000 (15:57 -0400)]
zink: implement shared load/store nir ops in ntv
these access the data in the shared block variable at an offset
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>
Mike Blumenkrantz [Wed, 12 Aug 2020 19:56:03 +0000 (15:56 -0400)]
zink: handle COMPUTE glsl variables
we can just use existing helpers for these
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>
Mike Blumenkrantz [Wed, 12 Aug 2020 19:54:48 +0000 (15:54 -0400)]
zink: handle COMPUTE setup in ntv
addressing mode, shared block, and execution modes all need to be handled
here
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>
Mike Blumenkrantz [Wed, 12 Aug 2020 19:53:40 +0000 (15:53 -0400)]
zink: handle COMPUTE bindings in compiler/ntv
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>
Mike Blumenkrantz [Wed, 12 Aug 2020 18:24:57 +0000 (14:24 -0400)]
zink: add spirv_builder function for emitting a 3word literal exec mode
used by compute
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>
Mike Blumenkrantz [Tue, 11 Aug 2020 22:39:25 +0000 (18:39 -0400)]
zink: wait on compute batch when necessary during transfer map
now that we have the capability to wait on specific batches, we can
check whether we need to sync with the compute queue here before trying
to map resources
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>
Mike Blumenkrantz [Tue, 11 Aug 2020 22:32:44 +0000 (18:32 -0400)]
zink: make zink_batch_reference_resource_rw return usage info
now this provides some info regarding which batches need to be flushed,
allowing gfx batches and compute batches to share resources
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>
Mike Blumenkrantz [Tue, 11 Aug 2020 22:36:15 +0000 (18:36 -0400)]
zink: make get_resource_usage() public
also cover compute batch id (still not yet used)
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>
Mike Blumenkrantz [Tue, 11 Aug 2020 22:35:15 +0000 (18:35 -0400)]
zink: bump resource usage flags to allow 5 batches
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>
Mike Blumenkrantz [Tue, 11 Aug 2020 22:31:43 +0000 (18:31 -0400)]
zink: add defines for compute batch and gfx batch count
this will be used for handling batch usage with compute
also bump some struct field sizes based on this
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8781>
Lionel Landwerlin [Wed, 9 Dec 2020 15:57:25 +0000 (17:57 +0200)]
intel/stub: plug some gaps in our ioctl faking
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8934>
Lionel Landwerlin [Wed, 9 Dec 2020 15:56:52 +0000 (17:56 +0200)]
drm-shim: report support for timeline semaphores
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Acked-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8934>
Lionel Landwerlin [Sun, 6 Dec 2020 21:22:45 +0000 (23:22 +0200)]
anv: only signal wsi fence BO on last command buffer
I'm pretty sure this doesn't fix anything because the WSI code only
use a single VkSubmitInfo, but better be safe.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: ccb7d606f1a293 ("anv: Use submit-time implicit sync instead of allocate-time")
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8934>
Lionel Landwerlin [Sun, 6 Dec 2020 21:11:32 +0000 (23:11 +0200)]
anv: break up internal queueing function
We want more control over batching things up when possible to minimize
the round trips to i915. This breaking up of one big internal function
into helpers will be useful later.
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8934>
Lionel Landwerlin [Sun, 6 Dec 2020 20:23:17 +0000 (22:23 +0200)]
anv: add a comment describing has_relocs field
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8934>
Michel Zou [Sun, 18 Oct 2020 11:08:21 +0000 (13:08 +0200)]
vulkan/lavapipe: add missing VKAPI_ATTR/CALL
Acked-by: Jose Fonseca <jfonsec@vmware.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8823>
Rhys Perry [Tue, 12 Jan 2021 16:18:47 +0000 (16:18 +0000)]
aco: remove loop to flag loop blocks as WQM
This is no longer necessary.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8446>
Rhys Perry [Fri, 15 Jan 2021 16:00:35 +0000 (16:00 +0000)]
aco: rewrite setting of Exact_Branch
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8446>
Rhys Perry [Tue, 12 Jan 2021 16:18:47 +0000 (16:18 +0000)]
aco: do not flag all blocks WQM to ensure we enter all nested loops in WQM
This should no longer be necessary since the mark_block_wqm() we use to
flag break conditions as WQM now adds block to the worklist. With them
added to the worklist, get_block_needs() will add WQM to block_needs.
Adding WQM to block_needs here without adding the block to the worklist
(like we do here) can cause issues because it does not ensure that the
predecessors' branches are in WQM (needed for it to be possible to
transition to WQM in the block). This happened in an Overwatch shader.
No fossil-db changes.
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Fixes: 661922f6ac9 ("aco: add block to worklist in mark_block_wqm()")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4066
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8446>
Michel Dänzer [Wed, 16 Dec 2020 11:17:46 +0000 (12:17 +0100)]
ci: Append build image tag to LAVA tag used for minio path
This automatically ensures the LAVA kernel / device-tree / rootfs files
are updated along with the build image, so any relevant changes in the
latter are reflected in the former.
v2:
* Use the same definition of DISTRIBUTION_TAG in .lava-test:amd64 as in
kernel+rootfs_amd64
v3:
* Extend comment about $MESA_BASE_TAG in .lava-test:amd64 (Eric Anholt)
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7988>
Michel Dänzer [Fri, 11 Dec 2020 18:00:40 +0000 (19:00 +0100)]
ci: Incorporate base image tag into dependent image tags
Using new .incorporate-base-tag+templates-commit & .set-image-base-tag
templates.
This automatically ensures dependent images get rebuilt along with the
base image, no more need to manually bump the dependent image tags.
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7988>
Michel Dänzer [Wed, 9 Dec 2020 17:58:48 +0000 (18:58 +0100)]
ci: Add and use .set-image template to construct docker image name
Instead of open-coding everywhere.
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7988>
Michel Dänzer [Wed, 9 Dec 2020 17:35:45 +0000 (18:35 +0100)]
ci: Move FDO_DISTRIBUTION_TAG assignment to template
This will be useful in more places later. Should have no functional
effect for now.
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7988>
Michel Dänzer [Wed, 9 Dec 2020 17:48:26 +0000 (18:48 +0100)]
ci: Use MESA_IMAGE_TAG everywhere
Instead of just "TAG".
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7988>
Michel Dänzer [Wed, 9 Dec 2020 17:42:15 +0000 (18:42 +0100)]
ci: Use MESA_ namespace for image variables in Windows jobs
Instead of a separate WINDOWS_ namespace.
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7988>
Michel Dänzer [Sun, 10 May 2020 13:13:04 +0000 (15:13 +0200)]
ci: Set GALLIVM_PERF=nopt,no_filter_hacks for llvmpipe-gles2
Gives us 48 more passed tests, and possibly slightly shorter job times.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4986>
Michel Dänzer [Mon, 11 May 2020 09:24:29 +0000 (11:24 +0200)]
ci: Set GALLIVM_PERF=no_filter_hacks for llvmpipe-piglit-quick_gl
Gives us 13 more passed tests.
(GALLIVM_PERF=nopt breaks some tests here)
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4986>
Michel Dänzer [Mon, 11 May 2020 09:22:54 +0000 (11:22 +0200)]
ci: Set GALLIVM_PERF=no_filter_hacks for llvmpipe-piglit-quick_shader
Gives us 1 more passed test.
(GALLIVM_PERF=nopt breaks some tests here)
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Acked-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4986>
Tomeu Vizoso [Tue, 9 Feb 2021 13:38:40 +0000 (14:38 +0100)]
ci: Disable two radeonsi jobs
The machine to which these boards are connected to is having trouble
keeping up when the rootfs are expanded. This is causing jobs to time
out and fail.
So as a mitigation measure reduce the load by disabling two of these
jobs until the root problem is solved.
Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8930>
Leo Liu [Mon, 8 Feb 2021 13:37:45 +0000 (08:37 -0500)]
radeon/vcn: enable dynamic dpb Tier2 support
On VCN3 with codec AV1 and VP9
Signed-off-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: James Zhu <James.Zhu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8916>
Leo Liu [Mon, 8 Feb 2021 13:31:52 +0000 (08:31 -0500)]
radeon/vcn: implement dynamic dpb Tier2 support
Fill up the t2 message buffers based on reference lists, so to
avoid unnecessary allocation of the buffers.
Signed-off-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: James Zhu <James.Zhu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8916>
Leo Liu [Mon, 8 Feb 2021 13:16:06 +0000 (08:16 -0500)]
radeon/vcn: add dynamic dpb Tier2 message buffer interface
Tier2 will dynamically manange the dpb buffers, so that can
save even more VRAMs
Signed-off-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: James Zhu <James.Zhu@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8916>
Samuel Pitoiset [Tue, 9 Feb 2021 10:55:22 +0000 (11:55 +0100)]
radv: fix printing the debug option names
radv_dump_enabled_options() doesn't like holes. While we are at it,
use ull everywhere.
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8925>
Rhys Perry [Mon, 8 Feb 2021 15:37:02 +0000 (15:37 +0000)]
aco: optimize AC_FETCH_FORMAT_SNORM alpha adjust
This looks like it was copied from LLVM, which didn't have a fmax
intrinsic.
fossil-db (GFX8):
Totals from 43 (0.03% of 140385) affected shaders:
CodeSize: 49660 -> 49488 (-0.35%)
Instrs: 10434 -> 10348 (-0.82%)
Cycles: 41736 -> 41392 (-0.82%)
VMEM: 13793 -> 13719 (-0.54%)
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8918>
Bas Nieuwenhuizen [Mon, 8 Feb 2021 14:24:30 +0000 (15:24 +0100)]
radv: Fix vram override with fully visible VRAM.
Fixes: cf2eebdf4f1 ("radv,gallium: Add driconf option to reduce advertised VRAM size.")
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8915>
Gert Wollny [Sun, 31 Jan 2021 17:54:01 +0000 (18:54 +0100)]
gallium/tgsi-to-nir: Take property NUM_CLIPDIST_ENABLED into account
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8919>
Gert Wollny [Sun, 31 Jan 2021 12:40:14 +0000 (13:40 +0100)]
gallium/tgsi_to_nir: Handle SAMPLE_MASK output in FS
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8919>