Caio Oliveira [Fri, 1 Sep 2023 07:41:25 +0000 (00:41 -0700)]
compiler/types: Store builtin types directly as data
Remove constructors from glsl_type so it can be used as a
POD ("plain old data") struct, allowing the builtins to be
initialized directly in memory.
For other types, we now allocate them from glsl_type_cache's mem_ctx,
instead of using the global allocator.
As a side-effect of how the new helpers work, we can completely
create the mock key types for struct/interface lookup without
allocating any memory.
Note there's no `make_sampler_type` since all the sampler types
are created through direct initialization.
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25006>
Caio Oliveira [Fri, 1 Sep 2023 07:36:29 +0000 (00:36 -0700)]
compiler/types: Move static asserts about glsl_type to a central place
Take it out of the way to reduce noise when reworking (and eventually
removing) the constructor code.
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25006>
Caio Oliveira [Fri, 1 Sep 2023 06:59:03 +0000 (23:59 -0700)]
compiler/types: Simplify clearing the glsl_type_cache
Since now all the data referenced by it is allocated with the cache's
mem_ctx, it is sufficient to just free it, and then reset the cache
state to be ready for a next initialization if it happens.
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25006>
Caio Oliveira [Thu, 31 Aug 2023 18:59:38 +0000 (11:59 -0700)]
compiler/types: Don't store a mem_ctx per type
These are used only by types created at runtime. Since those will follow
the lifetime of the glsl_type_cache, we can use its mem_ctx for all the types.
Without a mem_ctx, there's nothing to be done in the destructor, so remove it.
Note some keys are calculated by building a mock type, so we need to create
a tmp_ctx in some cases. We'll get rid of them in a later commit.
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25006>
Caio Oliveira [Thu, 31 Aug 2023 06:57:54 +0000 (23:57 -0700)]
compiler/types: Use type cache mem_ctx for hash tables
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25006>
Caio Oliveira [Thu, 31 Aug 2023 06:54:04 +0000 (23:54 -0700)]
compiler/types: Add a mem_ctx for the glsl_type_cache
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25006>
Caio Oliveira [Thu, 31 Aug 2023 06:34:40 +0000 (23:34 -0700)]
compiler/types: Move local cache details to implementation file
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25006>
Caio Oliveira [Fri, 1 Sep 2023 05:28:29 +0000 (22:28 -0700)]
compiler/types: Use designated initializer syntax to specify builtins
For now we use a temporary glsl_type_params struct, we will be able to
use the glsl_type directly once we make it a POD ("plain old data")
struct by getting rid of its constructors and destructors.
Note that since the name is statically allocated, there's no need to
strdup() it, deallocate it and also no need to have a mem_ctx.
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25006>
Caio Oliveira [Fri, 1 Sep 2023 05:22:52 +0000 (22:22 -0700)]
compiler/types: Add extra level of macro to builtin_macros
This will make easier to transition from the macro calling a constructor
to the macro using designated initializers for a struct.
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25006>
Caio Oliveira [Mon, 11 Sep 2023 21:34:21 +0000 (14:34 -0700)]
glsl: Don't create struct type builtins
Unlike for simpler types, struct types have a runtime cache, that's used to
ensure same type can be compared to same pointer. The existing code was bypassing
it, potentially breaking that invariant. One potential issue would be when
decoding/encoding types, the resulting type would be pointer-different than what
was stored.
This hasn't caused a visible issue, but the (incomplete) special handling for struct
builtins is in the way of other changes.
Change the code to use get_struct_instance(), and also only ever load those if the
parser need the types, since some of them are deprecated types that we might never
want to load.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25006>
Caio Oliveira [Wed, 13 Sep 2023 02:15:23 +0000 (19:15 -0700)]
glsl: Add missing glsl_types initialization to test_optpass
Will be needed when the builtin struct types will go through regular
initialization.
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25006>
Caio Oliveira [Thu, 7 Sep 2023 00:28:32 +0000 (17:28 -0700)]
compiler/types: Move GLSL specific builtin structs into glsl/
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25006>
Emma Anholt [Wed, 30 Aug 2023 16:13:31 +0000 (09:13 -0700)]
ci/anv: Add testing on JSL.
ChromeOS is deprioritizing native GL drivers, so move testing on the
boards we maintain mostly over to anv.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25155>
Emma Anholt [Wed, 30 Aug 2023 18:58:53 +0000 (11:58 -0700)]
ci/anv: Add a manual full VK run for TGL.
There's a bunch of noise over time in the anv-tgl-fails.txt from the set
of tests run changing and catching more of the failures. If we have a
nightly full run, we can keep things up to date more easily (as seen here,
where I finish filling out the modifiers crashes and drop a stale xfail).
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25155>
Emma Anholt [Thu, 31 Aug 2023 18:33:42 +0000 (11:33 -0700)]
ci/anv: Drop "-vk" from the job name.
It's already implied by "anv"
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25155>
Emma Anholt [Wed, 30 Aug 2023 16:25:59 +0000 (09:25 -0700)]
ci/anv: Drop DEQP_VER:vk setting.
It's only used if you don't set DEQP_SUITE.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25155>
Dave Airlie [Tue, 10 Aug 2021 04:53:53 +0000 (14:53 +1000)]
clover: fix parameter arguments since recent translator changes.
The translator recently unmapped where const info gets stored,
and you can ask for the metadata to be passed through instead, do that
for now, until it's all resolved.
Fixes: api get_kernel_arg_info
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13449>
Timothy Arceri [Fri, 8 Sep 2023 03:36:04 +0000 (13:36 +1000)]
glsl: remove field from gl_shader_program
We don't need to carry this value around, its only used a single time in
the linker. Instead simply extract it from gl_shader when we need it.
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25105>
Mike Blumenkrantz [Wed, 6 Sep 2023 14:08:35 +0000 (10:08 -0400)]
glsl: check for xfb setting xfb info
this otherwise hits the default buffer=0 path, which is invalid
for drivers which don't support xfb
fixes #9763
cc: mesa-stable
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25082>
Mike Blumenkrantz [Wed, 6 Sep 2023 16:25:18 +0000 (12:25 -0400)]
zink: pass a stage mask to pipeline create functions
this is more accurate than checking random unionized zink_shader_object
members
no functional changes
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25087>
Mike Blumenkrantz [Wed, 6 Sep 2023 14:33:04 +0000 (10:33 -0400)]
zink: use FAIL_ON_PIPELINE_COMPILE_REQUIRED for GPL path
it should be low-cost to check for a cached+optimized pipeline on first
compile, so do that to avoid unnecessary pipeline compiles
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25087>
Mike Blumenkrantz [Wed, 6 Sep 2023 14:31:48 +0000 (10:31 -0400)]
zink: remove an intermediate variable in pipeline compile selection
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25087>
Mike Blumenkrantz [Wed, 6 Sep 2023 14:30:10 +0000 (10:30 -0400)]
zink: add a flag for combined pipeline compile for doing FAIL_ON_PIPELINE_COMPILE_REQUIRED
not yet used
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25087>
Mike Blumenkrantz [Wed, 6 Sep 2023 14:28:08 +0000 (10:28 -0400)]
zink: slightly refactor pipeline compile selection
no functional changes
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25087>
Mike Blumenkrantz [Tue, 12 Sep 2023 16:10:13 +0000 (12:10 -0400)]
lavapipe: KHR_map_memory2
Reviewed-by: Konstantin Seurer <konstantin.seurer@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25181>
Dave Airlie [Mon, 11 Sep 2023 06:53:55 +0000 (16:53 +1000)]
spirv: use a pointer sized int type for opencl event_t
llvm16 + opaque pointers uses a ptr to event for the opaque type,
llvm 17 fixes this properly, but the fix doesn't look too backportable.
Cc: mesa-stable
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Jesse Natalie <jenatali@microsoft.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25165>
Juston Li [Mon, 7 Aug 2023 22:34:07 +0000 (15:34 -0700)]
venus: implement VK_EXT_vertex_input_dynamic_state
requires a fixup to ignore static pVertexInputState if dynamic state
is used.
Signed-off-by: Juston Li <justonli@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25193>
Juston Li [Tue, 12 Sep 2023 20:43:58 +0000 (13:43 -0700)]
venus: sync protocol for VK_EXT_vertex_input_dynamic_state
Signed-off-by: Juston Li <justonli@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25193>
Caio Oliveira [Fri, 1 Sep 2023 17:50:31 +0000 (10:50 -0700)]
compiler/types: Remove unused GLSL_TYPE_FUNCTION and related functions
GLSL doesn't use that type. SPIR-V used for a while but later started
relying on its own data structures and stopped using it.
See
ca62e849d3c ("nir/spirv: Stop using glsl_type for function types")
If we were ever to add this one again, would be better to have a way to
grab a key for lookup that did not require allocations, right now that's
needed to inject return type as the first element in params array.
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25160>
Caio Oliveira [Fri, 1 Sep 2023 06:45:02 +0000 (23:45 -0700)]
compiler/types: Constify a couple of pointers in glsl_type
This will allow builtins to initialize those with read-only
data in the future.
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25160>
Caio Oliveira [Fri, 1 Sep 2023 07:16:04 +0000 (00:16 -0700)]
compiler/types: Don't duplicate empty string
We can use the static version of the empty string. There's no worry
about freeing that string incorrectly since what is being deallocated
later is the whole mem_ctx.
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25160>
Caio Oliveira [Fri, 1 Sep 2023 17:14:13 +0000 (10:14 -0700)]
compiler/types: Use right hash for function types
No bug really materialized since function types
aren't currently being used.
Fixes:
26f456203ca ("compiler/types: Use hash table pre-hashed functions for type caching")
Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25160>
Iván Briano [Tue, 12 Sep 2023 21:40:36 +0000 (14:40 -0700)]
intel/fs: use ffsll so we don't explode on 32 bits
Fixes:
b200e5765cb ("anv: use a simpler MUE layout for fast linked libraries")
Tested-by: Mark Janes <markjanes@swizzler.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25192>
Dave Airlie [Tue, 12 Sep 2023 03:30:12 +0000 (13:30 +1000)]
radv: don't emit event code on video queues.
I don't know if these can be done properly, but for now just don't
emit the standard cp stuff since it hangs the GPU.
"Fixes" dEQP-VK.video.synchronizat*
Cc: mesa-stable
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25170>
Hans-Kristian Arntzen [Tue, 12 Sep 2023 12:31:14 +0000 (14:31 +0200)]
wsi/x11: Don't allow signal_present_id to rewind.
If present ID is 0, we should consider it to be ignored.
Avoids a theoretical problem when using IMMEDIATE mode with present ID
where some images don't set present ID.
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25178>
Hans-Kristian Arntzen [Tue, 12 Sep 2023 12:28:18 +0000 (14:28 +0200)]
wsi/x11: Fix potential deadlock in present ID.
If we observe IDLE before COMPLETE, another queued image may have
presented with present ID 0 which would break the check fixed in this
commit. The original fix for present_id / signal_present_id split
forgot to take this into account.
Fixes:
32f7ff2c204b ("Fix present ID signal when IDLE comes before
COMPLETE").
Signed-off-by: Hans-Kristian Arntzen <post@arntzen-software.no>
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25178>
Yiwei Zhang [Tue, 12 Sep 2023 08:36:50 +0000 (01:36 -0700)]
venus: fix a device memory report leak
Fixes:
f70a08bc60f ("venus: handle device memory report requests")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25176>
Rohan Garg [Fri, 8 Sep 2023 15:10:37 +0000 (17:10 +0200)]
intel/genxml: update PIPE_CONTROL instruction for dg2
Signed-off-by: Rohan Garg <rohan.garg@intel.com>
Reviewed-by: Sagar Ghuge <sagar.ghuge@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25124>
Leo Liu [Fri, 8 Sep 2023 18:58:43 +0000 (14:58 -0400)]
Revert "frontends/va: Also map VAImageBufferType for reading"
This reverts commit
12a4f2c1328f31954f9bf70d255f9d3e7bb010d4.
With PIPE_MAP_READ_WRITE and derived image, the encoder will copy
to and from staging buffer for each frame, which caused performance
degradation, even worse than putImage.
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25128>
Eric Engestrom [Tue, 12 Sep 2023 17:54:20 +0000 (18:54 +0100)]
ci_run_n_monitor: add comment to explain "MR > fork" logic
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25186>
Eric Engestrom [Fri, 8 Sep 2023 18:15:15 +0000 (19:15 +0100)]
ci: remove duplicate fork pipeline in MRs
The argument for keeping this duplicate was to not affect
the ci_run_n_monitor script (which by default picked the pipeline in the
user's fork), but the script already supported specifying
a `--pipeline-url` to support that use-case, and it now automatically
picks the MR pipeline if there is no fork pipeline.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25154>
Eric Engestrom [Mon, 11 Sep 2023 13:58:17 +0000 (14:58 +0100)]
bin/ci_run_n_monitor: automatically pick MR pipelines when they exist
When an MR has been created, we usually want to run the jobs in the MR
pipeline so that reviewers see that things work as expected.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25153>
Eric Engestrom [Mon, 11 Sep 2023 13:58:17 +0000 (14:58 +0100)]
bin/ci_run_n_monitor: print in which repo we're looking for the pipeline
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25153>
Illia Polishchuk [Mon, 11 Sep 2023 13:10:57 +0000 (16:10 +0300)]
nir: fix invalid sampler search by texture id
Sampler id cannot be mapped to a uniform object location
Fixes:
1a8dd84ec61 ("nir: Propagate the type sampler type change to the used variable.")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9793
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>