Juston Li
e96428d588
venus: track render pass
...
vkCmdCopyQueryPoolResults cannot be called within a render pass/or
while the render pass is suspended so track when commands are inside
a render pass. Also track whether a secondary command buffer is
considered to be entirely inside a render pass.
Signed-off-by: Juston Li <justonli@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23348 >
2023-06-30 18:50:52 +00:00
Juston Li
fb537262c2
venus: track viewMask
...
Per spec 1.3.255: "If queries are used while executing a render pass
instance that has multiview enabled, the query uses N consecutive query
indices in the query pool (starting at query) where N is the number of
bits set in the view mask in the subpass the query is used in."
track viewMask so query feedback can copy the correct amount of queries
when multiview is enabled.
viewMask is passed in for vkCmdBeginRendering but for legacy
vkCmdBeginRenderPass/2 they are set by vkCreateRenderPass for each
subpass.
Signed-off-by: Juston Li <justonli@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23348 >
2023-06-30 18:50:52 +00:00
Juston Li
de4593faa1
venus: add query pool feedback cmds
...
Add feedback commands to write query results into a coherent buffer to
optimize out roundtrip vkGetQueryPoolResults that poll until a result
is available.
Queries are available after vkCmdEndQuery or vkCmdWriteTimeStamp, so
append a vkCmdCopyQueryPoolResults to copy to query results to our
coherent buffer.
The coherent buffer also needs to be cleared after vkCmdResetQueryPool
so append vkCmdFillBuffer.
Signed-off-by: Juston Li <justonli@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23348 >
2023-06-30 18:50:52 +00:00
Juston Li
5d88a3db8b
venus: expose vn_feedback_buffer_create()
...
For query pool feedback, which are variable in size depending on the
query type and being contiguous will allow for simpler copies/clears.
Signed-off-by: Juston Li <justonli@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23348 >
2023-06-30 18:50:52 +00:00
Juston Li
a26a51d1d4
venus: factor out flush barrier cmd
...
generic device->host flush that will be re-used by query feedback
Signed-off-by: Juston Li <justonli@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23348 >
2023-06-30 18:50:52 +00:00
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