platform/upstream/mesa.git
3 years agomesa/teximage: show internal format when printing verbose api log
Ilia Mirkin [Fri, 8 Jan 2021 18:37:45 +0000 (13:37 -0500)]
mesa/teximage: show internal format when printing verbose api log

This would have saved me some time to determine that the problem was
coming from lack of RGBA32F / 8x MSAA support on nv50.

Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8405>

3 years agoradv: enable DCC for layered color images on GFX10+
Samuel Pitoiset [Thu, 7 Jan 2021 13:55:54 +0000 (14:55 +0100)]
radv: enable DCC for layered color images on GFX10+

There is still some CTS failures on GFX9.

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

3 years agoradv: do not use predication when the range doesn't cover the whole image
Samuel Pitoiset [Thu, 7 Jan 2021 17:39:52 +0000 (18:39 +0100)]
radv: do not use predication when the range doesn't cover the whole image

The predication is based on the mip level, so if the image has layers
and DCC is enabled, it should only be used if the range of layers
covers the whole image.

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

3 years agoradv: clean up radv_decompress_dcc_compute()
Samuel Pitoiset [Thu, 7 Jan 2021 15:16:38 +0000 (16:16 +0100)]
radv: clean up radv_decompress_dcc_compute()

Remove one old comment because it supports decompressing layers.

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

3 years agoradv: add support for fast-clearing DCC layers on GFX9+
Samuel Pitoiset [Thu, 7 Jan 2021 15:18:03 +0000 (16:18 +0100)]
radv: add support for fast-clearing DCC layers on GFX9+

Layers are contiguous in memory.

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

3 years agoac/surface: initialize dcc_slice_size on GFX9+
Samuel Pitoiset [Thu, 7 Jan 2021 15:18:31 +0000 (16:18 +0100)]
ac/surface: initialize dcc_slice_size on GFX9+

Will be used by RADV to implement DCC layers.

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

3 years agowsi/x11: Make sure wsi_x11_connection::is_xwayland is always initialized
Michel Dänzer [Fri, 8 Jan 2021 17:45:33 +0000 (18:45 +0100)]
wsi/x11: Make sure wsi_x11_connection::is_xwayland is always initialized

