TGViewer
Random Rust Dev Random Rust Dev @random_rust_dev · 472 subscribers
Post #139 448
Что делать, если хотя бы одна из размерностей окна стала 0?
В вулкане есть требование, что бы image и swapchain были больше 0 по всем осям.

А еще есть требование, что бы размер swapchain-а был между текущими min и max, которые можно получить у девайса.
Которые могут быть с нулями.

Как тогда создать swapchain? Или пересоздать при изменении размера.

mev предлагает пользователю API Surface, который прячет все ужасы вулканского WSI, включая семафоры, пересоздание swapchain-ов с использование механизма retire, SUBOPTIMAL и OUT_OF_DATE ситуации.
При запросе следующего фрейма mev::Surface может пересоздать swapchain на лету если тот устарел... или его вообще еще нет.
А так же удалит старые, когда можно будет - спасибо VK_EXT_swapchain_maintenance1 - без ожидания остановки всего девайса.

Итак, swapchain безнадежно устарел, пора пересоздать. А максимальная высота и/или ширина сейчас 0. Что делать?
Отдавать ошибку пользователю? Как он ее будет хэндлить? Не хотелось бы вообще думать об этом.

Может создать image размера 1х1 и притвориться, что это и есть картинка для этого surface? А почему бы и нет. Как пользователь узнает? Surface же в 0 пикселей.
More from @random_rust_dev
  1. Sep 20, 2026И всё же ИИ отличная штука. Никакой поисковик не мог мне дать ответ на вопрос, почему шурш…
  2. Sep 20, 2026Скелетор злодей, но не врун
  3. Sep 18, 2026Я попросил GPT Astra повысить производительность Alkahest. GPT смог прогнать профайлер и у…
  4. Sep 16, 2026PC gaming with extra steps
  5. Sep 14, 2026Сегодня снова загадка. Вот в этом коде будет ли соптимизирован bound check в последнем выр…
  6. Sep 13, 2026Чуть не забыл. Поздравлчю всех с днём промпт-инженера!
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →