Различные подходы к созданию очереди в Вулкане - PullRequest
0 голосов
/ 27 апреля 2020

Скажем, я создаю приложение Vulkan, которое является одновременно графически сложным и требует больших вычислительных ресурсов. Скажем, я решил разделить свою программу и иметь отдельные очереди для графических команд и команд вычислений. Легко запросить семейства очередей для флагов VK_QUEUE_GRAPHICS_BIT или VK_QUEUE_COMPUTE_BIT, но есть еще несколько факторов, которые следует учитывать. Предположим, у меня есть 2 графических процессора, каждый из которых имеет несколько семейств очередей. Какой вариант даст мне наибольшую производительность (при условии, что каждый графический процессор имеет одинаковое качество, а другой - не интегрированный графический процессор doodoo intel):

  1. Выбор одного семейства очередей, которое поддерживает как графику, так и вычисления, и создание 2 отдельных очередей из этого семейства очередей.
  2. Выбор 2 разных семейств очередей (оба из одного и того же графического процессора), одно из которых поддерживает графику, в то время как другое поддерживает вычисления, и создание одной очереди из каждой из этих очередей семейства.
  3. Выбор одной очереди из одного семейства очередей из каждого графического процессора, один отвечает за графику, а другой отвечает за вычисления.
...