Hello community, here is the log from the commit of package vulkan-tools for openSUSE:Factory checked in at 2018-12-04 20:57:56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/vulkan-tools (Old) and /work/SRC/openSUSE:Factory/.vulkan-tools.new.19453 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "vulkan-tools" Tue Dec 4 20:57:56 2018 rev:2 rq:653799 version:1.1.92 Changes: -------- --- /work/SRC/openSUSE:Factory/vulkan-tools/vulkan-tools.changes 2018-11-28 11:12:56.722936877 +0100 +++ /work/SRC/openSUSE:Factory/.vulkan-tools.new.19453/vulkan-tools.changes 2018-12-04 20:58:14.432592836 +0100 @@ -1,0 +2,7 @@ +Sun Dec 2 15:12:52 UTC 2018 - Jan Engelhardt <[email protected]> + +- Update to new upstream release 1.1.92 + * vulkaninfo: Add wayland surface extension support + * vulkaninfo: Describe multiple surface extensions + +------------------------------------------------------------------- Old: ---- Vulkan-Tools-1.1.91.g3.tar.xz New: ---- Vulkan-Tools-1.1.92.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ vulkan-tools.spec ++++++ --- /var/tmp/diff_new_pack.z0aOsU/_old 2018-12-04 20:58:15.040592165 +0100 +++ /var/tmp/diff_new_pack.z0aOsU/_new 2018-12-04 20:58:15.040592165 +0100 @@ -12,14 +12,14 @@ # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. -# Please submit bugfixes or comments via http://bugs.opensuse.org/ +# Please submit bugfixes or comments via https://bugs.opensuse.org/ # -%define version_unconverted 1.1.91.g3 +%define version_unconverted 1.1.92 Name: vulkan-tools -Version: 1.1.91.g3 +Version: 1.1.92 Release: 0 Summary: Reference ICD loader for Vulkan License: Apache-2.0 @@ -31,9 +31,9 @@ BuildRequires: cmake >= 2.8.11 BuildRequires: gcc-c++ >= 4.8 BuildRequires: glslang-devel -BuildRequires: pkgconfig(vulkan) BuildRequires: pkg-config BuildRequires: python3-base +BuildRequires: pkgconfig(vulkan) BuildRequires: pkgconfig(x11) BuildRequires: pkgconfig(xcb) Obsoletes: vulkan < %version-%release @@ -52,7 +52,7 @@ %build mkdir -p glslang/bin -ln -sv /usr/bin/glslangValidator glslang/bin/ +ln -fsv /usr/bin/glslangValidator glslang/bin/ %cmake make %{?_smp_mflags} ++++++ Vulkan-Tools-1.1.91.g3.tar.xz -> Vulkan-Tools-1.1.92.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Tools-1.1.91.g3/build-android/vulkan-headers_revision_android new/Vulkan-Tools-1.1.92/build-android/vulkan-headers_revision_android --- old/Vulkan-Tools-1.1.91.g3/build-android/vulkan-headers_revision_android 2018-11-09 23:38:46.000000000 +0100 +++ new/Vulkan-Tools-1.1.92/build-android/vulkan-headers_revision_android 2018-11-20 01:10:06.000000000 +0100 @@ -1 +1 @@ -afd12b7bdcd63bf4d8d669d6e06a368a0954b6e3 +114c3546e195819bd53a34b39f5194b2989a5b12 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Tools-1.1.91.g3/cube/cube.c new/Vulkan-Tools-1.1.92/cube/cube.c --- old/Vulkan-Tools-1.1.91.g3/cube/cube.c 2018-11-09 23:38:46.000000000 +0100 +++ new/Vulkan-Tools-1.1.92/cube/cube.c 2018-11-20 01:10:06.000000000 +0100 @@ -60,8 +60,8 @@ #define BILLION 1000000000L #define DEMO_TEXTURE_COUNT 1 -#define APP_SHORT_NAME "cube" -#define APP_LONG_NAME "The Vulkan Cube Demo Program" +#define APP_SHORT_NAME "vkcube" +#define APP_LONG_NAME "Vulkan Cube" // Allow a maximum of two outstanding presentation operations. #define FRAME_LAG 2 @@ -99,20 +99,20 @@ #include <android/log.h> #define ERR_EXIT(err_msg, err_class) \ do { \ - ((void)__android_log_print(ANDROID_LOG_INFO, "Cube", err_msg)); \ + ((void)__android_log_print(ANDROID_LOG_INFO, "Vulkan Cube", err_msg)); \ exit(1); \ } while (0) #ifdef VARARGS_WORKS_ON_ANDROID void DbgMsg(const char *fmt, ...) { va_list va; va_start(va, fmt); - __android_log_print(ANDROID_LOG_INFO, "Cube", fmt, va); + __android_log_print(ANDROID_LOG_INFO, "Vulkan Cube", fmt, va); va_end(va); } #else // VARARGS_WORKS_ON_ANDROID #define DbgMsg(fmt, ...) \ do { \ - ((void)__android_log_print(ANDROID_LOG_INFO, "Cube", fmt, ##__VA_ARGS__)); \ + ((void)__android_log_print(ANDROID_LOG_INFO, "Vulkan Cube", fmt, ##__VA_ARGS__)); \ } while (0) #endif // VARARGS_WORKS_ON_ANDROID #else @@ -3707,7 +3707,7 @@ } #if defined(ANDROID) - ERR_EXIT("Usage: cube [--validate]\n", "Usage"); + ERR_EXIT("Usage: vkcube [--validate]\n", "Usage"); #else fprintf(stderr, "Usage:\n %s\t[--use_staging] [--validate] [--validate-checks-disabled] [--break]\n" @@ -3798,7 +3798,7 @@ } demo.connection = hInstance; - strncpy(demo.name, "cube", APP_NAME_STR_LEN); + strncpy(demo.name, "Vulkan Cube", APP_NAME_STR_LEN); demo_create_window(&demo); demo_init_vk_swapchain(&demo); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Tools-1.1.91.g3/cube/cube.cpp new/Vulkan-Tools-1.1.92/cube/cube.cpp --- old/Vulkan-Tools-1.1.91.g3/cube/cube.cpp 2018-11-09 23:38:46.000000000 +0100 +++ new/Vulkan-Tools-1.1.92/cube/cube.cpp 2018-11-20 01:10:06.000000000 +0100 @@ -45,7 +45,7 @@ #define VERIFY(x) ((void)(x)) #endif -#define APP_SHORT_NAME "cube" +#define APP_SHORT_NAME "vkcube" #ifdef _WIN32 #define APP_NAME_STR_LEN 80 #endif @@ -2934,7 +2934,7 @@ } demo.connection = hInstance; - strncpy(demo.name, "cube", APP_NAME_STR_LEN); + strncpy(demo.name, "Vulkan Cube", APP_NAME_STR_LEN); demo.create_window(); demo.init_vk_swapchain(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Tools-1.1.91.g3/cube/macOS/cube/cube.cmake new/Vulkan-Tools-1.1.92/cube/macOS/cube/cube.cmake --- old/Vulkan-Tools-1.1.91.g3/cube/macOS/cube/cube.cmake 2018-11-09 23:38:46.000000000 +0100 +++ new/Vulkan-Tools-1.1.92/cube/macOS/cube/cube.cmake 2018-11-20 01:10:06.000000000 +0100 @@ -72,12 +72,12 @@ # Copy the MoltenVK lib into the bundle. if(${CMAKE_GENERATOR} MATCHES "^Xcode.*") add_custom_command(TARGET vkcube POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy "${MOLTENVK_DIR}/MoltenVK/macOS/libMoltenVK.dylib" + COMMAND ${CMAKE_COMMAND} -E copy "${MOLTENVK_DIR}/MoltenVK/macOS/dynamic/libMoltenVK.dylib" ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/vkcube.app/Contents/Frameworks/libMoltenVK.dylib DEPENDS vulkan) else() add_custom_command(TARGET vkcube POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy "${MOLTENVK_DIR}/MoltenVK/macOS/libMoltenVK.dylib" + COMMAND ${CMAKE_COMMAND} -E copy "${MOLTENVK_DIR}/MoltenVK/macOS/dynamic/libMoltenVK.dylib" ${CMAKE_CURRENT_BINARY_DIR}/vkcube.app/Contents/Frameworks/libMoltenVK.dylib DEPENDS vulkan) endif() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Tools-1.1.91.g3/cube/macOS/cubepp/cubepp.cmake new/Vulkan-Tools-1.1.92/cube/macOS/cubepp/cubepp.cmake --- old/Vulkan-Tools-1.1.91.g3/cube/macOS/cubepp/cubepp.cmake 2018-11-09 23:38:46.000000000 +0100 +++ new/Vulkan-Tools-1.1.92/cube/macOS/cubepp/cubepp.cmake 2018-11-20 01:10:06.000000000 +0100 @@ -74,12 +74,12 @@ # Copy the MoltenVK lib into the bundle. if(${CMAKE_GENERATOR} MATCHES "^Xcode.*") add_custom_command(TARGET vkcubepp POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy "${MOLTENVK_DIR}/MoltenVK/macOS/libMoltenVK.dylib" + COMMAND ${CMAKE_COMMAND} -E copy "${MOLTENVK_DIR}/MoltenVK/macOS/dynamic/libMoltenVK.dylib" ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/vkcubepp.app/Contents/Frameworks/libMoltenVK.dylib DEPENDS vulkan) else() add_custom_command(TARGET vkcubepp POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy "${MOLTENVK_DIR}/MoltenVK/macOS/libMoltenVK.dylib" + COMMAND ${CMAKE_COMMAND} -E copy "${MOLTENVK_DIR}/MoltenVK/macOS/dynamic/libMoltenVK.dylib" ${CMAKE_CURRENT_BINARY_DIR}/vkcubepp.app/Contents/Frameworks/libMoltenVK.dylib DEPENDS vulkan) endif() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Tools-1.1.91.g3/scripts/known_good.json new/Vulkan-Tools-1.1.92/scripts/known_good.json --- old/Vulkan-Tools-1.1.91.g3/scripts/known_good.json 2018-11-09 23:38:46.000000000 +0100 +++ new/Vulkan-Tools-1.1.92/scripts/known_good.json 2018-11-20 01:10:06.000000000 +0100 @@ -6,7 +6,7 @@ "sub_dir" : "glslang", "build_dir" : "glslang/build", "install_dir" : "glslang/build/install", - "commit" : "a440fbb04f82b5cb19541802a31abdf1aeb94abe", + "commit" : "d509a5eec6f5a65b3ffdfa0a19096f338d2582be", "prebuild" : [ "python update_glslang_sources.py" ] @@ -17,7 +17,7 @@ "sub_dir" : "Vulkan-Headers", "build_dir" : "Vulkan-Headers/build", "install_dir" : "Vulkan-Headers/build/install", - "commit" : "369e6ea7f9b8cf0155b183da7e5be1b39ef6138d" + "commit" : "114c3546e195819bd53a34b39f5194b2989a5b12" }, { "name" : "MoltenVK", @@ -25,10 +25,10 @@ "sub_dir" : "MoltenVK", "build_dir" : "MoltenVK", "install_dir" : "MoltenVK", - "commit" : "e651841e67e6faddaaa8e5848d248c4b1b7ad3cf", + "commit" : "9517c58dbdf1b4c269bd700b346361a5dc01f1c0", "custom_build" : [ "./fetchDependencies --v-headers-root {0[Vulkan-Headers][repo_dir]} --glslang-root {0[glslang][repo_dir]}", - "xcodebuild -project MoltenVKPackaging.xcodeproj -scheme \"MoltenVK Package ({2})\" build" + "xcodebuild -project MoltenVKPackaging.xcodeproj GCC_PREPROCESSOR_DEFINITIONS='$GCC_PREPROCESSOR_DEFINITIONS MVK_LOGGING_ENABLED=0' -scheme \"MoltenVK Package\" build" ], "build_step" : "custom", "build_platforms" : [ @@ -41,7 +41,7 @@ "sub_dir" : "Vulkan-Loader", "build_dir" : "Vulkan-Loader/build", "install_dir" : "Vulkan-Loader/build/install", - "commit" : "9f59673982ff0ef7614adbe4c698b79aef1eaedb", + "commit" : "abe5c2b3c33e42fff883d32d4c168556fb29b3ba", "deps" : [ { "var_name" : "VULKAN_HEADERS_INSTALL_DIR", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Tools-1.1.91.g3/vulkaninfo/CMakeLists.txt new/Vulkan-Tools-1.1.92/vulkaninfo/CMakeLists.txt --- old/Vulkan-Tools-1.1.91.g3/vulkaninfo/CMakeLists.txt 2018-11-09 23:38:46.000000000 +0100 +++ new/Vulkan-Tools-1.1.92/vulkaninfo/CMakeLists.txt 2018-11-20 01:10:06.000000000 +0100 @@ -32,31 +32,28 @@ include(FindPkgConfig) option(BUILD_WSI_XCB_SUPPORT "Build XCB WSI support" ON) option(BUILD_WSI_XLIB_SUPPORT "Build Xlib WSI support" ON) - set(VULKANINFO_WSI_SELECTION "XCB" CACHE STRING "Select WSI target for vulkaninfo (XCB, XLIB)") + option(BUILD_WSI_WAYLAND_SUPPORT "Build Wayland WSI support" ON) if(BUILD_WSI_XCB_SUPPORT) find_package(XCB REQUIRED) + target_include_directories(vulkaninfo PRIVATE ${XCB_INCLUDE_DIRS}) + target_link_libraries(vulkaninfo ${XCB_LIBRARIES}) + target_compile_definitions(vulkaninfo PRIVATE -DVK_USE_PLATFORM_XCB_KHR) endif() if(BUILD_WSI_XLIB_SUPPORT) find_package(X11 REQUIRED) - endif() - - if(VULKANINFO_WSI_SELECTION STREQUAL "XCB") - if(NOT BUILD_WSI_XCB_SUPPORT) - message(FATAL_ERROR "Selected XCB for vulkaninfo build but not building Xcb support") - endif() - target_include_directories(vulkaninfo PRIVATE ${XCB_INCLUDE_DIRS}) - target_link_libraries(vulkaninfo ${XCB_LIBRARIES}) - target_compile_definitions(vulkaninfo PRIVATE -DVK_USE_PLATFORM_XCB_KHR) - elseif(VULKANINFO_WSI_SELECTION STREQUAL "XLIB") - if(NOT BUILD_WSI_XLIB_SUPPORT) - message(FATAL_ERROR "Selected XLIB for vulkaninfo build but not building Xlib support") - endif() target_include_directories(vulkaninfo PRIVATE ${X11_INCLUDE_DIR}) target_link_libraries(vulkaninfo ${X11_LIBRARIES}) target_compile_definitions(vulkaninfo PRIVATE -DVK_USE_PLATFORM_XLIB_KHR) endif() + + if(BUILD_WSI_WAYLAND_SUPPORT) + find_package(Wayland REQUIRED) + target_include_directories(vulkaninfo PRIVATE ${WAYLAND_CLIENT_INCLUDE_DIR}) + target_link_libraries(vulkaninfo ${WAYLAND_CLIENT_LIBRARIES}) + target_compile_definitions(vulkaninfo PRIVATE -DVK_USE_PLATFORM_WAYLAND_KHR) + endif() endif() if(APPLE) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Tools-1.1.91.g3/vulkaninfo/macOS/vulkaninfo.cmake new/Vulkan-Tools-1.1.92/vulkaninfo/macOS/vulkaninfo.cmake --- old/Vulkan-Tools-1.1.91.g3/vulkaninfo/macOS/vulkaninfo.cmake 2018-11-09 23:38:46.000000000 +0100 +++ new/Vulkan-Tools-1.1.92/vulkaninfo/macOS/vulkaninfo.cmake 2018-11-20 01:10:06.000000000 +0100 @@ -50,12 +50,12 @@ # Xcode projects need some extra help with what would be install steps. if(${CMAKE_GENERATOR} MATCHES "^Xcode.*") add_custom_command(TARGET vulkaninfo-bundle POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy "${MOLTENVK_DIR}/MoltenVK/macOS/libMoltenVK.dylib" + COMMAND ${CMAKE_COMMAND} -E copy "${MOLTENVK_DIR}/MoltenVK/macOS/dynamic/libMoltenVK.dylib" ${CMAKE_CURRENT_BINARY_DIR}/$<CONFIG>/vulkaninfo.app/Contents/Frameworks/libMoltenVK.dylib DEPENDS vulkan) else() add_custom_command(TARGET vulkaninfo-bundle POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy "${MOLTENVK_DIR}/MoltenVK/macOS/libMoltenVK.dylib" + COMMAND ${CMAKE_COMMAND} -E copy "${MOLTENVK_DIR}/MoltenVK/macOS/dynamic/libMoltenVK.dylib" ${CMAKE_CURRENT_BINARY_DIR}/vulkaninfo.app/Contents/Frameworks/libMoltenVK.dylib DEPENDS vulkan) endif() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Tools-1.1.91.g3/vulkaninfo/vulkaninfo.c new/Vulkan-Tools-1.1.92/vulkaninfo/vulkaninfo.c --- old/Vulkan-Tools-1.1.91.g3/vulkaninfo/vulkaninfo.c 2018-11-09 23:38:46.000000000 +0100 +++ new/Vulkan-Tools-1.1.92/vulkaninfo/vulkaninfo.c 2018-11-20 01:10:06.000000000 +0100 @@ -150,18 +150,26 @@ #ifdef VK_USE_PLATFORM_WIN32_KHR HINSTANCE h_instance; // Windows Instance HWND h_wnd; // window handle -#elif VK_USE_PLATFORM_XCB_KHR +#endif +#ifdef VK_USE_PLATFORM_XCB_KHR xcb_connection_t *xcb_connection; xcb_screen_t *xcb_screen; xcb_window_t xcb_window; -#elif VK_USE_PLATFORM_XLIB_KHR +#endif +#ifdef VK_USE_PLATFORM_XLIB_KHR Display *xlib_display; Window xlib_window; -#elif VK_USE_PLATFORM_ANDROID_KHR // TODO +#endif +#ifdef VK_USE_PLATFORM_ANDROID_KHR // TODO ANativeWindow *window; -#elif VK_USE_PLATFORM_MACOS_MVK +#endif +#ifdef VK_USE_PLATFORM_MACOS_MVK void *window; #endif +#ifdef VK_USE_PLATFORM_WAYLAND_KHR + struct wl_display *wayland_display; + struct wl_surface *wayland_surface; +#endif }; struct AppGpu { @@ -456,7 +464,7 @@ } } #if defined(VK_USE_PLATFORM_XCB_KHR) || defined(VK_USE_PLATFORM_XLIB_KHR) || defined(VK_USE_PLATFORM_WIN32_KHR) || \ - defined(VK_USE_PLATFORM_MACOS_MVK) + defined(VK_USE_PLATFORM_MACOS_MVK) || defined(VK_USE_PLATFORM_WAYLAND_KHR) static const char *VkPresentModeString(VkPresentModeKHR mode) { switch (mode) { #define STR(r) \ @@ -751,26 +759,32 @@ //---Build a list of extensions to load--- - const char *info_instance_extensions[] = {VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME, - VK_KHR_DISPLAY_EXTENSION_NAME, - VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, - VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME, - VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME, - VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME, - VK_KHR_SURFACE_EXTENSION_NAME, - VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME, + const char *info_instance_extensions[] = { + VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME, + VK_KHR_DISPLAY_EXTENSION_NAME, + VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME, + VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME, + VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME, + VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME, + VK_KHR_SURFACE_EXTENSION_NAME, + VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME, #ifdef VK_USE_PLATFORM_WIN32_KHR - VK_KHR_WIN32_SURFACE_EXTENSION_NAME -#elif VK_USE_PLATFORM_XCB_KHR - VK_KHR_XCB_SURFACE_EXTENSION_NAME -#elif VK_USE_PLATFORM_XLIB_KHR - VK_KHR_XLIB_SURFACE_EXTENSION_NAME -#elif VK_USE_PLATFORM_WAYLAND_KHR - VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME -#elif VK_USE_PLATFORM_ANDROID_KHR - VK_KHR_ANDROID_SURFACE_EXTENSION_NAME -#elif VK_USE_PLATFORM_MACOS_MVK - VK_MVK_MACOS_SURFACE_EXTENSION_NAME + VK_KHR_WIN32_SURFACE_EXTENSION_NAME, +#endif +#ifdef VK_USE_PLATFORM_XCB_KHR + VK_KHR_XCB_SURFACE_EXTENSION_NAME, +#endif +#ifdef VK_USE_PLATFORM_XLIB_KHR + VK_KHR_XLIB_SURFACE_EXTENSION_NAME, +#endif +#ifdef VK_USE_PLATFORM_WAYLAND_KHR + VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME, +#endif +#ifdef VK_USE_PLATFORM_ANDROID_KHR + VK_KHR_ANDROID_SURFACE_EXTENSION_NAME, +#endif +#ifdef VK_USE_PLATFORM_MACOS_MVK + VK_MVK_MACOS_SURFACE_EXTENSION_NAME, #endif }; const uint32_t info_instance_extensions_count = ARRAY_SIZE(info_instance_extensions); @@ -1098,7 +1112,8 @@ #if defined(VK_USE_PLATFORM_XCB_KHR) || \ defined(VK_USE_PLATFORM_XLIB_KHR) || \ defined(VK_USE_PLATFORM_WIN32_KHR) || \ - defined(VK_USE_PLATFORM_MACOS_MVK) + defined(VK_USE_PLATFORM_MACOS_MVK) || \ + defined(VK_USE_PLATFORM_WAYLAND_KHR) static void AppDestroySurface(struct AppInstance *inst) { //same for all platforms vkDestroySurfaceKHR(inst->instance, inst->surface, NULL); } @@ -1166,11 +1181,11 @@ xcb_destroy_window(inst->xcb_connection, inst->xcb_window); xcb_disconnect(inst->xcb_connection); } -//VK_USE_PLATFORM_XCB_KHR +#endif //VK_USE_PLATFORM_XCB_KHR //----------------------------------------------------------- //----------------------------XLib--------------------------- -#elif VK_USE_PLATFORM_XLIB_KHR +#ifdef VK_USE_PLATFORM_XLIB_KHR static void AppCreateXlibWindow(struct AppInstance *inst) { long visualMask = VisualScreenMask; int numberOfVisuals; @@ -1238,11 +1253,54 @@ DestroyMetalView(inst->window); } #endif //VK_USE_PLATFORM_MACOS_MVK +//----------------------------------------------------------- + +#ifdef VK_USE_PLATFORM_WAYLAND_KHR + +static void wayland_registry_global(void *data, struct wl_registry *registry, uint32_t id, const char *interface, uint32_t version) { + struct AppInstance *inst = (struct AppInstance *)data; + if (strcmp(interface, "wl_compositor") == 0) { + struct wl_compositor *compositor = (struct wl_compositor *)wl_registry_bind(registry, id, &wl_compositor_interface, 1); + inst->wayland_surface = wl_compositor_create_surface(compositor); + } +} +static void wayland_registry_global_remove(void *data, struct wl_registry *registry, uint32_t id) { +} +static const struct wl_registry_listener wayland_registry_listener = { + wayland_registry_global, + wayland_registry_global_remove +}; + +static void AppCreateWaylandWindow(struct AppInstance *inst) { + inst->wayland_display = wl_display_connect(NULL); + struct wl_registry *registry = wl_display_get_registry(inst->wayland_display); + wl_registry_add_listener(wl_display_get_registry(inst->wayland_display), &wayland_registry_listener, inst); + wl_display_roundtrip(inst->wayland_display); + wl_registry_destroy(registry); +} + +static void AppCreateWaylandSurface(struct AppInstance *inst) { + VkResult U_ASSERT_ONLY err; + VkWaylandSurfaceCreateInfoKHR createInfo; + createInfo.sType = VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR; + createInfo.pNext = NULL; + createInfo.flags = 0; + createInfo.display = inst->wayland_display; + createInfo.surface = inst->wayland_surface; + err = vkCreateWaylandSurfaceKHR(inst->instance, &createInfo, NULL, &inst->surface); + assert(!err); +} + +static void AppDestroyWaylandWindow(struct AppInstance *inst) { + wl_display_disconnect(inst->wayland_display); +} +#endif //VK_USE_PLATFORM_WAYLAND_KHR #if defined(VK_USE_PLATFORM_XCB_KHR) || \ defined(VK_USE_PLATFORM_XLIB_KHR) || \ defined(VK_USE_PLATFORM_WIN32_KHR) || \ - defined(VK_USE_PLATFORM_MACOS_MVK) + defined(VK_USE_PLATFORM_MACOS_MVK) || \ + defined(VK_USE_PLATFORM_WAYLAND_KHR) static int AppDumpSurfaceFormats(struct AppInstance *inst, struct AppGpu *gpu, FILE *out) { // Get the list of VkFormat's that are supported VkResult U_ASSERT_ONLY err; @@ -1451,8 +1509,7 @@ } fprintf(out, "\t\t\t\t\t\t</details>\n"); } else if (human_readable_output) { - printf("\nVkSurfaceCapabilitiesKHR:\n"); - printf("=========================\n"); + printf("VkSurfaceCapabilitiesKHR:\n"); printf("\tminImageCount = %u\n", inst->surface_capabilities.minImageCount); printf("\tmaxImageCount = %u\n", inst->surface_capabilities.maxImageCount); printf("\tcurrentExtent:\n"); @@ -1525,8 +1582,7 @@ fprintf(out, "\t\t\t\t\t\t\t</details>\n"); fprintf(out, "\t\t\t\t\t\t</details>\n"); } else if (human_readable_output) { - printf("\nVkSurfaceCapabilities2EXT:\n"); - printf("==========================\n"); + printf("VkSurfaceCapabilities2EXT:\n"); printf("\tsupportedSurfaceCounters:\n"); if (inst->surface_capabilities2_ext.supportedSurfaceCounters == 0) { printf("\t\tNone\n"); @@ -1594,8 +1650,7 @@ fprintf(out, "\t\t\t\t\t\t\t</details>\n"); fprintf(out, "\t\t\t\t\t\t</details>\n"); } else if (human_readable_output) { - printf("\nVkSharedPresentSurfaceCapabilitiesKHR:\n"); - printf("========================================\n"); + printf("VkSharedPresentSurfaceCapabilitiesKHR:\n"); printf("\tsharedPresentSupportedUsageFlags:\n"); if (shared_surface_capabilities->sharedPresentSupportedUsageFlags == 0) { printf("\t\tNone\n"); } if (shared_surface_capabilities->sharedPresentSupportedUsageFlags & VK_IMAGE_USAGE_TRANSFER_SRC_BIT) { printf("\t\tVK_IMAGE_USAGE_TRANSFER_SRC_BIT\n"); } @@ -1617,6 +1672,46 @@ } } +struct SurfaceExtensionInfo { + const char *name; + void (*create_window)(struct AppInstance *); + void (*create_surface)(struct AppInstance *); + void (*destroy_window)(struct AppInstance *); +}; + +static void AppDumpSurfaceExtension(struct AppInstance *inst, struct AppGpu *gpus, uint32_t gpu_count, + struct SurfaceExtensionInfo *surface_extension, int *format_count, int *present_mode_count, + FILE *out) { + + if (!CheckExtensionEnabled(surface_extension->name, inst->inst_extensions, inst->inst_extensions_count)) { + return; + } + + surface_extension->create_window(inst); + for (uint32_t i = 0; i < gpu_count; ++i) { + surface_extension->create_surface(inst); + if (html_output) { + fprintf(out, "\t\t\t\t<details><summary>GPU id : <div class='val'>%u</div> (%s)</summary>\n", i, + gpus[i].props.deviceName); + fprintf(out, "\t\t\t\t\t<details><summary>Surface type : <div class='type'>%s</div></summary></details>\n", + surface_extension->name); + } else if (human_readable_output) { + printf("GPU id : %u (%s)\n", i, gpus[i].props.deviceName); + printf("Surface type : %s\n", surface_extension->name); + } + *format_count += AppDumpSurfaceFormats(inst, &gpus[i], out); + *present_mode_count += AppDumpSurfacePresentModes(inst, &gpus[i], out); + AppDumpSurfaceCapabilities(inst, &gpus[i], out); + AppDestroySurface(inst); + if (html_output) { + fprintf(out, "\t\t\t\t</details>\n"); + } else if (human_readable_output) { + printf("\n"); + } + } + surface_extension->destroy_window(inst); +} + #endif static void AppDevDumpFormatProps(const struct AppGpu *gpu, VkFormat fmt, bool *first_in_list, FILE *out) { @@ -3512,113 +3607,78 @@ } #endif +#ifdef VK_USE_PLATFORM_WAYLAND_KHR + struct wl_display *wayland_display = wl_display_connect(NULL); + bool has_wayland_display = false; + if (wayland_display != NULL) { + wl_display_disconnect(wayland_display); + has_wayland_display = true; + } +#endif + //--WIN32-- #ifdef VK_USE_PLATFORM_WIN32_KHR - if (CheckExtensionEnabled(VK_KHR_WIN32_SURFACE_EXTENSION_NAME, inst.inst_extensions, inst.inst_extensions_count)) { - AppCreateWin32Window(&inst); - for (uint32_t i = 0; i < gpu_count; ++i) { - AppCreateWin32Surface(&inst); - if (html_output) { - fprintf(out, "\t\t\t\t<details><summary>GPU id : <div class='val'>%u</div> (%s)</summary>\n", i, - gpus[i].props.deviceName); - fprintf(out, "\t\t\t\t\t<details><summary>Surface type : <div class='type'>%s</div></summary></details>\n", - VK_KHR_WIN32_SURFACE_EXTENSION_NAME); - } else if (human_readable_output) { - printf("GPU id : %u (%s)\n", i, gpus[i].props.deviceName); - printf("Surface type : %s\n", VK_KHR_WIN32_SURFACE_EXTENSION_NAME); - } - format_count += AppDumpSurfaceFormats(&inst, &gpus[i], out); - present_mode_count += AppDumpSurfacePresentModes(&inst, &gpus[i], out); - AppDumpSurfaceCapabilities(&inst, &gpus[i], out); - AppDestroySurface(&inst); - if (html_output) { - fprintf(out, "\t\t\t\t</details>\n"); - } - } - AppDestroyWin32Window(&inst); - } + struct SurfaceExtensionInfo surface_ext_win32; + surface_ext_win32.name = VK_KHR_WIN32_SURFACE_EXTENSION_NAME; + surface_ext_win32.create_window = AppCreateWin32Window; + surface_ext_win32.create_surface = AppCreateWin32Surface; + surface_ext_win32.destroy_window = AppDestroyWin32Window; + AppDumpSurfaceExtension(&inst, gpus, gpu_count, &surface_ext_win32, &format_count, &present_mode_count, out); +#endif //--XCB-- -#elif VK_USE_PLATFORM_XCB_KHR - if (has_display && CheckExtensionEnabled(VK_KHR_XCB_SURFACE_EXTENSION_NAME, inst.inst_extensions, inst.inst_extensions_count)) { - AppCreateXcbWindow(&inst); - for (uint32_t i = 0; i < gpu_count; ++i) { - AppCreateXcbSurface(&inst); - if (html_output) { - fprintf(out, "\t\t\t\t<details><summary>GPU id : <div class='val'>%u</div> (%s)</summary></details>\n", i, - gpus[i].props.deviceName); - fprintf(out, "\t\t\t\t<details><summary>Surface type : <div class='type'>%s</div></summary></details>\n", - VK_KHR_XCB_SURFACE_EXTENSION_NAME); - } else if (human_readable_output) { - printf("GPU id : %u (%s)\n", i, gpus[i].props.deviceName); - printf("Surface type : %s\n", VK_KHR_XCB_SURFACE_EXTENSION_NAME); - } - format_count += AppDumpSurfaceFormats(&inst, &gpus[i], out); - present_mode_count += AppDumpSurfacePresentModes(&inst, &gpus[i], out); - AppDumpSurfaceCapabilities(&inst, &gpus[i], out); - AppDestroySurface(&inst); - } - AppDestroyXcbWindow(&inst); +#ifdef VK_USE_PLATFORM_XCB_KHR + struct SurfaceExtensionInfo surface_ext_xcb; + surface_ext_xcb.name = VK_KHR_XCB_SURFACE_EXTENSION_NAME; + surface_ext_xcb.create_window = AppCreateXcbWindow; + surface_ext_xcb.create_surface = AppCreateXcbSurface; + surface_ext_xcb.destroy_window = AppDestroyXcbWindow; + if (has_display) { + AppDumpSurfaceExtension(&inst, gpus, gpu_count, &surface_ext_xcb, &format_count, &present_mode_count, out); } +#endif //--XLIB-- -#elif VK_USE_PLATFORM_XLIB_KHR - if (has_display && - CheckExtensionEnabled(VK_KHR_XLIB_SURFACE_EXTENSION_NAME, inst.inst_extensions, inst.inst_extensions_count)) { - AppCreateXlibWindow(&inst); - for (uint32_t i = 0; i < gpu_count; ++i) { - AppCreateXlibSurface(&inst); - if (html_output) { - fprintf(out, "\t\t\t\t<details><summary>GPU id : <div class='val'>%u</div> (%s)</summary></details>\n", i, - gpus[i].props.deviceName); - fprintf(out, "\t\t\t\t<details><summary>Surface type : <div class='type'>%s</div></summary></details>\n", - VK_KHR_XLIB_SURFACE_EXTENSION_NAME); - } else if (human_readable_output) { - printf("GPU id : %u (%s)\n", i, gpus[i].props.deviceName); - printf("Surface type : %s\n", VK_KHR_XLIB_SURFACE_EXTENSION_NAME); - } - format_count += AppDumpSurfaceFormats(&inst, &gpus[i], out); - present_mode_count += AppDumpSurfacePresentModes(&inst, &gpus[i], out); - AppDumpSurfaceCapabilities(&inst, &gpus[i], out); - AppDestroySurface(&inst); - } - AppDestroyXlibWindow(&inst); +#ifdef VK_USE_PLATFORM_XLIB_KHR + struct SurfaceExtensionInfo surface_ext_xlib; + surface_ext_xlib.name = VK_KHR_XLIB_SURFACE_EXTENSION_NAME; + surface_ext_xlib.create_window = AppCreateXlibWindow; + surface_ext_xlib.create_surface = AppCreateXlibSurface; + surface_ext_xlib.destroy_window = AppDestroyXlibWindow; + if (has_display) { + AppDumpSurfaceExtension(&inst, gpus, gpu_count, &surface_ext_xlib, &format_count, &present_mode_count, out); } +#endif //--MACOS-- -#elif VK_USE_PLATFORM_MACOS_MVK - if (CheckExtensionEnabled(VK_MVK_MACOS_SURFACE_EXTENSION_NAME, inst.inst_extensions, inst.inst_extensions_count)) { - AppCreateMacOSWindow(&inst); - for (uint32_t i = 0; i < gpu_count; ++i) { - AppCreateMacOSSurface(&inst); - if (html_output) { - fprintf(out, "\t\t\t\t<details><summary>GPU id : <div class='val'>%u</div> (%s)</summary></details>\n", i, - gpus[i].props.deviceName); - fprintf(out, "\t\t\t\t<details><summary>Surface type : <div class='type'>%s</div></summary></details>\n", - VK_MVK_MACOS_SURFACE_EXTENSION_NAME); - } else if (human_readable_output) { - printf("GPU id : %u (%s)\n", i, gpus[i].props.deviceName); - printf("Surface type : %s\n", VK_MVK_MACOS_SURFACE_EXTENSION_NAME); - } - format_count += AppDumpSurfaceFormats(&inst, &gpus[i], out); - present_mode_count += AppDumpSurfacePresentModes(&inst, &gpus[i], out); - AppDumpSurfaceCapabilities(&inst, &gpus[i], out); - AppDestroySurface(&inst); - } - AppDestroyMacOSWindow(&inst); +#ifdef VK_USE_PLATFORM_MACOS_MVK + struct SurfaceExtensionInfo surface_ext_macos; + surface_ext_macos.name = VK_MVK_MACOS_SURFACE_EXTENSION_NAME; + surface_ext_macos.create_window = AppCreateMacOSWindow; + surface_ext_macos.create_surface = AppCreateMacOSSurface; + surface_ext_macos.destroy_window = AppDestroyMacOSWindow; + AppDumpSurfaceExtension(&inst, gpus, gpu_count, &surface_ext_macos, &format_count, &present_mode_count, out); +#endif +//--WAYLAND-- +#ifdef VK_USE_PLATFORM_WAYLAND_KHR + struct SurfaceExtensionInfo surface_ext_wayland; + surface_ext_wayland.name = VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME; + surface_ext_wayland.create_window = AppCreateWaylandWindow; + surface_ext_wayland.create_surface = AppCreateWaylandSurface; + surface_ext_wayland.destroy_window = AppDestroyWaylandWindow; + if (has_wayland_display) { + AppDumpSurfaceExtension(&inst, gpus, gpu_count, &surface_ext_wayland, &format_count, &present_mode_count, out); } #endif - // TODO: Android / Wayland + // TODO: Android if (!format_count && !present_mode_count) { if (html_output) { fprintf(out, "\t\t\t\t<details><summary>None found</summary></details>\n"); } else if (human_readable_output) { - printf("None found\n"); + printf("None found\n\n"); } } if (html_output) { fprintf(out, "\t\t\t</details>\n"); - } else if (human_readable_output) { - printf("\n"); } //--------- ++++++ _service ++++++ --- /var/tmp/diff_new_pack.z0aOsU/_old 2018-12-04 20:58:15.208591980 +0100 +++ /var/tmp/diff_new_pack.z0aOsU/_new 2018-12-04 20:58:15.208591980 +0100 @@ -2,9 +2,9 @@ <service name="tar_scm" mode="disabled"> <param name="scm">git</param> <param name="url">https://github.com/KhronosGroup/Vulkan-Tools</param> - <param name="revision">master</param> - <param name="parent-tag">e4480fa9afd6f8cfc5579c7d24954f7030b180cf</param> - <param name="versionformat">1.1.91.g@TAG_OFFSET@</param> + <param name="revision">sdk-1.1.92.0</param> + <param name="parent-tag">sdk-1.1.92.0</param> + <param name="versionformat">1.1.92</param> </service> <service name="recompress" mode="disabled"> <param name="file">*.tar</param>
