platform/upstream/mesa.git
3 years agotargets/haiku-softpipe: Restore GalliumContext
X512 [Sat, 22 Feb 2020 05:31:18 +0000 (14:31 +0900)]
targets/haiku-softpipe: Restore GalliumContext

Reviewed-by: Alexander von Gluck IV <kallisti5@unixzen.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8323>

3 years agoaux/driver_ddebug: Normalize pid type from Haiku
X512 [Tue, 5 Jan 2021 04:20:06 +0000 (22:20 -0600)]
aux/driver_ddebug: Normalize pid type from Haiku

Reviewed-by: Alexander von Gluck IV <kallisti5@unixzen.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8323>

3 years agofrontends/hgl: set framebuffer id
X512 [Tue, 5 Jan 2021 04:18:17 +0000 (22:18 -0600)]
frontends/hgl: set framebuffer id

Reviewed-by: Alexander von Gluck IV <kallisti5@unixzen.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8323>

3 years agofrontends/hgl: set state_manager
X512 [Tue, 5 Jan 2021 04:16:11 +0000 (22:16 -0600)]
frontends/hgl: set state_manager

Reviewed-by: Alexander von Gluck IV <kallisti5@unixzen.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8323>

3 years agohgl: use local headers instead of system header
X512 [Mon, 27 Jan 2020 08:26:10 +0000 (17:26 +0900)]
hgl: use local headers instead of system header

* We should choose the header we're building with
  and not the one installed by a previous mesa install

Reviewed-by: Alexander von Gluck IV <kallisti5@unixzen.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8323>

3 years agoinclude: fix export in Haiku OpenGL kit headers
X512 [Mon, 27 Jan 2020 05:40:06 +0000 (14:40 +0900)]
include: fix export in Haiku OpenGL kit headers

Reviewed-by: Alexander von Gluck IV <kallisti5@unixzen.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8323>

3 years agomeson: fix Haiku EGL build; no dri requirement
X512 [Tue, 5 Jan 2021 04:13:09 +0000 (22:13 -0600)]
meson: fix Haiku EGL build; no dri requirement

Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8323>

3 years agohgl/meson: add version to libGL.so
X512 [Mon, 27 Jan 2020 04:22:25 +0000 (13:22 +0900)]
hgl/meson: add version to libGL.so

Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8323>

3 years agotargets/haiku-softpipe/meson: add libswpipe.so to install directory
X512 [Mon, 27 Jan 2020 02:55:41 +0000 (11:55 +0900)]
targets/haiku-softpipe/meson: add libswpipe.so to install directory

Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8323>

3 years agoutil/meson: Add libnetwork dependency for Haiku
X512 [Tue, 5 Jan 2021 04:10:08 +0000 (22:10 -0600)]
util/meson: Add libnetwork dependency for Haiku

Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8323>

3 years agoutil: implement GET_PROGRAM_NAME for Haiku
X512 [Tue, 5 Jan 2021 04:04:39 +0000 (22:04 -0600)]
util: implement GET_PROGRAM_NAME for Haiku

Reviewed-by: Alexander von Gluck IV <kallisti5@unixzen.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8323>

3 years agonir/opt_vectorize: fix srcs_equal() with two different non-const
Rhys Perry [Fri, 8 Jan 2021 15:23:07 +0000 (15:23 +0000)]
nir/opt_vectorize: fix srcs_equal() with two different non-const

To match hash_alu_src(), this should return false if both are different
non-const ssa defs.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8391>

3 years agonir/opt_vectorize: fix typo in instr_can_rewrite()
Rhys Perry [Fri, 8 Jan 2021 15:13:44 +0000 (15:13 +0000)]
nir/opt_vectorize: fix typo in instr_can_rewrite()

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8391>

3 years agoandroid: ac/radv: fix typo in ac_rgp.h listed in Makefile.sources
Mauro Rossi [Thu, 7 Jan 2021 21:59:53 +0000 (22:59 +0100)]
android: ac/radv: fix typo in ac_rgp.h listed in Makefile.sources

Fixes the following building error:

error: external/mesa/src/amd/Android.mk: libmesa_amd_common: Unused source files: common/ac_rgph.

Fixes: 4ec5cf5318f4 ("ac/radv: move radv_rgp.c to ac")
Signed-off-by: Mauro Rossi <issor.oruam@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8371>

3 years agogallium/u_threaded: skip draws if user index buffer size has size == 0
Marek Olšák [Wed, 6 Jan 2021 04:14:55 +0000 (23:14 -0500)]
gallium/u_threaded: skip draws if user index buffer size has size == 0

This happens when all draws have count == 0.

Fixes: 85b6ba136bdc2db5 "st/mesa: implement Driver.DrawGallium callbacks

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8345>

3 years agovbo: fix a index buffer map failure with size = 0 in get_minmax_indices_gallium
Marek Olšák [Wed, 6 Jan 2021 04:14:08 +0000 (23:14 -0500)]
vbo: fix a index buffer map failure with size = 0 in get_minmax_indices_gallium

