Вулкан: Разница между экземплярами и расширениями устройств? - PullRequest
0 голосов
/ 29 октября 2018

Vulkan имеет экземпляр и устройство расширения, но я нигде не могу найти информацию о том, в чем разница между ними. Что это означает точно, если что-то является расширением устройства или расширением экземпляра? Почему VK_KHR_external_memory расширение устройства и VK_KHR_external_memory_capabilities расширение экземпляра? Почему это не просто единая система расширений?

1 Ответ

0 голосов
/ 29 октября 2018

Разница между экземплярами и расширениями устройств - это разница между экземплярами и устройствами.

Экземпляр Vulkan - это фрагмент кода, который используется для настройки устройств. Он имеет дело с перечислением VkPhysicalDevice s и запросом их свойств, а также с призывом создать VkDevice s сам.

Устройство Vulkan предназначено для работы с системами визуализации Vulkan.

Расширения устройства относятся к поведению конкретного VkDevice объекта, который был создан с активированным этим расширением. Таким образом, это расширение не может описывать поведение вещей, которые происходят до создания устройства .

Например, внешняя память имеет очевидные последствия для системы рендеринга. Так что это расширение устройства. Тем не менее, конкретные VkPhysicalDevice объекты имеют различные свойства, которые могут быть запрошены в отношении их функциональности внешней памяти. Вам нужно иметь возможность запросить эти свойства до того, как вы создадите устройство, потому что, если устройство не предоставляет необходимые свойства, нет никакого смысла создавать устройство вообще. Или, по крайней мере, сделать устройство с этим расширением активным.

Но расширения устройства определяют поведение устройства . Если у вас еще нет устройства, потому что вы его не создали, потому что вы пытаетесь решить, создавать ли его вообще ... что вы делаете?

Ну, это поведение должно быть расширением экземпляра. Он расширяет часть Vulkan, которая имеет дело с , настроенным для устройств, но не управляет поведением самого устройства.

...