Входные вложения и мультисэмплинг - PullRequest
0 голосов
/ 06 ноября 2019

Я знаю, как использовать входные вложения и мультисэмплинг отдельно. Но я не понимаю, как эти 2 функции можно использовать вместе.

У меня есть проход рендеринга с 2 подпроходами и 4 вложениями:

  1. изображение, которое представляется;
  2. мультисэмплированное изображение с выборками = N, которое визуализируется и разрешается (в изображение # 1) во втором подпроцессе;
  3. мультисэмплированное изображение глубины с выборками = N, которое визуализируется в обоих подпроцессах;
  4. мультисэмплированное изображение с сэмплами = N, которое используется в качестве цветового вложения в первом подпроходе и входного вложения во втором подпроцессе.

Если N равно VK_SAMPLE_COUNT_1_BIT, все работаетхорошо. Но если N равно VK_SAMPLE_COUNT_4_BIT, у меня много ошибок:

  • vkCreateRenderPass возвращает код ошибки на Mi A1;
  • vkCreateRenderPass возвращает успех на Mi A2 lite, но я получаю многопредупреждений из слоев проверки:

    В наборе дескрипторов 0x28107 обнаружена следующая ошибка проверки во время vkCmdDraw (): дескриптор в привязке # 0 в глобальном индексе дескриптора 0 требует, чтобы связанное изображение имело VK_SAMPLE_COUNT_1_BIT, но получило VK_SAMPLE_COUNT_4_BIT. * 10221023 *

Вопросы:

  • Запрещено ли использовать мультисэмплированные входные вложения? Я не могу найти ничего об этом в спецификации.
  • Я могу преобразовать свое изображение # 4 в первом подпроходе в другое изображение (# 5), которое будет использоваться в качестве входного вложения во втором подпроходе. Это единственный способ решить эту проблему?

1 Ответ

0 голосов
/ 06 ноября 2019

Я не меняю шейдеры.

Тогда это ваша проблема. Статус мультисэмплинга текстуры является частью ее GLSL type . Вы не можете извлечь из входной текстуры мультисэмпла через subpassInput;Вы должны использовать subpassInputMS.

...