Fixes: 85b6ba136bdc2db5 "st/mesa: implement Driver.DrawGallium callbacks

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8345>

3 years agomesa: skip draws w/ count == 0 and instance_count == 0 in draw_gallium_fallback
Marek Olšák [Wed, 6 Jan 2021 04:11:38 +0000 (23:11 -0500)]
mesa: skip draws w/ count == 0 and instance_count == 0 in draw_gallium_fallback

Fixes: 85b6ba136bdc2db5 "st/mesa: implement Driver.DrawGallium callbacks

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8345>

3 years agogallium: skip draws with count == 0 or instance_count == 0 in drivers
Marek Olšák [Wed, 6 Jan 2021 04:07:46 +0000 (23:07 -0500)]
gallium: skip draws with count == 0 or instance_count == 0 in drivers

Fixes: 85b6ba136bdc2db5 "st/mesa: implement Driver.DrawGallium callbacks"

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8345>

3 years agoutil: Avoid pthread_setaffinity_np on NetBSD
nia [Sun, 6 Dec 2020 13:47:53 +0000 (14:47 +0100)]
util: Avoid pthread_setaffinity_np on NetBSD

NetBSD's variant has a different prototype from the Linux version
the code expects. It might make sense to add support for NetBSD's
version, however, since NetBSD defaults to not allowing non-root
users to set processor affinity, there would be little gain here.

This is a build fix for NetBSD.

Signed-off-by: Nia Alarie <nia@NetBSD.org>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
CC: 20.3 <mesa-stable@lists.freedesktop.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7947>

3 years agoclover: Add constructor for clover::module.
Vinson Lee [Tue, 5 Jan 2021 04:27:42 +0000 (20:27 -0800)]
clover: Add constructor for clover::module.

Fix defect reported by Coverity Scan after commit 95527fe2292
("clover/module: add a printf support to module (v5)").

Uninitialized scalar variable (UNINIT)
uninit_use_in_call: Using uninitialized value
m.printf_strings_in_buffer when calling module.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Francisco Jerez <currojerez@riseup.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8322>

3 years agoiris: Drop fast_clear_color's blorp_flags param
Nanley Chery [Tue, 24 Nov 2020 22:18:31 +0000 (14:18 -0800)]
iris: Drop fast_clear_color's blorp_flags param

Now that conditional fast clears are disabled, the blorp_flags parameter
is unused.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7762>

3 years agoiris: Delete iris_resolve_conditional_render
Nanley Chery [Tue, 24 Nov 2020 22:17:49 +0000 (14:17 -0800)]
iris: Delete iris_resolve_conditional_render

This function has no more users.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7762>

3 years agoiris: Disable conditional fast clears
Nanley Chery [Fri, 8 Jan 2021 17:43:52 +0000 (09:43 -0800)]
iris: Disable conditional fast clears

For color buffers, conditional fast clears can cause aux-state tracking
to lose information necessary for resolves later on.

For depth buffers, they never actually worked because they occurred
unconditionally. Even if they were conditional, they would suffer from
the same issues as color buffers.

Enables iris to pass the nv_conditional_render-clear-bug piglit test.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3565
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7762>

3 years agoiris: Make can_fast_clear_depth return constants
Nanley Chery [Thu, 19 Nov 2020 00:17:42 +0000 (16:17 -0800)]
iris: Make can_fast_clear_depth return constants

Make can_fast_clear_depth more consistent with can_fast_clear_color.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7762>

3 years agoiris: Explain how conditional aux accesses work
Nanley Chery [Fri, 8 Jan 2021 18:18:28 +0000 (10:18 -0800)]
iris: Explain how conditional aux accesses work

Apart from an issue with fast clears that will be addressed soon,
aux-state tracking with conditional rendering works because the
aux-state info needed for performing required resolves is never lost.

Add comments explaining how this works. Assertions are omitted to avoid
having to pass render_condition variables into
iris_resource_prepare_access and iris_resource_finish_write.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7762>

3 years agoanv: Bump maxGeometryInputComponents to 128 on Gen8+
Jason Ekstrand [Fri, 8 Jan 2021 18:37:31 +0000 (12:37 -0600)]
anv: Bump maxGeometryInputComponents to 128 on Gen8+

See 8e627af59d5bd416 and 1e3e72e3054de for why this may not be a good
idea on Gen7.

Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8397>

3 years agonir/lower_locals_to_regs: Use the imul_imm helper instead of forcing it.
Eric Anholt [Thu, 7 Jan 2021 00:08:43 +0000 (16:08 -0800)]
nir/lower_locals_to_regs: Use the imul_imm helper instead of forcing it.

Cleaned up a bit of addressing math in the shader I just had to debug.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8373>

3 years agogallium/ntt: Work around virglrenderer UIF handling bug.
Eric Anholt [Thu, 7 Jan 2021 00:05:59 +0000 (16:05 -0800)]
gallium/ntt: Work around virglrenderer UIF handling bug.

