platform/upstream/mesa.git
3 years agoturnip: reset push descriptor set on command buffer reset
Danylo Piliaiev [Wed, 2 Jun 2021 13:07:13 +0000 (16:07 +0300)]
turnip: reset push descriptor set on command buffer reset

Otherwise it will store a pointer to already unmapped memory which
could lead to a crash in tu_CmdPushDescriptorSetWithTemplateKHR since
it tries to copy data from the old memory.

Fixes a crash with Zink's new lazy descriptor manager instroduced
in bfdd1d8d

Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com>
Reviewed-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11137>

3 years agoradv: explicitly load a desc set layout struct member during set allocate
Mike Blumenkrantz [Tue, 1 Jun 2021 15:11:00 +0000 (11:11 -0400)]
radv: explicitly load a desc set layout struct member during set allocate

accessing this variable repeatedly like this is a contended hotpath somehow,
so instead just create a const for reference

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11124>

3 years agoradv: declare index_va in a single call for indexed draw packet emit
Mike Blumenkrantz [Tue, 30 Mar 2021 20:22:27 +0000 (16:22 -0400)]
radv: declare index_va in a single call for indexed draw packet emit

this is an extreme hotpath, so having a single calculation in a const
variable is slightly better for compiler microoptimizing

Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11124>

3 years agodocs: add the doc-comment for fse-vars
Erik Faye-Lund [Tue, 1 Jun 2021 10:22:00 +0000 (12:22 +0200)]
docs: add the doc-comment for fse-vars

This just copies the comment that's in the code where this state is
stored. It seems better than nothing.

Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11106>

3 years agodocs: use envvar role for envvars
Erik Faye-Lund [Tue, 1 Jun 2021 09:30:08 +0000 (11:30 +0200)]
docs: use envvar role for envvars

Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11106>

3 years agodocs: use file-role for paths
Erik Faye-Lund [Tue, 1 Jun 2021 09:36:46 +0000 (11:36 +0200)]
docs: use file-role for paths

Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11106>

3 years agodocs: fix header-levels in envvars.rst
Erik Faye-Lund [Tue, 1 Jun 2021 09:44:50 +0000 (11:44 +0200)]
docs: fix header-levels in envvars.rst

It seems something went wrong during conversion of this article (or
maybe even before in the HTML version), where every header after the
"Gallium environment variables" header was nested below it.

That's clearly not what's meant here, so let's fix that.

This makes the toctree make a bit more sense for this article.

Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11106>

3 years agodocs: quote a few defines
Erik Faye-Lund [Tue, 1 Jun 2021 09:31:15 +0000 (11:31 +0200)]
docs: quote a few defines

Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11106>

3 years agoaux/draw: fix aalines and aapoints for shaders with explicit FragData outputs
Mike Blumenkrantz [Fri, 28 May 2021 13:53:00 +0000 (09:53 -0400)]
aux/draw: fix aalines and aapoints for shaders with explicit FragData outputs

all color outputs need to be rewritten with coverage, not just FragColor

Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11065>

3 years agov3dv: implement external semaphore/fence extensions
Iago Toral Quiroga [Tue, 1 Jun 2021 07:41:48 +0000 (09:41 +0200)]
v3dv: implement external semaphore/fence extensions

This provides most of the implementation, but there are some
things we cannot enable until we improve of kernel submit
interface, namely:

We don't expose capacity to export SYNC_FD, although we do
have the implementation in place. This requires that we
improve our kernel interface and event wait implementation
first so we can cover the corner case where the application
submits a command buffer that includes a VkCmdWaitForEvents
and tries to export a SYNC_FD from its signal semaphores or
fence before it the event is signaled and the command buffer
is sent to the kernel for execution in full.

Likewise, we can't currently import semaphores. This is because
our current kernel submit interface can only take one syncobj.
We have been working around this so far by waiting on the last
syncobj produced from the device whenever we had to wait on any
semaphores (which is obviously suboptimal already), but this
won't work as soon as we allow importing external semaphores,
as those could (and would typically) be produced from a
different device.

Once we address the kernel bits, we should come back and enable
SYNC_FD exports as well as semaphore imports.

Relevant CTS tests:
dEQP-VK.api.external.fence.*
dEQP-VK.api.external.semaphore.*
dEQP-VK.synchronization.cross_instance.*

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11105>

3 years agov3dv: don't keep an open file descriptor for imported fences/semaphores
Iago Toral Quiroga [Tue, 1 Jun 2021 07:33:36 +0000 (09:33 +0200)]
v3dv: don't keep an open file descriptor for imported fences/semaphores

We can (and should) close the descriptor immediately after the import.

Gets the following CTS test to pass without requiring to increase limits
for open file descriptors:
dEQP-VK.synchronization.basic.binary_semaphore.chain

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11105>

