LINUX.ORG.RU

Vulkan-HPP ErrorOutOfDateKHR при изменении размера

 ,


0

2

имеется такой код
использую Vulkan-HPP, при изменении размера окна начинает сыпаться ErrorOutOfDateKHR — я чего то не делаю того что нужно сделать?

использую XCB либу для доступа к иксам и соответственно VkXCBsurface .
в мейне у меня loop:

for ( auto event = xcb_wait_for_event( xcbConnect );
          event != nullptr;
          event = xcb_wait_for_event( xcbConnect ) ) {
        switch ( event->response_type & ~0x80 ) {
        case XCB_EXPOSE:
            renderer.draw();
            //xcb_flush( xcbConnect );
            break;
        case XCB_KEY_PRESS:
            if ( reinterpret_cast< xcb_key_press_event_t * >( event )
                 ->detail == 24 ){
                xcb_destroy_window(xcbConnect, window);
                xcb_disconnect(xcbConnect);
                std::abort();
            }
        }
        delete event;
    }


я же верно понимаю, что swapchain и vkImages надо инициализировать однажды для вывода закрашенного пространства?
или же надо после каждой draw() и/или изменения размера окна пересоздавать swapchain и vkImages?

если запихнуть создание объекта рендерера прямо перед draw() — то вроде даже будто хоть и криво но работает, однако в один момент выскакивает ошибка инициализации физического устройства, да и ессесна сильно грузит ЦПУ.

в общем наверна тут еще один вопрос сразу же напрашивается — как реагировать внутри рендерера на ресайз окна средствами Vulkan API?

★★

Последнее исправление: safocl (всего исправлений: 1)

добавил окну XCB_EVENT_MASK_RESIZE_REDIRECT евент маску и начал отслеживать в мейн loop XCB_RESIZE_REQUEST — как раз то что нужно как я понимаю — поскольку начинает делаться то чо я там указываю если изменять размер окна.
Наверно надо по данному событию пересоздавать свапчейн ну и соответсвенно перевыделять имейджи?
просто думал енто все будет внутри Vulkan API

safocl ★★
() автор топика
Ответ на: комментарий от robus

отлично — спс — значит я был на верном пути.
тоже сам набрел на ентот сайт но читаю сначала.

safocl ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.