We wouldn't initialize it if the X server didn't support the RANDR
extension (though that's unlikely these days).

Fixes: b5268d532a01 "wsi/x11: Detect Xwayland"
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8393>

3 years agowsi/x11: Always free randr_reply in wsi_x11_connection_create
Michel Dänzer [Fri, 8 Jan 2021 17:54:09 +0000 (18:54 +0100)]
wsi/x11: Always free randr_reply in wsi_x11_connection_create

Fixes memory leak.

Fixes: b5268d532a01 "wsi/x11: Detect Xwayland"
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8393>

3 years agowsi/x11: Use wsi_x11_get_connection in x11_present_to_x11_dri3
Michel Dänzer [Fri, 8 Jan 2021 17:49:20 +0000 (18:49 +0100)]
wsi/x11: Use wsi_x11_get_connection in x11_present_to_x11_dri3

Instead of creating a new wsi_x11_connection every time.

Fixes memory leak and bad performance.

Fixes: 4292fb213928 "wsi/x11: Use PresentOptionAsync for MAILBOX present mode with Xwayland"
Reported-by: Chris Rankin <rankincj@yahoo.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8393>

3 years agonir/lower_vec_to_movs: don't vectorize unsupports ops
Erico Nunes [Sun, 30 Aug 2020 13:07:23 +0000 (15:07 +0200)]
nir/lower_vec_to_movs: don't vectorize unsupports ops

If the instruction being coalesced would be vectorized but the target
doesn't support vectorizing that op, skip coalescing.
Reuse the callbacks from alu_to_scalar to describe which ops should not
be vectorized.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Eric Anholt <eric@anholt.net>
Acked-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6506>

3 years agoaco: Spill more optimally before loops.
Timur Kristóf [Wed, 25 Nov 2020 19:05:25 +0000 (20:05 +0100)]
aco: Spill more optimally before loops.

This further reduces the dead code emitted by the spiller.
Some minimal amount of dead IR is still emitted sometimes,
but that doesn't generate any compiled code at the end.

Totals from 1953 (1.40% of 139391) affected shaders:
VGPRs: 206980 -> 206588 (-0.19%)
SpillSGPRs: 24719 -> 16423 (-33.56%); split: -33.58%, +0.02%
CodeSize: 28448516 -> 28343836 (-0.37%); split: -0.38%, +0.01%
MaxWaves: 8960 -> 8992 (+0.36%)
Instrs: 5422049 -> 5408334 (-0.25%); split: -0.26%, +0.01%
Cycles: 511240864 -> 512460764 (+0.24%); split: -0.02%, +0.26%
VMEM: 346681 -> 346468 (-0.06%); split: +0.27%, -0.33%
SMEM: 124160 -> 122802 (-1.09%); split: +0.33%, -1.42%
VClause: 81102 -> 81163 (+0.08%); split: -0.01%, +0.09%
SClause: 174404 -> 174237 (-0.10%); split: -0.23%, +0.13%
Copies: 530216 -> 532961 (+0.52%); split: -0.90%, +1.42%
Branches: 189114 -> 189221 (+0.06%); split: -0.13%, +0.18%
PreSGPRs: 206017 -> 206526 (+0.25%); split: -0.08%, +0.33%
PreVGPRs: 183103 -> 182964 (-0.08%)

Co-authored-by: Daniel Schürmann <daniel@schuermann.dev>
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8026>

3 years agoaco: Keep live-though variables and constants spilled.
Timur Kristóf [Wed, 25 Nov 2020 18:57:05 +0000 (19:57 +0100)]
aco: Keep live-though variables and constants spilled.

This noticably reduces the amount of dead code emitted by our
spiller, when eg. previously a constant was spilled then
rematerialized before a loop, but then spilled again inside the loop.

Fossil DB changes on Navi 10:
Totals from 263 (0.19% of 139391) affected shaders:
VGPRs: 30044 -> 30028 (-0.05%)
SpillSGPRs: 8800 -> 4948 (-43.77%)
CodeSize: 4496040 -> 4335448 (-3.57%); split: -3.57%, +0.00%
Instrs: 843942 -> 819219 (-2.93%); split: -2.93%, +0.00%
Cycles: 76485744 -> 73549080 (-3.84%); split: -4.04%, +0.20%
VMEM: 38204 -> 38147 (-0.15%); split: +0.08%, -0.23%
SMEM: 17872 -> 17959 (+0.49%)
SClause: 24298 -> 24012 (-1.18%)
Copies: 98023 -> 82960 (-15.37%); split: -15.38%, +0.01%
Branches: 29074 -> 27632 (-4.96%)
PreVGPRs: 25291 -> 25241 (-0.20%)

Co-authored-by: Daniel Schürmann <daniel@schuermann.dev>
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8026>

3 years agoradv: Enable sparse buffer and image support.
Bas Nieuwenhuizen [Tue, 24 Nov 2020 22:02:54 +0000 (23:02 +0100)]
radv: Enable sparse buffer and image support.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7953>

3 years agoradv: Add sparse image queries.
Bas Nieuwenhuizen [Sun, 6 Dec 2020 20:42:35 +0000 (21:42 +0100)]
radv: Add sparse image queries.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7953>

3 years agoradv: Add image sparse memory update implementation.
Bas Nieuwenhuizen [Sun, 6 Dec 2020 18:17:03 +0000 (19:17 +0100)]
radv: Add image sparse memory update implementation.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7953>

3 years agoradv: Create sparse images.
Bas Nieuwenhuizen [Sat, 28 Nov 2020 01:56:20 +0000 (02:56 +0100)]
radv: Create sparse images.

Disable all metadata for now.

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7953>

3 years agoradv/winsys: Fix offset in range merging.
Bas Nieuwenhuizen [Fri, 8 Jan 2021 23:39:51 +0000 (00:39 +0100)]
radv/winsys: Fix offset in range merging.

If we change the virtual address we also have to change the offset in the buffer
to be mapped.

Fixes: 715df30a4e2 "radv/amdgpu: Add winsys implementation of virtual buffers."
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7953>

3 years agoradv/winsys: Fix inequality for sparse buffer remapping.
Bas Nieuwenhuizen [Sun, 6 Dec 2020 15:05:41 +0000 (16:05 +0100)]
radv/winsys: Fix inequality for sparse buffer remapping.

Found a case where we mapped a range too many.

Per the comment the constraint is:

/* [first, last] is exactly the range of ranges that either overlap the
 * new parent, or are adjacent to it. This corresponds to the bind ranges
 * that may change.
 */

So that means that after the ++last we the ranges[last] should still
be adjacent. So we need to test the post-increment value to see whether
it is adjacent.

Failure case:
  ranges:
    0: 0 - ffff
    1: 10000 - 1ffff
    2: 20000 - 2ffff
    3: 30000 - 3ffff
  new range: 10000 - 1ffff

wrong first, last: 0,3
  However range 3 clearly isn't adjacent at all.

Fixes: 715df30a4e2 "radv/amdgpu: Add winsys implementation of virtual buffers."
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7953>

3 years agoac/surf: Use correct tilemodes on GFX8 for PRT.
Bas Nieuwenhuizen [Wed, 23 Dec 2020 20:07:38 +0000 (21:07 +0100)]
ac/surf: Use correct tilemodes on GFX8 for PRT.

Otherwise addrlib will assign the non-PRT tiling indices anyway ...

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7953>

3 years agoac/surf: Add sparse texture info to radeon_surf.
Bas Nieuwenhuizen [Sun, 6 Dec 2020 18:13:53 +0000 (19:13 +0100)]
ac/surf: Add sparse texture info to radeon_surf.

For GFX9 I didn't reuse the existing mipmap offset/pitch because
last time we did that there was a revert request from Marek.

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

3 years agoac/surf: Implement PRT layout.
Bas Nieuwenhuizen [Sat, 28 Nov 2020 01:51:05 +0000 (02:51 +0100)]
ac/surf: Implement PRT layout.

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

3 years agoac/surf: Prepare for 64-bit flags.
Bas Nieuwenhuizen [Sat, 28 Nov 2020 01:46:29 +0000 (02:46 +0100)]
ac/surf: Prepare for 64-bit flags.

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

3 years agoradv: only re-initialize HTILE after ds compute resolves if compressed
Samuel Pitoiset [Fri, 8 Jan 2021 13:39:40 +0000 (14:39 +0100)]
radv: only re-initialize HTILE after ds compute resolves if compressed

If the current layout isn't compressed we don't have to re-initialize
the HTILE metadata.

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

3 years agoradv: re-initialize HTILE properly after depth/stencil compute resolves
Samuel Pitoiset [Fri, 8 Jan 2021 13:35:36 +0000 (14:35 +0100)]
radv: re-initialize HTILE properly after depth/stencil compute resolves

This was added to workaround some CTS failures which no longer happen.
Note that radv_clear_htile() will only clear the depth or stencil
bytes of the HTILE buffer based on the aspect.

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

3 years agoradv: disable TC-compat HTILE in GENERAL for Detroit: Become Human
Samuel Pitoiset [Thu, 7 Jan 2021 07:38:01 +0000 (08:38 +0100)]
radv: disable TC-compat HTILE in GENERAL for Detroit: Become Human

The game has invalid usage of render loops and enabling TC-compat
HTILE in GENERAL introduces rendering issues.

Gitlab: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3063
Cc: mesa-stable
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/8359>

3 years agoradv: fix crashes when fast-clearing in a secondary command buffer
Samuel Pitoiset [Mon, 11 Jan 2021 08:20:48 +0000 (09:20 +0100)]
radv: fix crashes when fast-clearing in a secondary command buffer

iview can be NULL inside a secondary command buffer.

Fixes: 00064713a30 ("radv: determine at creation if an image view can be fast cleared")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8408>

3 years agozink: use hardware int64 when supported
Erik Faye-Lund [Sun, 10 Jan 2021 12:57:15 +0000 (13:57 +0100)]
zink: use hardware int64 when supported

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8403>

3 years agozink: add missing 64-bit integer ops
Erik Faye-Lund [Sun, 10 Jan 2021 12:58:26 +0000 (13:58 +0100)]
zink: add missing 64-bit integer ops

This seems to be all that's missing to support hardware int64 instead of
lowering it.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8403>

3 years agozink: add missing opcodes
Erik Faye-Lund [Sun, 10 Jan 2021 12:52:41 +0000 (13:52 +0100)]
zink: add missing opcodes

This fixes a bunch of conversion-tests in the arb_gpu_shader_int64
piglit test-suite for me.

Fixes: 55e2d836f37 ("zink: enable 64bit pipe caps")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8403>

3 years agodri: enable glthread + radeonsi workaround for CS:GO
Pierre-Eric Pelloux-Prayer [Fri, 8 Jan 2021 12:17:42 +0000 (13:17 +0100)]
dri: enable glthread + radeonsi workaround for CS:GO

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4021
Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8383>

3 years agoac/rgp: add missing include
Pierre-Eric Pelloux-Prayer [Fri, 8 Jan 2021 09:51:37 +0000 (10:51 +0100)]
ac/rgp: add missing include

The build would fail without this include if -std=gnu17 is used.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4057
Fixes: ffdfe136e67 ("ac/sqtt: move rgp/sqtt def to ac")
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8376>

3 years agoci: re-mark some depth/stencil resolve CTS as expected failures
Samuel Pitoiset [Fri, 8 Jan 2021 12:09:59 +0000 (13:09 +0100)]
ci: re-mark some depth/stencil resolve CTS as expected failures

They were removed during the last update but they still fail.

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

3 years agoradv: do not predicate FMASK decompression when DCC+MSAA is used
Samuel Pitoiset [Tue, 5 Jan 2021 13:28:53 +0000 (14:28 +0100)]
radv: do not predicate FMASK decompression when DCC+MSAA is used

Even if the FCE predicate is FALSE, we might still need to decompress
FMASK if compressed rendering was used. FMASK decompressions should
never been predicated.

This fixes a ton of CTS failures and a rendering issue with Control
when DCC+MSAA is force-enabled.

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

3 years agoradv: determine at creation if an image view can be fast cleared
Samuel Pitoiset [Thu, 7 Jan 2021 19:37:05 +0000 (20:37 +0100)]
radv: determine at creation if an image view can be fast cleared

This can be determined earlier than every time a clear is performed
by the driver, it probably saves a bunch of CPU cycles.

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

3 years agoci: Add a few more drivers to the cross builds
Adam Jackson [Fri, 8 Jan 2021 15:10:53 +0000 (10:10 -0500)]
ci: Add a few more drivers to the cross builds

This is mostly to get additional -Werror coverage to avoid introducing
unforced ILP32 or big-endian errors. i386 adds lavapipe, r600, nouveau,
zink, and all the classic drivers. ppc64le adds lavapipe and zink, and
also adds -Werror for symmetry with the other cross builds. s390x also
adds lavapipe and zink.

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

3 years agozink: Fix VK_FORMAT_A8B8G8R8_SRGB_PACK32 mapping on big-endian
Adam Jackson [Fri, 8 Jan 2021 19:45:31 +0000 (14:45 -0500)]
zink: Fix VK_FORMAT_A8B8G8R8_SRGB_PACK32 mapping on big-endian

The PACK32 Vulkan formats need to map to the corresponding XYZWxxxx pipe
formats, since the latter take endianness into account.

Reviewed-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8394>

3 years agonouveau: pacify gcc on ILP32
Adam Jackson [Fri, 8 Jan 2021 16:59:12 +0000 (11:59 -0500)]
nouveau: pacify gcc on ILP32

The gcc we're using (and quite possibly newer ones) throws a really
stupid error:

   ../src/gallium/drivers/nouveau/nouveau_buffer.c:765:22: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast]
      buffer->address = (uint64_t)user_ptr;

Which... address is a uint64_t, and user_ptr is a void *, so this is
completely unambiguously safe to do. Apparently casting to uintptr_t
squelches this, so do that instead.

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

3 years agoetnaviv: add set_stream_output_targets(..) stub
Christian Gmeiner [Fri, 8 Jan 2021 12:01:56 +0000 (13:01 +0100)]
etnaviv: add set_stream_output_targets(..) stub

When running gles3 deqp's with ETNA_MESA_DEBUG=deqp we fake streamout support.
CSO thinks that streamout is supported and calls ctx->pipe->set_stream_output_targets(..)
in cso_destroy_context(..) which results in a null-pointer access.

Add a stub to make development easier.

Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8382>

3 years agozink: setup compiler options during init
Erik Faye-Lund [Wed, 6 Jan 2021 08:57:49 +0000 (09:57 +0100)]
zink: setup compiler options during init

This avoids duplicating the options just to change a single one.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8402>

3 years agozink: rename zink vs pipe variables
Erik Faye-Lund [Wed, 6 Jan 2021 08:44:14 +0000 (09:44 +0100)]
zink: rename zink vs pipe variables

The general convention we use is "pscreen" for the pipe_screen, and
"screen" for the zink_screen, so let's stick with that here also.

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8402>

3 years agoutil/u_thread: Disable pthread_barrier_t on Haiku
X512 [Tue, 5 Jan 2021 14:34:15 +0000 (08:34 -0600)]
util/u_thread: Disable pthread_barrier_t on Haiku

* Causes a lockup on SMP systems

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

3 years agohgl: Major refactor and cleanup
X512 [Tue, 5 Jan 2021 06:12:38 +0000 (00:12 -0600)]
hgl: Major refactor and cleanup

* Drop old-timey GLDisplatcher
* Refactor haiku-softpipe fixing some hacks
* Bubble BBitmap up to winsys

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

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>