platform/upstream/mesa.git
15 months agoasahi: Add flat/linear shaded varyings mask to the VS shader key
Asahi Lina [Wed, 28 Jun 2023 10:12:51 +0000 (19:12 +0900)]
asahi: Add flat/linear shaded varyings mask to the VS shader key

We need this information in order to arrange varyings properly, which
means we need shader variants. Add this to the shader key, taking the
value from the FS input info.

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

15 months agoasahi: Fix type confusion for fragment shader keys
Asahi Lina [Wed, 28 Jun 2023 10:10:41 +0000 (19:10 +0900)]
asahi: Fix type confusion for fragment shader keys

We can't attempt to access the fs union member if this is not a FS.
That worked so far since there wasn't a VS shader key at all, but we're
about to introduce one.

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

15 months agoasahi: Gather flat/linear shaded input info from uncompiled FS
Asahi Lina [Wed, 28 Jun 2023 10:07:20 +0000 (19:07 +0900)]
asahi: Gather flat/linear shaded input info from uncompiled FS

We need to propagate shading model metadata from the FS to the VS in
order to correctly lay out the uniforms in the right order. This means
we need VS variants depending on this data.

We could use the existing shader info structure, but that applies to
compiled shaders which would introduce a dependency from the VS compile
to the FS compile. This information does not change with FS variants, so
we can introduce an agx_uncompiled_shader_info structure and gather it
early at precompilation time.

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

15 months agoasahi: Identify the separate varying count fields
Asahi Lina [Wed, 28 Jun 2023 08:09:19 +0000 (17:09 +0900)]
asahi: Identify the separate varying count fields

Flat/goraud/linear and 32/16 need to be specified separately. This
change identifies the new fields but should be a functional no-op.

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

15 months agoagx: Assert that barriers are not used in the preamble
Alyssa Rosenzweig [Thu, 8 Jun 2023 13:35:30 +0000 (09:35 -0400)]
agx: Assert that barriers are not used in the preamble

It is nonsensical and confuses the hardware.

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

15 months agoagx: Use nir_opt_shrink_vectors
Alyssa Rosenzweig [Thu, 8 Jun 2023 16:05:21 +0000 (12:05 -0400)]
agx: Use nir_opt_shrink_vectors

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

15 months agoagx: Use nir_opt_shrink_stores
Alyssa Rosenzweig [Sun, 28 May 2023 02:23:11 +0000 (22:23 -0400)]
agx: Use nir_opt_shrink_stores

This especially helps with image stores, where we otherwise insert a bunch of
pointless moves to collect a vector even when we know the format only has a
single channel.

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

15 months agoasahi: Remove ; in perf_debug_ctx
Alyssa Rosenzweig [Wed, 7 Jun 2023 00:08:09 +0000 (20:08 -0400)]
asahi: Remove ; in perf_debug_ctx

Otherwise `if(x) perf_debug_ctx(); else if (y) ...` doesn't work.

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

15 months agoasahi: Identify PBE::sRGB flag
Alyssa Rosenzweig [Thu, 15 Jun 2023 18:19:36 +0000 (14:19 -0400)]
asahi: Identify PBE::sRGB flag

Needed to write out sRGB images correctly.

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

15 months agoasahi: Rename 'Render Target' to 'PBE'
Alyssa Rosenzweig [Fri, 19 May 2023 17:05:39 +0000 (13:05 -0400)]
asahi: Rename 'Render Target' to 'PBE'

It's used for all PBE operations, including regular image writes, so use the
more general name. Compare the powervr driver.

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

15 months agoasahi: Strip ? in GenXML
Alyssa Rosenzweig [Tue, 6 Jun 2023 22:56:05 +0000 (18:56 -0400)]
asahi: Strip ? in GenXML

Sometimes it's nice to have boolean flags with ? in the name, allow this by
stripping ? when generating the sanitized C name.

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

15 months agoasahi: match_soa: Treat offsets as signed
Asahi Lina [Wed, 28 Jun 2023 11:46:27 +0000 (20:46 +0900)]
asahi: match_soa: Treat offsets as signed

An offset may be negative, indexing backwards from the array base.
When we right shift an offset by the format shift, we need to use a
signed shift to ensure that the resulting offset is still negative.

Fixes Nautilus faults/pink crashes.

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

15 months agoagx: Smarten discard_agx -> sample_mask lowering
Alyssa Rosenzweig [Fri, 16 Jun 2023 12:31:40 +0000 (08:31 -0400)]
agx: Smarten discard_agx -> sample_mask lowering

