позвольте мне предвосхитить это, я только что проверил это на моей карте (AMD r9 380).
vkGetPhysicalDeviceQueueFamilyProperties()
находит 3 QueueFamilies.Один содержит все обычные биты (графика, вычисления, передача), один отсутствует графика и один отсутствует вычисления и графика.Я принял его за то, что отсутствующей графикой является семейство очереди вычислений, а одной отсутствующей вычислительной информацией и графикой является семейство очереди передачи.
vkGetDeviceQueue(instance, computeFamily, 0, &pComputeQueue);
экземпляр - это VkInstance, computeFamily - значение индекса uint32_t, 0являющийся индексом запрашиваемой очереди, а pComputeQueue является VkQueue.Попытка запустить эту функцию с этими параметрами приводит к тому, что Vulkan01.exe: 0xC0000005: Access violation writing location 0x0000000000000000.
vkGetDeviceQueue()
прекрасно возвращается для графики, презентации (которая возвращает то же самое, что и графика в моей реализации, как и ожидалось) и передачи.
Итак, вопрос: почему я получаю сообщение об ошибке при попытке вернуть дескриптор одной из моих перечисленных Семейств очередей?Это скорее всего моя карта?(некоторые примеры Sascha Williams не будут работать и на моем компьютере, поэтому я предполагаю, что моя карта слишком старая для некоторых функций?)