3 years agoandroid: i965: remove brw_ff_gs_emit.c from Makefile.sources
Mauro Rossi [Sat, 8 May 2021 08:30:52 +0000 (10:30 +0200)]
android: i965: remove brw_ff_gs_emit.c from Makefile.sources

Fixes the following building error:

clang: error: no such file or directory: 'external/mesa/src/mesa/drivers/dri/i965/brw_ff_gs_emit.c'
clang: error: no input files

Fixes: 897bcc1e6b42 ("i965: drop old brw ff gs code.")
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10718>

3 years agoandroid: intel/compiler: add brw_compile_ff_gs.c to Makefile.sources
Mauro Rossi [Sat, 8 May 2021 09:18:38 +0000 (11:18 +0200)]
android: intel/compiler: add brw_compile_ff_gs.c to Makefile.sources

Fixes the following building error:

FAILED: out/target/product/x86_64/obj_x86/SHARED_LIBRARIES/i965_dri_intermediates/LINKED/i965_dri.so
...
ld.lld: error: undefined symbol: brw_compile_ff_gs_prog
>>> referenced by brw_ff_gs.c:56 (external/mesa/src/mesa/drivers/dri/i965/brw_ff_gs.c:56)

Fixes: 52e426fd8b57 ("intel/compiler: add support for compiling fixed function gs")
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10718>

3 years agoCI: Fix path confusion in OpenCL Piglit execution
Daniel Stone [Mon, 31 May 2021 20:01:42 +0000 (21:01 +0100)]
CI: Fix path confusion in OpenCL Piglit execution

When we remove the contents of the results directory, we `cd` into it.
The script expects that $PWD is /piglit, and $OLDPWD is the Mesa build
directory, however the cd into the results directory will make $OLDPWD
be $BUILDDIR/results.

This means that Piglit emits into results/results/ which looks weird,
but more importantly also fails OpenCL Piglit execution, because we
can't find our baseline result expectations.

Fix it by using an explicit variable rather than relying on history.

Fixes: 683ddf19dc85 ("ci: remove results directory content only with piglit runners")
Ref: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10856
Signed-off-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Martin Peres <martin.peres@mupuf.org>
Reviewed-by: Andres Gomez <agomez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11126>

3 years agoRevert "CI: Disable rk3399-gru-kevin jobs for now"
Daniel Stone [Mon, 31 May 2021 08:50:40 +0000 (09:50 +0100)]
Revert "CI: Disable rk3399-gru-kevin jobs for now"

We've got 7/10 devices back now, that'll do.

This reverts commit 79a7f33710b84218a040a2bd540d7c39d1c0d2d4.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11127>

3 years agosparc: Avoid some redefinition warnings
Matt Turner [Tue, 1 Jun 2021 21:38:19 +0000 (14:38 -0700)]
sparc: Avoid some redefinition warnings

These definitions are provided by m_vector_asm.h now.

Fixes: 67ffb853f05 ("sparc: Reuse m_vector_asm.h.")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11119>

3 years agoci/lava: Switch LAVA jobs to x86 runners
Tomeu Vizoso [Mon, 31 May 2021 07:03:04 +0000 (09:03 +0200)]
ci/lava: Switch LAVA jobs to x86 runners

So we don't need to provision aarch64 servers, which are these days
rarer than x8_64.

In the switch to the new runner tags, switch to one which contains the
device type, so we can dimension the runner jobs taking into account the
number of DUTs available.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Acked-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11108>

3 years agofreedreno/afuc: Print uintptr_t with PRIxPTR
Matt Turner [Tue, 1 Jun 2021 21:00:30 +0000 (14:00 -0700)]
freedreno/afuc: Print uintptr_t with PRIxPTR

Fixes a compilation error on 32-bit.

Fixes: bba61cef38b ("freedreno/afuc: Add emulator mode to afuc-disasm")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11118>

3 years agoci/android: Update to building for SDK 29 by default.
Eric Anholt [Wed, 21 Apr 2021 21:00:34 +0000 (14:00 -0700)]
ci/android: Update to building for SDK 29 by default.

This will get us build coverage of a bunch of Vulkan features, plus the
ELF TLS support.

Reviewed-by: Roman Stratiienko <r.stratiienko@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10389>

3 years agoandroid: Fix ELF TLS support.
Eric Anholt [Wed, 21 Apr 2021 20:58:58 +0000 (13:58 -0700)]
android: Fix ELF TLS support.

