MCPcopy Create free account
hub / github.com/KhronosGroup/Vulkan-ValidationLayers / TEST_F

Function TEST_F

tests/unit/protected_memory.cpp:21–75  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

19class NegativeProtectedMemory : public VkLayerTest {};
20
21TEST_F(NegativeProtectedMemory, Queue) {
22 TEST_DESCRIPTION("Try creating queue without VK_QUEUE_PROTECTED_BIT capability");
23 SetTargetApiVersion(VK_API_VERSION_1_1);
24
25 AddRequiredExtensions(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME);
26 RETURN_IF_SKIP(InitFramework());
27
28 VkPhysicalDeviceProtectedMemoryFeatures protected_features = vku::InitStructHelper();
29 GetPhysicalDeviceFeatures2(protected_features);
30
31 if (protected_features.protectedMemory == VK_FALSE) {
32 GTEST_SKIP() << "test requires protectedMemory";
33 }
34
35 // Try to find a protected queue family type
36 bool unprotected_queue = false;
37 uint32_t queue_family_index = 0;
38 uint32_t queue_family_count = 0;
39 vk::GetPhysicalDeviceQueueFamilyProperties(Gpu(), &queue_family_count, nullptr);
40 std::vector<VkQueueFamilyProperties> queue_families(queue_family_count);
41 vk::GetPhysicalDeviceQueueFamilyProperties(Gpu(), &queue_family_count, queue_families.data());
42
43 // need to find a queue without protected support
44 for (size_t i = 0; i < queue_families.size(); i++) {
45 if ((queue_families[i].queueFlags & VK_QUEUE_PROTECTED_BIT) == 0) {
46 unprotected_queue = true;
47 queue_family_index = i;
48 break;
49 }
50 }
51
52 if (unprotected_queue == false) {
53 GTEST_SKIP() << "test requires queue without VK_QUEUE_PROTECTED_BIT";
54 }
55
56 float queue_priority = 1.0;
57 VkDeviceQueueCreateInfo queue_create_info = vku::InitStructHelper();
58 queue_create_info.flags = VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT;
59 queue_create_info.queueFamilyIndex = queue_family_index;
60 queue_create_info.queueCount = 1;
61 queue_create_info.pQueuePriorities = &queue_priority;
62
63 VkDevice test_device = VK_NULL_HANDLE;
64 VkDeviceCreateInfo device_create_info = vku::InitStructHelper(&protected_features);
65 device_create_info.flags = 0;
66 device_create_info.pQueueCreateInfos = &queue_create_info;
67 device_create_info.queueCreateInfoCount = 1;
68 device_create_info.pEnabledFeatures = nullptr;
69 device_create_info.enabledLayerCount = 0;
70 device_create_info.enabledExtensionCount = 0;
71
72 m_errorMonitor->SetDesiredError("VUID-VkDeviceQueueCreateInfo-flags-06449");
73 vk::CreateDevice(Gpu(), &device_create_info, nullptr, &test_device);
74 m_errorMonitor->VerifyFound();
75}
76
77TEST_F(NegativeProtectedMemory, Submit) {
78 TEST_DESCRIPTION("Setting protectedSubmit with a queue not created with VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT");

Callers

nothing calls this directly

Calls 15

CreateCommandPoolFunction · 0.85
AllocateMemoryFunction · 0.85
QueueSubmitFunction · 0.85
BindBufferMemoryFunction · 0.85
BindImageMemoryFunction · 0.85
GetDeviceQueueFunction · 0.85
GetDeviceQueue2Function · 0.85

Tested by

no test coverage detected