platform/upstream/mesa.git
14 months agozink: move find_sampler_var from zink to nir core
Illia Polishchuk [Mon, 11 Sep 2023 13:08:31 +0000 (16:08 +0300)]
zink: move find_sampler_var from zink to nir core

Avoid code duplication because it need to be used in following commits

Fixes: 1a8dd84ec61 ("nir: Propagate the type sampler type change to the used variable.")

Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Signed-off-by: Illia Polishchuk <illia.a.polishchuk@globallogic.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25145>

14 months agollvmpipe: make sure to initialize the lp_setup_context slots with the default values
Corentin Noël [Mon, 11 Sep 2023 14:53:03 +0000 (16:53 +0200)]
llvmpipe: make sure to initialize the lp_setup_context slots with the default values

As 0 is an actual valid value, this can lead to issues when we actually want to use them.

This fixes `spec@arb_cull_distance@basic-cull-3` crashes for instance.

Cc: mesa-stable
Signed-off-by: Corentin Noël <corentin.noel@collabora.com>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25152>

14 months agoradv: use shortcut_1d_workgroup_id
Rhys Perry [Fri, 8 Sep 2023 10:36:00 +0000 (11:36 +0100)]
radv: use shortcut_1d_workgroup_id

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24882>

14 months agoradv: optimize mesh workgroup ID using ts_mesh_dispatch_dimensions
Rhys Perry [Wed, 23 Aug 2023 18:47:52 +0000 (19:47 +0100)]
radv: optimize mesh workgroup ID using ts_mesh_dispatch_dimensions

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24882>

14 months agonir/lower_system_values change num_workgroups to uint32_t
Rhys Perry [Fri, 8 Sep 2023 14:52:21 +0000 (15:52 +0100)]
nir/lower_system_values change num_workgroups to uint32_t

Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Timur Kristóf <timur.kristof@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24882>

14 months agozink: ci updates
Mike Blumenkrantz [Tue, 12 Sep 2023 12:53:41 +0000 (08:53 -0400)]
zink: ci updates

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

14 months agoaux/tc: fix address calc for segmented texture subdata
Mike Blumenkrantz [Tue, 12 Sep 2023 12:49:52 +0000 (08:49 -0400)]
aux/tc: fix address calc for segmented texture subdata

this fixes all dimension/array uses for the rp tracking path

Fixes: 51ad269198e ("aux/tc: handle stride mismatch during rp-optimized subdata")

Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25180>

14 months agoaux/tc: fix staging buffer sizing for texture_subdata
Mike Blumenkrantz [Tue, 12 Sep 2023 12:48:48 +0000 (08:48 -0400)]
aux/tc: fix staging buffer sizing for texture_subdata

this is the size of the src data, not the dst data

Fixes: 51ad269198e ("aux/tc: handle stride mismatch during rp-optimized subdata")

Acked-by: Marek Olšák <marek.olsak@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25180>

14 months agov3dv: don't assume that bound descriptors have been written
Iago Toral Quiroga [Tue, 12 Sep 2023 08:09:12 +0000 (10:09 +0200)]
v3dv: don't assume that bound descriptors have been written

The pipeline layout lifetime tests in CTS allocate some descriptors
and bind them to the command buffer without actually ever writing
valid resources to them since they never actually execute the command
buffers, so we want to be careful at bind time and not assume the
resources exist.

Fixes crashes in dEQP-VK.api.pipeline.pipeline_layout.lifetime.*

Fixes: 95f881adbd ('v3dv: add support for sampling simple 2D linear textures')
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25172>

14 months agozink/ci: document more flakes seen on vangogh
Martin Roukala (né Peres) [Fri, 8 Sep 2023 05:30:15 +0000 (08:30 +0300)]
zink/ci: document more flakes seen on vangogh

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

14 months agozink/ci: automatically reboot when hitting a kernel BUG on vangogh
Martin Roukala (né Peres) [Fri, 8 Sep 2023 04:44:45 +0000 (07:44 +0300)]
zink/ci: automatically reboot when hitting a kernel BUG on vangogh

By rebooting immediately after hitting "BUG", we'll re-try immediately
running the job without first needing to hit the 30 minutes timeout.

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

14 months agodocs/features: cl_khr_3d_image_writes needs driver support
Karol Herbst [Tue, 12 Sep 2023 08:22:51 +0000 (10:22 +0200)]
docs/features: cl_khr_3d_image_writes needs driver support

And asahi doesn't support it.

Signed-off-by: Karol Herbst <git@karolherbst.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25174>

14 months agoradv: fix capturing RGP on RDNA3 with more than one Shader Engine
Samuel Pitoiset [Tue, 12 Sep 2023 07:05:48 +0000 (09:05 +0200)]
radv: fix capturing RGP on RDNA3 with more than one Shader Engine

