Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package vkmark for openSUSE:Factory checked in at 2023-06-16 16:54:53 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/vkmark (Old) and /work/SRC/openSUSE:Factory/.vkmark.new.15902 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "vkmark" Fri Jun 16 16:54:53 2023 rev:14 rq:1093343 version:2017.08+git.20230412 Changes: -------- --- /work/SRC/openSUSE:Factory/vkmark/vkmark.changes 2023-03-28 17:50:35.435329565 +0200 +++ /work/SRC/openSUSE:Factory/.vkmark.new.15902/vkmark.changes 2023-06-16 16:56:04.230141499 +0200 @@ -1,0 +2,12 @@ +Thu Jun 15 16:55:41 UTC 2023 - Martin Pluskal <mplus...@suse.com> + +- Update to version 2017.08+git.20230412: + * kms: Use VK_EXT_external_memory_dmabuf to create dmabuf-backed Vulkan images + * core,ws: Allow WSI backends to request device extensions + * core: Improve log message consistency + * github: Build with both ubuntu-20.04 and ubuntu-22.04 in CI + * vkutil: transition image to eShaderReadOnlyOptimal + * Fix missing <cstdint> include +- Drop no longer needed vkmark-cstdint-include.patch + +------------------------------------------------------------------- Old: ---- vkmark-2017.08+git.20220909.obscpio vkmark-cstdint-include.patch New: ---- vkmark-2017.08+git.20230412.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ vkmark.spec ++++++ --- /var/tmp/diff_new_pack.WGw9hi/_old 2023-06-16 16:56:05.450148696 +0200 +++ /var/tmp/diff_new_pack.WGw9hi/_new 2023-06-16 16:56:05.462148767 +0200 @@ -18,14 +18,12 @@ Name: vkmark -Version: 2017.08+git.20220909 +Version: 2017.08+git.20230412 Release: 0 Summary: Vulkan benchmark utility License: LGPL-2.1-or-later URL: https://github.com/vkmark/vkmark Source0: %{name}-%{version}.tar.xz -#PATCH-FIX-UPSTREAM vkmark-cstdint-include.patch gh#vkmark/vkmark#51 malcolmle...@opensuse.org Add missing cstdint include in scene.h. -Patch0: vkmark-cstdint-include.patch BuildRequires: gcc-c++ BuildRequires: glm-devel BuildRequires: meson >= 0.45 @@ -43,7 +41,7 @@ An extensible Vulkan benchmarking suite with targeted, configurable scenes. %prep -%autosetup -p1 +%autosetup %build %meson ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.WGw9hi/_old 2023-06-16 16:56:05.498148979 +0200 +++ /var/tmp/diff_new_pack.WGw9hi/_new 2023-06-16 16:56:05.502149003 +0200 @@ -3,6 +3,6 @@ <param name="url">git://github.com/vkmark/vkmark</param> <param name="changesrevision">cf45f2faee236fd1118be2fcd27e4f2a91fc2e40</param></service><service name="tar_scm"> <param name="url">https://github.com/vkmark/vkmark</param> - <param name="changesrevision">30d2cd37f0566589d90914501fc7c51a4e51f559</param></service></servicedata> + <param name="changesrevision">ab6e6f34077722d5ae33f6bd40b18ef9c0e99a15</param></service></servicedata> (No newline at EOF) ++++++ vkmark-2017.08+git.20220909.obscpio -> vkmark-2017.08+git.20230412.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vkmark-2017.08+git.20220909/.github/workflows/build.yml new/vkmark-2017.08+git.20230412/.github/workflows/build.yml --- old/vkmark-2017.08+git.20220909/.github/workflows/build.yml 2022-09-09 13:29:28.000000000 +0200 +++ new/vkmark-2017.08+git.20230412/.github/workflows/build.yml 2023-04-12 12:59:27.000000000 +0200 @@ -10,7 +10,10 @@ jobs: build: - runs-on: ubuntu-latest + strategy: + matrix: + os: [ubuntu-20.04, ubuntu-22.04] + runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v1 - name: Install dependencies diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vkmark-2017.08+git.20220909/meson.build new/vkmark-2017.08+git.20230412/meson.build --- old/vkmark-2017.08+git.20220909/meson.build 2022-09-09 13:29:28.000000000 +0200 +++ new/vkmark-2017.08+git.20230412/meson.build 2023-04-12 12:59:27.000000000 +0200 @@ -32,16 +32,11 @@ wayland_scanner_dep = dependency('wayland-scanner', required : get_option('wayland') == 'true') libdrm_dep = dependency('libdrm', required : get_option('kms') == 'true') gbm_dep = dependency('gbm', required : get_option('kms') == 'true') -has_vulkan_intel_header = cpp.has_header('vulkan/vulkan_intel.h', dependencies: vulkan_dep) - -if get_option('kms') == 'true' and not has_vulkan_intel_header - error('KMS plugin needs the vulkan_intel.h header, but it couldn\'t be found') -endif build_xcb_ws = xcb_dep.found() and xcb_icccm_dep.found() and get_option('xcb') != 'false' build_wayland_ws = (wayland_client_dep.found() and wayland_protocols_dep.found() and wayland_scanner_dep.found() and get_option('wayland') != 'false') -build_kms_ws = libdrm_dep.found() and gbm_dep.found() and has_vulkan_intel_header and get_option('kms') != 'false' +build_kms_ws = libdrm_dep.found() and gbm_dep.found() and get_option('kms') != 'false' if not build_xcb_ws and not build_wayland_ws and not build_kms_ws error('vkmark needs at least one winsys to work - xcb, wayland or kms') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vkmark-2017.08+git.20220909/src/scene.h new/vkmark-2017.08+git.20230412/src/scene.h --- old/vkmark-2017.08+git.20220909/src/scene.h 2022-09-09 13:29:28.000000000 +0200 +++ new/vkmark-2017.08+git.20230412/src/scene.h 2023-04-12 12:59:27.000000000 +0200 @@ -22,6 +22,7 @@ #pragma once +#include <cstdint> #include <string> #include <vector> #include <unordered_map> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vkmark-2017.08+git.20220909/src/vkutil/texture_builder.cpp new/vkmark-2017.08+git.20230412/src/vkutil/texture_builder.cpp --- old/vkmark-2017.08+git.20220909/src/vkutil/texture_builder.cpp 2022-09-09 13:29:28.000000000 +0200 +++ new/vkmark-2017.08+git.20230412/src/vkutil/texture_builder.cpp 2023-04-12 12:59:27.000000000 +0200 @@ -78,6 +78,13 @@ vkutil::copy_buffer_to_image(vulkan, staging_buffer, texture.image, image_extent); + vkutil::transition_image_layout( + vulkan, + texture.image, + vk::ImageLayout::eTransferDstOptimal, + vk::ImageLayout::eShaderReadOnlyOptimal, + vk::ImageAspectFlagBits::eColor); + texture.image_view = vkutil::ImageViewBuilder{vulkan} .set_image(texture.image) .set_format(texture_format) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vkmark-2017.08+git.20220909/src/vulkan_state.cpp new/vkmark-2017.08+git.20230412/src/vulkan_state.cpp --- old/vkmark-2017.08+git.20220909/src/vulkan_state.cpp 2022-09-09 13:29:28.000000000 +0200 +++ new/vkmark-2017.08+git.20230412/src/vulkan_state.cpp 2023-04-12 12:59:27.000000000 +0200 @@ -44,7 +44,7 @@ { if (!vulkan_wsi.is_physical_device_supported(*it_device)) { - Log::debug("device with uuid %s is not supported by window system integration layer", + Log::debug("Device with uuid %s is not supported by window system integration layer\n", static_cast<DeviceUUID>(it_device->getProperties().pipelineCacheUUID).representation().data()); it_device = available_devices.erase(it_device); } @@ -87,7 +87,7 @@ auto const app_info = vk::ApplicationInfo{} .setPApplicationName("vkmark"); - std::vector<char const*> enabled_extensions{vulkan_wsi.vulkan_extensions()}; + std::vector<char const*> enabled_extensions{vulkan_wsi.required_extensions().instance}; enabled_extensions.push_back(VK_KHR_SURFACE_EXTENSION_NAME); auto const create_info = vk::InstanceCreateInfo{} @@ -159,8 +159,7 @@ Log::debug("VulkanState: Using queue family index %d for rendering\n", graphics_queue_family_index()); - std::array<char const*,1> enabled_extensions{ - {VK_KHR_SWAPCHAIN_EXTENSION_NAME}}; + std::vector<char const*> enabled_extensions{vulkan_wsi.required_extensions().device}; auto const device_features = vk::PhysicalDeviceFeatures{} .setSamplerAnisotropy(true); @@ -193,17 +192,17 @@ vk::PhysicalDevice ChooseFirstSupportedStrategy::operator()(const std::vector<vk::PhysicalDevice>& available_devices) { - Log::debug("Trying to use first supported device.\n"); + Log::debug("Trying to use first supported device\n"); for (auto const& physical_device : available_devices) { if (find_queue_family_index(physical_device, vk::QueueFlagBits::eGraphics).second) { - Log::debug("First supported device choosen!\n"); + Log::debug("First supported device chosen\n"); return physical_device; } - Log::debug("device with uuid %s skipped!\n", + Log::debug("Device with uuid %s skipped\n", static_cast<DeviceUUID>(physical_device.getProperties().pipelineCacheUUID).representation().data() ); } @@ -213,7 +212,7 @@ vk::PhysicalDevice ChooseByUUIDStrategy::operator()(const std::vector<vk::PhysicalDevice>& available_devices) { - Log::debug("Trying to use device with specified UUID %s.\n", + Log::debug("Trying to use device with specified UUID %s\n", m_selected_device_uuid.representation().data()); for (auto const& physical_device: available_devices) @@ -227,5 +226,5 @@ } // if device is not supported by wsi it would appear in list_all_devices but is not available here - throw std::runtime_error(std::string("Device specified by uuid is not available!")); + throw std::runtime_error(std::string("Device specified by uuid is not available")); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vkmark-2017.08+git.20220909/src/vulkan_wsi.h new/vkmark-2017.08+git.20230412/src/vulkan_wsi.h --- old/vkmark-2017.08+git.20220909/src/vulkan_wsi.h 2022-09-09 13:29:28.000000000 +0200 +++ new/vkmark-2017.08+git.20230412/src/vulkan_wsi.h 2023-04-12 12:59:27.000000000 +0200 @@ -32,7 +32,13 @@ public: virtual ~VulkanWSI() = default; - virtual std::vector<char const*> vulkan_extensions() = 0; + struct Extensions + { + std::vector<char const*> instance; + std::vector<char const*> device; + }; + + virtual Extensions required_extensions() = 0; virtual bool is_physical_device_supported(vk::PhysicalDevice const& pd) = 0; virtual std::vector<uint32_t> physical_device_queue_family_indices( vk::PhysicalDevice const& pd) = 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vkmark-2017.08+git.20220909/src/ws/kms_window_system.cpp new/vkmark-2017.08+git.20230412/src/ws/kms_window_system.cpp --- old/vkmark-2017.08+git.20220909/src/ws/kms_window_system.cpp 2022-09-09 13:29:28.000000000 +0200 +++ new/vkmark-2017.08+git.20230412/src/ws/kms_window_system.cpp 2023-04-12 12:59:27.000000000 +0200 @@ -29,8 +29,8 @@ #include <xf86drm.h> #include <drm_fourcc.h> -#include <vulkan/vulkan_intel.h> +#include <algorithm> #include <system_error> #include <fcntl.h> #include <unistd.h> @@ -270,6 +270,24 @@ global_vt_state->restore(); } +uint32_t find_memory_type_index(vk::PhysicalDevice const& physical_device, + vk::MemoryRequirements const& requirements, + vk::MemoryPropertyFlags flags) +{ + auto const properties = physical_device.getMemoryProperties(); + + for (uint32_t i = 0; i < properties.memoryTypeCount; i++) + { + if ((requirements.memoryTypeBits & (1 << i)) && + (properties.memoryTypes[i].propertyFlags & flags) == flags) + { + return i; + } + } + + throw std::runtime_error{"Coudn't find matching memory type"}; +} + } VTState::VTState() @@ -433,14 +451,20 @@ for (auto const& gbm_bo : gbm_bos) { uint32_t fb = 0; + uint32_t handles[4] = {0}; + uint32_t strides[4] = {0}; + uint32_t offsets[4] = {0}; - uint32_t handles[4] = {gbm_bo_get_handle(gbm_bo).u32, 0, 0, 0}; - uint32_t strides[4] = {gbm_bo_get_stride(gbm_bo), 0, 0, 0}; - uint32_t offsets[4] = {0, 0, 0, 0}; + for (auto i = 0; i < gbm_bo_get_plane_count(gbm_bo); i++) + { + handles[i] = gbm_bo_get_handle_for_plane(gbm_bo, i).u32; + offsets[i] = gbm_bo_get_offset(gbm_bo, i); + strides[i] = gbm_bo_get_stride_for_plane(gbm_bo, i); + } auto const ret = drmModeAddFB2( drm_fd, vk_extent.width, vk_extent.height, - DRM_FORMAT_XRGB8888, + gbm_bo_get_format(gbm_bo), handles, strides, offsets, &fb, 0); if (ret < 0) @@ -453,52 +477,86 @@ } } -// TODO: Use an official extension to create the VkImages when it becomes -// available (e.g. VK_MESAX_external_image_dma_buf) void KMSWindowSystem::create_vk_images() { - auto const create_dma_buf_image = - reinterpret_cast<PFN_vkCreateDmaBufImageINTEL>( - vulkan->device().getProcAddr("vkCreateDmaBufImageINTEL")); - - if (!create_dma_buf_image) - throw std::runtime_error{"Failed to get vkCreateDmaBufImageINTEL function pointer"}; + bool warned_mod_invalid = false; for (auto const& gbm_bo : gbm_bos) { + vk::SubresourceLayout layouts[4] = {0}; + uint32_t num_planes = gbm_bo_get_plane_count(gbm_bo); auto const fd = ManagedResource<int>{gbm_bo_get_fd(gbm_bo), close}; - auto const stride = gbm_bo_get_stride(gbm_bo); + uint64_t modifier = gbm_bo_get_modifier(gbm_bo); - VkDmaBufImageCreateInfo create_info{}; - create_info.sType = static_cast<VkStructureType>(VK_STRUCTURE_TYPE_DMA_BUF_IMAGE_CREATE_INFO_INTEL); - create_info.fd = fd; - create_info.format = static_cast<VkFormat>(vk_image_format); - create_info.extent = {vk_extent.width, vk_extent.height, 1}; - create_info.strideInBytes = stride; - - VkImage image; - VkDeviceMemory device_memory; - - VkResult result = create_dma_buf_image( - vulkan->device(), - &create_info, - nullptr, - &device_memory, - &image); + if (modifier == DRM_FORMAT_MOD_INVALID && !warned_mod_invalid) + { + Log::warning("KMSWindowSystem: Using VK_IMAGE_TILING_OPTIMAL for " + "dmabuf with invalid modifier, but this is not " + "guaranteed to work.\n"); + warned_mod_invalid = true; + } - if (result != VK_SUCCESS) + for (uint32_t i = 0; i < num_planes; i++) { - vk::throwResultException(static_cast<vk::Result>(result), - "vkCreateDmbBufImageINTEL"); + layouts[i].offset = gbm_bo_get_offset(gbm_bo, i); + layouts[i].rowPitch = gbm_bo_get_stride_for_plane(gbm_bo, i); } + auto const modifier_info = vk::ImageDrmFormatModifierExplicitCreateInfoEXT{} + .setDrmFormatModifier(modifier) + .setDrmFormatModifierPlaneCount(num_planes) + .setPPlaneLayouts(layouts); + auto const external_memory_create_info = vk::ExternalMemoryImageCreateInfoKHR{} + .setHandleTypes(vk::ExternalMemoryHandleTypeFlagBitsKHR::eDmaBufEXT) + .setPNext(modifier != DRM_FORMAT_MOD_INVALID ? &modifier_info : nullptr); + auto const image_create_info = vk::ImageCreateInfo{} + .setPNext(&external_memory_create_info) + .setImageType(vk::ImageType::e2D) + .setFormat(vk_image_format) + .setExtent({vk_extent.width, vk_extent.height, 1}) + .setMipLevels(1) + .setArrayLayers(1) + .setSamples(vk::SampleCountFlagBits::e1) + .setTiling(modifier != DRM_FORMAT_MOD_INVALID ? + vk::ImageTiling::eDrmFormatModifierEXT : + vk::ImageTiling::eOptimal) + .setUsage(vk::ImageUsageFlagBits::eColorAttachment) + .setSharingMode(vk::SharingMode::eExclusive) + .setInitialLayout(vk::ImageLayout::eUndefined); + + auto vk_image = ManagedResource<vk::Image>{ + vulkan->device().createImage(image_create_info), + [vptr=vulkan] (auto const& i) { vptr->device().destroyImage(i); }}; + + auto const requirements = vulkan->device().getImageMemoryRequirements(vk_image); + uint32_t index = find_memory_type_index(vulkan->physical_device(), + requirements, + vk::MemoryPropertyFlagBits::eDeviceLocal); + + auto const import_memory_fd_info = vk::ImportMemoryFdInfoKHR{} + .setHandleType(vk::ExternalMemoryHandleTypeFlagBitsKHR::eDmaBufEXT) + .setFd(fd); + auto const dedicated_allocate_info = vk::MemoryDedicatedAllocateInfoKHR{} + .setPNext(&import_memory_fd_info) + .setImage(vk_image); + auto const memory_allocate_info = vk::MemoryAllocateInfo{} + .setPNext(&dedicated_allocate_info) + .setAllocationSize(requirements.size) + .setMemoryTypeIndex((uint32_t)index); + + auto device_memory = ManagedResource<vk::DeviceMemory>{ + vulkan->device().allocateMemory(memory_allocate_info), + [vptr=vulkan] (auto const& m) { vptr->device().freeMemory(m); }}; + + vulkan->device().bindImageMemory(vk_image, device_memory, 0); + vk_images.push_back( ManagedResource<vk::Image>{ - vk::Image{image}, - [vptr=vulkan, device_memory] (auto& image) + vk_image.steal(), + [vptr=vulkan, mem=device_memory.steal()] (auto const& image) { vptr->device().destroyImage(image); - vptr->device().freeMemory(device_memory); + vptr->device().freeMemory(mem); }}); } } @@ -533,14 +591,30 @@ } } -std::vector<char const*> KMSWindowSystem::vulkan_extensions() +VulkanWSI::Extensions KMSWindowSystem::required_extensions() { - return {}; + return {{}, {VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME, + VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME, + VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME}}; } -bool KMSWindowSystem::is_physical_device_supported(vk::PhysicalDevice const&) +bool KMSWindowSystem::is_physical_device_supported(vk::PhysicalDevice const& physdev) { - return true; + auto const props = physdev.enumerateDeviceExtensionProperties(); + auto const exts = required_extensions(); + auto const extension_is_supported = + [&props] (std::string const& ext) + { + auto const iter = std::find_if(props.begin(), props.end(), + [&ext](vk::ExtensionProperties prop) + { + return ext == prop.extensionName; + }); + return iter != props.end(); + }; + + return std::all_of(exts.device.begin(), exts.device.end(), + extension_is_supported); } std::vector<uint32_t> KMSWindowSystem::physical_device_queue_family_indices( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vkmark-2017.08+git.20220909/src/ws/kms_window_system.h new/vkmark-2017.08+git.20230412/src/ws/kms_window_system.h --- old/vkmark-2017.08+git.20220909/src/ws/kms_window_system.h 2022-09-09 13:29:28.000000000 +0200 +++ new/vkmark-2017.08+git.20230412/src/ws/kms_window_system.h 2023-04-12 12:59:27.000000000 +0200 @@ -61,7 +61,7 @@ bool should_quit() override; // VulkanWSI - std::vector<char const*> vulkan_extensions() override; + Extensions required_extensions() override; bool is_physical_device_supported(vk::PhysicalDevice const& pd) override; std::vector<uint32_t> physical_device_queue_family_indices( vk::PhysicalDevice const& pd) override; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vkmark-2017.08+git.20220909/src/ws/native_system.h new/vkmark-2017.08+git.20230412/src/ws/native_system.h --- old/vkmark-2017.08+git.20220909/src/ws/native_system.h 2022-09-09 13:29:28.000000000 +0200 +++ new/vkmark-2017.08+git.20230412/src/ws/native_system.h 2023-04-12 12:59:27.000000000 +0200 @@ -34,7 +34,7 @@ public: virtual ~NativeSystem() = default; - virtual std::vector<char const*> vulkan_extensions() = 0; + virtual std::vector<char const*> instance_extensions() = 0; virtual uint32_t get_presentation_queue_family_index(vk::PhysicalDevice const& pd) = 0; virtual bool should_quit() = 0; virtual vk::Extent2D get_vk_extent() = 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vkmark-2017.08+git.20220909/src/ws/swapchain_window_system.cpp new/vkmark-2017.08+git.20230412/src/ws/swapchain_window_system.cpp --- old/vkmark-2017.08+git.20220909/src/ws/swapchain_window_system.cpp 2022-09-09 13:29:28.000000000 +0200 +++ new/vkmark-2017.08+git.20230412/src/ws/swapchain_window_system.cpp 2023-04-12 12:59:27.000000000 +0200 @@ -251,9 +251,9 @@ [this] (auto& s) { vulkan->device().destroySwapchainKHR(s); }}; } -std::vector<char const*> SwapchainWindowSystem::vulkan_extensions() +VulkanWSI::Extensions SwapchainWindowSystem::required_extensions() { - return native->vulkan_extensions(); + return {native->instance_extensions(), {VK_KHR_SWAPCHAIN_EXTENSION_NAME}}; } bool SwapchainWindowSystem::is_physical_device_supported(vk::PhysicalDevice const& pd) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vkmark-2017.08+git.20220909/src/ws/swapchain_window_system.h new/vkmark-2017.08+git.20230412/src/ws/swapchain_window_system.h --- old/vkmark-2017.08+git.20220909/src/ws/swapchain_window_system.h 2022-09-09 13:29:28.000000000 +0200 +++ new/vkmark-2017.08+git.20230412/src/ws/swapchain_window_system.h 2023-04-12 12:59:27.000000000 +0200 @@ -51,7 +51,7 @@ bool should_quit() override; // VulkanWSI - std::vector<char const*> vulkan_extensions() override; + Extensions required_extensions() override; bool is_physical_device_supported(vk::PhysicalDevice const& pd) override; std::vector<uint32_t> physical_device_queue_family_indices( vk::PhysicalDevice const& pd) override; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vkmark-2017.08+git.20220909/src/ws/wayland_native_system.cpp new/vkmark-2017.08+git.20230412/src/ws/wayland_native_system.cpp --- old/vkmark-2017.08+git.20220909/src/ws/wayland_native_system.cpp 2022-09-09 13:29:28.000000000 +0200 +++ new/vkmark-2017.08+git.20230412/src/ws/wayland_native_system.cpp 2023-04-12 12:59:27.000000000 +0200 @@ -145,7 +145,7 @@ create_native_window(); } -std::vector<char const*> WaylandNativeSystem::vulkan_extensions() +std::vector<char const*> WaylandNativeSystem::instance_extensions() { return {VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME}; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vkmark-2017.08+git.20220909/src/ws/wayland_native_system.h new/vkmark-2017.08+git.20230412/src/ws/wayland_native_system.h --- old/vkmark-2017.08+git.20220909/src/ws/wayland_native_system.h 2022-09-09 13:29:28.000000000 +0200 +++ new/vkmark-2017.08+git.20230412/src/ws/wayland_native_system.h 2023-04-12 12:59:27.000000000 +0200 @@ -35,7 +35,7 @@ public: WaylandNativeSystem(int width, int height); - std::vector<char const*> vulkan_extensions() override; + std::vector<char const*> instance_extensions() override; uint32_t get_presentation_queue_family_index(vk::PhysicalDevice const& pd) override; bool should_quit() override; vk::Extent2D get_vk_extent() override; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vkmark-2017.08+git.20220909/src/ws/xcb_native_system.cpp new/vkmark-2017.08+git.20230412/src/ws/xcb_native_system.cpp --- old/vkmark-2017.08+git.20220909/src/ws/xcb_native_system.cpp 2022-09-09 13:29:28.000000000 +0200 +++ new/vkmark-2017.08+git.20230412/src/ws/xcb_native_system.cpp 2023-04-12 12:59:27.000000000 +0200 @@ -47,7 +47,7 @@ xcb_disconnect(connection); } -std::vector<char const*> XcbNativeSystem::vulkan_extensions() +std::vector<char const*> XcbNativeSystem::instance_extensions() { return {VK_KHR_XCB_SURFACE_EXTENSION_NAME}; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vkmark-2017.08+git.20220909/src/ws/xcb_native_system.h new/vkmark-2017.08+git.20230412/src/ws/xcb_native_system.h --- old/vkmark-2017.08+git.20220909/src/ws/xcb_native_system.h 2022-09-09 13:29:28.000000000 +0200 +++ new/vkmark-2017.08+git.20230412/src/ws/xcb_native_system.h 2023-04-12 12:59:27.000000000 +0200 @@ -35,7 +35,7 @@ XcbNativeSystem(int width, int height, xcb_visualid_t visual_id); ~XcbNativeSystem(); - std::vector<char const*> vulkan_extensions() override; + std::vector<char const*> instance_extensions() override; uint32_t get_presentation_queue_family_index(vk::PhysicalDevice const& pd) override; bool should_quit() override; vk::Extent2D get_vk_extent() override; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vkmark-2017.08+git.20220909/tests/null_window_system.h new/vkmark-2017.08+git.20230412/tests/null_window_system.h --- old/vkmark-2017.08+git.20220909/tests/null_window_system.h 2022-09-09 13:29:28.000000000 +0200 +++ new/vkmark-2017.08+git.20230412/tests/null_window_system.h 2023-04-12 12:59:27.000000000 +0200 @@ -39,7 +39,7 @@ bool should_quit() override { return false; } - std::vector<char const*> vulkan_extensions() override { return {}; } + Extensions required_extensions() override { return {}; } bool is_physical_device_supported(vk::PhysicalDevice const&) override { return true; } std::vector<uint32_t> physical_device_queue_family_indices( vk::PhysicalDevice const&) override diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vkmark-2017.08+git.20220909/tests/test_window_system_plugin.cpp new/vkmark-2017.08+git.20230412/tests/test_window_system_plugin.cpp --- old/vkmark-2017.08+git.20220909/tests/test_window_system_plugin.cpp 2022-09-09 13:29:28.000000000 +0200 +++ new/vkmark-2017.08+git.20230412/tests/test_window_system_plugin.cpp 2023-04-12 12:59:27.000000000 +0200 @@ -32,7 +32,7 @@ { public: TestWindowSystem(std::string const& id) : id{id} {} - std::vector<char const*> vulkan_extensions() override { return {id.c_str()}; } + Extensions required_extensions() override { return {{id.c_str()}, {}}; } private: std::string const id; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vkmark-2017.08+git.20220909/tests/window_system_loader_test.cpp new/vkmark-2017.08+git.20230412/tests/window_system_loader_test.cpp --- old/vkmark-2017.08+git.20220909/tests/window_system_loader_test.cpp 2022-09-09 13:29:28.000000000 +0200 +++ new/vkmark-2017.08+git.20230412/tests/window_system_loader_test.cpp 2023-04-12 12:59:27.000000000 +0200 @@ -84,7 +84,7 @@ int window_system_id(WindowSystem& ws) { - return std::stoi(ws.vulkan_wsi().vulkan_extensions()[0]); + return std::stoi(ws.vulkan_wsi().required_extensions().instance[0]); } } ++++++ vkmark.obsinfo ++++++ --- /var/tmp/diff_new_pack.WGw9hi/_old 2023-06-16 16:56:05.662149947 +0200 +++ /var/tmp/diff_new_pack.WGw9hi/_new 2023-06-16 16:56:05.666149970 +0200 @@ -1,5 +1,5 @@ name: vkmark -version: 2017.08+git.20220909 -mtime: 1662722968 -commit: 30d2cd37f0566589d90914501fc7c51a4e51f559 +version: 2017.08+git.20230412 +mtime: 1681297167 +commit: ab6e6f34077722d5ae33f6bd40b18ef9c0e99a15