Android 29 introduced general-dynamic TLS variable support ("quick
function call to look up the location of the dynamically allocated
storage"), while Mesa on normal Linux has used initial-exec ("use some of
the startup-time fixed slots, hope for the best!").  Both would be better
options than falling all the way back to pthread_getspecific(), which is
the alternative we have pre-29.

Reviewed-by: Roman Stratiienko <r.stratiienko@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10389>

3 years agoutil: Add a helper macro for defining initial-exec variables.
Emma Anholt [Fri, 21 May 2021 20:23:07 +0000 (13:23 -0700)]
util: Add a helper macro for defining initial-exec variables.

I'm going to add another case for Android shortly, and then we can keep
the logic all in one spot.

Reviewed-by: Roman Stratiienko <r.stratiienko@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10389>

3 years agoaux/draw: if pipe_draw_info::index_bias_varies is not set, ignore index_bias for N>1
Mike Blumenkrantz [Tue, 18 May 2021 15:10:02 +0000 (11:10 -0400)]
aux/draw: if pipe_draw_info::index_bias_varies is not set, ignore index_bias for N>1

this enables some optimizations in lavapipe

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10995>

3 years agoaux/trace: dump resource for samplerview and surface sandbox/jbko/21.2.0-devel
Mike Blumenkrantz [Tue, 25 May 2021 12:00:21 +0000 (08:00 -0400)]
aux/trace: dump resource for samplerview and surface

this is the most important member

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10974>

3 years agodocs/gallium: Document the index buffer format convention
Alyssa Rosenzweig [Tue, 25 May 2021 21:59:46 +0000 (17:59 -0400)]
docs/gallium: Document the index buffer format convention

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10990>

3 years agosi: Use Rn_UINT instead of In_UINT for index buffers
Alyssa Rosenzweig [Tue, 25 May 2021 21:57:37 +0000 (17:57 -0400)]
si: Use Rn_UINT instead of In_UINT for index buffers

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10990>

3 years agolima: Use Rn_UINT instead of In_UINT for index buffers
Alyssa Rosenzweig [Tue, 25 May 2021 21:57:31 +0000 (17:57 -0400)]
lima: Use Rn_UINT instead of In_UINT for index buffers

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10990>

3 years agofreedreno: Use Rn_UINT instead of In_UINT for index buffers
Alyssa Rosenzweig [Tue, 25 May 2021 21:57:26 +0000 (17:57 -0400)]
freedreno: Use Rn_UINT instead of In_UINT for index buffers

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10990>

3 years agoetnaviv: Use Rn_UINT instead of In_UINT for index buffers
Alyssa Rosenzweig [Tue, 25 May 2021 21:57:21 +0000 (17:57 -0400)]
etnaviv: Use Rn_UINT instead of In_UINT for index buffers

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10990>

3 years agov3d: Use Rn_UINT instead of In_UINT for index buffers
Alyssa Rosenzweig [Tue, 25 May 2021 21:57:41 +0000 (17:57 -0400)]
v3d: Use Rn_UINT instead of In_UINT for index buffers

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10990>

3 years agovc4: Use Rn_UINT instead of In_UINT for index buffers
Alyssa Rosenzweig [Tue, 25 May 2021 21:57:09 +0000 (17:57 -0400)]
vc4: Use Rn_UINT instead of In_UINT for index buffers

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10990>

3 years agozink: ci updates
Mike Blumenkrantz [Tue, 1 Jun 2021 23:07:16 +0000 (19:07 -0400)]
zink: ci updates

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11093>

3 years agozink: optimize buffer rebinds
Mike Blumenkrantz [Wed, 10 Mar 2021 23:59:49 +0000 (18:59 -0500)]
zink: optimize buffer rebinds

by using the bind counts, the common cases of rebinds can be immediately
handled without unnecessary iteration, and following this each rebind can
be evaluated to ensure that every necessary descriptor was rebound in order
to catch any remaining corner cases that may not be handled in the optimized
rebind path

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11093>

3 years agozink: unify more resource bind count tracking code
Mike Blumenkrantz [Mon, 1 Feb 2021 18:36:46 +0000 (13:36 -0500)]
zink: unify more resource bind count tracking code

we want to avoid updating these values when possible in order to reduce
overhead, which means that if a descriptor is being replaced, it should
be updated only if the replacement is not the same resource

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11093>

3 years agozink: unify code for updating res->bind_count values
Mike Blumenkrantz [Mon, 1 Feb 2021 18:06:26 +0000 (13:06 -0500)]
zink: unify code for updating res->bind_count values

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11093>

3 years agozink: add a second descriptor manager
Mike Blumenkrantz [Mon, 4 Jan 2021 18:34:13 +0000 (13:34 -0500)]
zink: add a second descriptor manager

this is the "lazy" descriptor manager, which aims to perform the least
amount of work calculating updates while ignoring the overhead that an
update may incur: effectively the inverse of the caching manager

in this initial implementation, divergence exists between the descriptor
layouts of the cached manager and the lazy manager in order to avoid
incurring regressions in the existing descriptor architecture; this will
be reconciled in a followup MR that refactors and unifies descriptor layouts

during this interim period and until such reconciliation occurs,
the default descriptor manager is now the lazy manager for testing purposes as
there are no changes here which can affect the existing infrastructure

the caching descriptor manager can be selected with the ZINK_CACHE_DESCRIPTORS
env var and will be automatically used for vulkan drivers which don't support
the features required for lazy mode (templates)

Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11093>

3 years agopanfrost/ci: Report flakes on IRC
Alyssa Rosenzweig [Wed, 26 May 2021 23:00:00 +0000 (19:00 -0400)]
panfrost/ci: Report flakes on IRC

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11022>

3 years agoci: Move the flakes channels to OFTC
Emma Anholt [Wed, 26 May 2021 21:13:47 +0000 (14:13 -0700)]
ci: Move the flakes channels to OFTC

Following the rest of our channels, move CI reporting over.  Seems to
still work fine.  This affects freedreno and iris.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11020>

3 years agoci: Add known-flake handling for the IRC flake reports
Emma Anholt [Wed, 26 May 2021 17:45:33 +0000 (10:45 -0700)]
ci: Add known-flake handling for the IRC flake reports

Now, flakes that aren't in the *-flakes.txt get a "NEW" in their report so
I can watch for them.

The bash was unwieldy and made debugging hard, so I switched to python.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11020>

3 years agoanv: fix availability for copying timestamp query results
Mike Blumenkrantz [Tue, 1 Jun 2021 16:26:27 +0000 (12:26 -0400)]
anv: fix availability for copying timestamp query results

idx here is the index of the value being written, so if it isn't used/incremented
when the query result is written, the availability result will clobber it and
be written to the same buffer offset

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11116>

3 years agopanfrost: Eliminate reserve_* functions
Alyssa Rosenzweig [Thu, 20 May 2021 21:09:14 +0000 (17:09 -0400)]
panfrost: Eliminate reserve_* functions

We always want to reserve _something_, so reserve what we need at batch
creation time and stop trying to re-reserve in a zillion places after.
This has a neglible (<128 bytes per batch) increase in memory usage for
compute-only workloads, but given the amount of simplication, that's a
fair tradeoff.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11074>

3 years agopanfrost: Elucidate thread group split field
Alyssa Rosenzweig [Thu, 20 May 2021 23:25:00 +0000 (19:25 -0400)]
panfrost: Elucidate thread group split field

Last unknown field in the XML :-)

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11074>

