vulkan: make debug report callbacks available in DeviceData

This allows device commands to send messages to debug report.

Bug: 28120066
Change-Id: I43d217fc23799b06fd3fda73e1876d8773c723fc
diff --git a/vulkan/libvulkan/driver.cpp b/vulkan/libvulkan/driver.cpp
index b02f5b4..7238fde 100644
--- a/vulkan/libvulkan/driver.cpp
+++ b/vulkan/libvulkan/driver.cpp
@@ -409,14 +409,16 @@
     allocator.pfnFree(allocator.pUserData, data);
 }
 
-DeviceData* AllocateDeviceData(const VkAllocationCallbacks& allocator) {
+DeviceData* AllocateDeviceData(
+    const VkAllocationCallbacks& allocator,
+    const DebugReportCallbackList& debug_report_callbacks) {
     void* data_mem = allocator.pfnAllocation(
         allocator.pUserData, sizeof(DeviceData), alignof(DeviceData),
         VK_SYSTEM_ALLOCATION_SCOPE_DEVICE);
     if (!data_mem)
         return nullptr;
 
-    return new (data_mem) DeviceData(allocator);
+    return new (data_mem) DeviceData(allocator, debug_report_callbacks);
 }
 
 void FreeDeviceData(DeviceData* data, const VkAllocationCallbacks& allocator) {
@@ -684,7 +686,8 @@
     if (result != VK_SUCCESS)
         return result;
 
-    DeviceData* data = AllocateDeviceData(data_allocator);
+    DeviceData* data = AllocateDeviceData(data_allocator,
+                                          instance_data.debug_report_callbacks);
     if (!data)
         return VK_ERROR_OUT_OF_HOST_MEMORY;
 
diff --git a/vulkan/libvulkan/driver.h b/vulkan/libvulkan/driver.h
index 2b1f545..9a3c141 100644
--- a/vulkan/libvulkan/driver.h
+++ b/vulkan/libvulkan/driver.h
@@ -82,14 +82,19 @@
 };
 
 struct DeviceData {
-    DeviceData(const VkAllocationCallbacks& alloc)
-        : opaque_api_data(), allocator(alloc), driver() {
+    DeviceData(const VkAllocationCallbacks& alloc,
+               const DebugReportCallbackList& debug_report_callbacks_)
+        : opaque_api_data(),
+          allocator(alloc),
+          debug_report_callbacks(debug_report_callbacks_),
+          driver() {
         hook_extensions.set(ProcHook::EXTENSION_CORE);
     }
 
     api::DeviceData opaque_api_data;
 
     const VkAllocationCallbacks allocator;
+    const DebugReportCallbackList& debug_report_callbacks;
 
     std::bitset<ProcHook::EXTENSION_COUNT> hook_extensions;