std::vector<VkQueueFamilyProperties2> queueFamilyProperties2 (queueFamilyPropertyCount);
std::vector<VkQueueFamilyGlobalPriorityPropertiesKHR> globalPriorityProperties (queueFamilyPropertyCount);
- for (deUint32 ndx = 0; ndx < queueFamilyPropertyCount; ndx++)
+ if (useKhrGlobalPriority)
{
- globalPriorityProperties[ndx].sType = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR;
- globalPriorityProperties[ndx].pNext = DE_NULL;
- queueFamilyProperties2[ndx].sType = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2;
- queueFamilyProperties2[ndx].pNext = &globalPriorityProperties[ndx];
- }
+ for (deUint32 ndx = 0; ndx < queueFamilyPropertyCount; ndx++)
+ {
+ globalPriorityProperties[ndx].sType = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR;
+ globalPriorityProperties[ndx].pNext = DE_NULL;
+ queueFamilyProperties2[ndx].sType = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2;
+ queueFamilyProperties2[ndx].pNext = &globalPriorityProperties[ndx];
+ }
- instanceDriver.getPhysicalDeviceQueueFamilyProperties2(physicalDevice, &queueFamilyPropertyCount, queueFamilyProperties2.data());
- TCU_CHECK((size_t)queueFamilyPropertyCount == queueFamilyProperties2.size());
+ instanceDriver.getPhysicalDeviceQueueFamilyProperties2(physicalDevice, &queueFamilyPropertyCount, queueFamilyProperties2.data());
+ TCU_CHECK((size_t)queueFamilyPropertyCount == queueFamilyProperties2.size());
+ }
- std::vector<const char*> enabledExtensions = { "VK_EXT_global_priority", "VK_EXT_global_priority_query" };
+ std::vector<const char*> enabledExtensions = { "VK_EXT_global_priority" };
if (useKhrGlobalPriority)
enabledExtensions = { "VK_KHR_global_priority" };
const VkDeviceCreateInfo deviceCreateInfo =
{
- VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, //sType;
- &globalPriorityQueryFeatures, //pNext;
- (VkDeviceCreateFlags)0u, //flags;
- 1, //queueRecordCount;
- &queueCreateInfo, //pRequestedQueues;
- 0, //layerCount;
- DE_NULL, //ppEnabledLayerNames;
- (deUint32)enabledExtensions.size(), //extensionCount;
- enabledExtensions.data(), //ppEnabledExtensionNames;
- DE_NULL, //pEnabledFeatures;
+ VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, //sType;
+ useKhrGlobalPriority ? &globalPriorityQueryFeatures : DE_NULL, //pNext;
+ (VkDeviceCreateFlags)0u, //flags;
+ 1, //queueRecordCount;
+ &queueCreateInfo, //pRequestedQueues;
+ 0, //layerCount;
+ DE_NULL, //ppEnabledLayerNames;
+ (deUint32)enabledExtensions.size(), //extensionCount;
+ enabledExtensions.data(), //ppEnabledExtensionNames;
+ DE_NULL, //pEnabledFeatures;
};
const bool mayBeDenied = globalPriority > VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT;
- const bool mustFail = globalPriority < globalPriorityProperties[0].priorities[0] || globalPriority > globalPriorityProperties[0].priorities[globalPriorityProperties[0].priorityCount - 1];
+ const bool mustFail = useKhrGlobalPriority && (globalPriority < globalPriorityProperties[0].priorities[0] || globalPriority > globalPriorityProperties[0].priorities[globalPriorityProperties[0].priorityCount - 1]);
try
{