3 years agopanfrost: Bubble up errors
Alyssa Rosenzweig [Thu, 20 May 2021 23:12:13 +0000 (19:12 -0400)]
panfrost: Bubble up errors

Instead of punting to PAN_MESA_DEBUG=msgs, which we can now remove.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11074>

3 years agopanfrost: Minor changes to draw_vbo
Alyssa Rosenzweig [Thu, 20 May 2021 22:29:14 +0000 (18:29 -0400)]
panfrost: Minor changes to draw_vbo

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11074>

3 years agopanfrost: Write translate_index_size better
Alyssa Rosenzweig [Thu, 20 May 2021 20:43:51 +0000 (16:43 -0400)]
panfrost: Write translate_index_size better

Encodings line up with Gallium except for uint32.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11074>

3 years agopanfrost: Dirty track stack sizes
Alyssa Rosenzweig [Thu, 20 May 2021 18:13:07 +0000 (14:13 -0400)]
panfrost: Dirty track stack sizes

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11074>

3 years agopanfrost: Don't allocate empty varying buffer
Alyssa Rosenzweig [Thu, 20 May 2021 18:10:25 +0000 (14:10 -0400)]
panfrost: Don't allocate empty varying buffer

If the FS doesn't actually read any varyings, there's no point.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11074>

3 years agopanfrost: Dirty track constant buffers
Alyssa Rosenzweig [Thu, 20 May 2021 17:38:57 +0000 (13:38 -0400)]
panfrost: Dirty track constant buffers

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11074>

3 years agopanfrost: Analyze sysval dirty flags
Alyssa Rosenzweig [Thu, 20 May 2021 17:22:39 +0000 (13:22 -0400)]
panfrost: Analyze sysval dirty flags

We want dirty tracking for constant buffer uploads, but which dirty
flags are needed depend on what the sysvals are. So for each sysval,
record a corresponding dirty flag at compile time, so at draw-time the
check is easy.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11074>

3 years agopanfrost: Add draw parameters dirty flags
Alyssa Rosenzweig [Thu, 20 May 2021 17:22:01 +0000 (13:22 -0400)]
panfrost: Add draw parameters dirty flags

Needed to track some new sysvals.

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11074>

3 years agopanfrost: Shrink pan_draw_mode return type
Alyssa Rosenzweig [Thu, 20 May 2021 17:11:02 +0000 (13:11 -0400)]
panfrost: Shrink pan_draw_mode return type

