if (!isCoreDeviceExtension(context.getUsedApiVersion(), "VK_KHR_device_group"))
deviceExtensions.push_back("VK_KHR_device_group");
- deviceExtensions.push_back("VK_KHR_swapchain");
-
const std::vector<VkQueueFamilyProperties> queueProps = getPhysicalDeviceQueueFamilyProperties(vki, deviceGroupProps[devGroupIdx].physicalDevices[deviceIdx]);
for (size_t queueNdx = 0; queueNdx < queueProps.size(); queueNdx++)
{
};
const VkDeviceCreateInfo deviceCreateInfo =
{
- VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, //sType;
- &deviceGroupInfo, //pNext;
- (VkDeviceCreateFlags)0u, //flags
- 1, //queueRecordCount;
- &deviceQueueCreateInfo, //pRequestedQueues;
- 0, //layerCount;
- DE_NULL, //ppEnabledLayerNames;
- deUint32(deviceExtensions.size()), //extensionCount;
- &deviceExtensions[0], //ppEnabledExtensionNames;
- DE_NULL, //pEnabledFeatures;
+ VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, //sType;
+ &deviceGroupInfo, //pNext;
+ (VkDeviceCreateFlags)0u, //flags
+ 1, //queueRecordCount;
+ &deviceQueueCreateInfo, //pRequestedQueues;
+ 0, //layerCount;
+ DE_NULL, //ppEnabledLayerNames;
+ deUint32(deviceExtensions.size()), //extensionCount;
+ (deviceExtensions.empty() ? DE_NULL : &deviceExtensions[0]), //ppEnabledExtensionNames;
+ DE_NULL, //pEnabledFeatures;
};
Move<VkDevice> deviceGroup = createDevice(vki, deviceGroupProps[devGroupIdx].physicalDevices[deviceIdx], &deviceCreateInfo);
if (!isCoreDeviceExtension(m_context.getUsedApiVersion(), "VK_KHR_device_group"))
deviceExtensions.push_back("VK_KHR_device_group");
- deviceExtensions.push_back("VK_KHR_swapchain");
VkDeviceGroupDeviceCreateInfo deviceGroupInfo =
{
const VkDeviceCreateInfo deviceInfo =
{
- VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, // VkStructureType sType;
- &deviceGroupInfo, // const void* pNext;
- (VkDeviceCreateFlags)0, // VkDeviceCreateFlags flags;
- 1u , // uint32_t queueCreateInfoCount;
- &queueInfo, // const VkDeviceQueueCreateInfo* pQueueCreateInfos;
- 0u, // uint32_t enabledLayerCount;
- DE_NULL, // const char* const* ppEnabledLayerNames;
- deUint32(deviceExtensions.size()), // uint32_t enabledExtensionCount;
- &deviceExtensions[0], // const char* const* ppEnabledExtensionNames;
- &deviceFeatures, // const VkPhysicalDeviceFeatures* pEnabledFeatures;
+ VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, // VkStructureType sType;
+ &deviceGroupInfo, // const void* pNext;
+ (VkDeviceCreateFlags)0, // VkDeviceCreateFlags flags;
+ 1u , // uint32_t queueCreateInfoCount;
+ &queueInfo, // const VkDeviceQueueCreateInfo* pQueueCreateInfos;
+ 0u, // uint32_t enabledLayerCount;
+ DE_NULL, // const char* const* ppEnabledLayerNames;
+ deUint32(deviceExtensions.size()), // uint32_t enabledExtensionCount;
+ (deviceExtensions.empty() ? DE_NULL : &deviceExtensions[0]), // const char* const* ppEnabledExtensionNames;
+ &deviceFeatures, // const VkPhysicalDeviceFeatures* pEnabledFeatures;
};
m_logicalDevice = createDevice(instance, deviceGroupInfo.pPhysicalDevices[physDeviceIdx], &deviceInfo);
m_deviceDriver = de::MovePtr<DeviceDriver>(new DeviceDriver(instance, *m_logicalDevice));
if (!isCoreDeviceExtension(context.getUsedApiVersion(), "VK_KHR_device_group"))
deviceExtensions.push_back("VK_KHR_device_group");
- deviceExtensions.push_back("VK_KHR_swapchain");
const vector<VkPhysicalDeviceGroupProperties> deviceGroupProps = enumeratePhysicalDeviceGroups(instHelper.vki, *instHelper.instance);
};
const VkDeviceCreateInfo deviceCreateInfo =
{
- VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, //sType;
- &deviceGroupInfo, //pNext;
- (VkDeviceCreateFlags)0u, //flags
- 1, //queueRecordCount;
- &deviceQueueCreateInfo, //pRequestedQueues;
- 0, //layerCount;
- DE_NULL, //ppEnabledLayerNames;
- deUint32(deviceExtensions.size()), //enabledExtensionCount;
- &deviceExtensions[0], //ppEnabledExtensionNames;
- DE_NULL, //pEnabledFeatures;
+ VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, //sType;
+ &deviceGroupInfo, //pNext;
+ (VkDeviceCreateFlags)0u, //flags
+ 1, //queueRecordCount;
+ &deviceQueueCreateInfo, //pRequestedQueues;
+ 0, //layerCount;
+ DE_NULL, //ppEnabledLayerNames;
+ deUint32(deviceExtensions.size()), //enabledExtensionCount;
+ (deviceExtensions.empty() ? DE_NULL : &deviceExtensions[0]), //ppEnabledExtensionNames;
+ DE_NULL, //pEnabledFeatures;
};
Move<VkDevice> deviceGroup = createDevice(instHelper.vki, deviceGroupProps[devGroupIdx].physicalDevices[deviceIdx], &deviceCreateInfo);
const DeviceDriver vk (instHelper.vki, *deviceGroup);
if (!isCoreDeviceExtension(context.getUsedApiVersion(), "VK_KHR_device_group"))
deviceExtensions.push_back("VK_KHR_device_group");
- deviceExtensions.push_back("VK_KHR_swapchain");
-
const vector<VkPhysicalDeviceGroupProperties> deviceGroupProps = enumeratePhysicalDeviceGroups(instHelper.vki, *instHelper.instance);
const std::vector<VkQueueFamilyProperties> queueProps = getPhysicalDeviceQueueFamilyProperties(instHelper.vki, deviceGroupProps[devGroupIdx].physicalDevices[deviceIdx]);
for (size_t queueNdx = 0; queueNdx < queueProps.size(); queueNdx++)
};
const VkDeviceCreateInfo deviceCreateInfo =
{
- VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, //sType;
- &deviceGroupInfo, //pNext;
- (VkDeviceCreateFlags)0u, //flags
- 1, //queueRecordCount;
- &deviceQueueCreateInfo, //pRequestedQueues;
- 0, //layerCount;
- DE_NULL, //ppEnabledLayerNames;
- deUint32(deviceExtensions.size()), //enabledExtensionCount;
- &deviceExtensions[0], //ppEnabledExtensionNames;
- DE_NULL, //pEnabledFeatures;
+ VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, //sType;
+ &deviceGroupInfo, //pNext;
+ (VkDeviceCreateFlags)0u, //flags
+ 1, //queueRecordCount;
+ &deviceQueueCreateInfo, //pRequestedQueues;
+ 0, //layerCount;
+ DE_NULL, //ppEnabledLayerNames;
+ deUint32(deviceExtensions.size()), //enabledExtensionCount;
+ (deviceExtensions.empty() ? DE_NULL : &deviceExtensions[0]), //ppEnabledExtensionNames;
+ DE_NULL, //pEnabledFeatures;
};
Move<VkDevice> deviceGroup = createDevice(instHelper.vki, deviceGroupProps[devGroupIdx].physicalDevices[deviceIdx], &deviceCreateInfo);