Marek Olšák [Sat, 9 Jan 2021 22:41:17 +0000 (17:41 -0500)]
radeonsi: optimize si_emit_prefetch_L2 when it's split
When using the prefetch with VS_ONLY=true followed by VS_ONLY=false,
we tested the VS_ONLY bits in the mask when executing VS_ONLY=false where
the bits were always 0. It's also useless to clear the prefetch mask when
VS_ONLY=true.
This commit skips those tests by splitting the function properly using
BEFORE_DRAW and AFTER_DRAW template parameters.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8794>
Marek Olšák [Sat, 9 Jan 2021 13:12:38 +0000 (08:12 -0500)]
radeonsi: don't check for redundant and NULL states in si_emit_all_states
All places set dirty_states correctly now.
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8794>
Marek Olšák [Wed, 27 Jan 2021 23:06:57 +0000 (18:06 -0500)]
radeonsi: delete si_pm4_delete_state
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8794>
Marek Olšák [Sat, 9 Jan 2021 12:55:59 +0000 (07:55 -0500)]
radeonsi: move si_pm4_delete_state logic into si_pm4_free_state
also clear dirty_states.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8794>
Marek Olšák [Tue, 12 Jan 2021 06:30:53 +0000 (01:30 -0500)]
radeonsi: mark shader_pointers dirty once outside the upload descriptors loop
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8794>
Marek Olšák [Tue, 12 Jan 2021 06:29:28 +0000 (01:29 -0500)]
radeonsi: optimize no-op cases in si_upload_shader_descriptors
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8794>
Marek Olšák [Sun, 10 Jan 2021 05:29:01 +0000 (00:29 -0500)]
ac,radeonsi: track memory usage in KB to reduce types from uint64 to uint32
Decreasing the time spent in radeon_cs_memory_below_limit is the motivation.
Reviewed-by: Zoltán Böszörményi <zboszor@gmail.com>
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8794>
Dylan Baker [Sat, 30 Jan 2021 04:14:07 +0000 (20:14 -0800)]
docs: update calendar for 21.0.0-rc3
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8791>
Dylan Baker [Sat, 30 Jan 2021 04:13:58 +0000 (20:13 -0800)]
docs: update calendar for 21.0.0-rc2
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8791>
Dylan Baker [Sat, 30 Jan 2021 04:13:33 +0000 (20:13 -0800)]
docs: update calendar and link releases notes for 20.3.4
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8791>
Dylan Baker [Sat, 30 Jan 2021 04:11:41 +0000 (20:11 -0800)]
docs: Add sha256sum for 20.3.4
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8791>
Dylan Baker [Fri, 29 Jan 2021 18:12:48 +0000 (10:12 -0800)]
docs: add release notes for 20.3.4
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8791>
Caio Marcelo de Oliveira Filho [Mon, 11 Jan 2021 19:51:24 +0000 (11:51 -0800)]
spirv: Store SPIR-V version of the module
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8786>
Caio Marcelo de Oliveira Filho [Thu, 21 Jan 2021 10:35:43 +0000 (02:35 -0800)]
spirv: Don't remove dead variables in `create_library` mode
The issues fixed by the removal happen when a module has multiple
entry points and conflicting global variables. Neither conditions are
expected in a library.
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8786>
Caio Marcelo de Oliveira Filho [Tue, 12 Jan 2021 17:21:07 +0000 (09:21 -0800)]
spirv: Don't bother counting num_images/num_textures
Not only these are recalculated in nir_shader_gather_info, but
currently they are also counting all the images / textures in the
module instead of in the shader (entrypoint).
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8786>
Eric Anholt [Fri, 29 Jan 2021 17:59:34 +0000 (09:59 -0800)]
mesa/st: Allocate the gl_context with 16-byte alignment.
The _ModelProjectMatrix matrix embedded inside has members inside of it
marked as 16-byte aligned, and so the context also has to be 16-byte
aligned or access to those members would be invalid. I believe the
compiler used this to use better 16-byte-aligned load/stores to other
members of the context, breaking when the context's alignment was only 8
(as normal mallocs guarantee).
Fixes:
3175b63a0dfa ("mesa: don't allocate matrices with malloc")
Tested-by: Rob Clark <robdclark@chromium.org>
Reviewed-by: Rob Clark <robdclark@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8783>
Dave Airlie [Thu, 28 Jan 2021 20:32:57 +0000 (06:32 +1000)]
lavapipe: add missing loader interface negoitation
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8769>
Michael Tang [Fri, 29 Jan 2021 20:48:43 +0000 (12:48 -0800)]
microsoft/compiler: Make resource_state_manager only build with_gallium_d3d12
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8785>
Benjamin Tissoires [Fri, 29 Jan 2021 13:30:23 +0000 (14:30 +0100)]
CI: windows: Force using LLVM 12
LLVM is moving to the 13 release, but LLVM-SPIRV is still so in the past.
Given that LLVM 12.0.0 is still not out (we are at 12.0.0-rc1 today),
use the `release/12.x` branch for LLVM.
We should also tag LLVM-SPIRV, but... it seems that they haven't caught up
yet, so keep using the master branch, but add a note for a future
committer.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8740>
Benjamin Tissoires [Wed, 27 Jan 2021 14:17:28 +0000 (15:17 +0100)]
CI: windows: split the layers to meet new registry requirements
The new registry caching in place for registry.fd.o can not handle layers
bigger than 5 GB. The last layer we used to build on windows was 5.2 GB,
meaning that the upload would fail.
Split the layers by calling multiple `RUN`, hoping that the size will be
roughly split between those steps if we have a special layer for VS2019.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8740>
Benjamin Tissoires [Wed, 27 Jan 2021 14:21:37 +0000 (15:21 +0100)]
CI: windows: augment the timeout of building the windows container
https://gitlab.freedesktop.org/mesa/mesa/-/jobs/6898838 failed at
uploading the containers but got kicked out right before being able to
give us a valid error.
Bump the timeout for windows container builds, to not have this
unfortunate situation.
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Reviewed-by: Daniel Stone <daniel@fooishbar.org>
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8740>
Mike Blumenkrantz [Mon, 26 Oct 2020 14:47:37 +0000 (10:47 -0400)]
glsl: support 64bit integer loop iterators
this was crashing due to the assumption that non-32bit integer values must be
floats
Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7316>
Alyssa Rosenzweig [Wed, 6 Jan 2021 18:31:34 +0000 (13:31 -0500)]
pan/bi: Add packing format tests
These are based on reference outputs generated by the blob.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Tue, 29 Dec 2020 16:29:45 +0000 (11:29 -0500)]
pan/bi: Test pack_sync
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Tue, 29 Dec 2020 16:18:02 +0000 (11:18 -0500)]
pan/bi: Test pack_tuple_bits
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Tue, 29 Dec 2020 16:00:31 +0000 (11:00 -0500)]
pan/bi: Test pack_upper
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Tue, 29 Dec 2020 15:56:08 +0000 (10:56 -0500)]
pan/bi: Test pack_literal
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Tue, 29 Dec 2020 15:35:11 +0000 (10:35 -0500)]
pan/bi: Add packing unit test group
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Wed, 6 Jan 2021 18:43:37 +0000 (13:43 -0500)]
pan/bi: Pack multiple tuples per clause
Use all of the new helpers to pick formats and use them.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Wed, 6 Jan 2021 18:42:44 +0000 (13:42 -0500)]
pan/bi: Calculate pos for constant packing
We do not yet support multiple (format 12 quadword) constants per clause
but this is a step in the right direction.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Wed, 6 Jan 2021 18:41:06 +0000 (13:41 -0500)]
pan/bi: Add pack_format helper
Packs a single quadword of a clause with a particular format and
parameters.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Wed, 6 Jan 2021 18:40:50 +0000 (13:40 -0500)]
pan/bi: Add subword 4 or 7 pack
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Wed, 6 Jan 2021 18:40:31 +0000 (13:40 -0500)]
pan/bi: Add subword 5/6 pack
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Wed, 6 Jan 2021 18:39:59 +0000 (13:39 -0500)]
pan/bi: Add tuple/embedded constant pack
Used for the first 4 subwords.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Wed, 6 Jan 2021 18:39:28 +0000 (13:39 -0500)]
pan/bi: Add bi_pack_sync
The type/sync byte, also known as the tag.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Wed, 6 Jan 2021 18:38:23 +0000 (13:38 -0500)]
pan/bi: Add bi_pack_tuple_bits
More general than the top 3 bit special case. There's some serious
complication around 78-bit shifting but I digress.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Wed, 6 Jan 2021 18:37:51 +0000 (13:37 -0500)]
pan/bi: Add bi_pack_upper
Top 3-bits, found e.g. in the tag.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Wed, 6 Jan 2021 18:37:11 +0000 (13:37 -0500)]
pan/bi: Add bi_pack_literal
Identifies formats.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Wed, 6 Jan 2021 18:36:15 +0000 (13:36 -0500)]
pan/bi: Move bi_packed_tuple to compiler.h
To be used for pack prototype.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Tue, 29 Dec 2020 12:51:29 +0000 (07:51 -0500)]
pan/bi: Add clause encodings as a table
We would rather not type out all of the packs by hand (that's error
prone), so declaratively specify the encodings as a table corresponding
to the bit patterns.
This is all formats, except for format 12 which just encodes constants.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Mon, 28 Dec 2020 22:56:31 +0000 (17:56 -0500)]
pan/bi: Pack multiple tuples in-memory
There's still some silly clause-level packing required, but this way the
register slots are at least assigned correctly.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Mon, 28 Dec 2020 22:56:18 +0000 (17:56 -0500)]
pan/bi: Amend misleading comment
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Tue, 22 Dec 2020 20:41:16 +0000 (15:41 -0500)]
pan/bi: Clarify tuple comment
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Tue, 22 Dec 2020 20:38:33 +0000 (15:38 -0500)]
pan/bi: Use enum bifrost_message_type
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Tue, 22 Dec 2020 20:36:20 +0000 (15:36 -0500)]
pan/bi: Use canonical terminology for tuple
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Tue, 22 Dec 2020 20:33:23 +0000 (15:33 -0500)]
pan/bi: Move bi_constants to bifrost.h
Although it's software-defined, this stems from architectural traits and
is useful in both the disasm and the compiler.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Mon, 21 Dec 2020 21:23:34 +0000 (16:23 -0500)]
pan/bi: Test read predicates
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Mon, 21 Dec 2020 20:57:16 +0000 (15:57 -0500)]
pan/bi: Test bi_must_message
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Mon, 21 Dec 2020 20:55:06 +0000 (15:55 -0500)]
pan/bi: Test bi_must_last
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Mon, 21 Dec 2020 20:45:51 +0000 (15:45 -0500)]
pan/bi: Unit test bi_can_{fma, add}
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Mon, 21 Dec 2020 21:23:19 +0000 (16:23 -0500)]
pan/bi: Add various read predicates
Correpsonding to source masks in the XML.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Mon, 21 Dec 2020 21:23:03 +0000 (16:23 -0500)]
pan/bi: Emit branch and table bits in opcode table
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Mon, 21 Dec 2020 21:22:43 +0000 (16:22 -0500)]
pan/bi: Label table instructions
Table instructions are a subset of those scheduled to the ADD unit. They
typically involve lookup tables. Table (TBL) instructions have
additional restrictions on their sources which the scheduler must
respect.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Mon, 21 Dec 2020 20:57:11 +0000 (15:57 -0500)]
pan/bi: Add bi_must_message predicate
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Mon, 21 Dec 2020 20:54:48 +0000 (15:54 -0500)]
pan/bi: Add bi_must_last predicate
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Mon, 21 Dec 2020 20:54:31 +0000 (15:54 -0500)]
pan/bi: Pipe last flag into opcode tables
Only ADD unit for now.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Mon, 21 Dec 2020 20:53:57 +0000 (15:53 -0500)]
pan/bi: Annotate ISA.xml with 'last' parameter
If this instruction must be the last in the clause.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Mon, 21 Dec 2020 20:45:23 +0000 (15:45 -0500)]
pan/bi: Add bi_can_{fma, add} predicates
Stubs due to some edge cases, for the scheduler.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Mon, 21 Dec 2020 20:44:51 +0000 (15:44 -0500)]
pan/bi: Factor nir_function_impl out of the context
Unnecessary and complicates unit testing.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Mon, 21 Dec 2020 20:20:37 +0000 (15:20 -0500)]
pan/bi: Stub out scheduler unit test
Someone who understands meson and gtest could do something much nicer,
but for now let's just stuff some assertions into debug builds of the
standalone compiler and call it a day...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Tue, 29 Dec 2020 21:56:23 +0000 (16:56 -0500)]
pan/bi: Add "word equivalence" relation for index
Takes offset *but not swizzle* into account, so the scheduler can
predict whether indices will end up mapped to the same scalar register.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Tue, 5 Jan 2021 18:26:56 +0000 (13:26 -0500)]
pan/bi: Move init_builder to common code
Needs to take a cursor to be applicable outside NIR->BIR of course.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Tue, 5 Jan 2021 18:26:25 +0000 (13:26 -0500)]
pan/bi: Print multiple destinations if needed
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Tue, 5 Jan 2021 18:25:42 +0000 (13:25 -0500)]
pan/bi: Add CUBEFACE pseudoinstruction
Abstracts over *CUBEFACE1/+CUBEFACE2, takes the sources of the former
and outputs two destinations.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Thu, 7 Jan 2021 23:02:40 +0000 (18:02 -0500)]
pan/bi: Don't fill garbage
If an index is an SSA form and we haven't even written to it yet, there
is absolutely no value in filling it, it'd just be uninitialized garbage
that won't get used. Saves some fills in STK.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Wed, 30 Dec 2020 15:09:47 +0000 (10:09 -0500)]
pan/bi: Implement spilling at the clause-level
We use essentially the same logic, but we need to treat entire clauses
as large instructions, and spill on clause boundaries instead of
instruction boundaries. So factor out the code a bit, using the new
iterators, removing bi_unwrap_singleton.
A few specific fixes are needed to adapt. One is simple: rewriting
destinations needs to preserve clamps and such. The other is a much more
subtle bug. Consider the clause
{
ADD 0, ...
---unrelated code---
MUL 1, 0, ...
}
Suppose we spill 0. The naive spill code would generate an SSA temporary to
spill to and another SSA temporary to fill from, generating:
{
LOAD.tl 10
}
{
ADD 11, ...
---unrelated code---
MUL 1, 10, ...
}
{
STORE.tl 11
}
But this is wrong; the MUL now reads stale (and for SSA, likely
undefined/uninitialized) data. The simplest fix, employed here, is to
spill/fill within a clause simultaneously, which means the temporary
can't be SSA, generating correct code:
{
LOAD.tl r0
}
{
ADD r0, ...
---unrelated code---
MUL 1, r0, ...
}
{
STORE.tl r0
}
This is suboptimal, since the LOAD is still likely reading garbage that
is unused. But it is still correct, and the next commit will avoid
generating the load in this case.
To make the bug even more subtle, if ADD/MUL are within 2-3 instructions
of each other, the scheduler will optimize the load to a
temporary/passthrough, so the bug isn't noticed. It only happens if they
are 3+ instructions apart yet still in the same clause (<=16
instructions).
Special thanks to macc24 for reporting this bug and to Jason Ekstrand
for allowing me to rubberduck.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Wed, 6 Jan 2021 17:25:45 +0000 (12:25 -0500)]
pan/bi: Add interference per clause
With new helpers.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Tue, 5 Jan 2021 15:30:09 +0000 (10:30 -0500)]
pan/bi: Permit multiple destinations in RA
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Tue, 5 Jan 2021 15:29:01 +0000 (10:29 -0500)]
pan/bi: Don't open code bi_foreach_dest
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Tue, 5 Jan 2021 15:28:47 +0000 (10:28 -0500)]
pan/bi: Add destination iterator macro
Convenience.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Wed, 6 Jan 2021 17:22:36 +0000 (12:22 -0500)]
pan/bi: Add bi_foreach_instr_in_clause iterators
These are convenient for post-sched passes, in particular register
allocation. They work by noting the underlying linked list of
instructions in the block must be preserved by scheduling. It isn't
necessary iterate the clause structure directly, it can simply be used
to bound a iteration within the block by recalling clauses are strictly
contained in a single block.
<alyssa> I don't think I'm enough of a C ninja to write fancy iterator macros yet.
<zmike> sometimes those can get pretty mind-bendy
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Wed, 6 Jan 2021 21:17:37 +0000 (16:17 -0500)]
pan/bi: Add bi_foreach_instr_in_tuple helper
Written in a funny way but easy to convince yourself of correctness by
considering cases.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Wed, 6 Jan 2021 17:21:36 +0000 (12:21 -0500)]
pan/bi: Add bi_foreach_clause_in_block_rev
Trivial absense.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Tue, 29 Dec 2020 22:21:37 +0000 (17:21 -0500)]
pan/bi: Add bi_{before,after}_clause cursors
Will be needed to insert spill code after scheduling once we have
multiple instructions in a clause.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Wed, 30 Dec 2020 18:41:14 +0000 (13:41 -0500)]
pan/bi: Add "soft" mode to DCE
We would like to reuse the DCE logic to eliminate register writes
without eliminating instructions, as a post-sched pass. This type of
operation will eventually generalize to intrinsics that write a register
*and* have side effects (just atomics, I think).
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Thu, 21 Jan 2021 00:09:34 +0000 (19:09 -0500)]
pan/bi: Add dead branch elimination pass
Ported from Midgard due to the same quirk of our code generation.
Additional validation, though.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Sat, 9 Jan 2021 03:58:09 +0000 (22:58 -0500)]
pan/bi: Pass through wait_{6, 7} flags
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Sat, 9 Jan 2021 03:57:53 +0000 (22:57 -0500)]
pan/bi: Move bi_next_clause to bir.c
Not really packing specific anyway.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Wed, 20 Jan 2021 21:40:52 +0000 (16:40 -0500)]
pan/bi: Pull out bi_count_read_registers helper
I want to transition away from the ad hoc masks anyway.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Sat, 9 Jan 2021 02:38:09 +0000 (21:38 -0500)]
pan/bi: Fix M1/M2 decoding in disassembler
C's definition of the % operator has a footgun around sign conversion.
Avoid it and just use bitwise arithemtic instead like the hardware
would, fixing the disassembly and making buggy assembly more obvious.
Fixes:
08a9e5e3e89 ("pan/bi: Decode M values in disasm")
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Wed, 6 Jan 2021 00:06:53 +0000 (19:06 -0500)]
pan/bi: Fix dependency wait calculation
Unconditional branches have a successor in the first slot only.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Thu, 31 Dec 2020 17:30:05 +0000 (12:30 -0500)]
pan/bi: Fix staging register packing
Writes are from the previous tuple, not the current one, otherwise we
incorrectly write to "two" places at once and raise an INSTR_INVALID_ENC
fault. While we're at it, fix the weird spacing.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Wed, 30 Dec 2020 18:15:13 +0000 (13:15 -0500)]
pan/bi: Fix IDLE register mode packing
Was incorrectly returning zero. Special case like IDLE_1.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Tue, 19 Jan 2021 14:18:03 +0000 (09:18 -0500)]
pan/bi: Print disasm/stats with DEBUG=internal
Arguably more important than the IR prints.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Thu, 21 Jan 2021 00:03:44 +0000 (19:03 -0500)]
pan/bi: Lint for infinite loops
I would make this unconditional, but conditionally branching to the same
clause in a tight loop is (disturbingly) legal, as far as I know.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Thu, 21 Jan 2021 00:01:03 +0000 (19:01 -0500)]
pan/bi: Refactor PC-relative printing
Let's get the offset in a named variable for validation.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Tue, 19 Jan 2021 00:11:35 +0000 (19:11 -0500)]
pan/bi: Print FAU index in verbose mode
Even if we're not loading a uniform, this is useful information. The
uniform pretty-printing didn't correspond well to the hardware anyway so
this is a net win, although if somebody really wanted pretty-printing
could be added in here.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Mon, 18 Jan 2021 13:58:09 +0000 (08:58 -0500)]
pan/bi: Validate format 12 tuple count in disasm
We were throwing away this information. Let's just use a lookup table
and add an assertion. Would have caught a bug in this series resulting
in INSTR_INVALID_ENC faults.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Wed, 30 Dec 2020 19:16:51 +0000 (14:16 -0500)]
pan/bi: Add internal debug flag
Since
31864017510 ("pan/bi: Suppress disassembly for internal shaders"),
we haven't had a good way to debug blit shaders. I keep rewriting this
patch manually, let's just a debug flag for it.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Sat, 9 Jan 2021 03:55:54 +0000 (22:55 -0500)]
panfrost: Allow waiting on slots 6/7 during preload
I don't understand the underlying uarch details but ATEST needs to wait
on slot 6 and BLEND needs to wait on both, so these bits are used if
ATEST/BLEND are in the first clause, which happens if e.g. a constant
colour is written, or if the input is preloaded.
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Alyssa Rosenzweig [Thu, 7 Jan 2021 23:22:54 +0000 (18:22 -0500)]
panfrost: Fix TLS sizing if cores are missing
I have no idea if there are any implementations we care about that have
missing shader cores (a mask of 1101 or something like that), but if one
crops up, this would be a royal pain to debug so let's just get it
right...
Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8723>
Mike Blumenkrantz [Sat, 23 Jan 2021 15:42:48 +0000 (10:42 -0500)]
zink: move tess/geom shader info to vs shader key
now that there exists a shader key for vertex stages, we can stop modifying
the zink_shader values and instead use this as a more reliable method of detecting
the state
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8682>
Mike Blumenkrantz [Tue, 18 Aug 2020 19:06:15 +0000 (15:06 -0400)]
zink: flag shaders as needing update when clip_halfz changes
this means we may or may not need to run the nir pass in the shader,
so force this to go back through the update path using the shader key
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8682>
Mike Blumenkrantz [Tue, 18 Aug 2020 19:05:15 +0000 (15:05 -0400)]
zink: add shader key for vs shaders
we're reusing these for tes/gs for now too
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8682>
Mike Blumenkrantz [Sun, 24 Jan 2021 15:46:53 +0000 (10:46 -0500)]
zink: flag previous vertex stages as dirty when toggling a later stage
this ensures that the correct variant is used for streamout and halfz
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8682>
Mike Blumenkrantz [Wed, 19 Aug 2020 14:39:20 +0000 (10:39 -0400)]
zink: improve barrier helper for buffer resources and add check for barrier need
now we've got the ability to add fine-grained barriers for buffer resources, so we
can also have a utility function to check whether we need to use barriers and
then skip them when we don't
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8669>
Mike Blumenkrantz [Fri, 27 Nov 2020 18:00:46 +0000 (13:00 -0500)]
zink: add helper function for checking if access flags include write access
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8669>
Mike Blumenkrantz [Mon, 17 Aug 2020 20:09:26 +0000 (16:09 -0400)]
zink: add a stage param for buffer resource barriers
it's useful to be able to set this more granularly when doing resource
barriers
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8669>
Mike Blumenkrantz [Mon, 17 Aug 2020 19:07:41 +0000 (15:07 -0400)]
zink: add barrier helper for buffer resources
Reviewed-by: Hoe Hao Cheng <haochengho12907@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8669>
Samuel Pitoiset [Fri, 29 Jan 2021 08:51:26 +0000 (09:51 +0100)]
radv: fix centroid with VRS coarse shading
Ported from RadeonSI.
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/8775>