In 97a1bbeaf26 ("agx: Fix discards"), we made our discard lowering very simple,
since we had just discovered the underlying instruction behaviour and needed a
hotfix for misrendering in the wild. Now that we understand the behaviour, we
can do better. There are two potential performance issues with the lowering in
that commit:

1. It generates extra sample_mask instructions. For a shader that has a single
   discard_if at root level, it would generate two instructions

      sample_mask foo, 0
      sample_mask ~0, ~0

   rather than a single

      sample_mask ~0, ~foo

2. It runs depth/stencil testing/updates at the end of the shader, even when it
   could be run immediately after the discard. This might cause pipeline stalls.

The solution is to insert the "trigger testing" sample_mask instruction as soon
after the "discard" instruction as possible, fusing them if they would be next
to each other. There are two cases:

1. The last discard is executed unconditionally. In this case, we can test
   immediately after, unconditionally, and fuse together.

2. The last discard is executed conditionally. In this case, we test in the
   first unconditional block after the discard. Example shader:

   ...
   loop {
      if .. {
         loop {
            discard_if <-- discard here
            ...
         }
      ..
      }
   ...
   }
   <---- we test here
   ...
   store_output

Together this covers all the usual patterns for single-sampled discard. We could
still do better with multisampling, but whatever.

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

15 months agoagx: Add algebraic opt to help with discard lowering
Alyssa Rosenzweig [Fri, 16 Jun 2023 12:55:58 +0000 (08:55 -0400)]
agx: Add algebraic opt to help with discard lowering

When lowering discards, it will be convenient to generate the pattern:

   (cond ? 255 : 0) ^ 255

Add rules to optimize that to

   (cond ? 0 : 255)

This is not part of the main algebraic optimizer since this lowering happens
late.

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

15 months agozink: don't destroy swapchain on initial CreateSwapchainKHR fail
Mike Blumenkrantz [Mon, 10 Apr 2023 16:40:26 +0000 (12:40 -0400)]
zink: don't destroy swapchain on initial CreateSwapchainKHR fail

this used to be correct at some point but now it no longer is

cc: mesa-stable

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

15 months agogallivm: make block_size use discrete values.
Dave Airlie [Wed, 5 Jul 2023 00:22:06 +0000 (10:22 +1000)]
gallivm: make block_size use discrete values.

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

15 months agogallivm: convert grid_size to discrete values.
Dave Airlie [Wed, 5 Jul 2023 00:19:08 +0000 (10:19 +1000)]
gallivm: convert grid_size to discrete values.

No use in storing this in a vector

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

15 months agogallivm: convert block_id to discrete values.
Dave Airlie [Wed, 5 Jul 2023 00:16:59 +0000 (10:16 +1000)]
gallivm: convert block_id to discrete values.

There is no reason to stick these in a vector

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

15 months agogallivm: store thread id in separate values.
Dave Airlie [Wed, 5 Jul 2023 00:12:47 +0000 (10:12 +1000)]
gallivm: store thread id in separate values.

There is no real advantage to putting this into a vector to take
it back out again.

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

15 months agoanv/video: fix to support HEVC 10bit on some of 9th gens.
Hyunjun Ko [Tue, 4 Jul 2023 06:42:41 +0000 (15:42 +0900)]
anv/video: fix to support HEVC 10bit on some of 9th gens.

From Broxton and Kabylake, it started supporting HEVC 10-bit decoding.

