platform/upstream/mesa.git
21 months agonir/algeraic_opt: use double options too for lowering ftrunc@64
Gert Wollny [Thu, 10 Nov 2022 12:06:08 +0000 (13:06 +0100)]
nir/algeraic_opt: use double options too for lowering ftrunc@64

ftrunc@64 also might need lowering on fp64 only, especially now
that it might be introduced by nir_lower_int64.

Fixes: 29da9856826fa6a4b5117c43c78b4301a49bc6dd
   nir/lower_int64: Enable lowering of 64-bit float to 64-bit integer conversions.

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

21 months agoradv: advertise extendedDynamicState3ProvokingVertexMode with NGG
Samuel Pitoiset [Wed, 19 Oct 2022 13:55:00 +0000 (15:55 +0200)]
radv: advertise extendedDynamicState3ProvokingVertexMode with NGG

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

21 months agoradv: add support for dynamic provoking vertex mode with NGG
Samuel Pitoiset [Wed, 19 Oct 2022 13:57:52 +0000 (15:57 +0200)]
radv: add support for dynamic provoking vertex mode with NGG

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

21 months agoradv: add lowering support for load_provoking_vtx_in_prim_amd when dynamic
Samuel Pitoiset [Wed, 19 Oct 2022 13:45:21 +0000 (15:45 +0200)]
radv: add lowering support for load_provoking_vtx_in_prim_amd when dynamic

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

21 months agoradv: declare shader arguments/locations for provoking vertex
Samuel Pitoiset [Wed, 19 Oct 2022 13:44:54 +0000 (15:44 +0200)]
radv: declare shader arguments/locations for provoking vertex

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

21 months agoradv: add radv_pipeline_key::dynamic_provoking_vtx_mode
Samuel Pitoiset [Wed, 19 Oct 2022 12:25:55 +0000 (14:25 +0200)]
radv: add radv_pipeline_key::dynamic_provoking_vtx_mode

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

21 months agoradv: re-emit NGG culling settings when conservative rast mode is dynamic
Samuel Pitoiset [Thu, 10 Nov 2022 14:24:24 +0000 (15:24 +0100)]
radv: re-emit NGG culling settings when conservative rast mode is dynamic

Found by inspection.

Fixes: fbed3aed4aa ("radv: add support for dynamic conservative rasterization mode")
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/19651>

21 months agomeson: only enable intel-clc for x86_64 builds
Luis Felipe Strano Moraes [Thu, 10 Nov 2022 23:57:05 +0000 (15:57 -0800)]
meson: only enable intel-clc for x86_64 builds

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

21 months agoutil: Replace the usage of boolean with c11 bool in u_cpu_detect.c
Yonggang Luo [Sun, 6 Nov 2022 14:35:30 +0000 (22:35 +0800)]
util: Replace the usage of boolean with c11 bool in u_cpu_detect.c

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19649>

21 months agomicrosoft: Fixes error: unknown type name ‘boolean’ in nir_to_dxil.c
Yonggang Luo [Mon, 7 Nov 2022 05:46:48 +0000 (13:46 +0800)]
microsoft: Fixes error: unknown type name ‘boolean’ in nir_to_dxil.c

error message:
../../src/microsoft/compiler/nir_to_dxil.c:1711:8: error: unknown type name ‘boolean’
 1711 | static boolean

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19649>

