Но я заметил кое-что (по крайней мере для меня) очень удивительное:
Моя карта (достаточно старая GeForce GTX 670) позволяет мне использовать форматы изображений цепочки обмена
- eB8G8R8A8Unorm
- eB8G8R8A8Srgb
- eA2B10G10R10UnormPack32
С 8-битными форматами все работает так, как ожидалось: треугольник отображается, при изменении масштаба или перемещении/затенении окна отображаемый контент в окне уничтожается или перезаписывается, как вы «ожидали».
Но в 10-битном формате содержимое окна не перезаписывается, когда, например, затемнение, а затем снова отображение окна. Еще более странно, что вывод остается при изменении размера окна.
Он соответственно растягивается или сжимается, если я визуализирую треугольник в окне маленьким, а затем увеличиваю размер, возникают артефакты на границах ясно видно, что, кажется, есть визуализированное изображение «каким-то образом все еще здесь», которое отображается в окне при каждой перерисовке. В итоге у меня появляется окно, показывающее красивый «трехцветный треугольник», что бы я ни делал...
(Понятия не имею, возможно, это просто странное совпадение, что 10-битный цветовой формат показывает такое поведение, но это «наиболее информативное предположение», которое у меня есть.)
Это особенно удивительно для меня, поскольку все объекты Vulkan, созданные при рендеринге/отображении, выполняются, как сказано в синхронном вызов и освобождается в конце вызова.
По крайней мере, я так предполагаю, поскольку использовал подход с использованием объектов «vk::Unique...» из vulkan.hpp в стеке только для тех, которые выполняются деструкторы в конце вызова наверняка.
Таким образом, «ничего» по-прежнему не должно быть активным, что могло бы даже отобразить треугольник. Это какая-то странная причуда моего водителя или этого следовало ожидать?
Мне было бы очень интересно, знает ли кто-нибудь объяснение этому...
Подробнее здесь: https://stackoverflow.com/questions/787 ... 2b10g10r10