Hello, I am developing Vulkan (v1.4) application and I wanted to use NVIDIA Nsight Graphics Capture and i am encountering followign error message
Incompatibility encountered
A blocking incompatibility was encountered:
fatal failed object lookup (api: Vulkan, id: 157 [vkCreateSwapchainKHR])
This may result in instability or corruption. If a crash is encountered following this message, this incompatibility is a likely source of the error.
Set the -no-block-on-first-incompatibility launch option to disable this message box.
Which is suggesting that the swap chain could not be created. I have tried the frame capture which was able to run the application but was not able to capture the frame despite the fact that I have 0 validation errors and application runs without any problem. I have also tried other Vulkan applications like vkcube and there everything worked as expected (both for Frame capture and Graphics capture).
I really don`t know what might be the issue in both cases.
My swap chain creation code looks like this.
auto capabilites = m_device.GetPhysicalDevice().getSurfaceCapabilitiesKHR(m_instance.GetSurface());
auto minImageCount = capabilites.minImageCount + 1;
if(capabilites.maxImageCount > 0 && minImageCount > capabilites.maxImageCount)
{
minImageCount = capabilites.maxImageCount;
}
vk::SwapchainCreateInfoKHR swapChainCreateInfo;
swapChainCreateInfo.surface = m_instance.GetSurface();
swapChainCreateInfo.minImageCount = minImageCount;
swapChainCreateInfo.imageFormat = m_format.format; // vk::Format::eR16G16B16A16Sfloat
swapChainCreateInfo.imageColorSpace = m_format.colorSpace; //vk::ColorSpaceKHR::eSrgbNonLinear
swapChainCreateInfo.imageExtent = m_extent;
swapChainCreateInfo.presentMode = m_presentMode;
swapChainCreateInfo.imageArrayLayers = 1;
swapChainCreateInfo.imageUsage = vk::ImageUsageFlagBits::eColorAttachment;
swapChainCreateInfo.preTransform = capabilites.currentTransform; //vk:SurfaceTransformFlagBitsKHR::eldentity
swapChainCreateInfo.compositeAlpha = vk::CompositeAlphaFlagBitsKHR::eOpaque;
swapChainCreateInfo.presentMode = m_presentMode; // fifo
swapChainCreateInfo.clipped = VK_TRUE;
swapChainCreateInfo.oldSwapchain = VK_NULL_HANDLE;
std::vector<uint32_t> queueFamilyIndices = {m_device.GetConcreteQueueFamilyIndex(EQueueFamilyIndexType::Graphics),
m_device.GetConcreteQueueFamilyIndex(EQueueFamilyIndexType::PresentKHR)};
//graphics vs transfer
if(queueFamilyIndices[0] != queueFamilyIndices[1])
{
swapChainCreateInfo.imageSharingMode = vk::SharingMode::eConcurrent;
swapChainCreateInfo.queueFamilyIndexCount = static_cast<uint32_t>(queueFamilyIndices.size());
swapChainCreateInfo.pQueueFamilyIndices = queueFamilyIndices.data();
}
else
{
swapChainCreateInfo.imageSharingMode = vk::SharingMode::eExclusive;
}
m_swapChain = m_device.GetDevice().createSwapchainKHR(swapChainCreateInfo, nullptr);
assert(m_swapChain != VK_NULL_HANDLE); // assertion triggered
When i run the Graphics capture via terminal it will inject following extensions
$: ./ngfx-capture --exe ~/Vulkan-RTX/build/Vulkan-RTX
=================================================
Launching /home/wpsimon09/Vulkan-RTX/build/Vulkan-RTX ...
[Vulkan-RTX] Connection Established: 2025-06-04 10:35:23.137904370 (pid: 22924)
Plugin "GTK3 plugin" uses conflicting symbol "png_free".
[Vulkan-RTX] Detected enabled Vulkan layer: VK_LAYER_KHRONOS_validation (version 1.4.313)
[Vulkan-RTX] Buffer address capture/replay enabled
[Vulkan-RTX] Injecting device extension: VK_EXT_private_data
[Vulkan-RTX] Injecting device extension: VK_KHR_storage_buffer_storage_class
[Vulkan-RTX] Injecting device extension: VK_KHR_8bit_storage
[Vulkan-RTX] Injecting device extension: VK_KHR_16bit_storage
[Vulkan-RTX] Injecting device extension: VK_KHR_ray_tracing_maintenance1
[Vulkan-RTX] Injecting device extension: VK_EXT_external_memory_host
[Vulkan-RTX] Injecting device extension: VK_EXT_memory_budget
[Vulkan-RTX] Overriding vkAllocateMemory to demote host visible device local memory off device (memoryTypeIndex: 4 -> 2)
And also will preform this actiont
[Vulkan-RTX] Overriding image usage flags to remove VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT so image data can be captured
[Vulkan-RTX] Overriding image usage flags to remove VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT so swapchain image data can be captured
My system information:
GPU: NVIDIA GeForce RTX 4050 Max-Q / Mobile [Discrete]
Driver version: 570.153.02
Nsight Version: 2025.3.0
OS: Fedora 42, GNOME, with Wayland
Any help is appreciated !