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;