21 months agoutil: Replace usage of boolean with c11 bool in src/util/format/* and src/util/tests...
Yonggang Luo [Mon, 7 Nov 2022 05:34:30 +0000 (13:34 +0800)]
util: Replace usage of boolean with c11 bool in src/util/format/* and src/util/tests/format/*

This is done by find and replace:
boolean -> bool
TRUE -> true
FALSE -> false

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19649>

21 months agoutil: Replace the usage of boolean with c11 bool in u_debug_symbol.c
Yonggang Luo [Wed, 9 Nov 2022 09:43:16 +0000 (17:43 +0800)]
util: Replace the usage of boolean with c11 bool in u_debug_symbol.c

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19649>

21 months agoutil: Replace the usage of boolean with c11 bool in u_debug_memory.c
Yonggang Luo [Sun, 6 Nov 2022 13:23:22 +0000 (21:23 +0800)]
util: Replace the usage of boolean with c11 bool in u_debug_memory.c

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19649>

21 months agoutil: Replace all usage of __FUNCTION__ with __func__ in src/util/*
Yonggang Luo [Thu, 10 Nov 2022 08:31:11 +0000 (16:31 +0800)]
util: Replace all usage of __FUNCTION__ with __func__ in src/util/*

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19646>

21 months agoutil: Remove va_copy fixup because of c11 is required
Yonggang Luo [Thu, 10 Nov 2022 08:26:09 +0000 (16:26 +0800)]
util: Remove va_copy fixup because of c11 is required

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19646>

21 months agoutil: Replace TAB with space in compiler.h
Yonggang Luo [Thu, 10 Nov 2022 08:24:16 +0000 (16:24 +0800)]
util: Replace TAB with space in compiler.h

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19646>

21 months agoutil: Cleanup util/compiler.h
Yonggang Luo [Thu, 10 Nov 2022 08:01:35 +0000 (16:01 +0800)]
util: Cleanup util/compiler.h

Remove MESA_*_ENDIAN
Use UTIL_ARCH_*_ENDIAN to define CPU_TO_LE32

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19646>

21 months agowsi: Use UTIL_ARCH_LITTLE_ENDIAN instead MESA_LITTLE_ENDIAN
Yonggang Luo [Thu, 10 Nov 2022 08:00:41 +0000 (16:00 +0800)]
wsi: Use UTIL_ARCH_LITTLE_ENDIAN instead MESA_LITTLE_ENDIAN

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19646>

21 months agomeson: Fixes name_prefix for clover on mingw
Yonggang Luo [Wed, 9 Nov 2022 03:24:32 +0000 (11:24 +0800)]
meson: Fixes name_prefix for clover on mingw

Cc: mesa-stable
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19610>

21 months agoclover: Fixes building with mingw-x86
Yonggang Luo [Tue, 8 Nov 2022 11:07:35 +0000 (19:07 +0800)]
clover: Fixes building with mingw-x86

Cc: mesa-stable
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19610>

21 months agoclover: Rename *OpenCL.def to *OpenCL.def.in
Yonggang Luo [Wed, 9 Nov 2022 02:30:57 +0000 (10:30 +0800)]
clover: Rename *OpenCL.def to *OpenCL.def.in

Cc: mesa-stable
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19610>

21 months agomeson: fixes mingw-clang32 building
Yonggang Luo [Tue, 8 Nov 2022 12:48:30 +0000 (20:48 +0800)]
meson: fixes mingw-clang32 building

Cc: mesa-stable
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19610>

21 months agomeson: Refactoring shared gen_vs_module_defs_normal_command out
Yonggang Luo [Tue, 8 Nov 2022 12:32:07 +0000 (20:32 +0800)]
meson: Refactoring shared gen_vs_module_defs_normal_command out

Cc: mesa-stable
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19610>

21 months agoradv: Fixes prototypes
Yonggang Luo [Tue, 8 Nov 2022 12:15:10 +0000 (20:15 +0800)]
radv: Fixes prototypes

Cc: mesa-stable
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19610>

21 months agopvr: use common command buffer status
Dave Airlie [Wed, 8 Jun 2022 00:52:36 +0000 (10:52 +1000)]
pvr: use common command buffer status

Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16922>

21 months agopvr: Hook up vk_command_buffer_ops::reset
Jason Ekstrand [Fri, 9 Sep 2022 23:43:38 +0000 (18:43 -0500)]
pvr: Hook up vk_command_buffer_ops::reset

Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16922>

21 months agopvr: Call command buffer reset conditionally
Jason Ekstrand [Fri, 9 Sep 2022 23:36:39 +0000 (18:36 -0500)]
pvr: Call command buffer reset conditionally

Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16922>

21 months agoturnip: use common command buffer status code.
Dave Airlie [Wed, 8 Jun 2022 00:46:26 +0000 (10:46 +1000)]
turnip: use common command buffer status code.

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16922>

21 months agoturnip: Initialize push descriptors in tu_create_cmd_buffer()
Jason Ekstrand [Tue, 8 Nov 2022 20:32:56 +0000 (14:32 -0600)]
turnip: Initialize push descriptors in tu_create_cmd_buffer()

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16922>

21 months agopanvk: move to using common command buffer status
Dave Airlie [Wed, 8 Jun 2022 00:49:09 +0000 (10:49 +1000)]
panvk: move to using common command buffer status

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16922>

21 months agopanvk: Use common code for command buffer lifecycle management
Jason Ekstrand [Sat, 10 Sep 2022 00:14:13 +0000 (19:14 -0500)]
panvk: Use common code for command buffer lifecycle management

Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16922>

21 months agopanvk: Drop panvk_cmd_buffer::queue_family_index
Jason Ekstrand [Mon, 12 Sep 2022 10:17:42 +0000 (05:17 -0500)]
panvk: Drop panvk_cmd_buffer::queue_family_index

Suggested-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16922>

21 months agolavapipe: use common command buffer status code.
Dave Airlie [Wed, 8 Jun 2022 00:46:43 +0000 (10:46 +1000)]
lavapipe: use common command buffer status code.

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

21 months agoradv: use common command buffer status code.
Dave Airlie [Wed, 8 Jun 2022 00:46:11 +0000 (10:46 +1000)]
radv: use common command buffer status code.

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

21 months agovulkan: Add common cmd buffer state tracking
Dave Airlie [Wed, 8 Jun 2022 00:45:44 +0000 (10:45 +1000)]
vulkan: Add common cmd buffer state tracking

For drivers already using vk_common_ResetCommandBuffer(), it now only
calls the driver's reset hook if the command buffer is not in the
INITIAL state.  Pulled this trick from the PowerVR driver.

v2 (Jason Ekstrand):
 - Rename from "status" to "state" since that's what's in the spec
 - Add vk_command_buffer_begin/end instead of drivers setting it all
   manually

Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16922>

21 months agoradeonsi: move param assign offset to si_get_nir_shader
Qiang Yu [Thu, 27 Oct 2022 13:57:58 +0000 (21:57 +0800)]
radeonsi: move param assign offset to si_get_nir_shader

We need this info for gfx11 param export soon and nir vertex
export lowering in the future.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19429>

21 months agoradeonsi: pack code into si_assign_param_offsets
Qiang Yu [Thu, 3 Nov 2022 02:28:13 +0000 (10:28 +0800)]
radeonsi: pack code into si_assign_param_offsets

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19429>

21 months agoradeonsi: small refine for si_nir_assign_param_offsets
Qiang Yu [Thu, 3 Nov 2022 02:26:30 +0000 (10:26 +0800)]
radeonsi: small refine for si_nir_assign_param_offsets

Pass si_shader as arg directly, move primitive id pending
inside it.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19429>

21 months agoradeonsi: move si_nir_assign_param_offsets above
Qiang Yu [Thu, 3 Nov 2022 02:18:41 +0000 (10:18 +0800)]
radeonsi: move si_nir_assign_param_offsets above

It's going to be called by si_get_nir_shader.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19429>

21 months agoradeonsi: implement nir_load_ring_attr_amd
Qiang Yu [Thu, 27 Oct 2022 07:34:44 +0000 (15:34 +0800)]
radeonsi: implement nir_load_ring_attr_amd

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19429>

21 months agoac/llvm: implement intrinsic for gfx11 param export
Qiang Yu [Thu, 27 Oct 2022 07:08:56 +0000 (15:08 +0800)]
ac/llvm: implement intrinsic for gfx11 param export

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19429>

21 months agoradeonsi: use si_nir_clamp_vertex_color
Qiang Yu [Fri, 28 Oct 2022 03:42:05 +0000 (11:42 +0800)]
radeonsi: use si_nir_clamp_vertex_color

Clamp vertex color in nir. Now only GS copy shader use
si_vertex_color_clamping, so move it there. It will be
completely removed after we switch to nir GS copy shader.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19429>

21 months agoradeonsi: add si_nir_clamp_vertex_color pass
Qiang Yu [Fri, 28 Oct 2022 03:15:03 +0000 (11:15 +0800)]
radeonsi: add si_nir_clamp_vertex_color pass

To replace the LLVM si_vertex_color_clamping.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19429>

21 months agonir,ac/llvm,radeonsi: add nir_load_clamp_vertex_color_amd
Qiang Yu [Fri, 28 Oct 2022 02:15:21 +0000 (10:15 +0800)]
nir,ac/llvm,radeonsi: add nir_load_clamp_vertex_color_amd

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19429>

21 months agoradeonsi: remove lower_fsat nir option
Qiang Yu [Tue, 8 Nov 2022 02:05:20 +0000 (10:05 +0800)]
radeonsi: remove lower_fsat nir option

We implemented nir_op_fsat nir to llvm translation.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19429>

21 months agomeson: enable Wmisleading-indentation
Lucas Stach [Tue, 1 Nov 2022 13:42:12 +0000 (14:42 +0100)]
meson: enable Wmisleading-indentation

Clang enables it by default, but GCC does not. Enable it explicitly to
have some consistency between the supported compilers.

Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Acked-by: Eric Engestrom <eric@igalia.com>
Acked-by: Dylan Baker <dylan.c.baker@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19439>

21 months agofreedreno/drm/virtio: Pre-allocate cmdstream buffers
Rob Clark [Thu, 10 Nov 2022 15:36:22 +0000 (07:36 -0800)]
freedreno/drm/virtio: Pre-allocate cmdstream buffers

We know cmdstream buffers are immediately mmap'd, which is both
expensive on the host, and breaks the pipelining as guest is forced
to stall waiting for the host.  So pre-allocate some cmdestream
buffers, so that we have something that is (hopefully) already
allocated and mapped to guest's physical memory before we need it.
The older buffer from the head of the prealloc list replaces the
newly allocated buffer which is pushed to the tail of the prealloc
list.

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

21 months agofreedreno/drm: Use same-sized "chunks" for growable rings
Rob Clark [Wed, 9 Nov 2022 23:47:25 +0000 (15:47 -0800)]
freedreno/drm: Use same-sized "chunks" for growable rings

Using the same size that we suballoc from for suballoc'd streaming and
long-lived stateobjs should help improve bo cache usage, by making more
of the backing BOs the same size and interchangable.

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

21 months agoci/broadcom: v3dv-rpi4-vk:arm64 flakes too often
David Heidelberg [Thu, 10 Nov 2022 19:45:36 +0000 (20:45 +0100)]
ci/broadcom: v3dv-rpi4-vk:arm64 flakes too often

See https://gitlab.freedesktop.org/mesa/mesa/-/issues/7403

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

21 months agoutil/glsl2spirv: pass path to glslangValidator into the script
Dylan Baker [Tue, 1 Nov 2022 20:37:06 +0000 (13:37 -0700)]
util/glsl2spirv: pass path to glslangValidator into the script

This allows users to override the location of glslang using normal meson
mechanisms.

Reviewed-by: Luis Felipe Strano Moraes <luis.strano@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19449>

21 months agomeson: prog_glslang should always be for the build machine
Dylan Baker [Tue, 1 Nov 2022 20:35:24 +0000 (13:35 -0700)]
meson: prog_glslang should always be for the build machine

It doesn't produce different code when compiled for the host machine,
and this avoids needing two copies and possibly a host machine emulator
in cross compilation settings

Reviewed-by: Luis Felipe Strano Moraes <luis.strano@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19449>

21 months agoutil/glsl2spirv: cleanup list extension
Dylan Baker [Tue, 1 Nov 2022 20:29:48 +0000 (13:29 -0700)]
util/glsl2spirv: cleanup list extension

- consistently use list.extend instead of list +=, which has gotchas
- condense list extension calls when possible

Reviewed-by: Luis Felipe Strano Moraes <luis.strano@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19449>

21 months agoutil/glsl2spirv: use f-strings
Dylan Baker [Tue, 1 Nov 2022 20:29:21 +0000 (13:29 -0700)]
util/glsl2spirv: use f-strings

Which are both faster and easier to read

Reviewed-by: Luis Felipe Strano Moraes <luis.strano@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19449>

21 months agoutil/glsl2spirv: use if `x in str` instead of `str.find`
Dylan Baker [Tue, 1 Nov 2022 20:28:18 +0000 (13:28 -0700)]
util/glsl2spirv: use if `x in str` instead of `str.find`

The latter is only idiomatically used when a start and/or stop position
is required.

Reviewed-by: Luis Felipe Strano Moraes <luis.strano@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19449>

21 months agoutil/glsl2spirv: simplify subprocess handling
Dylan Baker [Tue, 1 Nov 2022 20:02:41 +0000 (13:02 -0700)]
util/glsl2spirv: simplify subprocess handling

Since we're not doing anything fancy, we can just use `subprocess.run`.
I've also removed the custom error class, we're not going to catch it,
so just printing and exiting is fine.

v2:
  - Print stdout as well as stderr in case of a glslang failure

Reviewed-by: Luis Felipe Strano Moraes <luis.strano@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19449>

21 months agoutil/glsl2spirv: close resources as soon as possible
Dylan Baker [Tue, 1 Nov 2022 20:00:26 +0000 (13:00 -0700)]
util/glsl2spirv: close resources as soon as possible

Reviewed-by: Luis Felipe Strano Moraes <luis.strano@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19449>

21 months agoutil/glsl2spirv: add type annotations
Dylan Baker [Tue, 1 Nov 2022 19:59:06 +0000 (12:59 -0700)]
util/glsl2spirv: add type annotations

Which are all clean

Reviewed-by: Luis Felipe Strano Moraes <luis.strano@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19449>

21 months agoutil/glsl2spirv: add some error handling for unexpected code paths
Dylan Baker [Tue, 1 Nov 2022 19:58:19 +0000 (12:58 -0700)]
util/glsl2spirv: add some error handling for unexpected code paths

We expect that convert_to_static_variable and override_version will find
and replace something, so let's fail loudly if they don't.

Reviewed-by: Luis Felipe Strano Moraes <luis.strano@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19449>

21 months agoutil/glsl2spriv: make --vn required
Dylan Baker [Tue, 1 Nov 2022 19:55:12 +0000 (12:55 -0700)]
util/glsl2spriv: make --vn required

I'm not 100% sure whether it's right to make --vn required, or to avoid
the static conversion, but this seems correct. Mypy (type checking
coming soon) points out that if --vn is None then the
convert_to_static_variable function will fail. Our one use of this sets
--vn, so there is no change there. Making --vn required
ensures that it will never be None, avoiding the problem.

Reviewed-by: Luis Felipe Strano Moraes <luis.strano@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19449>

21 months agoutil/glsl2spirv: fix appending extra flags
Dylan Baker [Tue, 1 Nov 2022 19:49:53 +0000 (12:49 -0700)]
util/glsl2spirv: fix appending extra flags

The variable is called `extra`, but what's written is `extra - flags`,
and `flags` is undefined, so if the variable was ever passed there would
be an uncaught exception.

fixes: 9786d9ef2abb45a4e832cf1347581e3ca3aae9f0

Reviewed-by: Luis Felipe Strano Moraes <luis.strano@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19449>

21 months agoutil/glsl2spirv: let argparse actually enforce the restrictions we've set
Dylan Baker [Tue, 1 Nov 2022 19:47:21 +0000 (12:47 -0700)]
util/glsl2spirv: let argparse actually enforce the restrictions we've set

Reviewed-by: Luis Felipe Strano Moraes <luis.strano@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19449>

21 months agoutil/glsl2spirv: drop inconsistent use of `io.open`
Dylan Baker [Tue, 1 Nov 2022 19:41:44 +0000 (12:41 -0700)]
util/glsl2spirv: drop inconsistent use of `io.open`

In Python 3 (the only python we support) `io.open` is an alias of the
builtin `open` function, so it's not getting us anything, and we're not
using it consistently.

Reviewed-by: Luis Felipe Strano Moraes <luis.strano@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19449>

21 months agoutil/glsl2spirv: fix type error in argument handling
Dylan Baker [Tue, 1 Nov 2022 19:40:21 +0000 (12:40 -0700)]
util/glsl2spirv: fix type error in argument handling

args.Olib is set to `store_true`, which means it will always be `True`
or `False`, this means that the we always, unconditionally, add
`--keep-uncalled` to the command line.

fixes: 9786d9ef2abb45a4e832cf1347581e3ca3aae9f0

Reviewed-by: Luis Felipe Strano Moraes <luis.strano@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19449>

21 months agoci/freedreno: disable antichambers trace
David Heidelberg [Thu, 10 Nov 2022 17:23:46 +0000 (18:23 +0100)]
ci/freedreno: disable antichambers trace

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7668
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19627

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

21 months agoturnip: Don't disable LRZ for color write mask channels beyond the format's
Emma Anholt [Thu, 10 Nov 2022 00:41:29 +0000 (16:41 -0800)]
turnip: Don't disable LRZ for color write mask channels beyond the format's

aztec_ruins under ANGLE was getting LRZ writes disabled because 0xf out of
the 0x3 mask was enabled.  The goal was to see if there are partial writes
being done, though.  This caused a 2-3% performance regression.

Fixes: 85d0205db137 ("tu: Implement extendedDynamicState3ColorWriteMask")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19635>

21 months agoir3: Re-fuse ffmas after nir_lower_imul cleanup breaks them.
Emma Anholt [Mon, 3 Oct 2022 23:49:15 +0000 (16:49 -0700)]
ir3: Re-fuse ffmas after nir_lower_imul cleanup breaks them.

The nir_opt_algebraic() call to clean up nir_lower_imul's split up mul
operations (stuff like "the top 16 bits were 0, no need to mul and add
that part") would trigger the options->fuse_ffma_* early ffma splitting,
so you need to call nir_opt_algebraic_late() again after that (which, in
turn, requires a DCE).

Gets us a lot more ffmas in Aztec Ruins high under zink/angle, but doesn't
seem to change perf.

shader-db highlights:

total instructions in shared programs: 11574843 -> 10999629 (-4.97%)
instructions in affected programs: 3308870 -> 2733656 (-17.38%)

total dwords in shared programs: 24344722 -> 23230122 (-4.58%)
dwords in affected programs: 6569568 -> 5454968 (-16.97%)

total full in shared programs: 762616 -> 762224 (-0.05%)
full in affected programs: 15505 -> 15113 (-2.53%)

total stp in shared programs: 4046 -> 4050 (0.10%)
stp in affected programs: 3372 -> 3376 (0.12%)

total ldp in shared programs: 2166 -> 2170 (0.18%)
ldp in affected programs: 1716 -> 1720 (0.23%)

total (ss) in shared programs: 219541 -> 216261 (-1.49%)
(ss) in affected programs: 23227 -> 19947 (-14.12%)

total (sy) in shared programs: 101633 -> 101927 (0.29%)
(sy) in affected programs: 8611 -> 8905 (3.41%)

total waves in shared programs: 1501942 -> 1501772 (-0.01%)
waves in affected programs: 1880 -> 1710 (-9.04%)

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

21 months agoir3/ra: Make sure we don't pick a preferred reg overflowing the file.
Emma Anholt [Wed, 9 Nov 2022 20:23:53 +0000 (12:23 -0800)]
ir3/ra: Make sure we don't pick a preferred reg overflowing the file.

If we're in handle_collect()'s dst allocation and are part of a merge set
near the end of the file, our check for reg_elem_size(reg) would let us
use the preferred reg when that would immediately lead to
allocate_dst_fixed() creating an interval extending thruogh reg_size(reg)
that overflows the file.

Avoids a regression on gfxbench5/gl_5_high_off/17.shader_test in the next
commit.  No change on shader-db.

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

21 months agointel/compiler: Use std::unique_ptr for tracking the fs_visitors
Caio Oliveira [Tue, 8 Nov 2022 22:14:37 +0000 (14:14 -0800)]
intel/compiler: Use std::unique_ptr for tracking the fs_visitors

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19605>

21 months agodocs: add linkcheck job
Erik Faye-Lund [Mon, 7 Nov 2022 14:24:27 +0000 (15:24 +0100)]
docs: add linkcheck job

This should make it easier to keep links in our docs up-to-date.

But, because links can die behind our backs, we can't really enable this
all over the place, or we'll risk blocking merge-requests due to
unrelated changes.

So let's just make this a periodic job on the main branch instead.

Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19574>

21 months agodocs: do not linkcheck relnotes
Erik Faye-Lund [Mon, 7 Nov 2022 13:46:27 +0000 (14:46 +0100)]
docs: do not linkcheck relnotes

There's a *lot* of relnotes, and we don't really actively maintain them.
Let's drop linkchecking them to speed things up a bit.

This does a whole lot of nothing unless you have Sphinx 4.4 or newer.

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

21 months agodocs: configure linkcheck
Erik Faye-Lund [Mon, 7 Nov 2022 11:03:57 +0000 (12:03 +0100)]
docs: configure linkcheck

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

21 months agodocs/ci: allow overriding sphinx builder
Erik Faye-Lund [Fri, 4 Nov 2022 15:13:20 +0000 (16:13 +0100)]
docs/ci: allow overriding sphinx builder

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

21 months agodocs/panfrost: drop anchor before channel-name
Erik Faye-Lund [Mon, 7 Nov 2022 14:08:46 +0000 (15:08 +0100)]
docs/panfrost: drop anchor before channel-name

The use of a hash symbol in a URI is an anchor, not to indicate an IRC
channel name. This confuses the Sphinx linkchecker.

Dropping the hash here still makes the link work fine, so let's just do
that.

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

21 months agodocs: apply some redirects
Erik Faye-Lund [Mon, 7 Nov 2022 12:30:03 +0000 (13:30 +0100)]
docs: apply some redirects

Here's a few redirects that we should apply, in case the redirects
gets removed in the future.

These are mostly of the 301 (moved permanently) kind, but also a
few where the site probably *should* have used the permanent
error-code.

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

21 months agodocs: update lavasoftware.org link
Erik Faye-Lund [Mon, 7 Nov 2022 13:32:22 +0000 (14:32 +0100)]
docs: update lavasoftware.org link

Seems lavasoftware.org now prefers using the www-version of the link.
Let's update to that, to quiet some link-checking.

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

21 months agodocs/perfetto: update documentation links
Erik Faye-Lund [Mon, 7 Nov 2022 14:05:17 +0000 (15:05 +0100)]
docs/perfetto: update documentation links

These links redirect to something seemingly random. Here's my best
effort to update them to the relevant pages in the current docs.

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

21 months agodocs: update link to GitLab CI docs
Erik Faye-Lund [Mon, 7 Nov 2022 13:53:57 +0000 (14:53 +0100)]
docs: update link to GitLab CI docs

This link is being redirected, but not really where we want to send
people. Let's update it, so they end up in the right place.

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

21 months agodocs: update link to Intel intrinsics-guide
Erik Faye-Lund [Mon, 7 Nov 2022 13:27:54 +0000 (14:27 +0100)]
docs: update link to Intel intrinsics-guide

This link is being redirected, but not really where we want to send
people. Let's update it, so they end up in the right place.

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

21 months agodocs: update links to SPECviewperf 11/12
Erik Faye-Lund [Mon, 7 Nov 2022 13:02:55 +0000 (14:02 +0100)]
docs: update links to SPECviewperf 11/12

These links redirect to a catch-all page, and not really where we want
people to end up. Let's correct these links and point to the benchmark
specific pages.

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

21 months agodocs: update link to the gl spec
Erik Faye-Lund [Mon, 7 Nov 2022 12:49:58 +0000 (13:49 +0100)]
docs: update link to the gl spec

This link is being redirected, but not really where we want to send
people. Let's update it, so they end up in the right place.

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

21 months agodocs: drop manual URL encoding
Erik Faye-Lund [Mon, 7 Nov 2022 11:45:40 +0000 (12:45 +0100)]
docs: drop manual URL encoding

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

21 months agodocs: point to github for defunct link
Erik Faye-Lund [Mon, 7 Nov 2022 12:10:16 +0000 (13:10 +0100)]
docs: point to github for defunct link

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

21 months agodocs: link to web.archive.org for dead links
Erik Faye-Lund [Mon, 29 Jun 2020 08:36:20 +0000 (10:36 +0200)]
docs: link to web.archive.org for dead links

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

21 months agodocs: replace dead link
Erik Faye-Lund [Mon, 29 Jun 2020 08:37:51 +0000 (10:37 +0200)]
docs: replace dead link

While it would be possible to dig this one up through web.archive.org,
there's a much better article written by Fabian Giesen on the subject,
so let's just link that one instead.

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

21 months agodocs: update dead link
Erik Faye-Lund [Mon, 29 Jun 2020 08:36:02 +0000 (10:36 +0200)]
docs: update dead link

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

21 months agodocs: remove dead link to copy of article
Erik Faye-Lund [Mon, 29 Jun 2020 08:21:44 +0000 (10:21 +0200)]
docs: remove dead link to copy of article

There's no point in linking to a copy of this article on a defunct site.
So let's just remove it, the original source works just fine.

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

21 months agodocs: update link to glsl
Erik Faye-Lund [Mon, 7 Nov 2022 12:15:01 +0000 (13:15 +0100)]
docs: update link to glsl

The page that was linked here is defunct, and doesn't have a direct
replacement. But a good alternative is to link to the OpenGL wiki, which
has a lot of useful information on the subject.

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

21 months agodocs/relnotes: drop links to defunct issue tracker
Erik Faye-Lund [Mon, 7 Nov 2022 12:13:22 +0000 (13:13 +0100)]
docs/relnotes: drop links to defunct issue tracker

The Meego issue tracker has been defunct for a long time, and sadly the
content wasn't archived by web.archive.org. Let's just drop the links.

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

21 months agodocs/relnotes: escape non-urls
Erik Faye-Lund [Mon, 7 Nov 2022 11:02:25 +0000 (12:02 +0100)]
docs/relnotes: escape non-urls

Sphinx can be a bit overly eager at interpreting text with colons in it
as URLs. There's a few cases in our older relnotes where this happens, so
let's escape them to avoid strange, broken links in the rendered output.

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

21 months agodocs: fixup broken link syntax
Erik Faye-Lund [Mon, 7 Nov 2022 12:11:13 +0000 (13:11 +0100)]
docs: fixup broken link syntax

Seems I got this slightly wrong when I fixed up the previous syntax
issue. Whoops, let's fix that!

Fixes: 6b3b6333915 ("docs/zink: fix and cleanup rst syntax")
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19574>

21 months agoanv: fixup invalid enum for nir environment
Lionel Landwerlin [Thu, 10 Nov 2022 09:34:50 +0000 (11:34 +0200)]
anv: fixup invalid enum for nir environment

Also switching away from PIPE_

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 8c4c4c3ee1a2 ("anv: Add softtp64 workaround")
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19638>

21 months agopanfrost: Require 64-byte alignment on imports
Alyssa Rosenzweig [Mon, 7 Nov 2022 18:49:51 +0000 (13:49 -0500)]
panfrost: Require 64-byte alignment on imports

While Panfrost allocates linear images with strides that are a multiple of 64
bytes, other dma-buf producers on the system may not satisfy this requirement.
However, at least on v7 and newer, any image with a regular format must have a
stride that is a multiple of 64 bytes.

This fixes a real bug in an application that created a linear R8_UNORM image
with stride 480 bytes, imported it as an EGL_image, and then tried to texture
from it with the GPU. Previously, the driver allowed this situation but it
resulted in an imprecise fault from the GPU. This patch corrects the driver to
reject the import as invalid due to the unaligned stride, ensuring we never
attempt to texture from such a resource.

To implement, we add some new layout queries to centralize knowledge about the
stride alignment requirements, and we sprinkle in asserts to show how the
invariant is upheld throughout the lifecycle of image creation to texturing.

Cc: mesa-stable
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19620>

21 months agopanfrost: Compile indirect dispatch shader on first use
Alyssa Rosenzweig [Wed, 9 Nov 2022 17:10:37 +0000 (12:10 -0500)]
panfrost: Compile indirect dispatch shader on first use

For 2D UI workloads and even most 3D workloads, the indirect dispatch shader
won't actually be needed, but we currently compile it during eglInitialize() on
every v7 application. That hurts app start-up time, especially given that this
shader doesn't hit the disk cache. We can instead defer compiling this shader
until it's actually needed, when glDispatchComputeIndirect() gets called.

The tradeoff is that the first glDispatchComputeIndirect() call will be (much)
slower than successive calls, since we need to build and compile this internal
shader. I'm unconvinced that's a problem in practice.

An app would need to call glDispatchComputeIndirect for the first time in the
middle of a scene.  2D apps never would call that, OpenCL doesn't have that, and
GL compute will have the same costs just moved around.  So it's down to a 3D
GLES3.1 app that indirectly dispatches compute for the first time time in the
middle of a scene. Which, meh? It's not entirely implausible but we have bigger
fish to fry, and this fixes a real problem (about 5% of eglInitialize time spent
building this shader that won't actually get used).

es2_info starts slightly faster with this change.

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

21 months agopvr: conditionally call pvr_finishme() in pvr_csb_copy()
Frank Binns [Thu, 3 Nov 2022 10:36:55 +0000 (10:36 +0000)]
pvr: conditionally call pvr_finishme() in pvr_csb_copy()

Signed-off-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19578>

21 months agopvr: move TODO next to related code
Frank Binns [Tue, 1 Nov 2022 10:51:58 +0000 (10:51 +0000)]
pvr: move TODO next to related code

This also removes the pvr_finishme(), as this is an improvement rather than
something we must do.

Signed-off-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19578>

21 months agopvr: replace unsupported sub-command type pvr_finishme()s with unreachable()s
Frank Binns [Tue, 1 Nov 2022 10:35:12 +0000 (10:35 +0000)]
pvr: replace unsupported sub-command type pvr_finishme()s with unreachable()s

Signed-off-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19578>

21 months agopvr: remove some stale FIXMEs/pvr_finishmes
Frank Binns [Mon, 24 Oct 2022 15:37:15 +0000 (16:37 +0100)]
pvr: remove some stale FIXMEs/pvr_finishmes

* The pvr_finishme() in pvr_CreateImage() was added before vk_image_create() was
  being used and is no longer relevant.

* There's nothing special we need to do for the graphics pipeline flags and
  we don't currently store anything in the pipeline cache, so there's nothing
  to finish here.

* The firmware interface now uses fixed sized structures, so remove related
  FIXME.

Signed-off-by: Frank Binns <frank.binns@imgtec.com>
Reviewed-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19578>

21 months agopvr: Address TODO in PVR_PDS_CONST_MAP_ENTRY_TYPE_DESCRIPTOR_SET.
Karmjit Mahil [Wed, 2 Nov 2022 15:38:08 +0000 (15:38 +0000)]
pvr: Address TODO in PVR_PDS_CONST_MAP_ENTRY_TYPE_DESCRIPTOR_SET.

Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19523>

21 months agopvr: Remove some TODOs.
Karmjit Mahil [Wed, 2 Nov 2022 14:55:42 +0000 (14:55 +0000)]
pvr: Remove some TODOs.

 - All the PDS programs setup in the pipeline are necessary. We
   can attempt optimisations later on.

 - No need to call pvr_pds_program_program_create_and_upload() in
   a loop.

Signed-off-by: Karmjit Mahil <Karmjit.Mahil@imgtec.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19523>

21 months agoradv/ci: enable pre-merge testing for vkcts on navi21
Martin Roukala (né Peres) [Sun, 6 Nov 2022 10:09:24 +0000 (12:09 +0200)]
radv/ci: enable pre-merge testing for vkcts on navi21

It has been a long-time coming, hasn't it? Hopefully more will come
soon!

Signed-off-by: Martin Roukala (né Peres) <martin.roukala@mupuf.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19556>