Yiwei Zhang
edcc7148ba
venus: support VK_EXT_depth_clamp_control
...
Test: dEQP-VK.draw.*clamp_control*
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33992 >
2025-03-12 19:41:13 +00:00
Yiwei Zhang
8914447d9e
venus: support VK_EXT_depth_bias_control
...
Test:
- dEQP-VK.rasterization.depth_bias_control.*
- dEQP-VK.rasterization.depth_bias_control.*_secondary_cmd_buffer_inherit_renderpass
- dEQP-VK.rasterization.depth_bias_control.*_secondary_cmd_buffer_unspecified_fb
- dEQP-VK.pipeline.*.extended_dynamic_state.*depth_bias_repr_info*
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33992 >
2025-03-12 19:41:12 +00:00
Yiwei Zhang
b9207d3ad9
venus: support VK_EXT_legacy_dithering
...
Test: dEQP-VK.*.dithering.v2.*
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33992 >
2025-03-12 19:41:12 +00:00
Yiwei Zhang
cb5fa89bc4
venus: support VK_EXT_filter_cubic
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33992 >
2025-03-12 19:41:12 +00:00
Yiwei Zhang
89ec6c4d8f
venus: add a few more trivial extensions
...
Below are added:
1. VK_GOOGLE_decorate_string
2. VK_GOOGLE_hlsl_functionality1
3. VK_GOOGLE_user_type
4. VK_EXT_display_control
5. VK_EXT_hdr_metadata
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33992 >
2025-03-12 19:41:12 +00:00
Yiwei Zhang
9e01731bc9
venus: sync latest protocol for more extension support
...
This sync also drops redundant vn_call_* helpers.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33992 >
2025-03-12 19:41:12 +00:00
Yiwei Zhang
e2c5435808
venus: drop vn_call usage on apis without any returns
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33992 >
2025-03-12 19:41:12 +00:00
Yiwei Zhang
5badd0d101
venus: sync protocol for accel struct indirect build encoding fix
...
ppMaxPrimitiveCounts also requires the same nested dynamic array special
treatment.
Fixes: 6bac77b75c ("venus: sync protocol for ray tracing support")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33995 >
2025-03-11 19:14:23 +00:00
Yiwei Zhang
9fb149d4fe
venus: sync protocol support for maint7
...
make a separate sync mainly to isolate the next fix
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33995 >
2025-03-11 19:14:23 +00:00
Yiwei Zhang
a315a64291
venus: relax 2 assertions for prime blit path
...
Prime blit can be used in setups like venus on lavapipe over vtest. It's
native env so Venus relies on renderer side driver to tell about the pci
info, while lavapipe doesn't implement that extension, which ends up
with mismatched gpu thus prime blit.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33956 >
2025-03-10 16:48:31 +00:00
Yiwei Zhang
0543c3a886
venus: extend async descriptor set alloc coverage
...
Previously asynchronous descriptor set allocation is only enabled when
the VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT bit is not set.
However, some engine would use that bit but alloc/free with identical
descriptor set layout. So this change extends the async set alloc to
cover that since the spec has guaranteed no fragmentation there.
Besides, a pool before any descriptor set free is also considered w/o
fragmentation. so this change extends to cover here as well. Both
would also help with dEQP run time since all descriptor pools involved
are with that bit set.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33966 >
2025-03-10 15:34:42 +00:00
Yiwei Zhang
c7bc90eaec
venus: fix to ignore dstSet for push descriptor
...
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
Per push descriptor spec:
Each element of pDescriptorWrites is interpreted as in
VkWriteDescriptorSet, except the dstSet member is ignored.
Cc: mesa-stable
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33948 >
2025-03-09 20:25:21 +00:00
Yiwei Zhang
7b228ef877
venus: use common memory report implementation
...
Looks to be the same, and there's no regression in the cts group
dEQP-VK.memory.device_memory_report.*
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33955 >
2025-03-09 18:51:41 +00:00
Yiwei Zhang
2923945020
venus: support VK_KHR_ray_tracing_maintenance1
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33907 >
2025-03-07 22:44:10 +00:00
Yiwei Zhang
7902d9ee32
venus: support VK_KHR_ray_tracing_position_fetch
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33907 >
2025-03-07 22:44:10 +00:00
Yiwei Zhang
7cfdd9e8d4
venus: enable VK_KHR_ray_tracing_pipeline
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33907 >
2025-03-07 22:44:10 +00:00
Yiwei Zhang
e081621dca
venus: implement VK_KHR_ray_tracing_pipeline commands
...
Implement all commands involved. No need to scrub anything in the RT
pipeline info since it has been well validated by the VUs related.
The nature of VkDeferredOperationKHR plays well with venus multi-ring
support. So later we can properly define our own concurrent limits for
RT pipeline creations.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33907 >
2025-03-07 22:44:10 +00:00
Yiwei Zhang
9547efa6b0
venus: prepare push template for ray tracing pipeline
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33907 >
2025-03-07 22:44:10 +00:00
Yiwei Zhang
1e526c555b
venus: support VK_KHR_ray_query
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33907 >
2025-03-07 22:44:10 +00:00
Yiwei Zhang
0deef3d037
venus: enable VK_KHR_acceleration_structure
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33907 >
2025-03-07 22:44:10 +00:00
Yiwei Zhang
4cb0f99379
venus: implement VK_KHR_acceleration_structure - Part III
...
Add acceleration structure descriptor type support:
- async set alloc
- descriptor update with and w/o template
- push descriptor with and w/o template
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33907 >
2025-03-07 22:44:10 +00:00
Yiwei Zhang
1075d03228
venus: implement VK_KHR_acceleration_structure - Part II
...
Add query cmd integrations.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33907 >
2025-03-07 22:44:10 +00:00
Yiwei Zhang
c0f4d9861d
venus: implement VK_KHR_acceleration_structure - Part I
...
Implement all cmds except query updates.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33907 >
2025-03-07 22:44:10 +00:00
Yiwei Zhang
eb0ad64e80
venus: add stubs for accel struct host commands
...
They won't be implemented, and the host cmds feature will always be
disabled in venus.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33907 >
2025-03-07 22:44:10 +00:00
Yiwei Zhang
3eb554a2b5
venus: support VK_KHR_deferred_host_operations
...
Details are at:
https://gitlab.freedesktop.org/virgl/venus-protocol/-/merge_requests/97
For venus and vkr, we'll use pure driver side impl. Start with (1) and
move towards (2) later as things evolve. We'd like renderer side to be
simple and passive.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33907 >
2025-03-07 22:44:10 +00:00
Yiwei Zhang
90f9a1cca5
venus: add a debug option for ray tracing support
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33907 >
2025-03-07 22:44:10 +00:00
Yiwei Zhang
6bac77b75c
venus: sync protocol for ray tracing support
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33907 >
2025-03-07 22:44:10 +00:00
Yiwei Zhang
6868212774
venus: fix a memory corruption in query records recycle
...
The free list must be re-initialized. Found the bug while running:
dEQP-VK.ray_tracing_pipeline.acceleration_structures.device_compability_khr.gpu_built.top
where it invokes VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT to purge
the cmd pool resources, and the next alloc still gets cache hit with the
"empty" list.
Fixes: e2c4bafccc ("venus: free query batches for VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33908 >
2025-03-06 18:25:20 +00:00
Yiwei Zhang
b6b8193534
venus: fix an obsolete protocol sync earlier
...
luckily it doesn't hurt anything and won't break anything
Fixes: 785f44adc8 ("venus: sync protocol for the passthrough extensions")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33834 >
2025-03-02 16:58:21 +00:00
Yiwei Zhang
c35b52638c
venus: relax the requirement for sync2
...
The current requirement for sync is only to support WSI, and it is not
necessarily needed at all per the comment added. Will drop it later.
Cc: mesa-stable
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33829 >
2025-03-02 16:40:14 +00:00
Guilherme Gallo
94f5cf901e
ci/angle: condense angle variables in one job
...
Use .test-angle as a full-featured job to be extended to enable angle
usage in the job. Right now, it comes with USE_ANGLE=1 flag and the
respective structural tag.
Signed-off-by: Guilherme Gallo <guilherme.gallo@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33421 >
2025-02-28 01:33:34 +00:00
Yiwei Zhang
af1b4f61b5
venus: added passthrough extension support - Part V
...
Below extensions are added:
1. VK_KHR_fragment_shader_barycentric
2. VK_EXT_legacy_vertex_attributes
3. VK_EXT_ycbcr_image_arrays
Test:
- dEQP-VK.fragment_shading_barycentric.*
- dEQP-VK.pipeline.*.vertex_input.legacy_vertex_attributes.*
- dEQP-VK.ycbcr.format.*
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33783 >
2025-02-27 20:35:36 +00:00
Yiwei Zhang
b02e8a9f1d
venus: added passthrough extension support - Part IV
...
Below extensions are added:
1. VK_EXT_shader_atomic_float
2. VK_EXT_shader_atomic_float2
3. VK_EXT_shader_image_atomic_int64
4. VK_EXT_shader_replicated_composites
Test:
- dEQP-VK.glsl.atomic_operations.*
- dEQP-VK.image.atomic_operations.*
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33783 >
2025-02-27 20:35:35 +00:00
Yiwei Zhang
1fe8be9215
venus: added passthrough extension support - Part III
...
Below are added:
1. VK_KHR_shader_maximal_reconvergence
2. VK_KHR_shader_subgroup_uniform_control_flow
3. VK_KHR_shader_quad_control
4. VK_EXT_shader_subgroup_vote
Test:
- dEQP-VK.reconvergence.*
- dEQP-VK.subgroups.subgroup_uniform_control_flow.*
- dEQP-VK.subgroups.shader_quad_control.*
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33783 >
2025-02-27 20:35:35 +00:00
Yiwei Zhang
f16345b2f6
venus: added passthrough extension support - Part II
...
Below are added:
1. VK_KHR_compute_shader_derivatives
2. VK_NV_compute_shader_derivatives
3. VK_KHR_workgroup_memory_explicit_layout
Test:
- dEQP-VK.compute.*workgroup_memory_explicit_layout.*
- dEQP-VK.spirv_assembly.instruction.compute.compute_shader_derivatives.*
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33783 >
2025-02-27 20:35:35 +00:00
Yiwei Zhang
48b50c77df
venus: added passthrough extension support - Part I
...
Below are added:
1. VK_KHR_depth_clamp_zero_one
2. VK_EXT_depth_clamp_zero_one
3. VK_EXT_depth_range_unrestricted
4. VK_EXT_post_depth_coverage
5. VK_ARM_rasterization_order_attachment_access
Test: dEQP-VK.depth.*
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33783 >
2025-02-27 20:35:35 +00:00
Yiwei Zhang
785f44adc8
venus: sync protocol for the passthrough extensions
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33783 >
2025-02-27 20:35:35 +00:00
Yiwei Zhang
acd5497067
venus: support wsi maintenance1 extensions
...
Venus has long supported creating swapchain image alias via binding. So
below are exposed without extra work needed:
- VK_EXT_surface_maintenance1
- VK_EXT_swapchain_maintenance1
Test: dEQP-VK.wsi.*.maintenance1.*
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33782 >
2025-02-27 09:53:57 +00:00
Yiwei Zhang
673a95e5b4
venus: align on wsi frontends support
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33782 >
2025-02-27 09:53:57 +00:00
Yiwei Zhang
bef1c23a23
venus: re-enable 1.4 support
...
Have made core venus protocol update to be able to support host image
copy.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33757 >
2025-02-26 19:16:48 +00:00
Yiwei Zhang
577fa1793d
venus: enable VK_EXT_host_image_copy support
...
Fill the core features and properties properly, and conditionally pass
through support of the extension based on the renderer venus protocol
spec version.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33757 >
2025-02-26 19:16:48 +00:00
Yiwei Zhang
c13da1c744
venus: implement host image copy commands
...
The img-2-img and layout transition are trivial passthrough. For
img-2-mem and mem-2-img copies, host pointer has to be sized for proper
protocol encoding and decoding, and we have to either query or calculate
on our own based on VK_HOST_IMAGE_COPY_MEMCPY_EXT flag being used or
not.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33757 >
2025-02-26 19:16:48 +00:00
Yiwei Zhang
036493f43d
venus: extend image format cache for host copy props
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33757 >
2025-02-26 19:16:48 +00:00
Yiwei Zhang
2eb5a75d51
venus: sync latest protocol v3 support for host copy
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33757 >
2025-02-26 19:16:48 +00:00
Yiwei Zhang
fde5cebec5
venus: fix image format cache miss with AHB usage query
...
should skip updating cache key instead of marking as a miss
Fixes: e48645250c ("venus: image format properties cache")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33757 >
2025-02-26 19:16:48 +00:00
Yiwei Zhang
15777727c9
venus: use sharing_mode from common vk_image
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33757 >
2025-02-26 19:16:48 +00:00
Yiwei Zhang
f9afd65695
venus: drop unnecessary struct
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33757 >
2025-02-26 19:16:48 +00:00
Yiwei Zhang
bcb0b8c7f6
venus: suppress a few -Wmaybe-uninitialized
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33757 >
2025-02-26 19:16:48 +00:00
Simon Ser
8f9a390f33
venus: replace dup() with os_dupfd_cloexec()
...
dup() will leak the new FD into any child process after fork().
Signed-off-by: Simon Ser <contact@emersion.fr>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26203 >
2025-02-26 00:45:51 +00:00
Yiwei Zhang
43c3270c26
venus: temporarily disable 1.4 support
...
Will implement VK_EXT_host_image_copy via custom venus protocol support
and then re-enable 1.4.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33698 >
2025-02-24 00:11:55 +00:00