Допустимо ли создавать два VkDevices из одного VkPhysicalDevice?

Я пишу оболочку C ++ для Vulkan API, поэтому хочу убедиться, что моя документация не противоречит тому, что говорит настоящий API.

Device device1 = physical_device.Connect(device_settings);
Device device2 = physical_device.Connect(device_settings);

Этот сценарий работает даже при работе со включенным стандартным слоем проверки LunarG. Но есть много вещей, которые в настоящее время проходят через слой проверки, несмотря на то, что они неверны. Итак, мой вопрос, это действительный сделать это?

0

Решение

Из спецификации в vkCreateDevice:

Несколько логических устройств могут быть созданы из одного физического устройства.

Не то чтобы это нужно было сказать, поскольку раздел документа «Действительное использование» прямо не запрещает это. Конечно, следующее предложение:

Создание логического устройства может завершиться неудачей из-за нехватки ресурсов, специфичных для устройства (в дополнение к другим ошибкам).

Таким образом, вы не можете создать бесконечное VkDevice объекты из того же VkPhysicalDevice, Если реализация не хочет поддерживать более одного, это не обязательно.

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]