@@ -6939,6 +6939,7 @@ VK_DESTROY
69396939 sci.hinstance = (HINSTANCE)GetModuleHandle (NULL );
69406940 sci.hwnd = (HWND)m_nwh;
69416941 result = vkCreateWin32SurfaceKHR (instance, &sci, allocatorCb, &m_surface);
6942+ BX_WARN (VK_SUCCESS == result, " vkCreateWin32SurfaceKHR failed %d: %s." , result, getName (result) );
69426943 }
69436944 }
69446945#elif BX_PLATFORM_ANDROID
@@ -6951,57 +6952,61 @@ VK_DESTROY
69516952 sci.flags = 0 ;
69526953 sci.window = (ANativeWindow*)m_nwh;
69536954 result = vkCreateAndroidSurfaceKHR (instance, &sci, allocatorCb, &m_surface);
6955+ BX_WARN (VK_SUCCESS == result, " vkCreateAndroidSurfaceKHR failed %d: %s." , result, getName (result) );
69546956 }
69556957 }
69566958#elif BX_PLATFORM_LINUX
69576959 {
6958- if (g_platformData.type == bgfx::NativeWindowHandleType::Wayland)
6960+ if (g_platformData.type == bgfx::NativeWindowHandleType::Wayland
6961+ && s_extension[Extension::KHR_wayland_surface].m_supported
6962+ && NULL != vkCreateWaylandSurfaceKHR
6963+ )
69596964 {
6960- BGFX_FATAL (s_extension[Extension::KHR_wayland_surface].m_supported , Fatal::UnableToInitialize, VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME " not supported" );
6961- BGFX_FATAL (NULL != vkCreateWaylandSurfaceKHR, Fatal::UnableToInitialize, " vkCreateWaylandSurfaceKHR == 0" );
69626965 VkWaylandSurfaceCreateInfoKHR sci;
69636966 sci.sType = VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR;
69646967 sci.pNext = NULL ;
69656968 sci.flags = 0 ;
69666969 sci.display = (wl_display*)g_platformData.ndt ;
69676970 sci.surface = (wl_surface*)m_nwh;
69686971 result = vkCreateWaylandSurfaceKHR (instance, &sci, allocatorCb, &m_surface);
6972+ BX_WARN (VK_SUCCESS == result, " vkCreateWaylandSurfaceKHR failed %d: %s." , result, getName (result) );
69696973 }
69706974 else
69716975 {
6972- if (s_extension[Extension::KHR_xlib_surface].m_supported )
6976+ if (s_extension[Extension::KHR_xlib_surface].m_supported
6977+ && NULL != vkCreateXlibSurfaceKHR
6978+ )
69736979 {
6974- BGFX_FATAL (NULL != vkCreateXlibSurfaceKHR, Fatal::UnableToInitialize, " vkCreateXlibSurfaceKHR == 0" )
69756980 VkXlibSurfaceCreateInfoKHR sci;
69766981 sci.sType = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR;
69776982 sci.pNext = NULL ;
69786983 sci.flags = 0 ;
69796984 sci.dpy = (Display*)g_platformData.ndt ;
69806985 sci.window = (Window)m_nwh;
69816986 result = vkCreateXlibSurfaceKHR (instance, &sci, allocatorCb, &m_surface);
6987+ BX_WARN (VK_SUCCESS == result, " vkCreateXlibSurfaceKHR failed %d: %s." , result, getName (result) );
69826988 }
69836989
6984- if (VK_SUCCESS != result && s_extension[Extension::KHR_xcb_surface].m_supported )
6990+ if (VK_SUCCESS != result
6991+ && s_extension[Extension::KHR_xcb_surface].m_supported
6992+ && NULL != vkCreateXcbSurfaceKHR
6993+ )
69856994 {
69866995 void * xcbdll = bx::dlopen (" libX11-xcb.so.1" );
69876996
6988- if (NULL != xcbdll
6989- && NULL != vkCreateXcbSurfaceKHR)
6997+ if (NULL != xcbdll)
69906998 {
69916999 typedef xcb_connection_t * (*PFN_XGETXCBCONNECTION)(Display*);
69927000 PFN_XGETXCBCONNECTION XGetXCBConnection = (PFN_XGETXCBCONNECTION)bx::dlsym (xcbdll, " XGetXCBConnection" );
69937001
6994- union { void * ptr; xcb_window_t window; } cast = { m_nwh };
6995-
6996- BGFX_FATAL (NULL != vkCreateXcbSurfaceKHR, Fatal::UnableToInitialize, " vkCreateXcbSurfaceKHR == 0" )
6997-
69987002 VkXcbSurfaceCreateInfoKHR sci;
69997003 sci.sType = VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR;
70007004 sci.pNext = NULL ;
70017005 sci.flags = 0 ;
70027006 sci.connection = XGetXCBConnection ( (Display*)g_platformData.ndt );
7003- sci.window = cast. window ;
7007+ sci.window = bx::narrowCast< xcb_window_t >( uintptr_t (m_nwh) ) ;
70047008 result = vkCreateXcbSurfaceKHR (instance, &sci, allocatorCb, &m_surface);
7009+ BX_WARN (VK_SUCCESS == result, " vkCreateXcbSurfaceKHR failed %d: %s." , result, getName (result) );
70057010
70067011 bx::dlclose (xcbdll);
70077012 }
@@ -7046,6 +7051,7 @@ VK_DESTROY
70467051 sci.flags = 0 ;
70477052 sci.pView = (__bridge void *)layer;
70487053 result = vkCreateMacOSSurfaceMVK (instance, &sci, allocatorCb, &m_surface);
7054+ BX_WARN (VK_SUCCESS == result, " vkCreateMacOSSurfaceMVK failed %d: %s." , result, getName (result) );
70497055 }
70507056 }
70517057#elif BX_PLATFORM_NX
@@ -7057,6 +7063,7 @@ VK_DESTROY
70577063 sci.flags = 0 ;
70587064 sci.window = m_nwh;
70597065 result = vkCreateViSurfaceNN (instance, &sci, allocatorCb, &m_surface);
7066+ BX_WARN (VK_SUCCESS == result, " vkCreateViSurfaceNN failed %d: %s." , result, getName (result) );
70607067 }
70617068#else
70627069# error "Figure out KHR surface..."
0 commit comments