Dylan Baker
6788aade62
meson: Add back execmem option as a deprecated option
...
I've been betting support requests by people confused as to why their
builds broke because this option was removed. We can add the option back
with the deprecated flag set so that Meson will give a nice warning, but
builds will continue to work.
fixes: 1dd1147408
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23893 >
2023-06-30 16:35:22 +00:00
Rhys Perry
25c49e491f
aco,ac/llvm,ac/nir,vtn: unify cube opcodes
...
fossil-db (navi21):
Totals from 17068 (12.79% of 133461) affected shaders:
Instrs: 24743703 -> 24743572 (-0.00%); split: -0.00%, +0.00%
CodeSize: 132579952 -> 132580620 (+0.00%); split: -0.00%, +0.00%
VGPRs: 1227840 -> 1227984 (+0.01%)
Latency: 403180114 -> 403251188 (+0.02%); split: -0.00%, +0.02%
InvThroughput: 75311302 -> 75320892 (+0.01%); split: -0.00%, +0.01%
VClause: 415400 -> 415402 (+0.00%); split: -0.00%, +0.00%
Copies: 1715404 -> 1715258 (-0.01%); split: -0.01%, +0.01%
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com>
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
Reviewed-by: Gert Wollny <gert.wollny@collabora.com> (r600)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23930 >
2023-06-30 15:35:03 +00:00
Mike Blumenkrantz
dd3f756204
docs: update lavapipe extensions
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23948 >
2023-06-30 14:56:03 +00:00
Mike Blumenkrantz
4e38061643
zink: fix separate shader program refcounting
...
this fixes the refcount for the separate shader program to not have a leaked ref
and then fixes the owned program to have the expected number of refs
this happened to work some of the time before because there was an arbitrary unref
in replace_separable_prog(), but this shouldn't have been necessary
Fixes: e3b746e3a3 ("zink: use GPL to handle (simple) separate shader objects")
fixes #9274
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23888 >
2023-06-30 14:32:49 +00:00
Mike Blumenkrantz
84bb6078f4
zink: do initial program unref during program creation
...
this ensures that programs are never created with more than $num_shaders
refs, which is otherwise not necessarily a bug but can lead to bugs
Fixes: a0e69e7601 ("zink: split out first-time shader module creation")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23888 >
2023-06-30 14:32:49 +00:00
Konstantin Seurer
d5884d5bd5
llvmpipe/ci: Update expectations
...
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:35 +00:00
Konstantin Seurer
9a0c9c3ce4
lavapipe/ci: Update CI expectations for new extensions
...
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:35 +00:00
Konstantin Seurer
1eca25cacc
venus/ci: Update fails
...
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:35 +00:00
Konstantin Seurer
16151a597a
zink/ci: Update lavapipe expectations
...
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:35 +00:00
Konstantin Seurer
01357b4da7
zink: Increase ZINK_FBFETCH_DESCRIPTOR_SIZE to 280
...
Work around the lavapipe descriptor buffer implementation.
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:35 +00:00
Konstantin Seurer
8f003569dd
lavapipe: Make shader compilation thread safe
...
Fixes random crashes because the LLVM context is not thread safe.
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:35 +00:00
Mike Blumenkrantz
83a7a88d6b
llvmpipe: flush/reference fs ubos on bind
...
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:35 +00:00
Konstantin Seurer
b9c588b47b
llvmpipe: Use lp_jit_buffer_from_pipe_const in setup
...
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:35 +00:00
Mike Blumenkrantz
63d09d2437
lavapipe: VK_EXT_mutable_descriptor_type
...
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:35 +00:00
Konstantin Seurer
91eb0f5b08
lavapipe: EXT_descriptor_indexing
...
fails:
dEQP-VK.descriptor_indexing.storage_texel_buffer
dEQP-VK.descriptor_indexing.storage_texel_buffer_after_bind
dEQP-VK.descriptor_indexing.storage_texel_buffer_after_bind_in_loop
dEQP-VK.descriptor_indexing.storage_texel_buffer_in_loop
dEQP-VK.descriptor_indexing.storage_texel_buffer_minNonUniform
They seem to be vertex-shader related.
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:35 +00:00
Konstantin Seurer
ea848d3721
lavapipe: Lower non uniform access
...
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:35 +00:00
Mike Blumenkrantz
b9d774fe22
lavapipe: EXT_descriptor_buffer
...
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:35 +00:00
Mike Blumenkrantz
9d876505bc
lavapipe: split out descriptor stage setting
...
no functional changes
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:35 +00:00
Mike Blumenkrantz
180f0090e5
lavapipe: create a desc set for immutable sampler layouts
...
this is necessary in order to bind an all-immutable set as a buffer
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:35 +00:00
Konstantin Seurer
12a7fc51c7
lavapipe: Rework descriptor handling
...
Instead of using gallium binding slots for binding descriptors,
descriptor sets have UBOs that contain the llvmpipe descriptors.
Descriptor sets are bound by binding their UBO to the corresponding
slot.
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:35 +00:00
Konstantin Seurer
9b12e0ec02
lavapipe: Make pipeline_lock generic for accessing the queue
...
Since we must not access the pipe_context concurrently, it makes sense
to add a lock for all kinds of quere related operations. This way, we
can safely create pipe resources inside Vulkan entry points that can be
used concurrently.
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:35 +00:00
Konstantin Seurer
001a3769a6
lavapipe: Lower more texture OPs
...
Tries to reduce the number of textures we need to pre-compile.
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:35 +00:00
Konstantin Seurer
a8adbaf965
lavapipe: Include llvmpipe
...
Will be used to initialize llvmpipe descriptors.
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:35 +00:00
Konstantin Seurer
d361a0be28
llvmpipe: Disable the linear path when running vulkan
...
It doesn't implement vulkan style resources.
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:35 +00:00
Konstantin Seurer
61d94f243c
gallivm: Implement vulkan images
...
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:35 +00:00
Konstantin Seurer
573b8f23c2
gallivm: Implement vulkan textures
...
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:35 +00:00
Konstantin Seurer
eb140fa936
gallivm: Implement vulkan SSBOs
...
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:35 +00:00
Konstantin Seurer
3f5f807125
gallivm: Implement vulkan UBOs
...
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:35 +00:00
Konstantin Seurer
62b4eb9d74
gallivm: Add a function for loading vulkan descriptors
...
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:34 +00:00
Konstantin Seurer
f675e4ee82
llvmpipe: Pre compile sample functions
...
With vulkan, we can not know details about texture and sampler resources
so we pre compile all possible combinations.
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:34 +00:00
Konstantin Seurer
7d4135ac10
gallivm: Clamp the texel buffer size
...
Fixes arb_texture_buffer_object-texture-buffer-size-clamp.
cc: mesa-stable
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:34 +00:00
Konstantin Seurer
1448600171
gallivm: Propagate vulkan resources
...
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:34 +00:00
Konstantin Seurer
9aa28ae09d
gallivm: Expose lp_build_texel_type
...
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:34 +00:00
Konstantin Seurer
7ee32d636a
llvmpipe: Add LP_TOTAL_IMAGE_OP_COUNT
...
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:34 +00:00
Konstantin Seurer
b7e85f838a
gallivm: Expose LP_MAX_TEX_FUNC_ARGS
...
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:34 +00:00
Konstantin Seurer
0814f54779
gallivm: Add LP_IMG_OP_COUNT
...
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:34 +00:00
Konstantin Seurer
12bd6242e5
llvmpipe: Add lp_build_image_soa_dynamic_state
...
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:34 +00:00
Konstantin Seurer
4654a99497
llvmpipe: Add lp_build_sampler_soa_dynamic_state
...
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:34 +00:00
Konstantin Seurer
e1f603b092
gallivm: Expose lp_build_sample_soa_code
...
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:34 +00:00
Konstantin Seurer
e11e8289dd
gallivm: Add lp_descriptor struct
...
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:34 +00:00
Konstantin Seurer
0ab04247dc
gallivm: Add missing includes
...
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:34 +00:00
Konstantin Seurer
c2e639e74b
llvmpipe: Add BDA jit type helpers
...
lavapipe will use them to implement descriptor buffers.
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22828 >
2023-06-30 12:56:34 +00:00
Timur Kristóf
d63549a642
ac/nir/ngg: Follow tex sources when analyzing before culling.
...
Helps find more possible reusable uniforms variables.
Also prepares the code for more improvements to the analysis.
Fossil DB stats on GFX10.3:
Totals from 6745 (5.00% of 134913) affected shaders:
VGPRs: 304824 -> 304632 (-0.06%)
SpillSGPRs: 228 -> 231 (+1.32%)
CodeSize: 24975152 -> 24863684 (-0.45%); split: -0.56%, +0.11%
Instrs: 4774357 -> 4760913 (-0.28%); split: -0.42%, +0.13%
Latency: 22381084 -> 22218421 (-0.73%); split: -0.88%, +0.15%
InvThroughput: 3984765 -> 3981677 (-0.08%); split: -0.10%, +0.02%
VClause: 110036 -> 110265 (+0.21%); split: -0.67%, +0.88%
SClause: 116296 -> 104576 (-10.08%); split: -10.89%, +0.81%
Copies: 366923 -> 377370 (+2.85%); split: -0.78%, +3.63%
Branches: 119882 -> 119891 (+0.01%); split: -0.00%, +0.01%
PreSGPRs: 314591 -> 350697 (+11.48%); split: -0.36%, +11.83%
PreVGPRs: 252279 -> 252267 (-0.00%); split: -0.02%, +0.01%
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23946 >
2023-06-30 11:47:03 +00:00
Timur Kristóf
411f69b9c5
ac/nir/ngg: Follow intrinsic sources when analyzing before culling.
...
Helps find more possible reusable uniforms variables.
Also prepares the code for more improvements to the analysis.
Fossil DB stats on GFX10.3:
Totals from 54578 (40.45% of 134913) affected shaders:
VGPRs: 1950536 -> 1950328 (-0.01%); split: -0.02%, +0.01%
SpillSGPRs: 483 -> 1324 (+174.12%); split: -8.90%, +183.02%
CodeSize: 148017620 -> 146549576 (-0.99%); split: -1.10%, +0.11%
MaxWaves: 1533710 -> 1533716 (+0.00%); split: +0.00%, -0.00%
Instrs: 28137479 -> 27909113 (-0.81%); split: -0.94%, +0.13%
Latency: 134454624 -> 130909188 (-2.64%); split: -2.72%, +0.09%
InvThroughput: 20664192 -> 20646525 (-0.09%); split: -0.15%, +0.06%
VClause: 540374 -> 540986 (+0.11%); split: -0.76%, +0.88%
SClause: 720823 -> 636209 (-11.74%); split: -12.46%, +0.72%
Copies: 2287330 -> 2326140 (+1.70%); split: -1.71%, +3.41%
Branches: 844769 -> 844848 (+0.01%); split: -0.00%, +0.01%
PreSGPRs: 1987505 -> 2416965 (+21.61%); split: -0.12%, +21.73%
PreVGPRs: 1582704 -> 1581579 (-0.07%); split: -0.07%, +0.00%
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23946 >
2023-06-30 11:47:03 +00:00
Timur Kristóf
91b28fc621
ac/nir/ngg: Add upper limit to reusable uniforms.
...
This is a heuristic to try to reduce SGPR spilling.
While the stats changes on this commit are not impressive,
this is mainly meant to reduce the regressions from the
next few commits which will find more of these
reusable uniforms.
Fossil DB stats on GFX10.3:
Totals from 567 (0.42% of 134913) affected shaders:
VGPRs: 32528 -> 32608 (+0.25%)
SpillSGPRs: 291 -> 247 (-15.12%); split: -49.14%, +34.02%
CodeSize: 3956896 -> 4006552 (+1.25%); split: -0.07%, +1.33%
MaxWaves: 10508 -> 10486 (-0.21%)
Instrs: 756092 -> 764613 (+1.13%); split: -0.09%, +1.22%
Latency: 2533679 -> 2544752 (+0.44%); split: -0.09%, +0.52%
InvThroughput: 733729 -> 733690 (-0.01%); split: -0.06%, +0.06%
VClause: 4853 -> 4861 (+0.16%); split: -1.36%, +1.52%
SClause: 15627 -> 17485 (+11.89%); split: -0.01%, +11.90%
Copies: 62584 -> 65345 (+4.41%); split: -1.61%, +6.02%
Branches: 17356 -> 17405 (+0.28%); split: -0.10%, +0.39%
PreSGPRs: 46758 -> 43465 (-7.04%); split: -8.37%, +1.33%
PreVGPRs: 28944 -> 28931 (-0.04%); split: -0.08%, +0.04%
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23946 >
2023-06-30 11:47:03 +00:00
Timur Kristóf
ddeabcc19b
ac/nir/ngg: Call nir_convert_to_lcssa before divergence analysis.
...
I've recently learned that this is necessary to get
correct results from divergence analysis.
No Fossil DB stats changes on GFX10.3.
Note, when backporting this patch to stable, make sure
the call to nir_convert_to_lcssa is before nir_divergence_analysis,
which may be located in a different place in the stable branch.
Cc: mesa-stable
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23946 >
2023-06-30 11:47:03 +00:00
Gert Wollny
ac61162e2a
r600/sfn: Fix filling FS output gaps
...
in `a << b` with gcc 13 the shift count c is masked by the
bit count, and a value larger than 32 will result in shifts
by (c & 0x1f), which will add empty instructions if all
color outputs are written and this will eventually
result in an OOM error.
Fixes: 201b46e487
r600/sfn: on R600/R700 write a dummy pixel output if there is a gap
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23945 >
2023-06-30 11:12:12 +00:00
Karol Herbst
48737626c8
docs/cl: timer sync is implemented
...
Signed-off-by: Karol Herbst <git@karolherbst.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23944 >
2023-06-30 12:02:41 +02:00
Karol Herbst
2df3515625
docs/cl: move vec3 support under OpenCL C 1.1
...
Signed-off-by: Karol Herbst <git@karolherbst.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23944 >
2023-06-30 12:02:40 +02:00
Karol Herbst
9784b52579
docs/cl: remove cl_khr_byte_addressable_store from extension list.
...
It's a CL core 1.1 feature.
Signed-off-by: Karol Herbst <git@karolherbst.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23944 >
2023-06-30 12:02:39 +02:00