Fixes: 649e12c8973 ("anv_video: reject decoding of unsupported profiles
and formats")

Signed-off-by: Hyunjun Ko <zzoon@igalia.com>
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23985>

15 months agoradv: Remove unused pipeline param from radv_generate_pipeline_key
Joshua Ashton [Mon, 3 Jul 2023 21:32:15 +0000 (22:32 +0100)]
radv: Remove unused pipeline param from radv_generate_pipeline_key

Signed-off-by: Joshua Ashton <joshua@froggi.es>
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23912>

15 months agoradv: Advertise VK_EXT_pipeline_robustness
Joshua Ashton [Wed, 28 Jun 2023 17:35:06 +0000 (18:35 +0100)]
radv: Advertise VK_EXT_pipeline_robustness

Signed-off-by: Joshua Ashton <joshua@froggi.es>
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23912>

15 months agoradv: Implement VK_EXT_pipeline_robustness
Joshua Ashton [Wed, 28 Jun 2023 17:34:31 +0000 (18:34 +0100)]
radv: Implement VK_EXT_pipeline_robustness

Funnel the data from the pNext into the new pipeline key members for buffer robustness

Signed-off-by: Joshua Ashton <joshua@froggi.es>
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23912>

15 months agoradv: Rename radv_required_subgroup_info to radv_shader_stage_key
Joshua Ashton [Mon, 3 Jul 2023 19:23:13 +0000 (20:23 +0100)]
radv: Rename radv_required_subgroup_info to radv_shader_stage_key

Additionally, prefix the members that are subgroup related with subgroup_

We will use this structure to store pipeline robustness information.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23912>

15 months agoradv: Split and move buffer robustness to shader key
Joshua Ashton [Wed, 28 Jun 2023 17:31:51 +0000 (18:31 +0100)]
radv: Split and move buffer robustness to shader key

Will be used by pipeline robustness.

There is also loads of space in the first dword.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23912>

15 months agoradv: Rename radv_nir_compiler_options::robust_buffer_access to robust_buffer_access_llvm
Joshua Ashton [Wed, 28 Jun 2023 17:28:57 +0000 (18:28 +0100)]
radv: Rename radv_nir_compiler_options::robust_buffer_access to robust_buffer_access_llvm

This is only used by LLVM, make that clearer.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23912>

15 months agoradv: Refactor buffer robustness to an enum
Joshua Ashton [Wed, 28 Jun 2023 16:34:58 +0000 (17:34 +0100)]
radv: Refactor buffer robustness to an enum

Will be taken advantage of with pipeline robustness.

Signed-off-by: Joshua Ashton <joshua@froggi.es>
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23912>

15 months agoanv: Drop unnecessary intel_canonical_address() calls around bo->offset
José Roberto de Souza [Mon, 3 Jul 2023 19:33:57 +0000 (12:33 -0700)]
anv: Drop unnecessary intel_canonical_address() calls around bo->offset

bo->offset is set as canonical address no need to do it over again.

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

15 months agoanv: Drop unnecessary intel_canonical_address() call around anv_address_physical()
José Roberto de Souza [Mon, 3 Jul 2023 16:48:05 +0000 (09:48 -0700)]
anv: Drop unnecessary intel_canonical_address() call around anv_address_physical()

anv_address_physical() already returns a canonical address.

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

15 months agoanv: Fix some mismatches of canonical and regular addresses around anv_bo_vma_alloc_o...
José Roberto de Souza [Mon, 3 Jul 2023 16:38:10 +0000 (09:38 -0700)]
anv: Fix some mismatches of canonical and regular addresses around anv_bo_vma_alloc_or_close()

anv_vma_alloc() returns a canonical address, but explicit_address is a
regular address. This mismatch can potentially cause issues.

So here making bo->offset as always canonical address by converting it
in the explicit case and fixing the only caller that was caling
anv_bo_vma_alloc_or_close() with a canonical address.

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

15 months agoRevert "ci/fdno: Pause a660 testing"
Daniel Stone [Tue, 4 Jul 2023 11:17:34 +0000 (12:17 +0100)]
Revert "ci/fdno: Pause a660 testing"

The fastboot/USB/network issue has been resolved.

This reverts commit e207458ad509c6dc670bfdef9e1a3685aa4ee5f4.

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

15 months agoci: restore lima farm
Erico Nunes [Fri, 30 Jun 2023 15:30:23 +0000 (17:30 +0200)]
ci: restore lima farm

The ISP network issues are now resolved.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Acked-by: Vasily Khoruzhick <anarsoul@gmail.com>
Acked-by: David Heidelberg <david.heidelberg@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23951>

15 months agov3dv/device: update conformanceVersion
Alejandro Piñeiro [Mon, 3 Jul 2023 23:05:28 +0000 (01:05 +0200)]
v3dv/device: update conformanceVersion

The Vulkan CTS started generating the list of valid versions the
driver can report as conformant against based on the active branches,
and the branch we were reporting up to now is no longer valid.

Fixes dEQP-VK.api.driver_properties.conformance_version

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23980>

15 months agobroadcom: Switch to use nir_foreach_function_impl
Yonggang Luo [Wed, 28 Jun 2023 10:47:10 +0000 (18:47 +0800)]
broadcom: Switch to use nir_foreach_function_impl

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23988>

15 months agov3d: Switch to use nir_foreach_function_impl
Yonggang Luo [Wed, 28 Jun 2023 10:40:46 +0000 (18:40 +0800)]
v3d: Switch to use nir_foreach_function_impl

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23988>

15 months agovc4: Convert to use nir_foreach_function_impl when possible
Yonggang Luo [Thu, 29 Jun 2023 18:54:48 +0000 (02:54 +0800)]
vc4: Convert to use nir_foreach_function_impl when possible

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23988>

15 months agointel/compiler: simplify reading of gl_NumWorkGroups in task/mesh
Marcin Ślusarz [Wed, 5 Apr 2023 10:16:33 +0000 (12:16 +0200)]
intel/compiler: simplify reading of gl_NumWorkGroups in task/mesh

Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22334>

15 months agoanv,intel/compiler: enable shortcut in wg id to wg idx lowering on >= gfx12.5
Marcin Ślusarz [Fri, 31 Mar 2023 10:31:19 +0000 (12:31 +0200)]
anv,intel/compiler: enable shortcut in wg id to wg idx lowering on >= gfx12.5

This speeds up vk_meshlet_cadscene in "VK mesh ext" renderer by 1.4%

Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22334>

15 months agonir: add cheap shortcut for wg id to wg idx lowering
Marcin Ślusarz [Fri, 31 Mar 2023 10:19:43 +0000 (12:19 +0200)]
nir: add cheap shortcut for wg id to wg idx lowering

... for platforms where integer division is expensive

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22334>

15 months agointel/compiler: pass num_workgroups from task to mesh shaders
Marcin Ślusarz [Fri, 31 Mar 2023 09:58:24 +0000 (11:58 +0200)]
intel/compiler: pass num_workgroups from task to mesh shaders

Reviewed-by: Caio Oliveira <caio.oliveira@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22334>

15 months agonir: lower num_workgroups to constants
Marcin Ślusarz [Thu, 6 Apr 2023 13:09:12 +0000 (15:09 +0200)]
nir: lower num_workgroups to constants

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22334>

15 months agonir: use constant components of num_workgroups in wg id to wg idx lowering
Marcin Ślusarz [Fri, 31 Mar 2023 09:56:11 +0000 (11:56 +0200)]
nir: use constant components of num_workgroups in wg id to wg idx lowering

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22334>

15 months agonir: use wg id to wg idx shortcut if two dims of num_workgroups are 1
Marcin Ślusarz [Fri, 31 Mar 2023 09:54:21 +0000 (11:54 +0200)]
nir: use wg id to wg idx shortcut if two dims of num_workgroups are 1

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22334>

15 months agonir: extract try_lower_id_to_index_1d
Marcin Ślusarz [Fri, 31 Mar 2023 09:51:16 +0000 (11:51 +0200)]
nir: extract try_lower_id_to_index_1d

Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22334>

15 months agobroadcom: use nir info to keep track of implicit sample shading
Iago Toral Quiroga [Mon, 3 Jul 2023 12:21:14 +0000 (14:21 +0200)]
broadcom: use nir info to keep track of implicit sample shading

It seems NIR is tracking this for us now so we can stop doing this
in the backend.

Also, new CTS tests seem to add the requirement where in the presence of
some builtin's like gl_SampleID in a shader, even if unused, sample shading
is expected to be enabled, which is something we can't track in the backend
since the variable may have been dropped by then.

Fixes 2 failures in:
dEQP-VK.draw.renderpass.implicit_sample_shading.sample*

Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23984>

15 months agopvr: Use alignas instead of ALIGN_ATTR and remove ALIGN_ATTR
Yonggang Luo [Tue, 4 Jul 2023 04:35:21 +0000 (12:35 +0800)]
pvr: Use alignas instead of ALIGN_ATTR and remove ALIGN_ATTR

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Frank Binns <frank.binns@imgtec.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23982>

15 months agoetnaviv: support OES_texture_half_float_linear
Christian Gmeiner [Mon, 3 Jul 2023 13:36:24 +0000 (15:36 +0200)]
etnaviv: support OES_texture_half_float_linear

Passes all related piglit and deqp tests.

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23972>

15 months agodocs: mark OES_texture_half_float done on etnaviv
Christian Gmeiner [Mon, 3 Jul 2023 13:22:11 +0000 (15:22 +0200)]
docs: mark OES_texture_half_float done on etnaviv

Supported by GPUs with HALF_FLOAT feature bit.

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23972>

16 months agost/mesa: Set gl_config.floatMode based on color_format
Janne Grunau [Wed, 28 Jun 2023 19:09:50 +0000 (21:09 +0200)]
st/mesa: Set gl_config.floatMode based on color_format

Sets the float color component type in st_visual_to_context_mode()
ensuring float color values are not clamped.
Fixes dEQP-EGL.functional.wide_color.window_fp16_default_colorspace on
asahi, iris and most likely every other driver having it marked as fail
or flake.

Closes: mesa/mesa#9276

Signed-off-by: Janne Grunau <j@jannau.net>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Acked-by: David Heidelberg <david.heidelberg@collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23914>

16 months agoanv_video: reject decoding of unsupported profiles and formats
Lynne [Fri, 30 Jun 2023 17:34:26 +0000 (19:34 +0200)]
anv_video: reject decoding of unsupported profiles and formats

Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23954>

16 months agolavapipe: expose subgroups in mesh/task shaders.
Dave Airlie [Mon, 3 Jul 2023 20:07:22 +0000 (06:07 +1000)]
lavapipe: expose subgroups in mesh/task shaders.

These are just compute shaders under the hood.

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

16 months agoanv: Fix compute maximum number of threads value
José Roberto de Souza [Mon, 3 Jul 2023 15:15:00 +0000 (08:15 -0700)]
anv: Fix compute maximum number of threads value

There is no mention in spec about subtract one of the number of
threads, also Iris and blorp code don't subtract.

Alchemist PRMs: Volume 2a: Command Reference: Instructions: CFE_STATE: Maximum Number of Threads:
Normally set to the maximum number of threads: (# EUs) * (# threads/EU)

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

16 months agonir/print: Reformat the preds/succs block information
Caio Oliveira [Tue, 13 Jun 2023 07:10:27 +0000 (00:10 -0700)]
nir/print: Reformat the preds/succs block information

- Always print preds in same line as block name;
- Use a single line for empty blocks;
- Align preds/succs with the instructions.

```
if %29 {
    block b4:    // preds: b3
    32     %30 = load_const (0x00000000 = 0.000000)
    32x4   %31 = @vulkan_resource_index (%30 (0x0)) (desc_set=0, binding=0, desc_type=SSBO)
    32x4   %32 = @load_vulkan_descriptor (%31) (desc_type=SSBO)
    32x4   %33 = deref_cast (Storage *)%32 (ssbo Storage)  (ptr_stride=0, align_mul=4, align_offset=0)
    32x4   %34 = deref_struct &%33->fail (ssbo uint)  // &((Storage *)%32)->fail
    32     %36 = @deref_atomic (%34, %35 (0x1)) (access=1, atomic_op=iadd)
                 // succs: b6
} else {
    block b5:  // preds: b3, succs: b6
}
```

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23564>

16 months agonir/print: Print div/con annotation first
Caio Oliveira [Thu, 15 Jun 2023 20:37:35 +0000 (13:37 -0700)]
nir/print: Print div/con annotation first

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23564>

16 months agonir/print: Use 4-space indentation
Caio Oliveira [Fri, 9 Jun 2023 21:34:48 +0000 (14:34 -0700)]
nir/print: Use 4-space indentation

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23564>

16 months agonir/print: Use `//` for comments
Caio Oliveira [Fri, 9 Jun 2023 21:43:38 +0000 (14:43 -0700)]
nir/print: Use `//` for comments

Makes it easier to copy snippets of shaders into code or
test comments without worrying about conflict with `/* */`.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23564>

16 months agonir/print: Don't use comment syntax for deref_cast properties
Caio Oliveira [Sat, 10 Jun 2023 00:05:59 +0000 (17:05 -0700)]
nir/print: Don't use comment syntax for deref_cast properties

Follow the same syntax as the intrinsic indices, since they
are conceptually similar.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23564>

16 months agonir/print: Rename print_tabs() to print_indentation() and use it more
Caio Oliveira [Fri, 9 Jun 2023 21:25:04 +0000 (14:25 -0700)]
nir/print: Rename print_tabs() to print_indentation() and use it more

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23564>

16 months agonir/print: Align instructions around `=`
Caio Oliveira [Fri, 9 Jun 2023 21:05:58 +0000 (14:05 -0700)]
nir/print: Align instructions around `=`

- For SSA destination, padding is applied before `%`.
- For Reg destination, pad to the SSA size (to align div/con),
  then remaining padding is applied before `r`.
- For instructions without destination, padding is applied so
  they start right after the ` = ` of the cases above.

If the block doesn't have any destinations, there's no padding
is applied to the instructions without destinations in that
block.

For now registers with array access will be unaligned.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23564>

16 months agonir/print: Use BITSIZExELEMENTS for SSA sizes
Caio Oliveira [Fri, 9 Jun 2023 19:12:13 +0000 (12:12 -0700)]
nir/print: Use BITSIZExELEMENTS for SSA sizes

Omits the `x1` part if its one element.

```
32x3   %3 = @load_deref (%0) (access=0)
32     %4 = mov %3.x
32     %5 = deref_var &gl_LocalInvocationID (system uvec3)
32x3   %8 = @load_deref (%5) (access=0)
32     %9 = mov %8.x
```

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23564>

16 months agonir/print: Use `bN` instead of `block_N` for identifying basic blocks
Caio Oliveira [Fri, 9 Jun 2023 18:53:50 +0000 (11:53 -0700)]
nir/print: Use `bN` instead of `block_N` for identifying basic blocks

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23564>

16 months agonir/print: Use symbols % for SSA and @ for intrinsic
Caio Oliveira [Fri, 9 Jun 2023 18:45:12 +0000 (11:45 -0700)]
nir/print: Use symbols % for SSA and @ for intrinsic

The variable uniquifying now uses # instead of @.

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Acked-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23564>

16 months agonir: Add nir_foreach_function_safe and use it
Yonggang Luo [Wed, 28 Jun 2023 17:05:45 +0000 (01:05 +0800)]
nir: Add nir_foreach_function_safe and use it

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23902>

16 months agoradv: Use nir_remove_non_entrypoints in radv_shader.c
Yonggang Luo [Wed, 28 Jun 2023 17:08:21 +0000 (01:08 +0800)]
radv: Use nir_remove_non_entrypoints in radv_shader.c

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23902>

16 months agoglsl: Use nir_remove_non_entrypoints to simplify the code
Yonggang Luo [Wed, 28 Jun 2023 17:06:53 +0000 (01:06 +0800)]
glsl: Use nir_remove_non_entrypoints to simplify the code

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23902>

16 months agonir: Update the comment to call nir_remove_non_entrypoints directly
Yonggang Luo [Wed, 28 Jun 2023 17:04:54 +0000 (01:04 +0800)]
nir: Update the comment to call nir_remove_non_entrypoints directly

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23902>

16 months agodxil: Use nir_remove_non_entrypoints
Yonggang Luo [Wed, 28 Jun 2023 17:03:34 +0000 (01:03 +0800)]
dxil: Use nir_remove_non_entrypoints

Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23902>

16 months agoamd: Move ac_hw_stage to its own file
Konstantin Seurer [Wed, 28 Jun 2023 15:30:43 +0000 (17:30 +0200)]
amd: Move ac_hw_stage to its own file

Otherwise ACO has to include ac_shader_util.h which also includes NIR.

Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23906>

16 months agonir/builder_opcodes: Do not generate empty intrinsic indices
Konstantin Seurer [Tue, 27 Jun 2023 20:17:28 +0000 (22:17 +0200)]
nir/builder_opcodes: Do not generate empty intrinsic indices

Gets rid of all the

struct nir_*_indices {
   int _; /* exists to avoid empty initializers */
};

declarations. 14293 loc -> 12900 loc

Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Friedrich Vock <friedrich.vock@gmx.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23906>

16 months agonir/opt_dead_cf: Handle if statements ending in a jump correctly
Konstantin Seurer [Sat, 20 May 2023 19:57:57 +0000 (21:57 +0200)]
nir/opt_dead_cf: Handle if statements ending in a jump correctly

If a then/else block ends in a jump, the phi nodes do not necessarily
have to reference the always taken branch because they are dead code.
Avoid crashing in this case by only rewriting phis, if the block does
not end in a jump.

cc: mesa-stable

Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23150>

16 months agotu: Use common dirty tracking for PC_PRIMITIVE_CNTL_0
Connor Abbott [Fri, 19 May 2023 13:09:36 +0000 (15:09 +0200)]
tu: Use common dirty tracking for PC_PRIMITIVE_CNTL_0

This improves the vkoverhead base draw call throughput by around 4%
which fixes a regression from the old code while making things simpler.

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

16 months agotu: Rewrite to use common Vulkan dynamic state
Connor Abbott [Mon, 3 Apr 2023 17:42:53 +0000 (19:42 +0200)]
tu: Rewrite to use common Vulkan dynamic state

This drops a significant amount of code for tracking partial state that
is now handled by the common state tracking infrastructure.

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

16 months agotu: Split pipeline struct into different types
Connor Abbott [Tue, 28 Mar 2023 09:56:54 +0000 (11:56 +0200)]
tu: Split pipeline struct into different types

The common state code expects you to use a different struct for state in
graphics pipelines and in pipeline libraries. This means we need to
copy the approach radv uses in order to be compatible. This also allows
us to shrink the structs a bit by moving compute-only things to the
compute pipeline and library-only things to the library pipeline.

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

16 months agofreedreno/a6xx: Fix name of A6XX_PC_PRIMITIVE_CNTL_0::TESS_UPPER_LEFT_DOMAIN_ORIGIN
Connor Abbott [Mon, 12 Jun 2023 14:46:02 +0000 (16:46 +0200)]
freedreno/a6xx: Fix name of A6XX_PC_PRIMITIVE_CNTL_0::TESS_UPPER_LEFT_DOMAIN_ORIGIN

Document what it actually does.

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

16 months agotu: Don't use A6XX_PC_PRIMITIVE_CNTL_0::TESS_UPPER_LEFT_DOMAIN_ORIGIN
Connor Abbott [Mon, 12 Jun 2023 14:22:04 +0000 (16:22 +0200)]
tu: Don't use A6XX_PC_PRIMITIVE_CNTL_0::TESS_UPPER_LEFT_DOMAIN_ORIGIN

This field also affects triangle strip and triangle fan ordering, so we
would get the incorrect (D3D) order with tessellation and geometry
shaders both enabled. Instead flip clockwise/counterclockwise when
the domain origin is upper-left, as radv does.

Because the register is only emitted when tessellation is active which
forces sysmem, it shouldn't regress performance to emit it directly
instead of using a draw state. We're already very tight on draw states.

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

16 months agovk/graphics_state: Don't track each vertex input field
Connor Abbott [Fri, 19 May 2023 17:48:55 +0000 (19:48 +0200)]
vk/graphics_state: Don't track each vertex input field

It's unlikely that anyone will call vkCmdSetVertexInputEXT() twice with
the exact same arguments, so this wasn't really doing anything, and it
hurt performance in the common case as shown via "vkoverhead -test 21"
on turnip.

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

16 months agovulkan: Fix renderpass flags with driver-specific renderpass
Connor Abbott [Tue, 4 Apr 2023 17:49:28 +0000 (19:49 +0200)]
vulkan: Fix renderpass flags with driver-specific renderpass

We need to use the driver's renderpass to get the flags if the driver
provides it.

Fixes: f3876db1ee5 ("vulkan: Plumb rendering flags through vk_graphics_pipeline_state")
Reviewed-by: Faith Ekstrand <faith.ekstrand@gmail.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22301>

16 months agovk/graphics_state: Track attachment count as state
Connor Abbott [Tue, 4 Apr 2023 16:02:26 +0000 (18:02 +0200)]
vk/graphics_state: Track attachment count as state

Even if this isn't dynamic state per-se because it always comes from the
pipeline, it's useful to be able to track it for the various dynamic
states that it affects, which may be either precompiled or not on
turnip.

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

16 months agoradv: Fix radv_pipeline_is_blend_enabled
Connor Abbott [Mon, 3 Jul 2023 09:21:20 +0000 (11:21 +0200)]
radv: Fix radv_pipeline_is_blend_enabled

This was relying on cb being NULL instead of just gracefully handling
it, and it will stop being NULL once we start tracking attachment count
as state. Moreover is was broken in the case where only the blend enable
is dynamic.

Reviewed-by: Tatsuyuki Ishi <ishitatsuyuki@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22301>

16 months agovk/graphics_state: Add helpers for pre-baking state
Connor Abbott [Mon, 3 Apr 2023 17:10:30 +0000 (19:10 +0200)]
vk/graphics_state: Add helpers for pre-baking state

Previously, drivers have either not supported some dynamic state (like
vertex input or sample locations) at all or it's been always dynamic. In
order to be able to set dynamic state sometimes and other times leave it
up to driver-specific state packets, we need a few helpers.

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

16 months agovk/graphics_state: Fix some assertions when copying state
Connor Abbott [Mon, 3 Apr 2023 16:45:05 +0000 (18:45 +0200)]
vk/graphics_state: Fix some assertions when copying state

On turnip we support dynamic vertex input, but static vertex input is
precompiled and so we will copy from a source without VI to a
destination with VI and it's valid in this case to do nothing. On the
other hand, it should never be valid if VI state is set but the pointer
isn't there, which the code previously silently skipped over. There's a
similar issue with sample locations.

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

16 months agovk/graphics_state: Add VI_BINDINGS_VALID state
Connor Abbott [Mon, 3 Apr 2023 16:30:18 +0000 (18:30 +0200)]
vk/graphics_state: Add VI_BINDINGS_VALID state

This is a mirror of vi::bindings_valid, but we can track it and set it
properly even when vertex input state is precompiled, because it is also
needed on turnip for knowing the size of the vertex buffer and vertex
stride state packets even when vertex input state is precompiled.
Previously drivers that could pre-bake vertex input state were expected
to handle this themselves, but this would've been complicated for turnip
because we can handle both pre-baked and dynamic vertex input state. Now
we have the one field which is correctly set in all circumstances and we
never have to setup space for vertex input state in the pipeline.

Reviewed-by: Faith Ekstrand <faith.ekstrand@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22301>

16 months agovk/graphics_state: Add feedback_loop_input_only
Connor Abbott [Wed, 29 Mar 2023 14:32:12 +0000 (16:32 +0200)]
vk/graphics_state: Add feedback_loop_input_only

On turnip, there are two cases for feedback loops:

- For feedback loops that involve input attachments, everything works as
  normal in GMEM mode but have to do a workaround in sysmem.
- For feedback loops that may involve any texture, GMEM mode is
  impossible and we have to disable it.

Currently we track this through a special flag on the pipeline, but this
won't be practical in the future. Add a flag to the common renderpass
state struct to patch this info through when using our own renderpass.

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

16 months agovk/graphics_state: Remove vk_subpass_info
Connor Abbott [Wed, 29 Mar 2023 08:28:25 +0000 (10:28 +0200)]
vk/graphics_state: Remove vk_subpass_info

It only has a subset of the renderpass state, whereas with turnip we
need to use pretty much all of it at one point or another. Just allow
the driver to pass in the entire vk_render_pass_state if it's using its
own renderpass implementation.

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

16 months agoutil/bitset: Add some extra functions
Connor Abbott [Mon, 3 Apr 2023 16:26:57 +0000 (18:26 +0200)]
util/bitset: Add some extra functions

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Faith Ekstrand <faith.ekstrand@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22301>

16 months agocompiler/clc: Switch to use nir_foreach_function_impl in function nir_lower_libclc
Yonggang Luo [Wed, 28 Jun 2023 10:49:43 +0000 (18:49 +0800)]
compiler/clc: Switch to use nir_foreach_function_impl in function nir_lower_libclc

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

16 months agov3d/ci: add new flake
Juan A. Suarez Romero [Mon, 3 Jul 2023 15:55:43 +0000 (17:55 +0200)]
v3d/ci: add new flake

Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23975>

16 months agod3d12: Video Decode - Refactor and style fixes
Sil Vilerino [Mon, 3 Jul 2023 16:07:26 +0000 (12:07 -0400)]
d3d12: Video Decode - Refactor and style fixes

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

16 months agod3d12: Video Process - Implement get_processor_fence and async queing
Sil Vilerino [Fri, 30 Jun 2023 19:37:19 +0000 (15:37 -0400)]
d3d12: Video Process - Implement get_processor_fence and async queing

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

16 months agod3d12: Video Encode - GPU wait on input surface fence
Sil Vilerino [Fri, 30 Jun 2023 18:36:35 +0000 (14:36 -0400)]
d3d12: Video Encode - GPU wait on input surface fence

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

16 months agod3d12: Video Decode - Sync 3D context copy with decode work for texture array case
Sil Vilerino [Mon, 3 Jul 2023 01:07:43 +0000 (21:07 -0400)]
d3d12: Video Decode - Sync 3D context copy with decode work for texture array case

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

16 months agod3d12: Apply style format to d3d12_video_dec.cpp
Sil Vilerino [Sat, 1 Jul 2023 16:26:04 +0000 (12:26 -0400)]
d3d12: Apply style format to d3d12_video_dec.cpp

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

16 months agod3d12: Video Decode - Implement get_decoder_fence and async queing
Sil Vilerino [Fri, 30 Jun 2023 19:44:36 +0000 (15:44 -0400)]
d3d12: Video Decode - Implement get_decoder_fence and async queing

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

16 months agofrontend/va: Add video processing async fence support
Sil Vilerino [Fri, 30 Jun 2023 19:26:01 +0000 (15:26 -0400)]
frontend/va: Add video processing async fence support

Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23969>

16 months agofrontend/va: Pass surf->fence in PIPE_VIDEO_ENTRYPOINT_ENCODE contexts for driver...
Sil Vilerino [Fri, 30 Jun 2023 19:45:29 +0000 (15:45 -0400)]
frontend/va: Pass surf->fence in PIPE_VIDEO_ENTRYPOINT_ENCODE contexts for driver to wait on input surface pending work

Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23969>

16 months agozink/ci: Add ext_transform_feedback@api-errors to fail list.
Tatsuyuki Ishi [Mon, 3 Jul 2023 16:26:09 +0000 (01:26 +0900)]
zink/ci: Add ext_transform_feedback@api-errors to fail list.

These leaks pipelines due to a test bug.

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

16 months agoradv: Enable weak reference cache for device->mem_cache.
Tatsuyuki Ishi [Tue, 27 Jun 2023 12:59:58 +0000 (21:59 +0900)]
radv: Enable weak reference cache for device->mem_cache.

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

16 months agoradv: reference pipeline cache object in radv_pipeline
Daniel Schürmann [Mon, 26 Jun 2023 10:16:35 +0000 (12:16 +0200)]
radv: reference pipeline cache object in radv_pipeline

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

16 months agointel: Use nir_builder_at
Konstantin Seurer [Tue, 27 Jun 2023 11:03:40 +0000 (13:03 +0200)]
intel: Use nir_builder_at

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

16 months agopanfrost: Use nir_builder_at
Konstantin Seurer [Tue, 27 Jun 2023 11:03:24 +0000 (13:03 +0200)]
panfrost: Use nir_builder_at

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