From 2d1db966084d73dd36c3d5f0297eb071357aff49190964aee5412533b990e3ff Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Wed, 19 Aug 2020 11:28:33 +0000 Subject: [PATCH 1/6] - Produce and install support header files [boo#1175024] OBS-URL: https://build.opensuse.org/package/show/X11:Wayland/vulkan-validationlayers?expand=0&rev=57 --- ver.diff | 27 ++++++++++++++++++++ vulkan-validationlayers.changes | 5 ++++ vulkan-validationlayers.spec | 45 ++++++++++++++++++++++++++++----- 3 files changed, 71 insertions(+), 6 deletions(-) create mode 100644 ver.diff diff --git a/ver.diff b/ver.diff new file mode 100644 index 0000000..5f42800 --- /dev/null +++ b/ver.diff @@ -0,0 +1,27 @@ +From: Jan Engelhardt +Date: 2020-08-19 13:21:33.156157310 +0200 + +We do not want static archives in openSUSE, so need to turn on SHARED mode. +As a result, a version needs to be added. +--- + CMakeLists.txt | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +Index: Vulkan-ValidationLayers-1.2.148/CMakeLists.txt +=================================================================== +--- Vulkan-ValidationLayers-1.2.148.orig/CMakeLists.txt ++++ Vulkan-ValidationLayers-1.2.148/CMakeLists.txt +@@ -320,11 +320,12 @@ set(SCRIPTS_DIR "${PROJECT_SOURCE_DIR}/s + # files directly in layers. + + add_library(VkLayer_utils +- STATIC ++ SHARED + layers/vk_layer_config.cpp + layers/vk_layer_extension_utils.cpp + layers/vk_layer_utils.cpp + layers/vk_format_utils.cpp) ++set_target_properties(VkLayer_utils PROPERTIES OUTPUT_NAME "VkLayer_utils-@PACKAGE_VERSION@") + target_link_libraries(VkLayer_utils PUBLIC Vulkan::Headers) + if(WIN32) + target_compile_definitions(VkLayer_utils PUBLIC _CRT_SECURE_NO_WARNINGS) diff --git a/vulkan-validationlayers.changes b/vulkan-validationlayers.changes index 0989816..23f08c4 100644 --- a/vulkan-validationlayers.changes +++ b/vulkan-validationlayers.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Aug 19 11:24:44 UTC 2020 - Jan Engelhardt + +- Produce and install support header files [boo#1175024] + ------------------------------------------------------------------- Sun Aug 9 10:10:53 UTC 2020 - Jan Engelhardt diff --git a/vulkan-validationlayers.spec b/vulkan-validationlayers.spec index 64629f8..72e8453 100644 --- a/vulkan-validationlayers.spec +++ b/vulkan-validationlayers.spec @@ -19,6 +19,7 @@ Name: vulkan-validationlayers Version: 1.2.148 Release: 0 +%define lname libVkLayer_utils-1_2_148 Summary: Validation layers for Vulkan License: Apache-2.0 Group: Development/Tools/Other @@ -26,6 +27,7 @@ URL: https://github.com/KhronosGroup/Vulkan-ValidationLayers Source: https://github.com/KhronosGroup/Vulkan-ValidationLayers/archive/v%version.tar.gz Source9: %name-rpmlintrc +Patch1: ver.diff BuildRequires: cmake >= 3.4 BuildRequires: gcc-c++ >= 4.8 BuildRequires: glslang-devel >= 8.13.3727 @@ -41,28 +43,59 @@ Conflicts: vulkan < 1.1 Obsoletes: vulkan < 1.1 %description -Vulkan is a 3D graphics and compute API providing cross-platform -access to modern GPUs with low overhead and targeting realtime -graphics applications such as games and interactive media. +Vulkan is a 3D graphics and compute API. This package contains the Khronos official Vulkan validation layers. +%package -n %lname +Summary: Vulkan validation layer utility library +Group: System/Libraries + +%description -n %lname +Vulkan is a 3D graphics and compute API. + +This package contains a utility library. + +%package devel +Summary: Vulkan validation layer support files +Group: Development/Libraries/C and C++ +Requires: %lname = %version + +%description devel +Vulkan is a 3D graphics and compute API. + +This package contains support files for the VkLayer utility library. + %prep %autosetup -n Vulkan-ValidationLayers-%version +perl -i -pe 's{\@PACKAGE_VERSION\@}{%version}' CMakeLists.txt %build %limit_build -m 2000 -%cmake -DGLSLANG_INSTALL_DIR="%_bindir" -DSPIRV_HEADERS_INSTALL_DIR="%_includedir" +%cmake -DGLSLANG_INSTALL_DIR="%_bindir" \ + -DSPIRV_HEADERS_INSTALL_DIR="%_includedir" \ + -DBUILD_LAYER_SUPPORT_FILES=ON make %{?_smp_mflags} %install %cmake_install # no header files -rm -f "%buildroot/%_libdir"/*.a +#rm -f "%buildroot/%_libdir"/*.a +ln -sv libVkLayer_utils-%version.so "%buildroot/%_libdir/libVkLayer_utils.so" + +%post -n %lname -p /sbin/ldconfig +%postun -n %lname -p /sbin/ldconfig %files %license LICENSE.txt -%_libdir/libVkLayer*.so +%_libdir/libVkLayer_khr*.so %_datadir/vulkan/ +%files -n %lname +%_libdir/libVkLayer_utils* + +%files devel +%_includedir/* +%_libdir/libVkLayer_utils.so + %changelog From 3510079f8a3cb6904ffb9c0994c4873ee361cdcc5876d2142bea734e59b56624 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Wed, 19 Aug 2020 11:49:34 +0000 Subject: [PATCH 2/6] OBS-URL: https://build.opensuse.org/package/show/X11:Wayland/vulkan-validationlayers?expand=0&rev=58 --- vulkan-validationlayers.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vulkan-validationlayers.spec b/vulkan-validationlayers.spec index 72e8453..28130c6 100644 --- a/vulkan-validationlayers.spec +++ b/vulkan-validationlayers.spec @@ -92,7 +92,7 @@ ln -sv libVkLayer_utils-%version.so "%buildroot/%_libdir/libVkLayer_utils.so" %_datadir/vulkan/ %files -n %lname -%_libdir/libVkLayer_utils* +%_libdir/libVkLayer_utils-%version.so %files devel %_includedir/* From e843ea0ae240c761d239a4937ae0e9e811ebe0fd95493f6f26ce92daf4619ba8 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Wed, 19 Aug 2020 12:37:34 +0000 Subject: [PATCH 3/6] OBS-URL: https://build.opensuse.org/package/show/X11:Wayland/vulkan-validationlayers?expand=0&rev=59 --- vulkan-validationlayers.changes | 1 + 1 file changed, 1 insertion(+) diff --git a/vulkan-validationlayers.changes b/vulkan-validationlayers.changes index 23f08c4..35922d2 100644 --- a/vulkan-validationlayers.changes +++ b/vulkan-validationlayers.changes @@ -2,6 +2,7 @@ Wed Aug 19 11:24:44 UTC 2020 - Jan Engelhardt - Produce and install support header files [boo#1175024] +- Add ver.diff ------------------------------------------------------------------- Sun Aug 9 10:10:53 UTC 2020 - Jan Engelhardt From 923bbe7a057fc44bf2c05fd75376e8b4b01100ab04fb701e7009da2fa0304787 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Thu, 20 Aug 2020 10:05:18 +0000 Subject: [PATCH 4/6] Accepting request 828090 from home:marxin:memory-constraint Use memoryperjob constraint instead of %limit_build macro. OBS-URL: https://build.opensuse.org/request/show/828090 OBS-URL: https://build.opensuse.org/package/show/X11:Wayland/vulkan-validationlayers?expand=0&rev=60 --- _constraints | 8 ++++++++ vulkan-validationlayers.changes | 5 +++++ vulkan-validationlayers.spec | 2 -- 3 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 _constraints diff --git a/_constraints b/_constraints new file mode 100644 index 0000000..51762ba --- /dev/null +++ b/_constraints @@ -0,0 +1,8 @@ + + + + + 2000 + + + \ No newline at end of file diff --git a/vulkan-validationlayers.changes b/vulkan-validationlayers.changes index 35922d2..b336b5c 100644 --- a/vulkan-validationlayers.changes +++ b/vulkan-validationlayers.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Thu Aug 20 09:09:54 UTC 2020 - Martin Liška + +- Use memoryperjob constraint instead of %limit_build macro. + ------------------------------------------------------------------- Wed Aug 19 11:24:44 UTC 2020 - Jan Engelhardt diff --git a/vulkan-validationlayers.spec b/vulkan-validationlayers.spec index 28130c6..9b7faab 100644 --- a/vulkan-validationlayers.spec +++ b/vulkan-validationlayers.spec @@ -31,7 +31,6 @@ Patch1: ver.diff BuildRequires: cmake >= 3.4 BuildRequires: gcc-c++ >= 4.8 BuildRequires: glslang-devel >= 8.13.3727 -BuildRequires: memory-constraints BuildRequires: pkg-config BuildRequires: python3-base BuildRequires: spirv-headers @@ -71,7 +70,6 @@ This package contains support files for the VkLayer utility library. perl -i -pe 's{\@PACKAGE_VERSION\@}{%version}' CMakeLists.txt %build -%limit_build -m 2000 %cmake -DGLSLANG_INSTALL_DIR="%_bindir" \ -DSPIRV_HEADERS_INSTALL_DIR="%_includedir" \ -DBUILD_LAYER_SUPPORT_FILES=ON From 2c4d57bc00ffa0f264043c280dafa4494e495bd950117d585d72680c8bfe9e0a Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Thu, 20 Aug 2020 16:14:28 +0000 Subject: [PATCH 5/6] - Update to release 1.2.151 OBS-URL: https://build.opensuse.org/package/show/X11:Wayland/vulkan-validationlayers?expand=0&rev=61 --- v1.2.148.tar.gz | 3 --- v1.2.151.tar.gz | 3 +++ vulkan-validationlayers.changes | 7 +++++++ vulkan-validationlayers.spec | 4 ++-- 4 files changed, 12 insertions(+), 5 deletions(-) delete mode 100644 v1.2.148.tar.gz create mode 100644 v1.2.151.tar.gz diff --git a/v1.2.148.tar.gz b/v1.2.148.tar.gz deleted file mode 100644 index 1940cf5..0000000 --- a/v1.2.148.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:da43a161e280cd7dce63a18e929efb586f08024d23b2ee205437f7949a8063fc -size 2212359 diff --git a/v1.2.151.tar.gz b/v1.2.151.tar.gz new file mode 100644 index 0000000..59e38c3 --- /dev/null +++ b/v1.2.151.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e584b725dbdd743af438f75ca21bdac43c906686f29bfc8c091ad5e9d3dfbd7b +size 2279765 diff --git a/vulkan-validationlayers.changes b/vulkan-validationlayers.changes index b336b5c..cafb7c0 100644 --- a/vulkan-validationlayers.changes +++ b/vulkan-validationlayers.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Thu Aug 20 16:08:36 UTC 2020 - Jan Engelhardt + +- Update to release 1.2.151 + * Add renderpass compat checks for FDM and Multiview use + * Add vkCmdResolveImage size VUIDs + ------------------------------------------------------------------- Thu Aug 20 09:09:54 UTC 2020 - Martin Liška diff --git a/vulkan-validationlayers.spec b/vulkan-validationlayers.spec index 9b7faab..f5c3b4c 100644 --- a/vulkan-validationlayers.spec +++ b/vulkan-validationlayers.spec @@ -17,9 +17,9 @@ Name: vulkan-validationlayers -Version: 1.2.148 +Version: 1.2.151 Release: 0 -%define lname libVkLayer_utils-1_2_148 +%define lname libVkLayer_utils-1_2_151 Summary: Validation layers for Vulkan License: Apache-2.0 Group: Development/Tools/Other From e8f8ddd0b355155b77015f597d8f64bdcd355be6eea15a0fd326e33a1dece903 Mon Sep 17 00:00:00 2001 From: Jan Engelhardt Date: Sat, 29 Aug 2020 08:12:24 +0000 Subject: [PATCH 6/6] - Add xxhash.diff. OBS-URL: https://build.opensuse.org/package/show/X11:Wayland/vulkan-validationlayers?expand=0&rev=62 --- vulkan-validationlayers.changes | 5 ++++ vulkan-validationlayers.spec | 11 ++++++--- xxhash.diff | 43 +++++++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 4 deletions(-) create mode 100644 xxhash.diff diff --git a/vulkan-validationlayers.changes b/vulkan-validationlayers.changes index cafb7c0..b722019 100644 --- a/vulkan-validationlayers.changes +++ b/vulkan-validationlayers.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Sat Aug 29 08:12:15 UTC 2020 - Jan Engelhardt + +- Add xxhash.diff. + ------------------------------------------------------------------- Thu Aug 20 16:08:36 UTC 2020 - Jan Engelhardt diff --git a/vulkan-validationlayers.spec b/vulkan-validationlayers.spec index f5c3b4c..585d947 100644 --- a/vulkan-validationlayers.spec +++ b/vulkan-validationlayers.spec @@ -28,6 +28,7 @@ URL: https://github.com/KhronosGroup/Vulkan-ValidationLayers Source: https://github.com/KhronosGroup/Vulkan-ValidationLayers/archive/v%version.tar.gz Source9: %name-rpmlintrc Patch1: ver.diff +Patch2: xxhash.diff BuildRequires: cmake >= 3.4 BuildRequires: gcc-c++ >= 4.8 BuildRequires: glslang-devel >= 8.13.3727 @@ -35,6 +36,7 @@ BuildRequires: pkg-config BuildRequires: python3-base BuildRequires: spirv-headers BuildRequires: spirv-tools-devel >= 2020.2 +BuildRequires: xxhash-devel BuildRequires: pkgconfig(vulkan) >= 1.2.130 BuildRequires: pkgconfig(x11) BuildRequires: pkgconfig(xcb) @@ -59,6 +61,7 @@ This package contains a utility library. Summary: Vulkan validation layer support files Group: Development/Libraries/C and C++ Requires: %lname = %version +Requires: xxhash-devel %description devel Vulkan is a 3D graphics and compute API. @@ -66,7 +69,7 @@ Vulkan is a 3D graphics and compute API. This package contains support files for the VkLayer utility library. %prep -%autosetup -n Vulkan-ValidationLayers-%version +%autosetup -n Vulkan-ValidationLayers-%version -p1 perl -i -pe 's{\@PACKAGE_VERSION\@}{%version}' CMakeLists.txt %build @@ -77,9 +80,9 @@ make %{?_smp_mflags} %install %cmake_install -# no header files -#rm -f "%buildroot/%_libdir"/*.a -ln -sv libVkLayer_utils-%version.so "%buildroot/%_libdir/libVkLayer_utils.so" +b="%buildroot" +ln -sv "libVkLayer_utils-%version.so" "$b/%_libdir/libVkLayer_utils.so" +rm -f "$b/%_includedir"/xxhash.* %post -n %lname -p /sbin/ldconfig %postun -n %lname -p /sbin/ldconfig diff --git a/xxhash.diff b/xxhash.diff new file mode 100644 index 0000000..c4b6771 --- /dev/null +++ b/xxhash.diff @@ -0,0 +1,43 @@ +From: Jan Engelhardt +Date: 2020-08-29 10:10:12.022296526 +0200 + +Avoid the installation of a custom xxhash.h header. Since vk_*.h header files +still include xxhash.h (and now would source the system xxhash instead of the +bundled one), it makes sense to build ValidationLayers itself with the system +xxhash as well, so that the ABI matches. + +--- + layers/CMakeLists.txt | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +Index: Vulkan-ValidationLayers/layers/CMakeLists.txt +=================================================================== +--- Vulkan-ValidationLayers.orig/layers/CMakeLists.txt ++++ Vulkan-ValidationLayers/layers/CMakeLists.txt +@@ -61,8 +61,6 @@ if(BUILD_LAYER_SUPPORT_FILES) + vk_layer_utils.h + vk_layer_utils.cpp + vk_loader_platform.h +- xxhash.h +- xxhash.c + generated/vk_validation_error_messages.h + generated/vk_layer_dispatch_table.h + generated/vk_dispatch_table_helper.h +@@ -195,7 +193,7 @@ set(CORE_VALIDATION_LIBRARY_FILES + shader_validation.cpp + shader_validation.h + gpu_validation.cpp +- xxhash.c) ++) + + set(OBJECT_LIFETIMES_LIBRARY_FILES + generated/object_tracker.cpp +@@ -253,7 +251,7 @@ if(BUILD_LAYERS) + target_include_directories(VkLayer_khronos_validation PRIVATE ${GLSLANG_SPIRV_INCLUDE_DIR}) + target_include_directories(VkLayer_khronos_validation PRIVATE ${SPIRV_TOOLS_INCLUDE_DIR}) + target_include_directories(VkLayer_khronos_validation PRIVATE ${SPIRV_HEADERS_INCLUDE_DIR}) +- target_link_libraries(VkLayer_khronos_validation PRIVATE ${SPIRV_TOOLS_LIBRARIES}) ++ target_link_libraries(VkLayer_khronos_validation PRIVATE ${SPIRV_TOOLS_LIBRARIES} -lxxhash) + + # The output file needs Unix "/" separators or Windows "\" separators On top of that, Windows separators actually need to be doubled + # because the json format uses backslash escapes