Let gcc emit ldrb instead of ldr for the table. Found by perf, but total
waste of time >_>

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11074>

3 years agopanfrost: Update comment
Alyssa Rosenzweig [Wed, 19 May 2021 21:48:25 +0000 (17:48 -0400)]
panfrost: Update comment

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11074>

3 years agoci/v3dv: update expected results
Juan A. Suarez Romero [Mon, 31 May 2021 15:47:02 +0000 (17:47 +0200)]
ci/v3dv: update expected results

Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11103>

3 years agopanfrost: Fix pan_pool_ref construction
Antonio Caggiano [Fri, 28 May 2021 12:45:03 +0000 (14:45 +0200)]
panfrost: Fix pan_pool_ref construction

Fix designator order for `pan_pool_ref` fields by matching declaration
order and avoid an error by the C++ compiler.

Signed-off-by: Antonio Caggiano <antonio.caggiano@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11064>

3 years agodocs: add basic documentation for venus
Chia-I Wu [Tue, 25 May 2021 20:11:25 +0000 (13:11 -0700)]
docs: add basic documentation for venus

It probably lacks some details but is a start at least.

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10988>

3 years agogitlab-ci: enable building of Vulkan tests in Piglit
Tapani Pälli [Mon, 31 May 2021 07:09:55 +0000 (10:09 +0300)]
gitlab-ci: enable building of Vulkan tests in Piglit

This is part of tackling a Piglit issue:
https://gitlab.freedesktop.org/mesa/piglit/-/issues/53

Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10971>

3 years agopanfrost: Use first_tiler to check if tiling is needed
Icecream95 [Mon, 31 May 2021 11:20:33 +0000 (23:20 +1200)]
panfrost: Use first_tiler to check if tiling is needed

If there is a preload job needing tiling, but no other jobs, then
first_tiler will be set but not tiler_dep.

Fixes faults when two depth-only (stencil is reloaded) clears are done
in a row.

panfrost ffa30000.gpu: Unhandled Page fault in AS1 at VA 0x0000000044870000
               Reason: TODO
               raw fault status: 0x49002C1
               decoded fault status: SLAVE FAULT
               exception type 0xC1: TRANSLATION_FAULT_LEVEL1
               access type 0x2: READ
               source id 0x490
panfrost ffa30000.gpu: gpu sched timeout, js=0, config=0x3301, status=0x8, head=0x608a300, tail=0x608a300, sched_job=f5b0862d

Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11104>

3 years agopanfrost: Call abort() when aborting on fault
Icecream95 [Mon, 31 May 2021 11:18:07 +0000 (23:18 +1200)]
panfrost: Call abort() when aborting on fault

The existing exit(EIO) wasn't getting trapped by debuggers.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11104>

3 years agopan/decode: Flush the dump stream after decoding
Icecream95 [Mon, 31 May 2021 11:18:48 +0000 (23:18 +1200)]
pan/decode: Flush the dump stream after decoding

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11104>

3 years agogitlab-ci: add python script to submit lava jobs
Gustavo Padovan [Sat, 29 May 2021 00:38:54 +0000 (21:38 -0300)]
gitlab-ci: add python script to submit lava jobs

Covert the job submission process to a python script for more
robustness and control. allowing easier manipulation of job data.

As a result, it adds retry logic to deal with Infrastructure Errors in LAVA.

_call_proxy() is equipped with a robust retry logic, which I have been
using already in the past few weeks in stress testing to run hundreds
of jobs.

Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11079>

3 years agov3d/simulator: use BFC/RFC registers to wait for bin/render to complete
Alejandro Piñeiro [Thu, 27 May 2021 08:59:07 +0000 (10:59 +0200)]
v3d/simulator: use BFC/RFC registers to wait for bin/render to complete

We were using the CT0CA (Control List Executor Current Address) and
CT0EA (Control List Executor End Address) registers, but that would
only wait for the CLE to reach the end of the list, but there could
still be things in the rest of the pipeline.

Even if that seems to work with the current simulator, the correct way
to do that is using the BFC (Binning Mode Flush Count) and RFC
(Rendering Mode Frame Count) registers instead.

In fact, this would be needed with a newer simulator snapshot, in
order to get the followint CTS tests working:
  dEQP-VK.api.copy_and_blit.core.resolve_image.whole_array_image.4_bit
  dEQP-VK.api.copy_and_blit.core.resolve_image.whole_array_image_one_region.4_bit
  dEQP-VK.api.copy_and_blit.core.resolve_image.whole_copy_before_resolving.4_bit
  dEQP-VK.api.device_init.create_instance_device_intentional_alloc_fail
  dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.multiple_layers.r32g32_uint
  dEQP-VK.api.image_clearing.core.clear_color_image.1d.optimal.remaining_array_layers_twostep.r16_sint

Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11039>

