loader: Add support for debug report
diff --git a/tests/layer_validation_tests.cpp b/tests/layer_validation_tests.cpp
index 5c69e3c..e9cf958 100644
--- a/tests/layer_validation_tests.cpp
+++ b/tests/layer_validation_tests.cpp
@@ -152,6 +152,13 @@
std::vector<const char *> device_extension_names;
instance_extension_names.push_back(DEBUG_REPORT_EXTENSION_NAME);
+ instance_extension_names.push_back("MemTracker");
+ instance_extension_names.push_back("ObjectTracker");
+ instance_extension_names.push_back("Threading");
+
+ device_extension_names.push_back("MemTracker");
+ device_extension_names.push_back("ObjectTracker");
+ device_extension_names.push_back("Threading");
// Force layer output level to be >= WARNING so that we catch those messages but ignore others
setLayerOptionEnum("MemTrackerReportLevel", "VK_DBG_LAYER_LEVEL_WARNING");
@@ -806,34 +813,6 @@
}
#endif
#if OBJECT_TRACKER_TESTS
-TEST_F(VkLayerTest, WaitForUnsubmittedFence)
-{
- vk_testing::Fence testFence;
- VkFlags msgFlags;
- std::string msgString;
- VkFenceCreateInfo fenceInfo = {};
- fenceInfo.sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO;
- fenceInfo.pNext = NULL;
-
- ASSERT_NO_FATAL_FAILURE(InitState());
- testFence.init(*m_device, fenceInfo);
- m_errorMonitor->ClearState();
- vkGetFenceStatus(m_device->device(),testFence.obj());
- msgFlags = m_errorMonitor->GetState(&msgString);
- ASSERT_TRUE(msgFlags & VK_DBG_REPORT_ERROR_BIT) << "Did not receive an error asking for status of unsubmitted fence";
- if (!strstr(msgString.c_str(),"Status Requested for Unsubmitted Fence")) {
- FAIL() << "Error received was not Status Requested for Unsubmitted Fence";
- }
-
- VkFence fences[1] = {testFence.obj()};
- m_errorMonitor->ClearState();
- vkWaitForFences(m_device->device(), 1, fences, VK_TRUE, 0);
- msgFlags = m_errorMonitor->GetState(&msgString);
- ASSERT_TRUE(msgFlags & VK_DBG_REPORT_ERROR_BIT) << "Did not receive an error for waiting for unsubmitted fence";
- if (!strstr(msgString.c_str(),"Waiting for Unsubmitted Fence")) {
- FAIL() << "Error received was not 'Waiting for Unsubmitted Fence'";
- }
-}
TEST_F(VkLayerTest, GetObjectInfoMismatchedType)
{
diff --git a/tests/vkrenderframework.cpp b/tests/vkrenderframework.cpp
index a658bbe..f206d06 100644
--- a/tests/vkrenderframework.cpp
+++ b/tests/vkrenderframework.cpp
@@ -120,7 +120,7 @@
VK_DBG_REPORT_ERROR_BIT | VK_DBG_REPORT_WARN_BIT,
dbgFunction,
userData,
- &m_msgCallback);
+ &m_globalMsgCallback);
ASSERT_VK_SUCCESS(err);
}
}
@@ -149,6 +149,18 @@
// ASSERT_NE(obj_name, (PFN_vkDbgCreateMsgCallback) NULL) << "Did not get function pointer for DbgCreateMsgCallback";
// obj_name()
m_device = new VkDeviceObj(0, objs[0], device_extensions);
+
+ /* Now register callback on device */
+ if (0) {
+ if (m_dbgCreateMsgCallback) {
+ err = m_dbgCreateMsgCallback(this->inst,
+ VK_DBG_REPORT_ERROR_BIT | VK_DBG_REPORT_WARN_BIT,
+ dbgFunction,
+ userData,
+ &m_devMsgCallback);
+ ASSERT_VK_SUCCESS(err);
+ }
+ }
m_device->get_device_queue();
m_depthStencil = new VkDepthStencilObj();
diff --git a/tests/vkrenderframework.h b/tests/vkrenderframework.h
index 024bdba..e761001 100644
--- a/tests/vkrenderframework.h
+++ b/tests/vkrenderframework.h
@@ -129,7 +129,8 @@
VkDepthStencilObj *m_depthStencil;
VkMemoryRefManager m_mem_ref_mgr;
PFN_vkDbgCreateMsgCallback m_dbgCreateMsgCallback;
- VkDbgMsgCallback m_msgCallback;
+ VkDbgMsgCallback m_globalMsgCallback;
+ VkDbgMsgCallback m_devMsgCallback;
/*
* SetUp and TearDown are called by the Google Test framework