PKT3_RESET_FILTER_CAM_S seems required on GFX11. Otherwise, capturing
with more than on SE can hang.

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

14 months agoradv: fix emitting SQTT userdata when CAM is needed
Samuel Pitoiset [Mon, 11 Sep 2023 18:09:45 +0000 (20:09 +0200)]
radv: fix emitting SQTT userdata when CAM is needed

The third parameter of PKT3 is the predicate bit and this was wrong.
PAL sets the RESET_FILTER_CAM bit when emitting SQTT userdata.

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

14 months agoanv: enable VK_EXT_mesh_shader where supported
Iván Briano [Tue, 5 Sep 2023 03:35:17 +0000 (20:35 -0700)]
anv: enable VK_EXT_mesh_shader where supported

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

14 months agointel/fs: handle URB setup for fast linked mesh pipelines
Iván Briano [Tue, 5 Sep 2023 05:31:17 +0000 (22:31 -0700)]
intel/fs: handle URB setup for fast linked mesh pipelines

Up until now, the mesh pipeline assumed it would be always linked to the
fragment shader, and so the calculated MUE map would always be
available.
That is not the case for fast linked pipeline libraries, so the URB
setup needs to account for this. We do this by replicating what's done
for non-mesh pipelines, defining the URB based on the FS inputs, and
always assuming they will be laid out in order of varying number, except
that we also account for per-primitive attributes.

Fixes all GPL using tests under dEQP-VK.mesh_shader.ext.smoke.*

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

14 months agointel/fs: read viewport and layer from the FS payload
Iván Briano [Tue, 5 Sep 2023 05:30:04 +0000 (22:30 -0700)]
intel/fs: read viewport and layer from the FS payload

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

14 months agoanv: track what kind of pipeline a fragment shader may be used with
Iván Briano [Tue, 5 Sep 2023 04:40:46 +0000 (21:40 -0700)]
anv: track what kind of pipeline a fragment shader may be used with

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

14 months agoanv: use a simpler MUE layout for fast linked libraries
Iván Briano [Wed, 23 Aug 2023 18:09:01 +0000 (11:09 -0700)]
anv: use a simpler MUE layout for fast linked libraries

The compaction introduced in a2521233631 ("intel/compiler/mesh: compactify MUE layout")
is not suitable for the case where graphics pipeline libraries are fast
linked, as the fragment shader won't receive the mue_map to know where
to locate its inputs.
For that case, keep doing what we did before and lay things down in the
order varyings are defined, which is also how it works for the non-mesh
case.

Fixes dEQP-VK.fragment_shading_rate.*fast_linked_library*.ms

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

14 months agoblorp: fix hangs with mesh enabled
Iván Briano [Thu, 24 Aug 2023 17:20:31 +0000 (10:20 -0700)]
blorp: fix hangs with mesh enabled

Move mesh URB allocations together with the other stages.

This fixes a hang that started happening with mesh enabled after
419531c5d98 ("intel/blorp: add a new flag to communicate PSS sync need")

Bspec 45352 says:
  L3 Space allocation can only be changed when the GPU pipeline is
  completely flushed.

It's likely that the PIPE_CONTROL added in that commit was breaking that
assumption and the URB allocation happening afterwards at the end of the
pipeline emission would then hang. And before that, we were probably
just getting lucky.

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

14 months agoci: disable lima LAVA lab for maintance
Erico Nunes [Fri, 8 Sep 2023 08:27:23 +0000 (10:27 +0200)]
ci: disable lima LAVA lab for maintance

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25112>

14 months agollvmpipe: enable driver functions.
Dave Airlie [Tue, 15 Aug 2023 05:56:24 +0000 (15:56 +1000)]
llvmpipe: enable driver functions.

This enables driver functions for the CL paths.

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

14 months agollvmpipe/cs: add support for function calls.
Dave Airlie [Tue, 15 Aug 2023 05:55:21 +0000 (15:55 +1000)]
llvmpipe/cs: add support for function calls.

This adds (disabled) support for function calls to the compute shader.

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

14 months agogallivm: add support for function calling
Dave Airlie [Tue, 15 Aug 2023 05:54:19 +0000 (15:54 +1000)]
gallivm: add support for function calling

This adds support for calling functions in compute shaders.

Functions are passed two implicit arguments
- the current exec mask
- a context containing all the info needed for intrinsics to work
  when not in the toplevel.

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

14 months agorusticl: use cleanup funcs
Dave Airlie [Tue, 25 Oct 2022 02:57:29 +0000 (12:57 +1000)]
rusticl: use cleanup funcs

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

