Vulkan: VK_PRESENT_MODE_MAILBOX_KHR с двумя изображениями, эквивалентными VK_PRESENT_MODE_FIFO_KHR?

Я написал некоторый код Vulkan и думаю, что сталкиваюсь с некоторыми ошибками драйверов (Linux, mesa 13, Intel). Водитель предлагает только VK_PRESENT_MODE_MAILBOX_KHR (нарушение спецификации). У меня сложилось впечатление, что если я создам свою цепочку обмена с imageCount, равным 2, результирующее поведение должно быть эквивалентно VK_PRESENT_MODE_FIFO_KHR. Я полагаю, что представлено одно изображение, поэтому цепочка обмена даст мне изображение и просигнализирует о его доступности (vkAcquireNextImageKHR с семафором), если другое изображение было отправлено. Затем он поменяет, какое изображение будет представлено при следующем завершении vblank. Однако у меня очень высокая частота кадров, поэтому понятно, что на самом деле представлены не все изображения. Возможно ли, что нынешний движок делает какой-то блит во внутреннюю память и практически сразу выдает образ?


person MaVo159    schedule 20.11.2016    source источник


Ответы (1)


Оказывается, я упустил тот факт, что количество изображений, которое вы предоставляете при создании цепочки обмена, является минимальным. Таким образом, драйвер Intel объявляет, что ему нужно как минимум 2 изображения, но в любом случае создаст 4 или более, независимо от того, что вы ему говорите. Как странно.

person Community    schedule 20.11.2016