3 years agov3d/simulator: use the proper register when waiting on a CSD submit
Alejandro Piñeiro [Wed, 26 May 2021 21:21:31 +0000 (23:21 +0200)]
v3d/simulator: use the proper register when waiting on a CSD submit

Until now we were waiting until having a dispatch current and/or
queued. But that would only wait for all shaders to have started, it
won't wait for them to have finished.

With this commit we wait until the NUM_COMPLETED_JOBS (that in spite
of that name, it is about dispatches) field got increased.

This is in general safest, and it is needed after the latest simulator
update to get CTS tests like the following ones working:

  dEQP-VK.compute.basic.copy_ssbo_multiple_invocations
  dEQP-VK.compute.basic.copy_ssbo_single_invocation
  dEQP-VK.compute.basic.ssbo_rw_single_invocation
  dEQP-VK.compute.basic.ssbo_unsized_arr_single_invocation
  dEQP-VK.compute.basic.ubo_to_ssbo_multiple_invocations
  dEQP-VK.compute.basic.ubo_to_ssbo_single_invocation

v2 (from Juan feedback):
   * Clarify JOBS vs DISPATCHES

Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11039>

3 years agov3d/simulator: wait for cache flushes
Alejandro Piñeiro [Tue, 25 May 2021 21:52:48 +0000 (23:52 +0200)]
v3d/simulator: wait for cache flushes

Current code just assumes that flushes are instant, as simulator
doesn't really model the caches. So right now we have just an assert
that the flush has been done.

But that can change on the future, so let's change the assert for a
wait.

Note that for the l1t case we are writing on the field TMUWCF. So I
understand that then we need to wait for TMUWCF_SET, even if the
previous code was using L2TFLS_SET.

This also happpens on the kernel side. We need to check if this was a
typo on the kernel side.

v2 (from Juan feedback)
   * Add comment about the TMUWCF vs L2TFLS difference between this
     commit and the kernel.

Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11039>

3 years agov3d/simulator: add a cache flush mode enum
Alejandro Piñeiro [Sun, 23 May 2021 21:09:58 +0000 (23:09 +0200)]
v3d/simulator: add a cache flush mode enum

Makes the write to the l2t cache control more readable (without magic
numbers).

Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11039>

3 years agov3d/simulator: capture hub interrupts
Alejandro Piñeiro [Fri, 7 May 2021 23:11:42 +0000 (01:11 +0200)]
v3d/simulator: capture hub interrupts

So far we were not capturing any HUB interrupt, just core. This could
be a problem if any is fired, as we could enter on an infinite
loop. With this commit we start to capture them. So we split v3d_isr
into core and hub interrupt handling.

As reference we capture the same HUB interrupts that we capture on the
v3d kernel support.

It is worth to note that all those are mostly untested. Now with both
opengl/vulkan driver being stable we were not able to raise those
interrupts.

v2 (Juan feedback):
   * Just one V3D_VERSION >= 41 block, more readable
   * Assert that the core is 0 at v3d_isr_core (we don't handle
     multi-core right now).

Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11039>

3 years agobroadcom/compiler: use proper type field for atomic operations
Alejandro Piñeiro [Wed, 28 Apr 2021 22:57:25 +0000 (00:57 +0200)]
broadcom/compiler: use proper type field for atomic operations

We were using the num_components to infer it, but in the end it is
VEC2 for CMPXCHG and 32BIT for anything else.

This doesn't affect any test with the real hw, but fixes an assert
with the last version of the simulator.

Reviewed-by: Juan A. Suarez <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11039>

3 years agoci/lava: Disable CPU frequency scaling
Tomeu Vizoso [Fri, 28 May 2021 09:41:20 +0000 (11:41 +0200)]
ci/lava: Disable CPU frequency scaling

Lock CPU frequency scaling to max to speed up test execution and lower
the variation of frame times from performance replay jobs.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Corentin Noël <corentin.noel@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11101>

3 years agoRevert "ci/freedreno: Skip Portal 2 trace on a630, due to flakiness"
Tomeu Vizoso [Fri, 28 May 2021 09:20:50 +0000 (11:20 +0200)]
Revert "ci/freedreno: Skip Portal 2 trace on a630, due to flakiness"

This reverts commit e381bc0e6711de83d393ef3cc0b6b795772c1813.

Signed-off-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Reviewed-by: Corentin Noël <corentin.noel@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11058>

3 years agoac/rgp: bump the SQTT file minor version to 5
Samuel Pitoiset [Fri, 28 May 2021 12:56:04 +0000 (14:56 +0200)]
ac/rgp: bump the SQTT file minor version to 5

To match latest RGP spec. Captures generated by RADV still work
with latest RGP (v1.10).

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/11063>

