Hello community, here is the log from the commit of package vulkan-loader for openSUSE:Factory checked in at 2019-06-30 10:20:25 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/vulkan-loader (Old) and /work/SRC/openSUSE:Factory/.vulkan-loader.new.4615 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "vulkan-loader" Sun Jun 30 10:20:25 2019 rev:9 rq:712362 version:1.1.112 Changes: -------- --- /work/SRC/openSUSE:Factory/vulkan-loader/vulkan-loader.changes 2019-06-13 22:35:38.532336546 +0200 +++ /work/SRC/openSUSE:Factory/.vulkan-loader.new.4615/vulkan-loader.changes 2019-06-30 10:20:26.767521838 +0200 @@ -1,0 +2,6 @@ +Fri Jun 28 07:32:05 UTC 2019 - Jan Engelhardt <[email protected]> + +- Update to new upstream release 1.1.112 + * loader: Fix bug in searching for missing extension + +------------------------------------------------------------------- Old: ---- Vulkan-Loader-1.1.108.tar.xz New: ---- Vulkan-Loader-1.1.112.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ vulkan-loader.spec ++++++ --- /var/tmp/diff_new_pack.6Zmm7F/_old 2019-06-30 10:20:28.155523994 +0200 +++ /var/tmp/diff_new_pack.6Zmm7F/_new 2019-06-30 10:20:28.159524001 +0200 @@ -16,11 +16,11 @@ # -%define version_unconverted 1.1.108 +%define version_unconverted 1.1.112 Name: vulkan-loader %define lname libvulkan1 -Version: 1.1.108 +Version: 1.1.112 Release: 0 Summary: Reference ICD loader for Vulkan License: Apache-2.0 ++++++ Vulkan-Loader-1.1.108.tar.xz -> Vulkan-Loader-1.1.112.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Loader-1.1.108/.appveyor.yml new/Vulkan-Loader-1.1.112/.appveyor.yml --- old/Vulkan-Loader-1.1.108/.appveyor.yml 2019-05-29 17:48:53.000000000 +0200 +++ new/Vulkan-Loader-1.1.112/.appveyor.yml 2019-06-25 18:04:58.000000000 +0200 @@ -17,11 +17,18 @@ environment: PYTHON_PATH: "C:/Python35" PYTHON_PACKAGE_PATH: "C:/Python35/Scripts" + CMAKE_URL: "http://cmake.org/files/v3.10/cmake-3.10.2-win64-x64.zip" branches: only: - master +install: + - appveyor DownloadFile %CMAKE_URL% -FileName cmake.zip + - 7z x cmake.zip -oC:\cmake > nul + - set path=C:\cmake\bin;%path% + - cmake --version + before_build: - "SET PATH=C:\\Python35;C:\\Python35\\Scripts;%PATH%" - echo. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Loader-1.1.108/.travis.yml new/Vulkan-Loader-1.1.112/.travis.yml --- old/Vulkan-Loader-1.1.108/.travis.yml 2019-05-29 17:48:53.000000000 +0200 +++ new/Vulkan-Loader-1.1.112/.travis.yml 2019-06-25 18:04:58.000000000 +0200 @@ -42,6 +42,18 @@ before_install: - set -e + - CMAKE_VERSION=3.10.2 + - | + if [[ "${TRAVIS_OS_NAME}" == "linux" ]]; then + # Upgrade to the desired version of CMake + CMAKE_URL="https://cmake.org/files/v${CMAKE_VERSION%.*}/cmake-${CMAKE_VERSION}-Linux-x86_64.tar.gz" + echo CMAKE_URL=${CMAKE_URL} + mkdir cmake-${CMAKE_VERSION} && travis_retry wget --no-check-certificate -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C cmake-${CMAKE_VERSION} + export PATH=${PWD}/cmake-${CMAKE_VERSION}/bin:${PATH} + else + brew install cmake || brew upgrade cmake + fi + cmake --version - unset -f cd pushd popd - | if [[ "$TRAVIS_EVENT_TYPE" == "cron" ]]; then @@ -119,7 +131,6 @@ notifications: email: recipients: - - [email protected] - [email protected] on_success: change on_failure: always diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Loader-1.1.108/CMakeLists.txt new/Vulkan-Loader-1.1.112/CMakeLists.txt --- old/Vulkan-Loader-1.1.108/CMakeLists.txt 2019-05-29 17:48:53.000000000 +0200 +++ new/Vulkan-Loader-1.1.112/CMakeLists.txt 2019-06-25 18:04:58.000000000 +0200 @@ -22,6 +22,8 @@ project(Vulkan-Loader) +enable_testing() + add_definitions(-DAPI_NAME="Vulkan") set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Loader-1.1.108/loader/LoaderAndLayerInterface.md new/Vulkan-Loader-1.1.112/loader/LoaderAndLayerInterface.md --- old/Vulkan-Loader-1.1.108/loader/LoaderAndLayerInterface.md 2019-05-29 17:48:53.000000000 +0200 +++ new/Vulkan-Loader-1.1.112/loader/LoaderAndLayerInterface.md 2019-06-25 18:04:58.000000000 +0200 @@ -698,13 +698,10 @@ | Windowing System | Extensions available | |----------------|--------------------| | Windows | VK_KHR_win32_surface | -| Linux (Default) | VK_KHR_xcb_surface and VK_KHR_xlib_surface | | Linux (Wayland) | VK_KHR_wayland_surface | +| Linux (X11) | VK_KHR_xcb_surface and VK_KHR_xlib_surface | | macOS (MoltenVK) | VK_MVK_macos_surface | -**NOTE:** Wayland is not fully supported at this time. Wayland -support is present, but should be considered Beta quality. - It is important to understand that while the loader may support the various entry points for these extensions, there is a handshake required to actually use them: @@ -2506,7 +2503,7 @@ functions without involving the ICDs. * Where XXX stands for the Windowing System name: * Wayland - * Xcb + * XCB * Xlib * Windows * Android @@ -2518,7 +2515,7 @@ `VkIcdSurfaceXXX` structure. 4. The first field of all the `VkIcdSurfaceXXX` structures is a `VkIcdSurfaceBase` enumerant that indicates whether the - surface object is Win32, Xcb, Xlib, or Wayland. + surface object is Win32, XCB, Xlib, or Wayland. The ICD may choose to handle `VkSurfaceKHR` object creation instead. If an ICD desires to handle creating and destroying it must do the following: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Loader-1.1.108/loader/loader.c new/Vulkan-Loader-1.1.112/loader/loader.c --- old/Vulkan-Loader-1.1.108/loader/loader.c 2019-05-29 17:48:53.000000000 +0200 +++ new/Vulkan-Loader-1.1.112/loader/loader.c 2019-06-25 18:04:58.000000000 +0200 @@ -5821,7 +5821,7 @@ break; } - layer_prop = loaderFindLayerProperty(pCreateInfo->ppEnabledLayerNames[j], instance_layers); + layer_prop = loaderFindLayerProperty(expanded_layers.list[j].info.layerName, instance_layers); if (NULL == layer_prop) { // Should NOT get here, loaderValidateLayers should have already filtered this case out. continue; @@ -6756,12 +6756,57 @@ struct loader_extension_list all_exts = {0}; struct loader_extension_list icd_exts = {0}; - assert(pLayerName == NULL || strlen(pLayerName) == 0); - // Any layer or trampoline wrapping should be removed at this point in time can just cast to the expected // type for VkPhysicalDevice. phys_dev_term = (struct loader_physical_device_term *)physicalDevice; + // if we got here with a non-empty pLayerName, look up the extensions + // from the json + if (pLayerName != NULL && strlen(pLayerName) > 0) { + uint32_t count; + uint32_t copy_size; + const struct loader_instance *inst = phys_dev_term->this_icd_term->this_instance; + struct loader_device_extension_list *dev_ext_list = NULL; + struct loader_device_extension_list local_ext_list; + memset(&local_ext_list, 0, sizeof(local_ext_list)); + if (vk_string_validate(MaxLoaderStringLength, pLayerName) == VK_STRING_ERROR_NONE) { + for (uint32_t i = 0; i < inst->instance_layer_list.count; i++) { + struct loader_layer_properties *props = &inst->instance_layer_list.list[i]; + if (strcmp(props->info.layerName, pLayerName) == 0) { + dev_ext_list = &props->device_extension_list; + } + } + + count = (dev_ext_list == NULL) ? 0 : dev_ext_list->count; + if (pProperties == NULL) { + *pPropertyCount = count; + loader_destroy_generic_list(inst, (struct loader_generic_list *)&local_ext_list); + loader_platform_thread_unlock_mutex(&loader_lock); + return VK_SUCCESS; + } + + copy_size = *pPropertyCount < count ? *pPropertyCount : count; + for (uint32_t i = 0; i < copy_size; i++) { + memcpy(&pProperties[i], &dev_ext_list->list[i].props, sizeof(VkExtensionProperties)); + } + *pPropertyCount = copy_size; + + loader_destroy_generic_list(inst, (struct loader_generic_list *)&local_ext_list); + if (copy_size < count) { + loader_platform_thread_unlock_mutex(&loader_lock); + return VK_INCOMPLETE; + } + } else { + loader_log(inst, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0, + "vkEnumerateDeviceExtensionProperties: pLayerName " + "is too long or is badly formed"); + loader_platform_thread_unlock_mutex(&loader_lock); + return VK_ERROR_EXTENSION_NOT_PRESENT; + } + + return VK_SUCCESS; + } + // This case is during the call down the instance chain with pLayerName == NULL struct loader_icd_term *icd_term = phys_dev_term->this_icd_term; uint32_t icd_ext_count = *pPropertyCount; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Loader-1.1.108/loader/trampoline.c new/Vulkan-Loader-1.1.112/loader/trampoline.c --- old/Vulkan-Loader-1.1.108/loader/trampoline.c 2019-05-29 17:48:53.000000000 +0200 +++ new/Vulkan-Loader-1.1.112/loader/trampoline.c 2019-06-25 18:04:58.000000000 +0200 @@ -778,61 +778,17 @@ VkExtensionProperties *pProperties) { VkResult res = VK_SUCCESS; struct loader_physical_device_tramp *phys_dev; + const VkLayerInstanceDispatchTable *disp; phys_dev = (struct loader_physical_device_tramp *)physicalDevice; loader_platform_thread_lock_mutex(&loader_lock); - // If pLayerName == NULL, then querying ICD extensions, pass this call - // down the instance chain which will terminate in the ICD. This allows - // layers to filter the extensions coming back up the chain. - // If pLayerName != NULL then get layer extensions from manifest file. - if (pLayerName == NULL || strlen(pLayerName) == 0) { - const VkLayerInstanceDispatchTable *disp; - - disp = loader_get_instance_layer_dispatch(physicalDevice); - res = disp->EnumerateDeviceExtensionProperties(phys_dev->phys_dev, NULL, pPropertyCount, pProperties); - } else { - uint32_t count; - uint32_t copy_size; - const struct loader_instance *inst = phys_dev->this_instance; - struct loader_device_extension_list *dev_ext_list = NULL; - struct loader_device_extension_list local_ext_list; - memset(&local_ext_list, 0, sizeof(local_ext_list)); - if (vk_string_validate(MaxLoaderStringLength, pLayerName) == VK_STRING_ERROR_NONE) { - for (uint32_t i = 0; i < inst->instance_layer_list.count; i++) { - struct loader_layer_properties *props = &inst->instance_layer_list.list[i]; - if (strcmp(props->info.layerName, pLayerName) == 0) { - dev_ext_list = &props->device_extension_list; - } - } - - count = (dev_ext_list == NULL) ? 0 : dev_ext_list->count; - if (pProperties == NULL) { - *pPropertyCount = count; - loader_destroy_generic_list(inst, (struct loader_generic_list *)&local_ext_list); - loader_platform_thread_unlock_mutex(&loader_lock); - return VK_SUCCESS; - } - - copy_size = *pPropertyCount < count ? *pPropertyCount : count; - for (uint32_t i = 0; i < copy_size; i++) { - memcpy(&pProperties[i], &dev_ext_list->list[i].props, sizeof(VkExtensionProperties)); - } - *pPropertyCount = copy_size; - - loader_destroy_generic_list(inst, (struct loader_generic_list *)&local_ext_list); - if (copy_size < count) { - loader_platform_thread_unlock_mutex(&loader_lock); - return VK_INCOMPLETE; - } - } else { - loader_log(inst, VK_DEBUG_REPORT_ERROR_BIT_EXT, 0, - "vkEnumerateDeviceExtensionProperties: pLayerName " - "is too long or is badly formed"); - loader_platform_thread_unlock_mutex(&loader_lock); - return VK_ERROR_EXTENSION_NOT_PRESENT; - } - } + // always pass this call down the instance chain which will terminate + // in the ICD. This allows layers to filter the extensions coming back + // up the chain. In the terminator we look up layer extensions from the + // manifest file if it wasn't provided by the layer itself. + disp = loader_get_instance_layer_dispatch(physicalDevice); + res = disp->EnumerateDeviceExtensionProperties(phys_dev->phys_dev, pLayerName, pPropertyCount, pProperties); loader_platform_thread_unlock_mutex(&loader_lock); return res; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Loader-1.1.108/scripts/known_good.json new/Vulkan-Loader-1.1.112/scripts/known_good.json --- old/Vulkan-Loader-1.1.108/scripts/known_good.json 2019-05-29 17:48:53.000000000 +0200 +++ new/Vulkan-Loader-1.1.112/scripts/known_good.json 2019-06-25 18:04:58.000000000 +0200 @@ -6,7 +6,7 @@ "sub_dir" : "Vulkan-Headers", "build_dir" : "Vulkan-Headers/build", "install_dir" : "Vulkan-Headers/build/install", - "commit" : "v1.1.108" + "commit" : "v1.1.112" } ], "install_names" : { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Vulkan-Loader-1.1.108/tests/CMakeLists.txt new/Vulkan-Loader-1.1.112/tests/CMakeLists.txt --- old/Vulkan-Loader-1.1.108/tests/CMakeLists.txt 2019-05-29 17:48:53.000000000 +0200 +++ new/Vulkan-Loader-1.1.112/tests/CMakeLists.txt 2019-06-25 18:04:58.000000000 +0200 @@ -16,6 +16,8 @@ # ~~~ add_executable(vk_loader_validation_tests loader_validation_tests.cpp) +add_test(NAME vk_loader_validation_tests COMMAND vk_loader_validation_tests) + set_target_properties(vk_loader_validation_tests PROPERTIES COMPILE_DEFINITIONS "GTEST_LINKED_AS_SHARED_LIBRARY=1") if(UNIX) set_target_properties(vk_loader_validation_tests PROPERTIES COMPILE_FLAGS "-Wno-sign-compare") ++++++ _service ++++++ --- /var/tmp/diff_new_pack.6Zmm7F/_old 2019-06-30 10:20:28.655524771 +0200 +++ /var/tmp/diff_new_pack.6Zmm7F/_new 2019-06-30 10:20:28.655524771 +0200 @@ -3,9 +3,9 @@ <param name="scm">git</param> <param name="url">https://github.com/KhronosGroup/Vulkan-Loader</param> <!-- vX.Y is normal, sdk-X.Y is somewhat more tested --> - <param name="revision">v1.1.108</param> - <param name="parent-tag">v1.1.108</param> - <param name="versionformat">1.1.108</param> + <param name="revision">v1.1.112</param> + <param name="parent-tag">v1.1.112</param> + <param name="versionformat">1.1.112</param> </service> <service name="recompress" mode="disabled"> <param name="file">*.tar</param>
