platform/upstream/mesa.git
20 months agoandroid/vk: drop unnecessary symbols
Eric Engestrom [Thu, 2 Mar 2023 17:36:24 +0000 (17:36 +0000)]
android/vk: drop unnecessary symbols

Signed-off-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21631>

20 months agovn: add linker script to fix android symbols
Eric Engestrom [Fri, 3 Mar 2023 18:24:55 +0000 (18:24 +0000)]
vn: add linker script to fix android symbols

Signed-off-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21631>

20 months agoanv: add linker script to fix android symbols
Eric Engestrom [Fri, 3 Mar 2023 17:04:41 +0000 (17:04 +0000)]
anv: add linker script to fix android symbols

Signed-off-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21631>

20 months agotu: add linker script to fix android symbols
Eric Engestrom [Fri, 3 Mar 2023 16:42:06 +0000 (16:42 +0000)]
tu: add linker script to fix android symbols

Signed-off-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21631>

20 months agov3dv: add linker script to fix android symbols
Eric Engestrom [Fri, 3 Mar 2023 16:41:58 +0000 (16:41 +0000)]
v3dv: add linker script to fix android symbols

Signed-off-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21631>

20 months agovk: move radv's linker symbols scripts for use in all drivers
Eric Engestrom [Fri, 3 Mar 2023 16:40:57 +0000 (16:40 +0000)]
vk: move radv's linker symbols scripts for use in all drivers

Signed-off-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21631>

20 months agoanv: VK_EXT_image_sliced_view_of_3d
Lionel Landwerlin [Fri, 17 Feb 2023 08:03:38 +0000 (10:03 +0200)]
anv: VK_EXT_image_sliced_view_of_3d

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21376>

20 months agoisl: Set Depth to array len for 3D storage images
Faith Ekstrand [Tue, 28 Feb 2023 17:16:06 +0000 (11:16 -0600)]
isl: Set Depth to array len for 3D storage images

This is necessary for RESINFO to work properly.

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

20 months agointel/blorp: Set array_len for 3D images properly
Faith Ekstrand [Tue, 28 Feb 2023 17:14:36 +0000 (11:14 -0600)]
intel/blorp: Set array_len for 3D images properly

We need to minify the depth so we don't set a size that's out-of-bounds.

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

20 months agovulkan/runtime: only consider slice info with 3D image views
Lionel Landwerlin [Fri, 3 Mar 2023 10:50:45 +0000 (12:50 +0200)]
vulkan/runtime: only consider slice info with 3D image views

Because we can have 2D views of 3D images, we want to consider the
slice info only with 3D *image views*.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 66e3ccbcac ("vulkan/runtime: store parameters of VK_EXT_sliced_view_of_3d")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21376>

20 months agovulkan/runtime: Rename and document storage image Z range
Faith Ekstrand [Fri, 3 Mar 2023 17:36:36 +0000 (11:36 -0600)]
vulkan/runtime: Rename and document storage image Z range

This makes it more clear that the fields specifically apply to the Z
range and aren't array slices.

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

20 months agovenus: shader cache fossilize replay fix
Juston Li [Thu, 2 Mar 2023 18:40:03 +0000 (10:40 -0800)]
venus: shader cache fossilize replay fix

venus utilizes the host side shader cache.

This is a WA to generate shader cache files containing headers with
a unique cache id that will change based on host driver identifiers.
This allows fossilize replay to detect if the host side shader cache
is no longer up to date.
The shader cache is destroyed after creating the necessary files and
not utilized by venus.

Signed-off-by: Juston Li <justonli@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21664>

20 months agoci/zink: add skip for the Single-GL46.enhanced_layouts.ssb_member_align_non_power_of_2
David Heidelberg [Sat, 4 Mar 2023 00:03:25 +0000 (01:03 +0100)]
ci/zink: add skip for the Single-GL46.enhanced_layouts.ssb_member_align_non_power_of_2

Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21668>

20 months agoci: Retry, retry, retry... No one likes to trigger Marge more than once.
David Heidelberg [Fri, 3 Mar 2023 19:26:52 +0000 (20:26 +0100)]
ci: Retry, retry, retry... No one likes to trigger Marge more than once.

Sadly, have to decrease retry attempts from 2 to 1 for `runner_system_failure` since it's not doable while keeping one attempt for every other failure.

Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21668>