3 years agoac/rgp: mark SQTT_FILE_CHUNK_TYPE_ISA_DATABASE as deprecated
Samuel Pitoiset [Fri, 28 May 2021 12:55:40 +0000 (14:55 +0200)]
ac/rgp: mark SQTT_FILE_CHUNK_TYPE_ISA_DATABASE as deprecated

This is now deprecated and reserved for future uses.

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/11063>

3 years agoasahi: Allocate slices for mipmapping
Alyssa Rosenzweig [Tue, 1 Jun 2021 00:08:50 +0000 (20:08 -0400)]
asahi: Allocate slices for mipmapping

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086>

3 years agoasahi: Set levels in texture descriptor
Alyssa Rosenzweig [Tue, 1 Jun 2021 00:08:57 +0000 (20:08 -0400)]
asahi: Set levels in texture descriptor

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086>

3 years agoasahi: Add mipmapping state to the XML
Alyssa Rosenzweig [Tue, 1 Jun 2021 00:08:37 +0000 (20:08 -0400)]
asahi: Add mipmapping state to the XML

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086>

3 years agoasahi: Abort on blit()
Alyssa Rosenzweig [Mon, 31 May 2021 23:21:49 +0000 (19:21 -0400)]
asahi: Abort on blit()

Unimplemented.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086>

3 years agoasahi: Make data_valid a bitset to save memory
Alyssa Rosenzweig [Mon, 31 May 2021 22:59:02 +0000 (18:59 -0400)]
asahi: Make data_valid a bitset to save memory

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086>

3 years agoasahi: Allow half-float vertex buffers
Alyssa Rosenzweig [Mon, 31 May 2021 20:35:36 +0000 (16:35 -0400)]
asahi: Allow half-float vertex buffers

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086>

3 years agoasahi: Flesh out the formats table
Alyssa Rosenzweig [Mon, 31 May 2021 20:35:21 +0000 (16:35 -0400)]
asahi: Flesh out the formats table

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086>

3 years agoasahi: Fake CAPs for ES3 with AGX_MESA_DEBUG=deqp
Alyssa Rosenzweig [Mon, 31 May 2021 20:34:23 +0000 (16:34 -0400)]
asahi: Fake CAPs for ES3 with AGX_MESA_DEBUG=deqp

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086>

3 years agoasahi: Lift streamout scaffolding from Panfrost
Alyssa Rosenzweig [Mon, 31 May 2021 20:10:40 +0000 (16:10 -0400)]
asahi: Lift streamout scaffolding from Panfrost

Trying to fake ES3 for dEQP-GLES3.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086>

3 years agoasahi: Add "hacks for dEQP" flag
Alyssa Rosenzweig [Mon, 31 May 2021 20:10:02 +0000 (16:10 -0400)]
asahi: Add "hacks for dEQP" flag

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086>

3 years agoasahi: Add ETC2 formats to table
Alyssa Rosenzweig [Mon, 31 May 2021 19:46:18 +0000 (15:46 -0400)]
asahi: Add ETC2 formats to table

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086>

3 years agoasahi: Respect render target format swizzle
Alyssa Rosenzweig [Mon, 31 May 2021 19:37:40 +0000 (15:37 -0400)]
asahi: Respect render target format swizzle

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086>

3 years agoasahi: Use pixel table in is_format_supported
Alyssa Rosenzweig [Mon, 31 May 2021 19:34:40 +0000 (15:34 -0400)]
asahi: Use pixel table in is_format_supported

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086>

3 years agoasahi: Scaffold format table
Alyssa Rosenzweig [Mon, 31 May 2021 19:29:20 +0000 (15:29 -0400)]
asahi: Scaffold format table

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086>

3 years agoasahi: Hide pixel formats behind an opaque type
Alyssa Rosenzweig [Mon, 31 May 2021 19:08:55 +0000 (15:08 -0400)]
asahi: Hide pixel formats behind an opaque type

Convenient for mapping a format table.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086>

3 years agoasahi: Add format enums
Alyssa Rosenzweig [Mon, 31 May 2021 18:37:06 +0000 (14:37 -0400)]
asahi: Add format enums

Split it up into the underlying parts. Now we can decode every format
accessible in Metal.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086>

3 years agoasahi: Print unknown enum values
Alyssa Rosenzweig [Mon, 31 May 2021 18:36:56 +0000 (14:36 -0400)]
asahi: Print unknown enum values

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086>

3 years agoasahi: Align strides to 16 bytes
Alyssa Rosenzweig [Sun, 30 May 2021 22:54:40 +0000 (04:24 +0530)]
asahi: Align strides to 16 bytes

Apparently required for texturing.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086>

3 years agoasahi: Note that "render target" lacks an sRGB bit
Alyssa Rosenzweig [Sun, 30 May 2021 22:39:51 +0000 (04:09 +0530)]
asahi: Note that "render target" lacks an sRGB bit

