Вывод Vulkan «волшебным образом» прилипает к окну вывода для vk::Format::eA2B10G10R10UnormPack32C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Вывод Vulkan «волшебным образом» прилипает к окну вывода для vk::Format::eA2B10G10R10UnormPack32

Сообщение Anonymous »

Делая свои первые шаги с Vulkan (в основном следуя шагам https://vulkan-tutorial.com/ для рендеринга «волшебного» цветового треугольника, с которого все начинают), мне удалось выполнить необходимые вызовы для рендеринга и отображения треугольник (ура...).
Но я заметил кое-что (по крайней мере для меня) очень удивительное:

Моя карта (достаточно старая GeForce GTX 670) позволяет мне использовать форматы изображений цепочки обмена
  • eB8G8R8A8Unorm
  • eB8G8R8A8Srgb
  • eA2B10G10R10UnormPack32
Текущий код рендеринга даже «более примитивен», чем приведен в руководстве, я просто визуализирую и показываю треугольник один раз (в качестве триггера я использую щелчок мыши). Весь код, от создания необходимых материалов Vulkan (экземпляр, цепочка обмена и т. д.) до рендеринга и отображения, выполняется синхронно и запускается только «один раз». Уровень проверки включен и, похоже, доволен тем, что я делаю (нет сообщений).
С 8-битными форматами все работает так, как ожидалось: треугольник отображается, при изменении масштаба или перемещении/затенении окна отображаемый контент в окне уничтожается или перезаписывается, как вы «ожидали».
Но в 10-битном формате содержимое окна не перезаписывается, когда, например, затемнение, а затем снова отображение окна. Еще более странно, что вывод остается при изменении размера окна.

Он соответственно растягивается или сжимается, если я визуализирую треугольник в окне маленьким, а затем увеличиваю размер, возникают артефакты на границах ясно видно, что, кажется, есть визуализированное изображение «каким-то образом все еще здесь», которое отображается в окне при каждой перерисовке. В итоге у меня появляется окно, показывающее красивый «трехцветный треугольник», что бы я ни делал...🤣

(Понятия не имею, возможно, это просто странное совпадение, что 10-битный цветовой формат показывает такое поведение, но это «наиболее информативное предположение», которое у меня есть.)
Это особенно удивительно для меня, поскольку все объекты Vulkan, созданные при рендеринге/отображении, выполняются, как сказано в синхронном вызов и освобождается в конце вызова.

По крайней мере, я так предполагаю, поскольку использовал подход с использованием объектов «vk::Unique...» из vulkan.hpp в стеке только для тех, которые выполняются деструкторы в конце вызова наверняка.
Таким образом, «ничего» по-прежнему не должно быть активным, что могло бы даже отобразить треугольник. Это какая-то странная причуда моего водителя или этого следовало ожидать?
Мне было бы очень интересно, знает ли кто-нибудь объяснение этому...

Подробнее здесь: https://stackoverflow.com/questions/787 ... 2b10g10r10
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»