20 months agoci: deqp-runner: drop already unused function
David Heidelberg [Thu, 2 Mar 2023 22:29:49 +0000 (23:29 +0100)]
ci: deqp-runner: drop already unused function

Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21668>

20 months agoci: make meson build and test uncollapsed
David Heidelberg [Thu, 2 Mar 2023 22:15:45 +0000 (23:15 +0100)]
ci: make meson build and test uncollapsed

Fixes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8419

Signed-off-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21668>

20 months agod3d12: VP9 Decode - Fix use_prev_in_find_mvs_refs calculation
Sil Vilerino [Fri, 3 Mar 2023 18:00:57 +0000 (13:00 -0500)]
d3d12: VP9 Decode - Fix use_prev_in_find_mvs_refs calculation

Fixes: c8e8ce83 ("d3d12: Add VP9 Decode support")

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

20 months agofrontend/va: Keep track of some VP9 previous frame data for current frame use_prev_in...
Sil Vilerino [Fri, 3 Mar 2023 18:00:25 +0000 (13:00 -0500)]
frontend/va: Keep track of some VP9 previous frame data for current frame use_prev_in_find_mvs_refs

Fixes: c8e8ce83 ("d3d12: Add VP9 Decode support")

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

20 months agoradv/rt: Use ushr for extracting the cull mask
Konstantin Seurer [Thu, 2 Mar 2023 16:21:13 +0000 (17:21 +0100)]
radv/rt: Use ushr for extracting the cull mask

Fixes the following tests:
dEQP-VK.ray_tracing_pipeline.acceleration_structures.ray_cull_mask.gpu_built.ahit.4_bits
dEQP-VK.ray_tracing_pipeline.acceleration_structures.ray_cull_mask.gpu_built.ahit.16_bits
dEQP-VK.ray_tracing_pipeline.acceleration_structures.ray_cull_mask.gpu_built.chit.4_bits
dEQP-VK.ray_tracing_pipeline.acceleration_structures.ray_cull_mask.gpu_built.chit.16_bits
dEQP-VK.ray_tracing_pipeline.acceleration_structures.ray_cull_mask.gpu_built.isec.4_bits
dEQP-VK.ray_tracing_pipeline.acceleration_structures.ray_cull_mask.gpu_built.isec.16_bits

Fixes: 2d93ab7 ("radv/rt: Pre shift cull_mask")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21659>

20 months agoutil: Add util_format_get_array.
Timur Kristóf [Fri, 17 Feb 2023 19:14:00 +0000 (20:14 +0100)]
util: Add util_format_get_array.

This is a poor man's version of MESA_ARRAY_FORMAT.
Implemented based on a gigantic switch-case
with some help from the C preprocessor.
Thank you, preprocessor!

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21692>

20 months agoasahi: clang-format the world again
Asahi Lina [Fri, 3 Mar 2023 13:01:45 +0000 (22:01 +0900)]
asahi: clang-format the world again

Some things were missed (like winsys) and there's still some bad include
orders lying around and some other randomness.

We should set up CI checks for this soon... ^^;;

Signed-off-by: Asahi Lina <lina@asahilina.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21687>

20 months agointel/vk/grl: genX-ify grl_cl_kernel_name()
Jordan Justen [Wed, 1 Feb 2023 02:37:36 +0000 (18:37 -0800)]
intel/vk/grl: genX-ify grl_cl_kernel_name()

I don't see any code calling this, but with multiple gens, the symbol
name would conflict.

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21670>

20 months agointel/vk/grl: genX-ify genX_grl_uuid.cpp
Jordan Justen [Tue, 31 Jan 2023 23:10:17 +0000 (15:10 -0800)]
intel/vk/grl: genX-ify genX_grl_uuid.cpp

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21670>

20 months agointel/vk/grl: Allow grl/grl_cl_kernel.h to be included by C++ files
Jordan Justen [Tue, 31 Jan 2023 23:56:17 +0000 (15:56 -0800)]
intel/vk/grl: Allow grl/grl_cl_kernel.h to be included by C++ files

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21670>

20 months agointel/vk/grl: Allow genX_grl.h to be included by C++ files
Jordan Justen [Tue, 31 Jan 2023 23:52:26 +0000 (15:52 -0800)]
intel/vk/grl: Allow genX_grl.h to be included by C++ files

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21670>

20 months agointel/vk/grl: Don't include anv_private.h in genX_grl.h
Jordan Justen [Tue, 31 Jan 2023 23:40:42 +0000 (15:40 -0800)]
intel/vk/grl: Don't include anv_private.h in genX_grl.h

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21670>

20 months agoasahi/winsys: add .clang-format
Eric Engestrom [Fri, 3 Mar 2023 18:14:23 +0000 (18:14 +0000)]
asahi/winsys: add .clang-format

Copied from src/asahi/.clang-format

Signed-off-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21691>

20 months agoasahi: Destroy the renderonly context on screen destroy
Asahi Lina [Fri, 3 Mar 2023 07:11:25 +0000 (16:11 +0900)]
asahi: Destroy the renderonly context on screen destroy

This fixes an fd leak due to leaving behind the dup'd renderonly fd.

Signed-off-by: Asahi Lina <lina@asahilina.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21677>

20 months agoasahi: Fix device fd leak in agx_close_device
Asahi Lina [Fri, 3 Mar 2023 07:03:36 +0000 (16:03 +0900)]
asahi: Fix device fd leak in agx_close_device

I'm not sure if this was always broken downstream or just got dropped at
some point, but it's definitely UAPI-agnostic and missing now that we
have all the non-UAPI bits upstream.

Signed-off-by: Asahi Lina <lina@asahilina.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21677>

20 months agoasahi/decode: Handle VDM barriers
Alyssa Rosenzweig [Sat, 25 Feb 2023 16:21:37 +0000 (11:21 -0500)]
asahi/decode: Handle VDM barriers

We emit these now (for transform feedback).

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

20 months agodocs/feature: Mark ARB_sync as done on Asahi
Alyssa Rosenzweig [Wed, 15 Feb 2023 20:09:07 +0000 (15:09 -0500)]
docs/feature: Mark ARB_sync as done on Asahi