Until just recently ("vrend: Fix TGSI UIF/IF behavior"), virgl does "if
(any(bvec4(src0)))" instead of "if (src0.x != 0)", despite the tgsi.rst
documentation and tgsi_exec agreeing on the second form.  It's harmless to
work around it, since apparently NTT was the only one to not have scalar
swizzled the if condition.

Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8373>

3 years agogallium/ntt: Drop comment about needing array_id for svga tess.
Eric Anholt [Fri, 11 Dec 2020 22:59:37 +0000 (14:59 -0800)]
gallium/ntt: Drop comment about needing array_id for svga tess.

The svga tess stuff is about internally making a temp array, not arrayid
of the outputs.

Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8373>

3 years agogallium/ntt: Drop comment about needing loop label setup.
Eric Anholt [Fri, 11 Dec 2020 22:36:47 +0000 (14:36 -0800)]
gallium/ntt: Drop comment about needing loop label setup.

BRK/CONT don't take a label, as shown by tgsi_opcode_tmp.h and the lack of
any users of a label on those instructions in tree.  I can't find any user
of ENDLOOP's label.  Additionally, GLSL-to-TGSI apparently never set up
the BGNLOOP label, so even nvfx's usage probably wants us to not set it.

Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8373>

3 years agogallium/ntt: Add support for emitting TXF_LZ.
Eric Anholt [Fri, 11 Dec 2020 21:40:31 +0000 (13:40 -0800)]
gallium/ntt: Add support for emitting TXF_LZ.

Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8373>

3 years agogallium/ntt: Emit sample index when necessary for image load/store.
Eric Anholt [Fri, 11 Dec 2020 21:31:33 +0000 (13:31 -0800)]
gallium/ntt: Emit sample index when necessary for image load/store.

Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8373>

3 years agogallium/ntt: Emit SSBO buffer declarations.
Eric Anholt [Fri, 11 Dec 2020 21:14:05 +0000 (13:14 -0800)]
gallium/ntt: Emit SSBO buffer declarations.

This doesn't set the atomic flag the way the old TGSI path used to,
leaving us with a possible delta in caching modes on nv50 tgsi.

Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8373>

3 years agogallium/ntt: Drop XXX comment about supporting carry opcodes.
Eric Anholt [Thu, 10 Dec 2020 20:08:13 +0000 (12:08 -0800)]
gallium/ntt: Drop XXX comment about supporting carry opcodes.

The GLSL-to-NIR path didn't do carry, so we don't need to.

Reviewed-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8373>

3 years agoci: Disable the freedreno farm, which went down last night.
Eric Anholt [Fri, 8 Jan 2021 18:32:37 +0000 (10:32 -0800)]
ci: Disable the freedreno farm, which went down last night.

We're debugging it now, but let merges flow until then.

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

3 years agonv50: fake enough resume support pre-nva0 to pass gles3 requirements
Ilia Mirkin [Wed, 6 Jan 2021 05:48:23 +0000 (00:48 -0500)]
nv50: fake enough resume support pre-nva0 to pass gles3 requirements

GLES3 supports pause/resume of xfb. However since there's no geometry
shader support in ES3, it's a lot easier to figure out the offsets to
use. This makes it work for the dEQP tests at least.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8346>

3 years agonv50: only support 4 components in separate xfb mode
Ilia Mirkin [Wed, 6 Jan 2021 05:46:49 +0000 (00:46 -0500)]
nv50: only support 4 components in separate xfb mode

This is consistent with what the blob reports.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8346>

3 years agovirgl: fix modifier truncation
Chia-I Wu [Fri, 25 Dec 2020 20:30:26 +0000 (12:30 -0800)]
virgl: fix modifier truncation

Signed-off-by: Chia-I Wu <olvaffe@gmail.com>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8372>

3 years agoradv/winsys: set has_packed_math_16bit in null winsys
Rhys Perry [Fri, 8 Jan 2021 15:44:15 +0000 (15:44 +0000)]
radv/winsys: set has_packed_math_16bit in null winsys

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8392>

3 years agomicrosoft/compiler: do not lower away 64-bit ffma
Erik Faye-Lund [Wed, 6 Jan 2021 07:47:50 +0000 (08:47 +0100)]
microsoft/compiler: do not lower away 64-bit ffma

In DXIL, the FMA instruction only supports 64-bit operations. However,
back when we implemented support for this, there were only a single
switch for lowering all ffma instructions, so we couldn't easily use it.

But now that there's separate flags to lower ffma on 16, 32 and 64 bit,
we can lower 16 and 32 bit ffmas, and leave 64 bit ffmas alone.

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8349>

3 years agomicrosoft/compiler: correct dxil fma opcode
Erik Faye-Lund [Wed, 6 Jan 2021 07:51:18 +0000 (08:51 +0100)]
microsoft/compiler: correct dxil fma opcode

When I originally added the FFMA opcode here, I added the FMAD opcode
instead of the FMA opcode. The reason for this is that it works on
32-bit values as well, so that seemed like a better fit.

But that's not correct, as the FMA opcode isn't a fused operation, so
let's correct the opcode.

This isn't currently in use, because we currently lower away all ffma
opcodes on the NIR level, but that's about to change.

