From 72dbabdfefeaf5f72a6f7220e3ae4b5b03a32501 Mon Sep 17 00:00:00 2001 From: sergiuferentz Date: Mon, 28 Oct 2024 13:58:58 +0000 Subject: [PATCH] gfxstream: VulkanBatchedDescriptorSetUpdate toggled on caps on Guest The descriptor set optimization doesn't seem to help performance during benchmarks and it seems to cause erratic behaviour during normal operation. This disables it from being on by default. Can be enabled by -feature VulkanBatchedDescriptorSetUpdate Reviewed-by: Aaron Ruby Part-of: --- .../guest/platform/include/virtgpu_gfxstream_protocol.h | 1 + src/gfxstream/guest/vulkan_enc/ResourceTracker.cpp | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/gfxstream/guest/platform/include/virtgpu_gfxstream_protocol.h b/src/gfxstream/guest/platform/include/virtgpu_gfxstream_protocol.h index bf2dae8aa41..106e070e432 100644 --- a/src/gfxstream/guest/platform/include/virtgpu_gfxstream_protocol.h +++ b/src/gfxstream/guest/platform/include/virtgpu_gfxstream_protocol.h @@ -116,6 +116,7 @@ struct vulkanCapset { uint32_t alwaysBlob; uint32_t externalSync; uint32_t virglSupportedFormats[16]; + uint32_t vulkanBatchedDescriptorSetUpdate; }; struct magmaCapset { diff --git a/src/gfxstream/guest/vulkan_enc/ResourceTracker.cpp b/src/gfxstream/guest/vulkan_enc/ResourceTracker.cpp index bb7f1777a1a..740fbf544b1 100644 --- a/src/gfxstream/guest/vulkan_enc/ResourceTracker.cpp +++ b/src/gfxstream/guest/vulkan_enc/ResourceTracker.cpp @@ -1413,7 +1413,8 @@ void ResourceTracker::setupCaps(uint32_t& noRenderControlEnc) { mFeatureInfo.hasVulkanCreateResourcesWithRequirements = true; mFeatureInfo.hasVirtioGpuNext = true; mFeatureInfo.hasVirtioGpuNativeSync = true; - mFeatureInfo.hasVulkanBatchedDescriptorSetUpdate = true; + mFeatureInfo.hasVulkanBatchedDescriptorSetUpdate = + mCaps.vulkanCapset.vulkanBatchedDescriptorSetUpdate; mFeatureInfo.hasVulkanAsyncQsri = true; ResourceTracker::streamFeatureBits |= VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT;