Add DebugUtilsHelper to DeviceInfo
... so that VkDecoderGlobalState can inject additional debug
actions into render thread Vulkan command streams.
Bug: b/165022040
Test: cvd start --gpu_mode=gfxstream_guest_angle
Change-Id: I2ec49ed1075da23160e14b3ac04d345578a80cc2
diff --git a/stream-servers/vulkan/VkCommonOperations.cpp b/stream-servers/vulkan/VkCommonOperations.cpp
index ab114e2..4fe147e 100644
--- a/stream-servers/vulkan/VkCommonOperations.cpp
+++ b/stream-servers/vulkan/VkCommonOperations.cpp
@@ -558,6 +558,13 @@
std::unordered_set<const char*> enabledExtensions;
+ const bool debugUtilsSupported = extensionsSupported(exts, {VK_EXT_DEBUG_UTILS_EXTENSION_NAME});
+ const bool debugUtilsRequested = false; // TODO: enable via a feature or env var?
+ const bool debugUtilsAvailableAndRequested = debugUtilsSupported && debugUtilsRequested;
+ if (debugUtilsAvailableAndRequested) {
+ enabledExtensions.emplace(VK_EXT_DEBUG_UTILS_EXTENSION_NAME);
+ }
+
if (externalMemoryCapabilitiesSupported) {
for (auto extension : externalMemoryInstanceExtNames) {
enabledExtensions.emplace(extension);
@@ -1162,6 +1169,12 @@
string_VkResult(stagingBufferBindRes));
}
+ sVkEmulation->debugUtilsAvailableAndRequested = debugUtilsAvailableAndRequested;
+ if (sVkEmulation->debugUtilsAvailableAndRequested) {
+ sVkEmulation->debugUtilsHelper =
+ DebugUtilsHelper::withUtilsEnabled(sVkEmulation->device, sVkEmulation->ivk);
+ }
+
// LOG(VERBOSE) << "Vulkan global emulation state successfully initialized.";
sVkEmulation->live = true;