Strictly, this extension was already advertised, but it didn't seem nice to mark
it DONE when there was no sync support in the driver whatsoever. Mark it done
now that we do have proper explicit sync (well, in conjunction with the "add
Linux UAPI" patches that are blocked on getting the kernel driver upstream, but
that's needed for *any* of these extensions to be there!)

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

20 months agoradv: Emulate VGT_ESGS_ITEMSIZE in shaders on GFX9+.
Timur Kristóf [Mon, 20 Feb 2023 23:30:21 +0000 (00:30 +0100)]
radv: Emulate VGT_ESGS_ITEMSIZE in shaders on GFX9+.

Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21434>

20 months agoaco: make IDSet sparse
Rhys Perry [Tue, 31 Jan 2023 16:15:50 +0000 (16:15 +0000)]
aco: make IDSet sparse

Improves compilation time of huge shaders.

A ray tracing pipeline of Hellblade: Senua's Sacrifice compiles in about
half the time, with this patch.

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
Gitlab: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8179
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21022>

20 months agoasahi: Fix scissor culling check when out of bounds for FB/viewport
Asahi Lina [Fri, 3 Mar 2023 08:15:54 +0000 (17:15 +0900)]
asahi: Fix scissor culling check when out of bounds for FB/viewport

Fixes a bunch of the `assert(maxx > minx && maxy > miny)` failures in
dEQP-EGL and probably others.

Signed-off-by: Asahi Lina <lina@asahilina.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21678>

20 months agoasahi: Do not overread user index buffers
Asahi Lina [Fri, 3 Mar 2023 12:35:56 +0000 (21:35 +0900)]
asahi: Do not overread user index buffers

We need to align the extent to 4 for the GPU, but we can't copy more
than the original size out of the user buffer. Always alloc the exact
size we need.

This does mean the GPU gets an IB extent that could include some other
stuff later in the pool, if not aligned. This is probably safe? Given
the base alignment, it should never cross a page boundary and fault or
anything like that.

Signed-off-by: Asahi Lina <lina@asahilina.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21686>

20 months agoiris: Add iris_bo_set_caching()
José Roberto de Souza [Fri, 21 Oct 2022 15:58:11 +0000 (08:58 -0700)]
iris: Add iris_bo_set_caching()

Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21688>

20 months agoiris: Move iris_bo_madvise() to i915/iris_bufmgr.c
José Roberto de Souza [Fri, 21 Oct 2022 14:19:59 +0000 (07:19 -0700)]
iris: Move iris_bo_madvise() to i915/iris_bufmgr.c

Start to split functions that are not in hot paths to specific i915
files.

Also making it static as iris_bo_madvise() is only called from
iris_bufmgr.c and adding a enum iris_madvice to be used among all
backends.

Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21688>

20 months agoaco/tests: add tests for v_fma_f32 with 2 fp16 literals
Rhys Perry [Wed, 1 Mar 2023 17:57:07 +0000 (17:57 +0000)]
aco/tests: add tests for v_fma_f32 with 2 fp16 literals

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21633>

20 months agoblorp: add dependency on idep_intel_dev
Lionel Landwerlin [Fri, 3 Mar 2023 09:36:55 +0000 (11:36 +0200)]
blorp: add dependency on idep_intel_dev

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 3c9a8f7a6d ("intel/dev: generate helpers to identify platform workarounds")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8421
Reviewed-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21679>

20 months agocrocus/meson: add back dependency on libintel_dev
Marcin Ślusarz [Fri, 3 Mar 2023 10:53:52 +0000 (11:53 +0100)]
crocus/meson: add back dependency on libintel_dev

Fixes: a0fa31bcdd8 ("intel/dev: create a helper dependency for libintel_dev")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21679>

20 months agoanv: add gfx9 generated draw support
Lionel Landwerlin [Sun, 1 Jan 2023 22:58:46 +0000 (00:58 +0200)]
anv: add gfx9 generated draw support

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20497>

20 months agoanv: remove unused item_count parameter
Lionel Landwerlin [Mon, 2 Jan 2023 16:26:03 +0000 (18:26 +0200)]
anv: remove unused item_count parameter

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20497>

20 months agoanv: use a list of generated shaders
Lionel Landwerlin [Sun, 1 Jan 2023 22:42:59 +0000 (00:42 +0200)]
anv: use a list of generated shaders

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20497>

20 months agoanv: move common shader code into header
Lionel Landwerlin [Sun, 1 Jan 2023 19:08:04 +0000 (21:08 +0200)]
anv: move common shader code into header

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20497>

20 months agoanv: pack more data into generated draws input
Lionel Landwerlin [Sat, 31 Dec 2022 17:00:34 +0000 (19:00 +0200)]
anv: pack more data into generated draws input

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20497>

20 months agoanv: use 64bit int support in generation shaders
Lionel Landwerlin [Sat, 31 Dec 2022 14:16:15 +0000 (16:16 +0200)]
anv: use 64bit int support in generation shaders

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20497>

20 months agoanv: rename generated draws for Gfx11
Lionel Landwerlin [Fri, 30 Dec 2022 12:12:29 +0000 (14:12 +0200)]
anv: rename generated draws for Gfx11

We'll need different shaders for Gfx9

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20497>

20 months agoanv: use a single generation shader for indirect draws
Lionel Landwerlin [Mon, 2 Jan 2023 00:01:48 +0000 (02:01 +0200)]
anv: use a single generation shader for indirect draws

The indirect draw count shader can be used as a more generic case of
the indirect draw one. We'll never enter the last condition of the
shader (writing the MI_BATCH_BUFFER_START) with non count variants of
draws.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20497>

20 months agoanv: remove MI_NOOPs at the end of the generation batch
Lionel Landwerlin [Thu, 5 Jan 2023 17:55:34 +0000 (19:55 +0200)]
anv: remove MI_NOOPs at the end of the generation batch

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: c950fe97a0 ("anv: implement generated (indexed) indirect draws")
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20497>

20 months agoanv: make sure mi_memcpy lands before push constant loads
Lionel Landwerlin [Thu, 5 Jan 2023 17:38:22 +0000 (19:38 +0200)]
anv: make sure mi_memcpy lands before push constant loads

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: e2dc32d755 ("anv: move functions around to plan for generated draws")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20497>

20 months agoanv: fix indirect draws VF cache tracking of index buffer
Lionel Landwerlin [Thu, 5 Jan 2023 15:30:19 +0000 (17:30 +0200)]
anv: fix indirect draws VF cache tracking of index buffer

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: e2dc32d755 ("anv: move functions around to plan for generated draws")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20497>

20 months agoanv: fix 3DSTATE_PS emission in generation shaders
Lionel Landwerlin [Tue, 3 Jan 2023 00:50:54 +0000 (02:50 +0200)]
anv: fix 3DSTATE_PS emission in generation shaders

We have to use the helper and also were missing the vector mask
programming.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: c950fe97a0 ("anv: implement generated (indexed) indirect draws")
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20497>

20 months agoanv: remove commented code
Lionel Landwerlin [Mon, 2 Jan 2023 23:01:19 +0000 (01:01 +0200)]
anv: remove commented code

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: c950fe97a0 ("anv: implement generated (indexed) indirect draws")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20497>

20 months agoanv: remove pre hasvk split assert
Lionel Landwerlin [Mon, 2 Jan 2023 16:48:37 +0000 (18:48 +0200)]
anv: remove pre hasvk split assert

With softpin we should not always expect a BO in addresses.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20497>

20 months agoanv: limit push constant dirtyness with generation shaders
Lionel Landwerlin [Thu, 5 Jan 2023 19:22:01 +0000 (21:22 +0200)]
anv: limit push constant dirtyness with generation shaders

We only use the fragment shader push constants.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: c950fe97a0 ("anv: implement generated (indexed) indirect draws")
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20497>

20 months agoanv: correctly program 3DSTATE_SF in generation shaders
Lionel Landwerlin [Mon, 2 Jan 2023 23:01:00 +0000 (01:01 +0200)]
anv: correctly program 3DSTATE_SF in generation shaders

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: c950fe97a0 ("anv: implement generated (indexed) indirect draws")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20497>

20 months agoanv: remove BTI related flush in generation shaders
Lionel Landwerlin [Mon, 2 Jan 2023 02:17:53 +0000 (04:17 +0200)]
anv: remove BTI related flush in generation shaders

Earlier versions of the generation shaders were using the binding
table. We since switch to A64 messages. So the flush can be removed.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: c950fe97a0 ("anv: implement generated (indexed) indirect draws")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20497>

20 months agoanv: remove copied code from generation shader
Lionel Landwerlin [Sun, 1 Jan 2023 23:05:26 +0000 (01:05 +0200)]
anv: remove copied code from generation shader

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: c950fe97a0 ("anv: implement generated (indexed) indirect draws")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20497>

20 months agoanv: fix generated forward jump with more than 67M draws
Lionel Landwerlin [Mon, 2 Jan 2023 16:20:48 +0000 (18:20 +0200)]
anv: fix generated forward jump with more than 67M draws

The issue here is that for draw indirect count variants, we want to
jump after the last generated draw call to the next location where
commands are. But if we have more than 67M draws (8k * 8k chunks), we
only know the location once we've generated each of the 8k * 8k
chunks.

This change adds a CPU side pointer in the push constant struct so
that we can create a single linked list of chunks to edit and go
through to write the correct jump address after all the generated
space has been allocated.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: c950fe97a0 ("anv: implement generated (indexed) indirect draws")
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20497>

20 months agoanv: correctly reset generation address on command buffer reset
Lionel Landwerlin [Thu, 5 Jan 2023 13:30:33 +0000 (15:30 +0200)]
anv: correctly reset generation address on command buffer reset

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20497>

20 months agoanv: fix incorrect parameter
Lionel Landwerlin [Thu, 5 Jan 2023 13:31:39 +0000 (15:31 +0200)]
anv: fix incorrect parameter

cmd_buffer_update_dirty_vbs_for_gfx8_vb_flush takes a value RANDOM/SEQUENTIAL. Not a boolean.
Fortunately this worked okay because true == RANDOM

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: mesa-stable
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20497>

20 months agoutil/glsl2spirv: add support for include directive
Lionel Landwerlin [Sun, 1 Jan 2023 19:08:32 +0000 (21:08 +0200)]
util/glsl2spirv: add support for include directive

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20497>

20 months agopanfrost/ci: add EGL tests
Eric Engestrom [Thu, 23 Feb 2023 17:34:30 +0000 (17:34 +0000)]
panfrost/ci: add EGL tests

Signed-off-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21504>

20 months agoanv: pull Wa_14016118574 out of some loop not changing state
Lionel Landwerlin [Thu, 2 Mar 2023 16:44:45 +0000 (18:44 +0200)]
anv: pull Wa_14016118574 out of some loop not changing state

The WA is meant to be here to apply some state that is not propagated
properly inside the HW. But if you have a loop like :

for ( ... ) {
  emit(3DPRIMITIVE, some param);
}

You're not really changing any state, just push more draws into the
pipeline.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: f2645229c2 ("anv: implement Wa_14016118574")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21660>

20 months agoanv: fixup condition for Wa_14016118574
Lionel Landwerlin [Thu, 2 Mar 2023 16:35:01 +0000 (18:35 +0200)]
anv: fixup condition for Wa_14016118574

We don't want the WA to kick-in if it's not point/line topology.

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: f2645229c2 ("anv: implement Wa_14016118574")
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21660>

20 months agoradv/ci: adjust timeouts for Vega10 and Renoir
Samuel Pitoiset [Fri, 17 Feb 2023 17:14:09 +0000 (18:14 +0100)]
radv/ci: adjust timeouts for Vega10 and Renoir

With latest CTS it takes much more time.

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

20 months agoci: uprev CTS to 1.3.5.0
Samuel Pitoiset [Fri, 17 Feb 2023 14:57:35 +0000 (15:57 +0100)]
ci: uprev CTS to 1.3.5.0

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Acked-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21390>

20 months agoradv: stop allocationg the attr ring BO for compute queues on GFX11
Samuel Pitoiset [Wed, 1 Mar 2023 17:19:39 +0000 (18:19 +0100)]
radv: stop allocationg the attr ring BO for compute queues on GFX11

Only needed for graphics. This saves ~8Mib of 32-bit VRAM per compute
queue.

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

20 months agoiris: Add initial skeleton of kmd backend
José Roberto de Souza [Fri, 10 Feb 2023 18:19:19 +0000 (10:19 -0800)]
iris: Add initial skeleton of kmd backend

Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21369>

20 months agoiris: Use DRM_IOCTL_I915_GEM_CREATE_EXT in all supported kernels
José Roberto de Souza [Fri, 10 Feb 2023 18:19:19 +0000 (10:19 -0800)]
iris: Use DRM_IOCTL_I915_GEM_CREATE_EXT in all supported kernels

As we start to refactor the iris code base to support Xe KMD here I'm
dropping DRM_IOCTL_I915_GEM_CREATE usage as much as possible and
unifying all graphics memory allocation calls to
DRM_IOCTL_I915_GEM_CREATE_EXT.

The kernel version that implemented DRM_I915_QUERY_MEMORY_REGIONS uAPI
also implemented DRM_IOCTL_I915_GEM_CREATE_EXT so we can use that
to safely call DRM_IOCTL_I915_GEM_CREATE_EXT.

Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21369>

20 months agoiris/bufmgr: Add i915_gem_set_domain()
José Roberto de Souza [Fri, 10 Feb 2023 19:31:15 +0000 (11:31 -0800)]
iris/bufmgr: Add i915_gem_set_domain()

Avoids code duplication.

Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21369>

20 months agoiris: Convert drm_i915_gem_memory_class_instance to intel_memory_class_instance
José Roberto de Souza [Thu, 27 Oct 2022 20:08:10 +0000 (13:08 -0700)]
iris: Convert drm_i915_gem_memory_class_instance to intel_memory_class_instance

Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21369>

20 months agointel/dev: Query and compute hardware topology for Xe
José Roberto de Souza [Thu, 9 Feb 2023 16:16:42 +0000 (08:16 -0800)]
intel/dev: Query and compute hardware topology for Xe

Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21368>

20 months agointel/dev: Implement Xe functions to handle hwconfig
José Roberto de Souza [Thu, 9 Feb 2023 16:13:14 +0000 (08:13 -0800)]
intel/dev: Implement Xe functions to handle hwconfig

Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21368>

20 months agointel/dev: Implement Xe functions to fill intel_device_info
José Roberto de Souza [Thu, 9 Feb 2023 16:05:24 +0000 (08:05 -0800)]
intel/dev: Implement Xe functions to fill intel_device_info

Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21368>

20 months agointel/dev: Add INTEL_KMD_TYPE_XE
José Roberto de Souza [Thu, 9 Feb 2023 15:28:07 +0000 (07:28 -0800)]
intel/dev: Add INTEL_KMD_TYPE_XE

As mentioned in the previous patch, if intel-xe-kmd is disabled
it will fail to detected in run time but it will still compile all
Xe files.

Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21368>

20 months agointel: Add Meson parameter to enable Xe KMD support
José Roberto de Souza [Mon, 19 Dec 2022 17:28:00 +0000 (09:28 -0800)]
intel: Add Meson parameter to enable Xe KMD support

The plan is to compile all the Xe files but in run time it will fail
to detect the KMD loaded and it will fall back to software
rendering(if build).

Compiling Xe files makes sure newer commits don't break Xe even if
developers don't have Xe enabled in their build folder.

Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21368>

20 months agointel: Pull in xe_drm.h
José Roberto de Souza [Thu, 4 Aug 2022 21:16:46 +0000 (14:16 -0700)]
intel: Pull in xe_drm.h

This is the uapi of the new Xe kernel driver.

Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21368>

20 months agointel/dev: Print required workarounds with intel_dev_info
Mark Janes [Wed, 1 Mar 2023 22:26:20 +0000 (14:26 -0800)]
intel/dev: Print required workarounds with intel_dev_info

With the addition of workarounds, the output from this tool is more
verbose than some users will want.  Provide optional parameters for
enabling hwconfig and workaround details.

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

20 months agoradv: Expose VK_EXT_swapchain_maintenance1.
Hans-Kristian Arntzen [Wed, 30 Nov 2022 11:08:56 +0000 (12:08 +0100)]
radv: Expose VK_EXT_swapchain_maintenance1.

Passes dEQP-VK.wsi.*.maintenance1.*.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Reviewed-by: Joshua Ashton <joshua@froggi.es>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20235>

20 months agowsi/win32: Implement VK_EXT_swapchain_maintenance1.
Hans-Kristian Arntzen [Wed, 11 Jan 2023 10:49:49 +0000 (11:49 +0100)]
wsi/win32: Implement VK_EXT_swapchain_maintenance1.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Reviewed-by: Jesse Natalie <jenatalie@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20235>

20 months agowsi/display: Implement EXT_swapchain_maintenance1.
Hans-Kristian Arntzen [Thu, 8 Dec 2022 15:48:12 +0000 (16:48 +0100)]
wsi/display: Implement EXT_swapchain_maintenance1.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Reviewed-by: Joshua Ashton <joshua@froggi.es>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20235>

20 months agowsi/wayland: Implement EXT_swapchain_maintenance1.
Hans-Kristian Arntzen [Wed, 30 Nov 2022 16:18:00 +0000 (17:18 +0100)]
wsi/wayland: Implement EXT_swapchain_maintenance1.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Reviewed-by: Joshua Ashton <joshua@froggi.es>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20235>

20 months agowsi/common: Add function to modify present mode.
Hans-Kristian Arntzen [Wed, 30 Nov 2022 16:17:39 +0000 (17:17 +0100)]
wsi/common: Add function to modify present mode.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Reviewed-by: Joshua Ashton <joshua@froggi.es>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20235>

20 months agowsi/common: Add comment about DEFERRED_ALLOCATION_BIT_EXT.
Hans-Kristian Arntzen [Wed, 30 Nov 2022 11:21:22 +0000 (12:21 +0100)]
wsi/common: Add comment about DEFERRED_ALLOCATION_BIT_EXT.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Reviewed-by: Joshua Ashton <joshua@froggi.es>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20235>

20 months agowsi/common: Implement swapchain present fence.
Hans-Kristian Arntzen [Wed, 30 Nov 2022 11:07:58 +0000 (12:07 +0100)]
wsi/common: Implement swapchain present fence.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Reviewed-by: Joshua Ashton <joshua@froggi.es>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20235>

20 months agowsi/x11: Implement EXT_swapchain_maintenance1.
Hans-Kristian Arntzen [Thu, 8 Dec 2022 16:08:21 +0000 (17:08 +0100)]
wsi/x11: Implement EXT_swapchain_maintenance1.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Reviewed-by: Joshua Ashton <joshua@froggi.es>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20235>

20 months agowsi/common: Add common implementation of vkReleaseSwapchainImagesEXT.
Hans-Kristian Arntzen [Thu, 8 Dec 2022 16:07:52 +0000 (17:07 +0100)]
wsi/common: Add common implementation of vkReleaseSwapchainImagesEXT.

Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Reviewed-by: Joshua Ashton <joshua@froggi.es>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20235>

20 months agolavapipe/ci: add a new flake
Marek Olšák [Thu, 2 Mar 2023 23:04:22 +0000 (18:04 -0500)]
lavapipe/ci: add a new flake

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

20 months agoamd: lower multi-component subdword SSBO loads in NIR
Marek Olšák [Sun, 6 Nov 2022 20:58:47 +0000 (15:58 -0500)]
amd: lower multi-component subdword SSBO loads in NIR

because the hw and LLVM only support subdword single-component SSBO loads,
and ac_nir_to_llvm splits multi-component loads because of that, which is
inefficient.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-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/19399>

20 months agoamd: lower subdword UBO loads in NIR
Marek Olšák [Sat, 29 Oct 2022 21:29:37 +0000 (17:29 -0400)]
amd: lower subdword UBO loads in NIR

This fixes broken subdword UBO loads with LLVM.

It's only needed for LLVM, but it's done for both LLVM and ACO because
the pass can be fully validated only with ACO and the Vulkan CTS right now.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-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/19399>

20 months agoac/llvm: implement nir_op_unpack_32_4x8
Marek Olšák [Thu, 3 Nov 2022 17:41:19 +0000 (13:41 -0400)]
ac/llvm: implement nir_op_unpack_32_4x8

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-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/19399>

20 months agoaco: implement nir_op_unpack_32_4x8
Marek Olšák [Sat, 5 Nov 2022 07:44:53 +0000 (03:44 -0400)]
aco: implement nir_op_unpack_32_4x8

Reviewed-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/19399>

20 months agoac/nir: add ac_nir_lower_subdword_loads to lower 8/16-bit loads to 32 bits
Marek Olšák [Sat, 29 Oct 2022 21:25:00 +0000 (17:25 -0400)]
ac/nir: add ac_nir_lower_subdword_loads to lower 8/16-bit loads to 32 bits

Reviewed-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/19399>

20 months agonir: skip nir_op_unpack_32_4x8 in nir_lower_alu_width
Marek Olšák [Sat, 5 Nov 2022 07:45:20 +0000 (03:45 -0400)]
nir: skip nir_op_unpack_32_4x8 in nir_lower_alu_width

The pass can't handle it just like the other unpack opcodes and generates
invalid NIR.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-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/19399>

20 months agonir: return progress from nir_lower_io_to_scalar
Marek Olšák [Sat, 29 Oct 2022 21:28:43 +0000 (17:28 -0400)]
nir: return progress from nir_lower_io_to_scalar

oversight?

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-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/19399>

20 months agointel/nir: Limit unaligned loads to vec4
Faith Ekstrand [Sat, 25 Feb 2023 00:04:49 +0000 (18:04 -0600)]
intel/nir: Limit unaligned loads to vec4

This probably doesn't affect Vulkan or GL because they can't have
anything bigger than a vec4 anyway unless it's a u64vec4 and those have
to be at least 8B aligned.  This may affect CL apps if they use
__attribute__((packed)) on something with big vectors, depending on how
LLVM decides to translate that.

Fixes: f8aa83f0c86e ("intel/nir: Use nir_lower_mem_access_bit_sizes()")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21524>

20 months agonir: Handle wider unaligned loads in lower_mem_access_bit_size
Faith Ekstrand [Mon, 27 Feb 2023 14:45:22 +0000 (08:45 -0600)]
nir: Handle wider unaligned loads in lower_mem_access_bit_size

Reviewed-by: M Henning <drawoc@darkrefraction.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21524>

20 months agonir: Make chunk_align_offset const in lower_mem_load()
Faith Ekstrand [Mon, 27 Feb 2023 14:50:50 +0000 (08:50 -0600)]
nir: Make chunk_align_offset const in lower_mem_load()

This should make things more clear than changing the value from earlier
in the loop.  Also, rename chunk_offset to load_offset so they match.

Reviewed-by: M Henning <drawoc@darkrefraction.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21524>

20 months agonir: Rename nir_mem_access_size_align::align_mul to align
Faith Ekstrand [Wed, 1 Mar 2023 15:10:20 +0000 (09:10 -0600)]
nir: Rename nir_mem_access_size_align::align_mul to align

It's a simple alignment so calling it align_mul is a bit misleading.

Suggested-by: M Henning <drawoc@darkrefraction.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21524>