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;