Iván Briano
17d7f7a292
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 >
2023-09-12 02:51:31 +00:00
Iván Briano
d36da7c5f8
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 >
2023-09-12 02:51:31 +00:00
Iván Briano
b200e5765c
anv: use a simpler MUE layout for fast linked libraries
...
The compaction introduced in a252123363 ("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 >
2023-09-12 02:51:31 +00:00
Iván Briano
bcde58ea86
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
419531c5d9 ("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 >
2023-09-12 02:51:31 +00:00
Erico Nunes
079604e41e
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 >
2023-09-12 02:48:34 +00:00
Dave Airlie
4dbc55818c
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 >
2023-09-12 01:57:50 +00:00
Dave Airlie
4ecd471ee3
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 >
2023-09-12 01:57:50 +00:00
Dave Airlie
3704f158a2
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 >
2023-09-12 01:57:50 +00:00
Dave Airlie
14a6668964
rusticl: use cleanup funcs
...
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24687 >
2023-09-12 01:57:50 +00:00
Dave Airlie
18ca6c37f0
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 >
2023-09-12 01:57:50 +00:00
Dave Airlie
f5bf4657fb
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 >
2023-09-12 01:57:50 +00:00
Dave Airlie
8a95b43880
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 >
2023-09-12 01:57:50 +00:00
Dave Airlie
b8e93abd11
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 >
2023-09-12 01:57:50 +00:00
Dave Airlie
3cd20feed0
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 >
2023-09-12 01:57:50 +00:00
Dave Airlie
a74e98547c
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 >
2023-09-12 01:57:50 +00:00
Dave Airlie
8f982a7fd9
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 >
2023-09-12 01:57:50 +00:00
Dave Airlie
5dea1ac64c
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 >
2023-09-12 01:57:50 +00:00
Dave Airlie
b1a12cf3a8
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 >
2023-09-12 01:57:50 +00:00
Dave Airlie
4af6061fe5
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 >
2023-09-12 01:57:50 +00:00
Dave Airlie
bfe152916c
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 >
2023-09-12 01:57:50 +00:00
Dave Airlie
e6bfe7c501
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 >
2023-09-12 01:57:50 +00:00
Dave Airlie
5f568625fa
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 >
2023-09-12 01:57:50 +00:00
Alyssa Rosenzweig
97557ebfa2
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 >
2023-09-12 01:57:50 +00:00
Dave Airlie
93bb08d1f7
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 >
2023-09-12 01:57:50 +00:00
Emma Anholt
6417f1021a
ci/freedreno: Add another excessive-constlen UBO skip.
...
Causes flakes in other tests.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24624 >
2023-09-12 01:18:07 +00:00
Collabora's Gfx CI Team
52343ac668
Uprev Piglit to f7db20b03de6896d013826c0a731bc4417c1a5a0
...
https://gitlab.freedesktop.org/mesa/piglit/-/compare/ed58dfbd12be34fa3dab97a7a2987b890e0637f1...f7db20b03de6896d013826c0a731bc4417c1a5a0
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24624 >
2023-09-12 01:18:07 +00:00
Caio Oliveira
3f1356bef5
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 >
2023-09-12 00:26:06 +00:00
Konstantin Seurer
9e37631aa5
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 >
2023-09-11 22:01:44 +00:00
Rob Clark
b235e8fc9a
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 >
2023-09-11 21:31:01 +00:00
Rob Clark
c4c76b72e1
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 >
2023-09-11 19:45:19 +00:00
Rob Clark
0bb34e49ec
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 >
2023-09-11 19:45:19 +00:00
Rob Clark
e6b5e965cc
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 >
2023-09-11 19:45:19 +00:00
Rob Clark
c1a188ad4f
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 >
2023-09-11 19:45:19 +00:00
Rob Clark
43c77244d9
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 >
2023-09-11 19:45:19 +00:00
Rob Clark
6df5f3d4f1
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 >
2023-09-11 19:45:19 +00:00
Rob Clark
babe8a10d9
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 >
2023-09-11 19:45:19 +00:00
Rob Clark
286b7723f0
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 >
2023-09-11 19:45:19 +00:00
Rob Clark
fd00e99444
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 >
2023-09-11 19:45:19 +00:00
Rob Clark
eb3cb03bbe
freedreno: Implement ATI_meminfo
...
Signed-off-by: Rob Clark <robdclark@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24999 >
2023-09-11 19:45:19 +00:00
Rob Clark
c2e8b52922
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 >
2023-09-11 19:45:19 +00:00
Rob Clark
9b2780dcaf
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 >
2023-09-11 19:45:19 +00:00
Rob Clark
a11e3f35df
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 >
2023-09-11 19:45:19 +00:00
Rob Clark
71fe3f1073
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 >
2023-09-11 19:45:18 +00:00
Pavel Ondračka
38694b7386
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 >
2023-09-11 19:30:52 +00:00
Chia-I Wu
ccd3bb4548
winsys/radeon: fix a race between bo import and destroy
...
This is similar to commit 85e74944c6 ("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 >
2023-09-11 19:11:29 +00:00
Konstantin Seurer
028ba76a00
radv/ci: Document new flake
...
Reviewed-by: Martin Roukala <martin.roukala@mupuf.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25140 >
2023-09-11 16:33:31 +00:00
Paulo Zanoni
0c29b7aeaf
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 >
2023-09-11 16:04:02 +00:00
Paulo Zanoni
9a7c6ae32c
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 >
2023-09-11 16:04:02 +00:00
Paulo Zanoni
935a1d2c8f
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 >
2023-09-11 16:04:01 +00:00
Paulo Zanoni
7018e64d79
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 >
2023-09-11 16:04:01 +00:00