14 months agonir: add a function usage tracker
Dave Airlie [Mon, 26 Oct 2020 21:28:04 +0000 (07:28 +1000)]
nir: add a function usage tracker

allows dropping old fns

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

14 months agonir: add driver_functions option to avoid inlining.
Dave Airlie [Mon, 26 Oct 2020 05:17:30 +0000 (15:17 +1000)]
nir: add driver_functions option to avoid inlining.

This adds a driver control to instruct NIR to not inline
all functions.

It adds a very simple inlining heuristic that works for
what I've played with, but will probably need to grow some
better ideas.

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

14 months agospirv/nir: parse function control and store in nir.
Dave Airlie [Mon, 26 Oct 2020 04:35:55 +0000 (14:35 +1000)]
spirv/nir: parse function control and store in nir.

This just lets the nir access the inline/dont inline attributes

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

14 months agogallivm: rework translator to allow per-impl work.
Dave Airlie [Tue, 27 Oct 2020 00:00:14 +0000 (10:00 +1000)]
gallivm: rework translator to allow per-impl work.

This allows a function implementation to be targetted, this will
only be used by the compute shader paths, so keep a compat path
for all the others.

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

14 months agogallivm/nir: split prepasses out to make per-function work easier.
Dave Airlie [Wed, 6 Sep 2023 06:33:45 +0000 (16:33 +1000)]
gallivm/nir: split prepasses out to make per-function work easier.

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

14 months agonir: don't inline linked functions
Dave Airlie [Mon, 4 Sep 2023 01:26:47 +0000 (11:26 +1000)]
nir: don't inline linked functions

Don't inline linked functions here, let nir_inline_functions do the job
when we get to it.

Instead just copy over the implementation and any other pieces need.

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

14 months agonir: add nir function clone
Dave Airlie [Tue, 15 Aug 2023 06:01:51 +0000 (16:01 +1000)]
nir: add nir function clone

this just refactors the existing functionality so we can use it elsewhere.

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

14 months agonir/functions: move linker pass to new helper
Dave Airlie [Wed, 6 Sep 2023 07:54:41 +0000 (17:54 +1000)]
nir/functions: move linker pass to new helper

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

14 months agonir/functions: put link state into a struct
Dave Airlie [Wed, 6 Sep 2023 07:51:21 +0000 (17:51 +1000)]
nir/functions: put link state into a struct

this will make it easier to convert to new pass.

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

14 months agonir/functions: use helper to get function for a name.
Dave Airlie [Mon, 4 Sep 2023 04:17:05 +0000 (14:17 +1000)]
nir/functions: use helper to get function for a name.

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

14 months agonir: move the libclc lowering over to functions file.
Dave Airlie [Mon, 4 Sep 2023 01:41:03 +0000 (11:41 +1000)]
nir: move the libclc lowering over to functions file.

This lowering is pretty generic, and I want to enhance it for
times when we don't want to inline.

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

14 months agonir: use nir_function_instructions_pass in the inliner.
Dave Airlie [Wed, 6 Sep 2023 03:39:51 +0000 (13:39 +1000)]
nir: use nir_function_instructions_pass in the inliner.

This moves the current inliner to use the pass.

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

14 months agonir: rename nir_inline_functions.c to nir_functions.c
Dave Airlie [Mon, 4 Sep 2023 01:32:55 +0000 (11:32 +1000)]
nir: rename nir_inline_functions.c to nir_functions.c

I'm going to add code for non-inline purposes but related to
functions.

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

14 months agonir: Add nir_function_instructions_pass helper
Alyssa Rosenzweig [Sat, 15 Jul 2023 21:42:32 +0000 (17:42 -0400)]
nir: Add nir_function_instructions_pass helper

Extract the logic. Convenience for working with real functions.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24687>

14 months agonir: use a _clone so users calling their variable clone don't get a warning
Dave Airlie [Wed, 6 Sep 2023 06:23:36 +0000 (16:23 +1000)]
nir: use a _clone so users calling their variable clone don't get a warning

I've got code using clone name and it gets confused.

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

14 months agoci/freedreno: Add another excessive-constlen UBO skip.
Emma Anholt [Thu, 7 Sep 2023 22:38:18 +0000 (15:38 -0700)]
ci/freedreno: Add another excessive-constlen UBO skip.

Causes flakes in other tests.

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

14 months agoUprev Piglit to f7db20b03de6896d013826c0a731bc4417c1a5a0
Collabora's Gfx CI Team [Sun, 10 Sep 2023 00:07:29 +0000 (00:07 +0000)]
Uprev Piglit to f7db20b03de6896d013826c0a731bc4417c1a5a0

https://gitlab.freedesktop.org/mesa/piglit/-/compare/ed58dfbd12be34fa3dab97a7a2987b890e0637f1...f7db20b03de6896d013826c0a731bc4417c1a5a0

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

