[vulkan] put null optinal string marshaling behind a flag (guest)
bug: 111137294
System images without the support need different marshaling
Change-Id: Iff950810d34d347022deee7928848b5cf7bee544
diff --git a/system/vulkan_enc/ResourceTracker.cpp b/system/vulkan_enc/ResourceTracker.cpp
index bf8a928..d3bd3ff 100644
--- a/system/vulkan_enc/ResourceTracker.cpp
+++ b/system/vulkan_enc/ResourceTracker.cpp
@@ -563,6 +563,10 @@
}
}
#endif
+
+ if (mFeatureInfo->hasVulkanNullOptionalStrings) {
+ mStreamFeatureBits |= VULKAN_STREAM_FEATURE_NULL_OPTIONAL_STRINGS_BIT;
+ }
}
bool hostSupportsVulkan() const {
@@ -575,6 +579,10 @@
return mHostVisibleMemoryVirtInfo.virtualizationSupported;
}
+ uint32_t getStreamFeatures() const {
+ return mStreamFeatureBits;
+ }
+
bool supportsDeferredCommands() const {
if (!mFeatureInfo) return false;
return mFeatureInfo->hasDeferredVulkanCommands;
@@ -3172,6 +3180,7 @@
mutable Lock mLock;
HostVisibleMemoryVirtualizationInfo mHostVisibleMemoryVirtInfo;
std::unique_ptr<EmulatorFeatureInfo> mFeatureInfo;
+ uint32_t mStreamFeatureBits = 0;
std::unique_ptr<GoldfishAddressSpaceBlockProvider> mGoldfishAddressSpaceBlockProvider;
std::vector<VkExtensionProperties> mHostInstanceExtensions;
@@ -3252,6 +3261,10 @@
return mImpl->usingDirectMapping();
}
+uint32_t ResourceTracker::getStreamFeatures() const {
+ return mImpl->getStreamFeatures();
+}
+
uint32_t ResourceTracker::getApiVersionFromInstance(VkInstance instance) const {
return mImpl->getApiVersionFromInstance(instance);
}