While we're at it, let's also update the opcode name to match the DXIL
documentation.

Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8349>

3 years agozink: disable render_condition_enable during blit
Erik Faye-Lund [Fri, 8 Jan 2021 08:50:02 +0000 (09:50 +0100)]
zink: disable render_condition_enable during blit

We don't support stencil-exports yet, and even when we will, we might
not support it on all hardware. So we really need an alternative plan
here, even when render_condition_enable is true.

Fixing this properly is much more involved, and depends on reworking
render-condition along the lines that we do in !7746 to support pausing
and resuming properly first. So let's do the minimal thing, which is to
allow this to work in cases where no render-condition is active.

Fixes: 767f70dfe13 ("gallium/util: fix util_can_blit_via_copy_region for conditional rendering")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4056
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8379>

3 years agoradv: only set BO metadata for the first plane
Simon Ser [Fri, 11 Dec 2020 11:56:28 +0000 (12:56 +0100)]
radv: only set BO metadata for the first plane

To properly support multi-planar images, we don't want to set metadata
on anything other than the first plane. To achieve this radv currently
checks for the image TILING and assumes LINEAR means it's not the first
plane.

However this doesn't account for images with a single LINEAR plane. We
still want to set metadata on those, e.g. to properly set the scanout
bit in the tiling flags.

Instead of checking for LINEAR, check if the offset is zero. Only the
first plane has a zero offset on AMD.

This mirrors the radeonsi logic [1].

While at it, move the metadata declaration into the if block.

[1]: https://gitlab.freedesktop.org/mesa/mesa/-/blob/6fecdc6dda6da15d616a31900508214c81cd256e/src/gallium/drivers/radeonsi/si_texture.c#L710

Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8086>

3 years agozink: clamp shader input/output max values
Mike Blumenkrantz [Mon, 4 Jan 2021 20:28:13 +0000 (15:28 -0500)]
zink: clamp shader input/output max values

some vulkan drivers (e.g., amdvlk) advertise absolutely huge values here,
resulting in bitmask overflows everywhere since gallium assumes a max of
32 for vertex inputs and nir uses 64bit types for others

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

3 years agoradv: support SpvCapabilitySparseResidency
Rhys Perry [Mon, 23 Nov 2020 14:14:57 +0000 (14:14 +0000)]
radv: support SpvCapabilitySparseResidency

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

3 years agoradv: implement is_sparse_texels_resident and sparse_residency_code_and
Rhys Perry [Wed, 9 Dec 2020 15:47:00 +0000 (15:47 +0000)]
radv: implement is_sparse_texels_resident and sparse_residency_code_and

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

3 years agoac/nir: implement sparse image/texture loads
Rhys Perry [Mon, 23 Nov 2020 15:02:28 +0000 (15:02 +0000)]
ac/nir: implement sparse image/texture loads

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

3 years agoac/nir: implement nir_op_vec5
Rhys Perry [Thu, 7 Jan 2021 13:29:35 +0000 (13:29 +0000)]
ac/nir: implement nir_op_vec5

Since sparse fetch/load uses vec5 destinations, it may be possible that we
encounter nir_op_vec5.

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

3 years agoaco: form sparse load clauses
Rhys Perry [Mon, 23 Nov 2020 12:51:15 +0000 (12:51 +0000)]
aco: form sparse load clauses

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

3 years agoaco: implement sparse image loads
Rhys Perry [Fri, 20 Nov 2020 16:14:37 +0000 (16:14 +0000)]
aco: implement sparse image loads

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

3 years agoaco: implement sparse texture fetches
Rhys Perry [Fri, 20 Nov 2020 15:11:16 +0000 (15:11 +0000)]
aco: implement sparse texture fetches

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

3 years agoaco: implement nir_op_vec5
Rhys Perry [Mon, 23 Nov 2020 13:15:20 +0000 (13:15 +0000)]
aco: implement nir_op_vec5

Since sparse fetch/load uses vec5 destinations, it may be possible that we
encounter nir_op_vec5.

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

3 years agoaco: move MIMG VDATA to its own operand
Rhys Perry [Thu, 19 Nov 2020 17:13:56 +0000 (17:13 +0000)]
aco: move MIMG VDATA to its own operand

We will want both a VDATA operand and a sampler for some TFE/LWE MIMG
instructions.

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

3 years agoaco: fix MIMG_instruction::lwe comment
Rhys Perry [Thu, 19 Nov 2020 16:42:17 +0000 (16:42 +0000)]
aco: fix MIMG_instruction::lwe comment

The ISA docs were inconsistent about what this flag does, but that seems
fixed in the RDNA doc.

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

3 years agoaco: fix unreachable() for uniform 8/16-bit nir_op_mov from VGPR
Rhys Perry [Fri, 8 Jan 2021 11:44:33 +0000 (11:44 +0000)]
aco: fix unreachable() for uniform 8/16-bit nir_op_mov from VGPR

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Fixes: d20a752c0de ("aco: use Builder::copy more")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8380>

3 years agoci: Add *ignore_scheduled_pipelines to mesa/gallium rules templates
Michel Dänzer [Thu, 7 Jan 2021 09:38:26 +0000 (10:38 +0100)]
ci: Add *ignore_scheduled_pipelines to mesa/gallium rules templates

These are currently not used directly, but maybe this can prevent copy
and paste accidents.

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

3 years agoci: Rule out scheduled pipelines in .windows-build-rules
Michel Dänzer [Thu, 7 Jan 2021 09:30:58 +0000 (10:30 +0100)]
ci: Rule out scheduled pipelines in .windows-build-rules

The lack of this broke scheduled pipelines, because they attempted
to create a meson-windows-vs2019 job, which couldn't work (because the
windows_build_vs2019 job doesn't exist in scheduled pipelines).

Fixes: 84c8a35aa2ca "CI: Add Windows source dependency map"
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8360>

3 years agoutil: Disable memstream for Apple builds
James Park [Wed, 30 Dec 2020 13:23:10 +0000 (05:23 -0800)]
util: Disable memstream for Apple builds

Not all SDK versions support open_memstream. Maybe some other day.

Fixes: af8d488ea5e ("util,ac,aco,radv: Cross-platform memstream API")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8269>

3 years agoradv: fix performance regression by restoring TC-compat HTILE in GENERAL
Samuel Pitoiset [Wed, 6 Jan 2021 15:19:21 +0000 (16:19 +0100)]
radv: fix performance regression by restoring TC-compat HTILE in GENERAL

This fixes a performance regression for games (eg. Youngblood) that
declare all images as concurrent. This is likely buggy for compute
queues but this just restores the previous behaviour for now.

Fixes: f4f096805b0 ("radv: fix TC-compat HTILE images with DST_OPTIMAL on the compute queue")
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/8351>

3 years agoradv: fix enabling TC-compat HTILE in GENERAL for writes on GFX10+
Samuel Pitoiset [Wed, 6 Jan 2021 16:54:08 +0000 (17:54 +0100)]
radv: fix enabling TC-compat HTILE in GENERAL for writes on GFX10+

It wasn't expected to also enable inside render loops.

Fixes: 4bb92d9145f ("radv: enable TC-compat HTILE in GENERAL on GFX10+")
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/8351>

3 years agoradv: configure the texture descriptor for TC-compat CMASK on GFX10+
Samuel Pitoiset [Wed, 6 Jan 2021 08:12:43 +0000 (09:12 +0100)]
radv: configure the texture descriptor for TC-compat CMASK on GFX10+

This was missing, it can be enabled with RADV_PERFTEST=tccompatcmask.
Note that this feature is still experimental.

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

3 years agor300: Fix typos.
Vinson Lee [Sun, 3 Jan 2021 01:11:56 +0000 (17:11 -0800)]
r300: Fix typos.

Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8296>

3 years agogallium/ntt: lower uniforms to ubo
Erik Faye-Lund [Thu, 7 Jan 2021 15:54:18 +0000 (16:54 +0100)]
gallium/ntt: lower uniforms to ubo

NTT doesn't handle uniforms, and requires them to have been lowered to
UBOs. But for drivers that don't set
nir_shader_compiler_options::lower_uniforms_to_ubo to true, this won't
have happened yet. Neither Zink nor V3D sets this option, and in the
case of Zink this isn't trivial to change.

So let's lower uniforms to UBOs in this case in NTT instead.

Fixes: 03c60762f57 ("gallium/ntt: Fix load_ubo_vec4 buffer index setup.")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4047
Reviewed-by: Jose Maria Casanova Crespo <jmcasanova@igalia.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8365>

3 years agoiris: Blit stencil according to aspect_mask
Nanley Chery [Mon, 4 Jan 2021 18:30:31 +0000 (10:30 -0800)]
iris: Blit stencil according to aspect_mask

With this change, stencil picks up the fix for 3D texture blits
introduced with commit 382451ff9d7b.

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

3 years agoiris: Use single-aspect formats more in iris_blit
Nanley Chery [Mon, 4 Jan 2021 19:40:52 +0000 (11:40 -0800)]
iris: Use single-aspect formats more in iris_blit

In order to handle blitting the stencil aspect of a depth-stencil
resource, use aspect-specific pipe formats in the aspect_mask loop.

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

3 years agoiris: Blit non-stencil according to aspect_mask
Nanley Chery [Mon, 4 Jan 2021 18:27:11 +0000 (10:27 -0800)]
iris: Blit non-stencil according to aspect_mask

When blitting just the stencil aspect, the source and destination
resources are prepared/setup twice. Move the unconditional resource
setup into the aspect_mask loop to avoid this.

In addition, use the aspect provided by the loop instead of the mask
provided by the info parameter.

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

3 years agoiris: Loop through an aspect mask in iris_blit
Nanley Chery [Mon, 4 Jan 2021 18:01:54 +0000 (10:01 -0800)]
iris: Loop through an aspect mask in iris_blit

Enables dropping the stencil-specific blit later on.

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

3 years agoiris: Increase use of pipe_resources in iris_blit
Nanley Chery [Mon, 4 Jan 2021 17:55:02 +0000 (09:55 -0800)]
iris: Increase use of pipe_resources in iris_blit

Allows the affected code to avoid being moved into a while loop later
on.

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

3 years agoiris: Use texture preparation helper in iris_blit
Nanley Chery [Mon, 4 Jan 2021 17:39:23 +0000 (09:39 -0800)]
iris: Use texture preparation helper in iris_blit

Use iris_resource_prepare_texture in iris_blit to avoid partial resolves
for sRGB <-> linear texture views. This affects a trace of L4D2.

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

3 years agoiris: Move depth-format assertion out of iris_blit
Nanley Chery [Mon, 14 Dec 2020 19:19:29 +0000 (11:19 -0800)]
iris: Move depth-format assertion out of iris_blit

Instead of having a depth-specific assertion in a generic portion of
iris_blit, move it into the depth-specific cases of
iris_resource_texture_aux_usage. Since iris_blit calls that function,
the test still occurs.

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

3 years agoiris: Don't prepare depth for stencil-aspect blits
Nanley Chery [Mon, 4 Jan 2021 17:25:34 +0000 (09:25 -0800)]
iris: Don't prepare depth for stencil-aspect blits

Before this change, iris_blit would prepare the depth buffer in a
depth-stencil resource even when only the stencil aspect was used for the
blit. Use the aspect mask to prepare the correct resource.

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

3 years agomesa: Don't make building tests conditional on building DRI drivers
Adam Jackson [Wed, 6 Jan 2021 18:15:20 +0000 (13:15 -0500)]
mesa: Don't make building tests conditional on building DRI drivers

These tests should work, and be built, even if you're only building
gallium drivers.

Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Dylan Baker <dylan@pnwbakers.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8353>

3 years agomesa: Fix array-format-to-format table on big-endian
Adam Jackson [Thu, 7 Jan 2021 20:47:08 +0000 (15:47 -0500)]
mesa: Fix array-format-to-format table on big-endian

The table constructor and the table lookup were doing different things
for big-endian. This fixes MesaFormatsTest.FormatFromFormatAndType and
MesaFormatsTest.FormatMatchesFormatAndType failing to round-trip for
GL_RGBA / GL_SHORT, which we're not currently running in CI for s390x,
but which a subsequent commit will enable.

Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8353>

3 years agotests: Fix memory leaks in DispatchSanity
Adam Jackson [Thu, 7 Jan 2021 18:36:11 +0000 (13:36 -0500)]
tests: Fix memory leaks in DispatchSanity

Needed to pass asan CI.

Reviewed-by: Eric Anholt <eric@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8353>

3 years agoradv/llvm,aco: always split typed vertex buffer loads on GFX6 and GFX10+
Samuel Pitoiset [Tue, 24 Nov 2020 13:56:55 +0000 (14:56 +0100)]
radv/llvm,aco: always split typed vertex buffer loads on GFX6 and GFX10+

To avoid any alignment issues that triggers memory violations and
eventually a GPU. This can happen if the stride (static or dynamic)
is unaligned and also if the VBO offset is aligned to scalar
(eg. stride is 8 and VBO offset is 2 for R16G16B16A16_SNORM).

The AMD Windows driver also always splits typed vertex fetches.

fossils-db (Sienna Cichlid):
Totals from 56508 (40.54% of 139391) affected shaders:
SGPRs: 2643545 -> 2664516 (+0.79%); split: -0.19%, +0.98%
VGPRs: 2007472 -> 1995408 (-0.60%); split: -0.74%, +0.13%
CodeSize: 70596372 -> 73913312 (+4.70%); split: -0.00%, +4.70%
MaxWaves: 772653 -> 774916 (+0.29%); split: +0.37%, -0.08%
Instrs: 14074162 -> 14567072 (+3.50%); split: -0.00%, +3.51%
Cycles: 69281276 -> 71253252 (+2.85%); split: -0.00%, +2.85%
VMEM: 22047039 -> 25554196 (+15.91%); split: +17.20%, -1.29%
SMEM: 4120370 -> 4360820 (+5.84%); split: +7.41%, -1.58%
VClause: 416913 -> 438361 (+5.14%); split: -1.86%, +7.01%
SClause: 536739 -> 542637 (+1.10%); split: -0.33%, +1.43%
Copies: 977194 -> 970015 (-0.73%); split: -2.43%, +1.69%
Branches: 241205 -> 241193 (-0.00%); split: -0.06%, +0.06%
PreVGPRs: 1505645 -> 1505379 (-0.02%)

This fixes GPU hangs with bin/draw-vertices from Piglit on GFX10+
with Zink.

Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8363>

3 years agoaco: fix creating the dest vector when 16-bit vertex fetches are splitted
Samuel Pitoiset [Thu, 7 Jan 2021 13:01:09 +0000 (14:01 +0100)]
aco: fix creating the dest vector when 16-bit vertex fetches are splitted

Compute the number of components of the destination vector from the
bitsize when eg. a 16-bit vec2 vertex fetches is splitted. This is
because the dst will be a v1, so the p_create_vector should be created
from two v2b fro both sizes to match.