14 months agoutil: Add convenience macros for linear allocator
Caio Oliveira [Tue, 5 Sep 2023 05:16:00 +0000 (22:16 -0700)]
util: Add convenience macros for linear allocator

Similar to the ones for ralloc.

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

14 months agovulkan/properties: Handle unsized arrays properly
Konstantin Seurer [Tue, 5 Sep 2023 13:28:29 +0000 (15:28 +0200)]
vulkan/properties: Handle unsized arrays properly

Sadly we cannot autogenerate handling for them, so fall back to hand
written handling instead.

Fixes: eaee792 ("vulkan: Add a generated vk_properties struct")
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25055>

14 months agotu: Fix heap size
Rob Clark [Fri, 8 Sep 2023 21:24:48 +0000 (14:24 -0700)]
tu: Fix heap size

It make no sense to advertise a bigger heap than what we can fit into
the GPU virtual address space.

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

14 months agofreedreno/a6xx: ARB_shader_viewport_layer_array
Rob Clark [Fri, 1 Sep 2023 20:58:02 +0000 (13:58 -0700)]
freedreno/a6xx: ARB_shader_viewport_layer_array

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

14 months agofreedreno/a6xx: Handle PIPE_BIND_BLENDABLE
Rob Clark [Fri, 1 Sep 2023 20:39:44 +0000 (13:39 -0700)]
freedreno/a6xx: Handle PIPE_BIND_BLENDABLE

We weren't advertising EXT_float_blend due to missing handling for the
BLENDABLE usage bit.

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

14 months agofreedreno/a6xx: Use pipe_blit_info::sample0_only
Rob Clark [Fri, 1 Sep 2023 18:42:30 +0000 (11:42 -0700)]
freedreno/a6xx: Use pipe_blit_info::sample0_only

Instead of trying to pass this back-door, and failing in a few cases we
go thru generic paths.

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

14 months agofreedreno/a6xx: EXT_depth_bounds_test
Rob Clark [Thu, 31 Aug 2023 02:51:33 +0000 (19:51 -0700)]
freedreno/a6xx: EXT_depth_bounds_test

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

14 months agofreedreno/a6xx: EXT_shader_image_load_formatted
Rob Clark [Thu, 31 Aug 2023 02:38:26 +0000 (19:38 -0700)]
freedreno/a6xx: EXT_shader_image_load_formatted

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

14 months agofreedreno/a6xx: EXT_demote_to_helper_invocation
Rob Clark [Thu, 31 Aug 2023 02:36:08 +0000 (19:36 -0700)]
freedreno/a6xx: EXT_demote_to_helper_invocation

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

14 months agofreedreno/a6xx: ARB_texture_filter_minmax
Rob Clark [Thu, 31 Aug 2023 02:19:48 +0000 (19:19 -0700)]
freedreno/a6xx: ARB_texture_filter_minmax

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

14 months agofreedreno/a6xx: ARB_sample_locations
Rob Clark [Thu, 31 Aug 2023 01:22:31 +0000 (18:22 -0700)]
freedreno/a6xx: ARB_sample_locations