sRGB is handled through other mechanisms.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086>

3 years agoasahi: Handle linear display targets as well as tiled
Alyssa Rosenzweig [Mon, 31 May 2021 22:08:14 +0000 (18:08 -0400)]
asahi: Handle linear display targets as well as tiled

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086>

3 years agoasahi: Respect linear strides
Alyssa Rosenzweig [Sun, 30 May 2021 22:03:05 +0000 (03:33 +0530)]
asahi: Respect linear strides

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086>

3 years agoasahi: Identify line stride in texture/RT XML
Alyssa Rosenzweig [Sun, 30 May 2021 22:01:43 +0000 (03:31 +0530)]
asahi: Identify line stride in texture/RT XML

The off-by-four is concerning.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086>

3 years agoasahi: Translate layouts for texture and RTs
Alyssa Rosenzweig [Sun, 30 May 2021 21:55:34 +0000 (03:25 +0530)]
asahi: Translate layouts for texture and RTs

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086>

3 years agoasahi: Add layout enum to XML
Alyssa Rosenzweig [Sun, 30 May 2021 21:49:35 +0000 (03:19 +0530)]
asahi: Add layout enum to XML

Used for textures and render targets. There are more values here, probably for
other tiling schemes and compression.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086>

3 years agoasahi: Use dt_stride for line_stride where needed
Alyssa Rosenzweig [Sun, 30 May 2021 21:45:10 +0000 (03:15 +0530)]
asahi: Use dt_stride for line_stride where needed

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086>

3 years agoasahi: Determine tiling vs linear for internal textures
Alyssa Rosenzweig [Sun, 30 May 2021 21:31:07 +0000 (03:01 +0530)]
asahi: Determine tiling vs linear for internal textures

Logic lifted from Panfrost.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086>

3 years agoasahi: Implement wide lines
Alyssa Rosenzweig [Sun, 30 May 2021 17:18:37 +0000 (22:48 +0530)]
asahi: Implement wide lines

Identify line width field and route through the Gallium line width.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086>

3 years agoasahi: Fix off-by-one in viewport scissoring
Alyssa Rosenzweig [Fri, 28 May 2021 02:51:09 +0000 (22:51 -0400)]
asahi: Fix off-by-one in viewport scissoring

As discovered during the stream. Typo pointed out by someone in the Twitch chat.

Fixes: f285a1220ea ("asahi: Implement scissors and scissor to viewport")
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11086>

3 years agofreedreno/headergen2: Fix compile warnings with CP_DRAW_INDIRECT_MULTI
Rob Clark [Mon, 31 May 2021 20:24:04 +0000 (13:24 -0700)]
freedreno/headergen2: Fix compile warnings with CP_DRAW_INDIRECT_MULTI

Using stripes to deal with the different packet layout variants resulted
in redefining "register" offsets with different values, so use "prefix"
to add a suffix to disambiguate.

  drivers/gpu/drm/msm/adreno/adreno_pm4.xml.h:1066: warning: "REG_A6XX_CP_DRAW_INDIRECT_MULTI_INDIRECT" redefined
   1066 | #define REG_A6XX_CP_DRAW_INDIRECT_MULTI_INDIRECT  0x00000006
        |
  drivers/gpu/drm/msm/adreno/adreno_pm4.xml.h:1057: note: this is the location of the previous definition
   1057 | #define REG_A6XX_CP_DRAW_INDIRECT_MULTI_INDIRECT  0x00000003
        |

(Admittedly it isn't really a "prefix" but that was the field in the
schema available to use, and REG_INDEXED_CP_DRAW_INDIRECT_MULTI_STRIDE
sounds somewhat more funny.)

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10944>

3 years agofreedreno/afuc: Use emulator to extract jmptbl
Rob Clark [Mon, 24 May 2021 18:00:28 +0000 (11:00 -0700)]
freedreno/afuc: Use emulator to extract jmptbl

This runs through the SQE bootstrap code to extract the packet-table,
rather than relying on heuristics.  As a bonus, it can detect the start
of the LPAC fw in a660+ fw so that we can properly decode the LPAC fw
and packet-table.

Note that this decodes the jmptable as normal instructions, which is a
change in behavior from the previous heuristic based jmptbl extraction.
Not sure if that is a good or bad thing.

For a5xx, for now the legacy heuristic based jmptable decoding is
preserved, at least until enough control regs are figured out.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10944>

3 years agofreedreno/ci: Add real packet-table loading for afuc test
Rob Clark [Thu, 27 May 2021 21:37:59 +0000 (14:37 -0700)]
freedreno/ci: Add real packet-table loading for afuc test

When we start running the bootstrap code thru the emulator we will need
the packet-table loading to actually happen.  So add this.

Signed-off-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10944>