vulkan/wsi: check for dri3 buffer initialization failure
mesa currently ignored whether dri3 pixmap initialization succeeds resulting in situations where the swapchain appears to be initialized correctly only to be found to be in an invalid state soon after.
Functionally this includes two changes:
- If DRI3
pixmap_from_buffer(s)
failsVK_ERROR_INITIALIZATION_FAILED
is returned instead ofVK_SUCCESS
- Use of the blocking
xcb_request_checked
instead of the non-blockingxcb_discard_reply
. Howeverxcb_request_checked
is used in other places of the initialization code and this code only runs during swapchain initialization so a possible delay is acceptable.
Since the purpose of these functions is to create a pixmap resource from a dma_buf an error indicates that the pixmap has not been created, so the pixmap does not need to be freed.
Closes: #8427 (closed)