Note, gl_SamplePosition (rgetpos), and therefore interpolateAtSample(),
doesn't work with sample location_enable=true.  For vulkan, "If the
current pipeline uses custom sample locations the value of any variable
decorated with the SamplePosition built-in decoration is undefined."
But ARB_sample_positions doesn't mention this.  Possibly the vk text
should be backported to the gl extension.  (If the app is specifying the
sample locations, it shouldn't need gl_SamplePosition.)

The upshot of this is 2 out of 3 tests that piglit arb_sample_locations
test tests fail, even though sample locations itself is working.
Possibly the test should be updated.  Or we could use driconf to hide
ARB_gpu_shader5 and ARB_sample_shading from this test.

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

14 months agofreedreno/a6xx: ARB_post_depth_coverage
Rob Clark [Thu, 31 Aug 2023 00:57:11 +0000 (17:57 -0700)]
freedreno/a6xx: ARB_post_depth_coverage

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

14 months agofreedreno: Implement ATI_meminfo
Rob Clark [Wed, 30 Aug 2023 01:47:30 +0000 (18:47 -0700)]
freedreno: Implement ATI_meminfo

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

14 months agofreedreno/a6xx: Re-write the function-of-doom
Rob Clark [Sun, 3 Sep 2023 16:18:42 +0000 (09:18 -0700)]
freedreno/a6xx: Re-write the function-of-doom

Re-write the program state building to align more closely with turnip,
for easier comparision.

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

14 months agofreedreno/a6xx: Re-work fd6_emit_shader
Rob Clark [Sat, 2 Sep 2023 16:14:33 +0000 (09:14 -0700)]
freedreno/a6xx: Re-work fd6_emit_shader

Shuffle around a bit of the state emit, so that it more closely matches
tu_emit_xs().

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

14 months agofreedreno/a6xx: Drop unused screen args
Rob Clark [Sat, 2 Sep 2023 15:04:10 +0000 (08:04 -0700)]
freedreno/a6xx: Drop unused screen args

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

14 months agoir3+tu: Simplify ir3_find_sysval_regid callers
Rob Clark [Sat, 2 Sep 2023 14:47:36 +0000 (07:47 -0700)]
ir3+tu: Simplify ir3_find_sysval_regid callers

The test for NULL shader stage is pretty common so just move it into
ir3_find_sysval_regid().

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

14 months agor300: reduce number of iterations for vertex shader loops
Pavel Ondračka [Sun, 22 Jan 2023 15:45:00 +0000 (16:45 +0100)]
r300: reduce number of iterations for vertex shader loops

Using the default value leads to occasional hangs on RV516 for unknown
reasons. Set it to 128 insted of 255.

dEQP and piglit are still happy and I don't expect any real app to hit
this, but lets see. As a side effect this boosts fps in the apps that
have non-unrollable vertex shaders (as the shaders now effectivelly run
almost two times faster) and ~5% dEQP runtime decrease.

Reviewed-by: Filip Gawin <filip.gawin@collabora.com>
Signed-off-by: Pavel Ondračka <pavel.ondracka@gmail.com>
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/7934
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20873>

14 months agowinsys/radeon: fix a race between bo import and destroy
Chia-I Wu [Thu, 7 Sep 2023 17:28:31 +0000 (10:28 -0700)]
winsys/radeon: fix a race between bo import and destroy

This is similar to commit 85e74944c69 ("winsys/amdgpu: fix a race
between import and destroy") but for winsys/radeon.  In short, we need
to check the reference count again after bo_handles_mutex is held.

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

14 months agoradv/ci: Document new flake
Konstantin Seurer [Sun, 10 Sep 2023 13:06:38 +0000 (15:06 +0200)]
radv/ci: Document new flake

Reviewed-by: Martin Roukala <martin.roukala@mupuf.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25140>

14 months agoanv: remove misleading comment about batch_len
Paulo Zanoni [Fri, 20 Jan 2023 19:42:45 +0000 (11:42 -0800)]
anv: remove misleading comment about batch_len

We don't fill batch_len later when chaining batches. But that doesn't
seem to be a problem, I checked i915.ko and nothing Gen8+ seems to use
batch_len. The new xe.ko exec ioctl doesn't even ask for batch_len.

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

14 months agoanv/xe: return failure in case waiting for the vm_bind syncobj fails
Paulo Zanoni [Wed, 9 Aug 2023 00:14:49 +0000 (17:14 -0700)]
anv/xe: return failure in case waiting for the vm_bind syncobj fails

Don't hide failures, we have xe.ko bugs related to that, such as:
    https://gitlab.freedesktop.org/drm/xe/kernel/-/issues/496

The bind ioctl may fail if the application does something wrong, but
the wait really should never fail.

v2: Don't print an error message (Lionel).

Reviewed-by: José Roberto de Souza <jose.souza@intel.com> (v1)
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24681>

14 months agoanv/xe: make vm_binds async
Paulo Zanoni [Sat, 5 Aug 2023 00:00:04 +0000 (17:00 -0700)]
anv/xe: make vm_binds async

Our sparse implementation will require us to issue partial unbinds,
but partial unbinds are not supported in synchronous vm_bind ioctls,
requiring us to to have our VM be marked with the ASYNC flag. This is
not properly documented and is subject to change in the next
iterations of the API.

Error handling with async binds is also not documented anywhere and is
being actively discussed in the mailing lists, so whatever we decide
to implement here is likely to end up changing in a few weeks. Also, I
haven't seen these errors happening in the real world, so for now
they're a very corner case. So for now just foward errors to
user-space and hope things work.

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

14 months agoanv: add a new vm_bind vfunc
Paulo Zanoni [Fri, 4 Aug 2023 22:48:45 +0000 (15:48 -0700)]
anv: add a new vm_bind vfunc

For Sparse Resources we need to be able to specify the address, size
and offsets and we also want to be able to issue multiple binds at the
same time. Extend xe_vm_bind_op() to handle those cases and add
the new vfunc.

v2:
 - use STACK_ARRAY() (Lionel)
 - no more need to work around xe.ko bug that was fixed (José)

Reviewed-by: José Roberto de Souza <jose.souza@intel.com> (v1)
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24681>

14 months agoanv: rename the vm_bind vfuncs
Paulo Zanoni [Fri, 4 Aug 2023 23:35:11 +0000 (16:35 -0700)]
anv: rename the vm_bind vfuncs

The only driver that has a vm_bind ioctl is xe.ko, and its vm_bind
ioctl is not called GEM vm_bind, it's just DRM_IOCTL_XE_VM_BIND
(without GEM anywhere). Back when i915.ko was going to have a vm_bind
ioctl it had GEM on its name, so I guess that's how "gem" appeared in
the naming here, but now nothing does, so let's get rid of it.

Also, these vfuncs we have are specifically made to bind and unbind
whole BOs, so rename them to vm_bind_bo() and vm_unbind_bo() in order
to try to clarify what they mean. The goal is to add a more generic
vm_bind() later that can do anything.

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

14 months agovulkan wsi: add support for PresentOptionAsyncMayTear
Xaver Hugl [Mon, 17 Oct 2022 16:40:13 +0000 (18:40 +0200)]
vulkan wsi: add support for PresentOptionAsyncMayTear

This commit adds tearing support for Xwayland

Signed-off-by: Xaver Hugl <xaver.hugl@gmail.com>
Reviewed-by: Emil Velikov <emil.l.velikov@gmail.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19125>

14 months agozink: set optimal_keys for turnip jobs
Mike Blumenkrantz [Mon, 4 Sep 2023 15:47:00 +0000 (11:47 -0400)]
zink: set optimal_keys for turnip jobs

nobody cares about stipple on turnip for real world scenarios, so
testing it instead of the thing that people will actually want is pointless

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

14 months agozink: imply ZINK_DEBUG=quiet if ZINK_DEBUG=optimal_keys is set on turnip
Mike Blumenkrantz [Wed, 6 Sep 2023 12:00:32 +0000 (08:00 -0400)]
zink: imply ZINK_DEBUG=quiet if ZINK_DEBUG=optimal_keys is set on turnip

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

14 months agozink: add ZINK_DEBUG=quiet
Mike Blumenkrantz [Wed, 6 Sep 2023 11:45:43 +0000 (07:45 -0400)]
zink: add ZINK_DEBUG=quiet

mainly for use with ZINK_DEBUG=optimal_keys on turnip since spamming
a warning like that constantly is pointless

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

14 months agoci/zink: Add new zink-lvp flakes
Daniel Stone [Mon, 11 Sep 2023 11:12:43 +0000 (12:12 +0100)]
ci/zink: Add new zink-lvp flakes

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

14 months agoci/intel: Add new skqp flake
Daniel Stone [Mon, 11 Sep 2023 11:12:31 +0000 (12:12 +0100)]
ci/intel: Add new skqp flake

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

14 months agoci/d3d12: Add new flake
Daniel Stone [Mon, 11 Sep 2023 11:12:21 +0000 (12:12 +0100)]
ci/d3d12: Add new flake

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

14 months agoci/radeonsi: Add new flake
Daniel Stone [Mon, 11 Sep 2023 11:12:06 +0000 (12:12 +0100)]
ci/radeonsi: Add new flake

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

14 months agoci: Declare stages before jobs
Daniel Stone [Fri, 8 Sep 2023 11:17:37 +0000 (12:17 +0100)]
ci: Declare stages before jobs

It looks like GitLab 16.x requires us to declare the stages before we
declare any jobs, else it falls down resolving 'needs' with 'job is not
in any earlier stage'.

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

14 months agomeson: support installation tags
Alba Mendez [Sun, 27 Aug 2023 14:35:17 +0000 (16:35 +0200)]
meson: support installation tags

the only thing missing is to tag custom install targets, namely:
 - ICDs (vulkan, glvnd, OpenCL, VA-API, VDPAU)
 - Vulkan layers
 - custom install script for megadrivers
 - drirc file

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

14 months agov3dv: expand sampling from linear image hack to support multi-planar images
Iago Toral Quiroga [Thu, 7 Sep 2023 09:12:13 +0000 (11:12 +0200)]
v3dv: expand sampling from linear image hack to support multi-planar images

Tested-by: Roman Stratiienko <r.stratiienko@gmail.com>
Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25048>

14 months agov3dv: add support for sampling simple 2D linear textures
Iago Toral Quiroga [Thu, 31 Aug 2023 11:14:19 +0000 (13:14 +0200)]
v3dv: add support for sampling simple 2D linear textures

V3D can't sample linear images (other than 1D), however, some applications
will require this to work. Particularly, our swapchain images may need to be
linear (for display), so sampling from them won't work.

This change detects the case where we are binding a descriptor which attempts
to sample from a simple 2D linear texture, transparently creates a tiled
copy of the image and rewrites the  descriptor to refer to the tiled image
instead. This will be slow but will allow some applications that require this
to work (i.e. some aspects of Android's user interface).

As of this patch, this only supports sampling linear images with a single
miplevel and layer from single-plane images in non-arrayed descriptors. We
could handle other cases too with a bit more work though.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9712
Tested-by: Roman Stratiienko <r.stratiienko@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25048>

14 months agoRevert "ci: disable Collabora's LAVA lab for maintance"
Sergi Blanch Torne [Mon, 11 Sep 2023 07:51:36 +0000 (09:51 +0200)]
Revert "ci: disable Collabora's LAVA lab for maintance"

This reverts commit https://gitlab.freedesktop.org/mesa/mesa/-/commit/c558c4955053eeb9476acefa148d414ff71cb47d

Signed-off-by: Sergi Blanch Torne <sergi.blanch.torne@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25143>

14 months agov3dv: Rely on the internal tiled flag instead of the common vk structure
Roman Stratiienko [Sun, 10 Sep 2023 10:19:54 +0000 (13:19 +0300)]
v3dv: Rely on the internal tiled flag instead of the common vk structure

Common vk.tiling can have 3 states:

VK_IMAGE_TILING_OPTIMAL = 0,
VK_IMAGE_TILING_LINEAR = 1,
VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,

The latter is checked by [1]

In this case, actual tiling can be either linear or tiled;
therefore, logic in v3dv_meta_copy will not work correctly.

[1]: https://gitlab.freedesktop.org/mesa/mesa/-/blob/39fca243bb914cea853e9d3502f1f38e6bf96ad4/src/vulkan/runtime/vk_image.c#L158

Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25139>

14 months agotu: Split program draw state into per-shader states
Connor Abbott [Wed, 17 May 2023 14:07:45 +0000 (16:07 +0200)]
tu: Split program draw state into per-shader states

This completely rewrites how uploading variants and emitting the program
state works, which will make fast linking significantly faster and lays
some of the groundwork for EXT_shader_objects. Variants are now
compiled and uploaded as part of creating a tu_shader, and a
a per-stage draw state is also created that contains all registers that
are only set based on one stage. The program state is split into
per-stage states, which come from the shaders, and VPC state which is
emitted at linking time. Pipelines now contain shaders, and importing
shaders from libraries when fast-linking just involves taking a
reference on the shader. While the command buffer code still uses the
old pipeline structures, the plan is to switch more and more things to
directly use the shaders or derived state from the shaders that gets set
by the pipeline, so that we can eliminate pipeline usage from
tu_cmd_buffer.cc to enable ESO.

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

14 months agoir3: Add helper to determine when variant exceeds safe constlen
Connor Abbott [Wed, 17 May 2023 13:02:09 +0000 (15:02 +0200)]
ir3: Add helper to determine when variant exceeds safe constlen

This will help us not compile extra variants as often in the unlinked
case, which will become the only case on turnip.

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

14 months agofreedreno, ir3, tu: Constify various uses of ir3_shader_variant
Connor Abbott [Wed, 17 May 2023 13:00:46 +0000 (15:00 +0200)]
freedreno, ir3, tu: Constify various uses of ir3_shader_variant

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

14 months agotu: Split up tu6_emit_vpc()
Connor Abbott [Thu, 11 May 2023 11:33:16 +0000 (13:33 +0200)]
tu: Split up tu6_emit_vpc()

This started out as a place to set linkage-related registers, but it
gradually became a grab-bag of different things. In the future each
stage will have its own draw state, so we split out the parts that only
depend on a single stage into separate functions. Each piece of state we
can split out is another piece of state that won't have to be emitted
while fast-linking.

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

14 months agoir3: Add ir3_find_input_loc() helper
Connor Abbott [Thu, 11 May 2023 11:28:55 +0000 (13:28 +0200)]
ir3: Add ir3_find_input_loc() helper

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

14 months agotu: Pull entangled shader state into program config
Connor Abbott [Tue, 9 May 2023 18:22:55 +0000 (20:22 +0200)]
tu: Pull entangled shader state into program config

There are a few cross-stage states that we absolutely have to wait to
emit until we know more than one stage. Pull these into the program
config draw state, so that we can split up the program draw state into a
per-stage draw state. For VK_EXT_shader_object, these will have to
emitted at draw time.

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

14 months agotu, freedreno/a6xx: Don't use VS for PrimID passthru state
Connor Abbott [Tue, 9 May 2023 17:59:54 +0000 (19:59 +0200)]
tu, freedreno/a6xx: Don't use VS for PrimID passthru state

Emit the registers solely based on whether FS reads PrimID, and assume
the HW will do the right thing and disable PrimID passthru when GS is
enabled. This untangles these registers so we can set them from the FS
draw state in the future.

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

14 months agotu: Rename PrimID-related registers
Connor Abbott [Tue, 9 May 2023 17:37:21 +0000 (19:37 +0200)]
tu: Rename PrimID-related registers

It turns out that the hardware automatically selects whether PrimID
passthrough needs to happen based on whether GS is enabled, which means
that it's safe to always set these registers based whether PrimID is
read by the FS and the hardware will ignore them when GS is enabled. Use
the real names for these registers to make it less confusing when we
start to do that.

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

14 months agotu: Merge depth/stencil draw states
Connor Abbott [Tue, 9 May 2023 15:29:57 +0000 (17:29 +0200)]
tu: Merge depth/stencil draw states

This removes more draw states that are commonly set together. We still
have a separate draw state for RB_DEPTH_CNTL, because it depends on
other things like the attachment state and depth clamp and it would be
more difficult for layers like zink to use a combined depth/stencil
state.

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

14 months agotu: Stop reusing base Vulkan dynamic state enums
Connor Abbott [Tue, 9 May 2023 14:04:08 +0000 (16:04 +0200)]
tu: Stop reusing base Vulkan dynamic state enums

We're about to remove the 1:1 correspondance between base Vulkan 1.0
dynamic states and draw states.

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

14 months agotu: Merge PC_RASTER_CNTL into RAST draw state
Connor Abbott [Tue, 9 May 2023 13:49:34 +0000 (15:49 +0200)]
tu: Merge PC_RASTER_CNTL into RAST draw state

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

14 months agotu: Merge SAMPLE_LOCATIONS and SAMPLE_LOCATIONS_ENABLE draw states
Connor Abbott [Tue, 9 May 2023 13:31:35 +0000 (15:31 +0200)]
tu: Merge SAMPLE_LOCATIONS and SAMPLE_LOCATIONS_ENABLE draw states

There's no need to separate them except that it was easier before, no
one will enable the second without also enabling the first. Now that
mesa will merge the states for us we can go ahead and merge them.

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

14 months agotu: Remove MSAA draw state
Connor Abbott [Tue, 9 May 2023 13:16:17 +0000 (15:16 +0200)]
tu: Remove MSAA draw state

We only need to emit MSAA state once per subpass at most, unless the
pipeline switches primitive types or for framebuffer-less subpasses
(which always use sysmem anyway). Therefore it seems like draw state
skipping isn't going to bring much benefit here, and having it as a draw
state in the first place is a remnant of how this used to be part of the
pipeline state.

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

14 months agoanv: tell blorp to do mesh stuff only if it's enabled
Iván Briano [Sat, 9 Sep 2023 01:46:29 +0000 (18:46 -0700)]
anv: tell blorp to do mesh stuff only if it's enabled

Otherwise blorp operations will set dirty bits for mesh that we don't
expect at pipeline state emission time.

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

14 months agoanv: ensure pipelines have all state
Iván Briano [Sat, 9 Sep 2023 00:04:29 +0000 (17:04 -0700)]
anv: ensure pipelines have all state

While we don't need to emit all of the unused mesh/task states when mesh
is disabled, if we don't have them we fail some assertions in the
difference checks due to the corresponding state being empty.
This may happen when going from a mesh pipeline to a non-mesh one, or
one that uses task shaders to one that doesn't.

It may be possible to avoid having to do this, but I'd rather start from
a working state and optimize it later.

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

14 months agoanv: fix missing 3DSTATE_SBE_CLIP emission
Iván Briano [Sat, 9 Sep 2023 00:11:29 +0000 (17:11 -0700)]
anv: fix missing 3DSTATE_SBE_CLIP emission

Fixes: 50f6903bd9 ("anv: add new low level emission & dirty state tracking")
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25109>

14 months agoanv: fix missing 3DSTATE_SBE_MESH emission
Lionel Landwerlin [Fri, 8 Sep 2023 06:46:29 +0000 (09:46 +0300)]
anv: fix missing 3DSTATE_SBE_MESH emission

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 50f6903bd9 ("anv: add new low level emission & dirty state tracking")
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25109>

14 months agoanv: ensure partially packed instructions are emitted in the pipeline
Lionel Landwerlin [Fri, 8 Sep 2023 06:38:32 +0000 (09:38 +0300)]
anv: ensure partially packed instructions are emitted in the pipeline

Any partially packed instructions should always be pre-packed by
genX_pipeline.c

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

14 months agoanv: ensure mesh pipeline have all pre-rasterization stages disabled
Lionel Landwerlin [Fri, 8 Sep 2023 06:37:12 +0000 (09:37 +0300)]
anv: ensure mesh pipeline have all pre-rasterization stages disabled

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Fixes: 44656f98d5 ("anv: split pipeline programming into instructions")
Reviewed-by: Ivan Briano <ivan.briano@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25109>