This prevents a regression from the next change which will split
typed vertex buffer loads on GFX6 and GFX10+.

Cc: mesa-stable
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8363>

3 years agodocs/release-calendar.rsv: Remove spaces
Dylan Baker [Thu, 7 Jan 2021 00:12:42 +0000 (16:12 -0800)]
docs/release-calendar.rsv: Remove spaces

The generated entries don't have spaces, and the csv parser doesn't
like that some rows do and others don't have spaces.

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

3 years agodocs: Add calendar entries for 21.0 release candidates.
Dylan Baker [Thu, 7 Jan 2021 00:11:27 +0000 (16:11 -0800)]
docs: Add calendar entries for 21.0 release candidates.

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

3 years agonir,radv: add and use nir_vectorize_tess_levels()
Rhys Perry [Wed, 6 Jan 2021 14:50:57 +0000 (14:50 +0000)]
nir,radv: add and use nir_vectorize_tess_levels()

fossil-db (Sienna):
Totals from 1342 (0.97% of 138791) affected shaders:
CodeSize: 3287996 -> 3269572 (-0.56%); split: -0.56%, +0.00%
Instrs: 629896 -> 628191 (-0.27%); split: -0.31%, +0.04%
Cycles: 2619244 -> 2612424 (-0.26%); split: -0.30%, +0.04%
VMEM: 388807 -> 389273 (+0.12%); split: +0.14%, -0.02%
SMEM: 90655 -> 90700 (+0.05%); split: +0.06%, -0.01%
VClause: 21831 -> 21812 (-0.09%)
PreVGPRs: 44155 -> 44058 (-0.22%)

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4202>

3 years agoradv: vectorize shader I/O
Rhys Perry [Wed, 6 Jan 2021 11:37:03 +0000 (11:37 +0000)]
radv: vectorize shader I/O

Fixes code size regressions after enabling TCS/TES for ACO.

fossil-db (Sienna):
Totals from 2588 (1.86% of 138791) affected shaders:
SGPRs: 109950 -> 108480 (-1.34%); split: -1.43%, +0.09%
VGPRs: 107764 -> 112060 (+3.99%); split: -0.03%, +4.02%
CodeSize: 5957760 -> 5321656 (-10.68%)
MaxWaves: 31718 -> 30358 (-4.29%); split: +0.03%, -4.32%
Instrs: 1116300 -> 1029000 (-7.82%)
Cycles: 4600344 -> 4251072 (-7.59%)
VMEM: 980024 -> 812978 (-17.05%); split: +1.14%, -18.18%
SMEM: 275458 -> 258227 (-6.26%); split: +2.34%, -8.60%
VClause: 42925 -> 30533 (-28.87%); split: -31.02%, +2.15%
SClause: 31554 -> 31362 (-0.61%); split: -1.79%, +1.18%
Branches: 15689 -> 15697 (+0.05%)
PreVGPRs: 80399 -> 83953 (+4.42%); split: -0.00%, +4.42%

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4202>

3 years agonir/load_store_vectorize: add data as callback args
Rhys Perry [Fri, 13 Mar 2020 15:43:16 +0000 (15:43 +0000)]
nir/load_store_vectorize: add data as callback args

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4202>

3 years agonir: add nir_load_store_vectorize_options
Rhys Perry [Fri, 13 Mar 2020 15:33:15 +0000 (15:33 +0000)]
nir: add nir_load_store_vectorize_options

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4202>

3 years agonir/load_store_vectorize: don't ignore subgroup memory barriers
Rhys Perry [Fri, 13 Mar 2020 16:07:26 +0000 (16:07 +0000)]
nir/load_store_vectorize: don't ignore subgroup memory barriers

Not sure why I thought this was correct, but we should consider them for
optimization purposes.

Fixes: ce9205c03bd ('nir: add a load/store vectorization pass')
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4202>

3 years agov3d: reinterpret stencil data as uint texture in stencil blit path
Juan A. Suarez Romero [Tue, 5 Jan 2021 12:05:20 +0000 (13:05 +0100)]
v3d: reinterpret stencil data as uint texture in stencil blit path

There is a path to blit stencil buffers reinterpreting the stencil data
as an RGBA8888 or R8 float texture.

This works fine except for the case when the stencil buffer is
multisampled, and the blit operation needs to resolve it: an average of
the samples is done, which is incorrect, as only one sample must be
used.

This can be observed n the piglit test
`ext_framebuffer_multisample-unaligned-blit 2 stencil downsample -auto
-fbo`, specifically in the triangles border.

To avoid this averaging, let's reinterpret the stencil data as RGBA8888
or R8 uint texture.

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8361>

3 years agoradv: workaround games which assume full subgroups if cswave32 is enabled
Rhys Perry [Thu, 3 Dec 2020 17:38:51 +0000 (17:38 +0000)]
radv: workaround games which assume full subgroups if cswave32 is enabled

This assumption becomes incorrect with RADV_PERFTEST=cswave32.

Games include Detroit: Become Human and Doom Eternal.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7918>

