Ryan Neph
1f28d221d9
venus: add support for VK_KHR_dynamic_rendering
...
Signed-off-by: Ryan Neph <ryanneph@google.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17668 >
2022-07-23 01:14:22 +00:00
Ryan Neph
6f5289df53
venus: refactor VkCommandBufferBeginInfo fixups to function
...
Signed-off-by: Ryan Neph <ryanneph@google.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17668 >
2022-07-23 01:14:22 +00:00
Yiwei Zhang
02d6d43f54
Revert "venus: suballocate more for layering"
...
This reverts commit f96e25ae05 .
It's causing vkbench oom failure on radv.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17701 >
2022-07-22 03:09:12 +00:00
Yiwei Zhang
4ce29c5568
venus: reenable VK_EXT_extended_dynamic_state2
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17582 >
2022-07-20 01:53:16 +00:00
Yiwei Zhang
4eaa780944
venus: check dynamic state for raster enablement
...
We should not scrub raster dedicated states when dynamic state includes
VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE.
Test:
- dEQP-VK.pipeline.extended_dynamic_state.*_raster
- dEQP-VK.api.pipeline.pipeline_invalid_pointers_unused_structs.graphics
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17582 >
2022-07-20 01:53:16 +00:00
Yiwei Zhang
a211d74096
venus: filter out VK_EXT_physical_device_drm on the driver side
...
Fixes: a1a22862c6 ("venus: implement VK_EXT_physical_device_drm")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17591 >
2022-07-18 19:23:53 +00:00
Yiwei Zhang
62f79f9ec1
venus: add more tracepoints for perf analysis
...
This change adds the tracepoints that can help understand app behavior
for debugging and performance optimization purposes.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17497 >
2022-07-15 20:57:41 +00:00
Yiwei Zhang
f96e25ae05
venus: suballocate more for layering
...
Previously we suballocate only for host visible memory type to reduce
the kvm mem slot usage. That is no longer an issue given the limit has
been raised. However, we should still suballocate to make layering
clients performant. So we just suballocate regardless of mem type.
This change also increases the allowed suballocation size request from
64K to 128K, which makes layering clients happier.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17497 >
2022-07-15 20:57:41 +00:00
Yiwei Zhang
20eeb529f7
venus: GetPhysicalDeviceSparseImageFormatProperties to match sparse support
...
Test: dEQP-VK.api.info.sparse_image_format_properties2.*
Fixes: 1a7632e54b ("venus: add NO_FENCE_FEEDBACK perf option and disable sparse resource")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17476 >
2022-07-12 21:20:19 +00:00
Eric Engestrom
75938f9d1f
venus: use updated tokens from vk.xml
...
Signed-off-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Acked-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17342 >
2022-07-12 15:53:11 +00:00
Igor Torrente
48be8a9875
venus: Use maintenance4 to get max_size_buffer
...
This should help speedup the device initalization process.
Signed-off-by: Igor Torrente <igor.torrente@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17399 >
2022-07-08 04:27:51 +00:00
Igor Torrente
1893c81521
venus: Add support to VK_KHR_maintenance4 extension
...
Signed-off-by: Igor Torrente <igor.torrente@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17399 >
2022-07-08 04:27:51 +00:00
Gert Wollny
bf29ebc0a7
virgl: Submit the TGSI_PROPERTY_SEPARABLE_PROGRAM when the host understands it
...
We can't unconditionally support separable shader objects on the host,
so submit the property only if the shader is actually separable, the
host knows about the property, and supports SSO.
Without support for SSOs, the host can still compile and link the shaders,
it needs to do more work on interface matching though.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17344 >
2022-07-07 09:46:53 +00:00
Clément Guérin
a1a22862c6
venus: implement VK_EXT_physical_device_drm
...
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17387 >
2022-07-07 02:46:45 +00:00
Dawn Han
fdf550cdf0
venus: enabled iub in physical device
...
Signed-off-by: Dawn Han <dawnhan@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16699 >
2022-07-07 02:37:36 +00:00
Dawn Han
32283b9703
Refactor and add template support for iub
...
Signed-off-by: Dawn Han <dawnhan@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16699 >
2022-07-07 02:37:36 +00:00
Dawn Han
abae9d4831
Add the iub binding count tracking
...
Signed-off-by: Dawn Han <dawnhan@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16699 >
2022-07-07 02:37:36 +00:00
Dawn Han
6bd8dda57b
Add iub type to vn_descriptor_type
...
Verified the pNext VkWriteDescriptorSet is not NULL on iub type
Signed-off-by: Dawn Han <dawnhan@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16699 >
2022-07-07 02:37:36 +00:00
Dawn Han
78e637f857
Refactor the descriptor enums to be extensible
...
Signed-off-by: Dawn Han <dawnhan@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16699 >
2022-07-07 02:37:36 +00:00
Dawn Han
40fb107664
Add iub features and properties passthrough
...
Signed-off-by: Dawn Han <dawnhan@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16699 >
2022-07-07 02:37:36 +00:00
Corentin Noël
d92c1ca01b
virgl: Add support for passing the supported number of components from virgl
...
Return the capabilities reported by the host. No functional change in case the
host virgl implementation doesn't implement it.
Signed-off-by: Corentin Noël <corentin.noel@collabora.com >
Reviewed-by: Italo Nicola <italonicola@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16401 >
2022-07-06 13:12:38 +00:00
Yiwei Zhang
1b4784c5fb
venus: swizzle the chroma channels for YVU420 to match the VkFormat
...
Test:
- testVP8EncodeDecodeVideoFromBufferToSurface
- android.media.cts.DecodeAccuracyTest
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17323 >
2022-07-01 18:46:31 +00:00
Yiwei Zhang
9f59acaa48
venus: use narrow range to match up with mesa EGL
...
This matches up with the native gl drivers as well as the media stack.
Test: android.graphics.cts.MediaVulkanGpuTest
Test: android.media.cts.EncodeDecodeTest
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Reviewed-by: Chad Versace <chadversary@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17306 >
2022-06-30 20:11:04 +00:00
Ryan Neph
627ba5c91b
venus: support VK_KHR_copy_commands2
...
Signed-off-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17226 >
2022-06-24 23:20:05 +00:00
Ryan Neph
8b81098519
venus: enable VK_EXT_image_view_min_lod
...
Signed-off-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17227 >
2022-06-24 23:09:48 +00:00
Ryan Neph
f862cc070f
venus: update venus-protocol with VK_EXT_image_view_min_lod
...
Copy in auto-generated protocol bindings.
Signed-off-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17227 >
2022-06-24 23:09:48 +00:00
Yiwei Zhang
b37d97bb86
venus: resolve YV12 AHB to VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM
...
YV12 is a 3-plane format with minigbm. This change mitigates the crash
of testGLViewLargerHeightDecodeAccuracy[4], and successfully creates the
host side image and imports the memory.
vk_format(1000156002) drm_fourcc(842094169)
offsets(0, 27648, 34560, 0)
strides(256, 128, 128, 0)
modifier(0)
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16913 >
2022-06-17 00:40:10 +00:00
Yiwei Zhang
d7f2e6c8d0
venus: add fence feedback
...
- intercept to record feedback cmds for:
- vkQueueSubmit
- add feedback code path for
- vkGetFenceStatus
- vkResetFences
- VN_PERF_NO_FENCE_FEEDBACK can disable fence feedback
Test: dEQP-VK.synchronization.basic.fence.*
Test: dEQP-VK.wsi.android.swapchain.render.basic*
Test: dEQP-VK.api.object_management.*
Test: dEQP-VK.api.external.fence.sync_fd.*
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Reviewed-by: Chad Versace <chadversary@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16731 >
2022-06-16 19:00:36 +00:00
Yiwei Zhang
9f9d543b12
venus: renderer to store allow_vk_wait_syncs capset
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Reviewed-by: Chad Versace <chadversary@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16731 >
2022-06-16 19:00:36 +00:00
Yiwei Zhang
8ecac4c063
venus: create per queue family command pool for feedback cmd
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Reviewed-by: Chad Versace <chadversary@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16731 >
2022-06-16 19:00:36 +00:00
Yiwei Zhang
1a7632e54b
venus: add NO_FENCE_FEEDBACK perf option and disable sparse resource
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Reviewed-by: Chad Versace <chadversary@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16731 >
2022-06-16 19:00:36 +00:00
Yiwei Zhang
942ec179f3
venus: add event feedback
...
- add perf option VN_PERF_NO_EVENT_FEEDBACK
- intercept to record feedback cmds for:
- vkCmdSetEvent
- vkCmdResetEvent
- add feedback code path for
- vkGetEventStatus
- vkSetEvent
- vkResetEvent
Test: dEQP-VK.synchronization.basic.event.*
Test: dEQP-VK.api.command_buffers.record_simul*
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Reviewed-by: Chad Versace <chadversary@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16731 >
2022-06-16 19:00:36 +00:00
Yiwei Zhang
f2563788a1
venus: add feedback check/set/reset helpers
...
Implemented:
- vn_feedback_get_status
- vn_feedback_reset_status
- vn_feedback_set_status
- vn_feedback_get_counter
- vn_feedback_set_counter
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Reviewed-by: Chad Versace <chadversary@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16731 >
2022-06-16 19:00:36 +00:00
Yiwei Zhang
e52da323b0
venus: add vn_feedback_pool backed by coherent buffer (part 2)
...
Implemented:
- vn_feedback_pool_alloc
- vn_feedback_pool_free
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Reviewed-by: Chad Versace <chadversary@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16731 >
2022-06-16 19:00:36 +00:00
Yiwei Zhang
27a24caf16
venus: add vn_feedback_pool backed by coherent buffer (part 1)
...
Implemented:
- vn_feedback_pool_init
- vn_feedback_pool_fini
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Reviewed-by: Chad Versace <chadversary@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16731 >
2022-06-16 19:00:36 +00:00
Yiwei Zhang
d578f6c727
venus: let device track queue families used for device creation
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Reviewed-by: Chad Versace <chadversary@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16731 >
2022-06-16 19:00:36 +00:00
Yiwei Zhang
4cf87d8822
venus: adjust device resources init order
...
queue init involves fence creation, and we need to do that at the last
to prepare for other resource creation dependencies involved in fence
creation.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Reviewed-by: Chad Versace <chadversary@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16731 >
2022-06-16 19:00:36 +00:00
Yiwei Zhang
cf55a3f70e
venus: fix a missing mtx_destroy in vn_device_init
...
This was introduced in commit e08960482 , however, the logic around has
been largly refactored since then. It's not worth adding the fixes tag.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chad Versace <chadversary@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16731 >
2022-06-16 19:00:36 +00:00
Yiwei Zhang
cb8dfa4966
venus: fix the queue init failure path
...
The prior behavior can ignore certain failure result, and might also
clean up queues that are never initialized.
Fixes: ddd7533055 ("venus: initial support for queue/fence/semaphore")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chad Versace <chadversary@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16731 >
2022-06-16 19:00:36 +00:00
Yiwei Zhang
01a0bfc3f9
venus: fix a bug on buffer cache init failure path
...
The failure path was never hit though, and will not either.
Fixes: 65abd1d4ae ("venus: implement vn_buffer_cache_entries_create")
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chad Versace <chadversary@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16731 >
2022-06-16 19:00:36 +00:00
Renato Pereyra
c642ebf8ab
venus: Add driconf option to enable implicit fencing
...
Signed-off-by: Renato Pereyra <renatopereyra@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16735 >
2022-06-02 18:05:50 +00:00
Yiwei Zhang
1c63a0beaf
venus: resolve AHARDWAREBUFFER_FORMAT_Y8Cb8Cr8_420 to external format
...
This is to work around ANGLE yuv support.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16759 >
2022-06-01 20:25:47 +00:00
Yiwei Zhang
37764272ab
venus: use common entry point for VkPhysicalDeviceMemoryProperties
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Chad Versace <chadversary@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16694 >
2022-05-24 23:35:28 +00:00
Chad Versace
fe3e850dfb
venus: Don't encode ignored pTessellationState
...
The spec says that VkGraphicsPipelineCreateInfo::pTessellationState is
ignored and may be an invalid pointer in some cases. When ignored,
patch the pCreateInfo with `pTessellationState = NULL`, so the encoder
doesn't attempt to encode an invalid pointer.
Tested in Borealis, with debug build of venus, with a minimal test app
that sets `.pTesselationState = 0x17`. Pre-patch, the app crashes;
post-patch, the app works.
Signed-off-by: Chad Versace <chadversary@chromium.org >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16284 >
2022-05-17 19:47:52 +00:00
Chad Versace
683b6e8d35
venus: Refactor vn_fix_graphics_pipeline_create_info
...
We currently do only a single fix. Prepare to do multiple independent
fixes.
Signed-off-by: Chad Versace <chadversary@chromium.org >
Reviewed-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16284 >
2022-05-17 19:47:52 +00:00
Yiwei Zhang
81515f6b3c
venus: extend buffer cache to cover layering usage
...
Layering clients, e.g. angle and zink, use wide sets of buffer usage
flags because they don't know what a resource will be used for in the
majority cases, which is on the other hand making it easier for layering
to optimize resource management.
This change adds a super-set usage to the buffer cache entries, that
will mostly ensure no cache-miss for non-sparsed buffer usages. Since
that involves usage bits from extensions, we'll mask out those disabled
ones upon querying but will use the static cache create info for
checking cache hit for code simplicity.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Reviewed-by: Ryan Neph <ryanneph@google.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16379 >
2022-05-07 05:26:44 +00:00
Yiwei Zhang
3f44bad1ce
venus: log performance envs upon instance creation with debug init
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Change-Id: I8db93d6de28ac6a727c10fbaca94cffac092f8ea
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16256 >
2022-05-02 20:20:43 +00:00
Yiwei Zhang
84a53de76c
venus: add VN_RELAX_BASE_SLEEP_US env var for tuning cpu utils
...
Cap the minimum to the current base sleep us 10.
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16256 >
2022-05-02 20:20:43 +00:00
Yiwei Zhang
2f8123abab
venus: enable ANB shared presentable image prop
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15868 >
2022-04-30 04:25:44 +00:00
Yiwei Zhang
2df0aa185e
venus: update vn_GetSwapchainGrallocUsage2ANDROID for shared present
...
Signed-off-by: Yiwei Zhang <zzyiwei@chromium.org >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15868 >
2022-04-30 04:25:44 +00:00