3 years agonir: gather whether a compute shader uses non-quad subgroup intrinsics
Rhys Perry [Thu, 3 Dec 2020 17:38:18 +0000 (17:38 +0000)]
nir: gather whether a compute shader uses non-quad subgroup intrinsics

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7918>

3 years agoradv: implement CREATE_REQUIRE_FULL_SUBGROUPS_BIT with cswave32
Rhys Perry [Thu, 3 Dec 2020 17:37:32 +0000 (17:37 +0000)]
radv: implement CREATE_REQUIRE_FULL_SUBGROUPS_BIT with cswave32

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7918>

3 years agowsi/x11: Treat IMMEDIATE present mode the same as MAILBOX for Xwayland
Michel Dänzer [Mon, 21 Dec 2020 14:30:11 +0000 (15:30 +0100)]
wsi/x11: Treat IMMEDIATE present mode the same as MAILBOX for Xwayland

Two main reasons:

As described in the previous commit, sending buffers to the Wayland
compositor as quickly as possible effectively results in mailbox
behaviour.

Also, doing the same as for MAILBOX present mode provides the following
benefits:

* We use more images in the swapchain, which avoids stalls on the client
  side if the Wayland compositor directly uses the client buffers for
  scanout.

* We wait for fences to signal before submitting a new buffer, which
  avoids missing frames in the Wayland compositor due to fences not
  signalling in time for a flip.

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

3 years agowsi/x11: Use PresentOptionAsync for MAILBOX present mode with Xwayland
Michel Dänzer [Mon, 21 Dec 2020 14:41:56 +0000 (15:41 +0100)]
wsi/x11: Use PresentOptionAsync for MAILBOX present mode with Xwayland

This allows Xwayland to forward buffers to the Wayland compositor ASAP
for fullscreen / undecorated windows, which in turn allows true mailbox
behaviour in the Wayland compositor.

Without this, Xwayland has to emulate the mailbox behaviour itself,
which it cannot do as well as the Wayland compositor by design.

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

3 years agowsi/x11: Detect Xwayland
Michel Dänzer [Mon, 21 Dec 2020 14:17:17 +0000 (15:17 +0100)]
wsi/x11: Detect Xwayland

The following commits will introduce different behaviour for Xwayland.

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

3 years agowsi/x11: Always link against xcb-xrandr
Michel Dänzer [Mon, 21 Dec 2020 11:11:40 +0000 (12:11 +0100)]
wsi/x11: Always link against xcb-xrandr

The next commit will make use of it even without
VK_USE_PLATFORM_XLIB_XRANDR_EXT.

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

3 years agowsi/x11: Set recognizable name for WSI swapchain queue thread
Michel Dänzer [Mon, 21 Dec 2020 11:01:48 +0000 (12:01 +0100)]
wsi/x11: Set recognizable name for WSI swapchain queue thread

This makes it easier to recognize the thread e.g. in a debugger.

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

3 years agoradeonsi: implement SQTT support
Pierre-Eric Pelloux-Prayer [Tue, 8 Dec 2020 12:08:10 +0000 (13:08 +0100)]
radeonsi: implement SQTT support

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8002>

3 years agoradeonsi: add radeon_set_uconfig_reg_seq_perfctr
Pierre-Eric Pelloux-Prayer [Wed, 9 Dec 2020 09:38:34 +0000 (10:38 +0100)]
radeonsi: add radeon_set_uconfig_reg_seq_perfctr

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8002>

3 years agoac/sqtt: move radv_get_expected_buffer_size to ac
Pierre-Eric Pelloux-Prayer [Tue, 8 Dec 2020 12:07:43 +0000 (13:07 +0100)]
ac/sqtt: move radv_get_expected_buffer_size to ac

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8002>

3 years agoac/sqtt: move ac_is_thread_trace_complete to ac
Pierre-Eric Pelloux-Prayer [Tue, 8 Dec 2020 11:03:52 +0000 (12:03 +0100)]
ac/sqtt: move ac_is_thread_trace_complete to ac

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8002>

3 years agoac/sqtt: move rgp/sqtt def to ac
Pierre-Eric Pelloux-Prayer [Tue, 8 Dec 2020 10:46:15 +0000 (11:46 +0100)]
ac/sqtt: move rgp/sqtt def to ac

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8002>

3 years agoac/radv: move radv_rgp.c to ac
Pierre-Eric Pelloux-Prayer [Tue, 8 Dec 2020 10:41:34 +0000 (11:41 +0100)]
ac/radv: move radv_rgp.c to ac

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8002>

3 years agoac/radv: move sqtt structs and helpers to amd/common
Pierre-Eric Pelloux-Prayer [Tue, 8 Dec 2020 10:31:08 +0000 (11:31 +0100)]
ac/radv: move sqtt structs and helpers to amd/common

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8002>

3 years agoac/sqtt: add ac_thread_trace_data
Pierre-Eric Pelloux-Prayer [Tue, 8 Dec 2020 10:06:48 +0000 (11:06 +0100)]
ac/sqtt: add ac_thread_trace_data

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8002>