Skip to content

Using VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_KHR causes VkSwapchainCreateInfoKHR to fail #78

@tksuoran

Description

@tksuoran

Summary

If I chain VkSwapchainPresentScalingCreateInfoKHR using VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_KHR to VkSwapchainCreateInfoKHR then vkCreateSwapchainKHR() unexpectedly fails.

Note: Using VK_PRESENT_SCALING_STRETCH_BIT_KHR instead I get expected behavior, swapchain creation succeeds and it works.

Host system

  • Windows 11 Pro Version 24H2 OS build 26100.7171
  • AMD Software Adrenalin Edition Version 25.11.1
  • CPU AMD Ryzen AI 9 HX 370 w/ Radeon 890M

Repro steps

Enabled vulkan layers:

  • VK_LAYER_KHRONOS_validation

Enabled instance extensions:

  • VK_KHR_get_surface_capabilities2
  • VK_KHR_surface_maintenance1
  • VK_EXT_debug_utils
  • VK_EXT_swapchain_colorspace

Enabled device extensions:

  • VK_KHR_swapchain
  • VK_KHR_swapchain_maintenance1
  • VK_KHR_load_store_op_none
  • VK_KHR_push_descriptor
  • VK_KHR_present_mode_fifo_latest_ready

Detected vulkan physical device properties

  API version         = 1.4.329.0
  Driver ID           = VK_DRIVER_ID_AMD_PROPRIETARY
  Driver name         = AMD proprietary driver
  Driver info         = 25.11.1 (LLPC)
  Driver version      = 00800175
  Driver conformance  = 1
  Vendor ID           = 00001002
  Device ID           = 0000150e
  Device type         = VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
  Device name         = AMD Radeon(TM) 890M Graphics

Enabled features

  • swapchain maintenance1
  • present mode fifo latest ready

Detected surface formats:

  format VK_FORMAT_R8G8B8A8_UNORM colorspace VK_COLOR_SPACE_SRGB_NONLINEAR_KHR score 4
  format VK_FORMAT_B8G8R8A8_UNORM colorspace VK_COLOR_SPACE_SRGB_NONLINEAR_KHR score 4
  format VK_FORMAT_A2B10G10R10_UNORM_PACK32 colorspace VK_COLOR_SPACE_SRGB_NONLINEAR_KHR score 2
  format VK_FORMAT_R8G8B8A8_SRGB colorspace VK_COLOR_SPACE_SRGB_NONLINEAR_KHR score 6
  format VK_FORMAT_B8G8R8A8_SRGB colorspace VK_COLOR_SPACE_SRGB_NONLINEAR_KHR score 6

Detected surface present modes:

present mode VK_PRESENT_MODE_IMMEDIATE_KHR
  scaling   = VK_PRESENT_SCALING_ONE_TO_ONE_BIT_KHR|VK_PRESENT_SCALING_STRETCH_BIT_KHR
  gravity X = VK_PRESENT_GRAVITY_MIN_BIT_KHR|VK_PRESENT_GRAVITY_CENTERED_BIT_KHR
  gravity Y = VK_PRESENT_GRAVITY_MIN_BIT_KHR|VK_PRESENT_GRAVITY_CENTERED_BIT_KHR
present mode VK_PRESENT_MODE_FIFO_KHR
  scaling   = VK_PRESENT_SCALING_ONE_TO_ONE_BIT_KHR|VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_KHR|VK_PRESENT_SCALING_STRETCH_BIT_KHR
  gravity X = 
  gravity Y = 
present mode VK_PRESENT_MODE_FIFO_LATEST_READY_KHR
  scaling   = VK_PRESENT_SCALING_ONE_TO_ONE_BIT_KHR|VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_KHR|VK_PRESENT_SCALING_STRETCH_BIT_KHR
  gravity X = 
  gravity Y = 
present mode VK_PRESENT_MODE_FIFO_RELAXED_KHR
  scaling   = VK_PRESENT_SCALING_ONE_TO_ONE_BIT_KHR|VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_KHR|VK_PRESENT_SCALING_STRETCH_BIT_KHR
  gravity X = 
  gravity Y = 
Selected present mode VK_PRESENT_MODE_FIFO_LATEST_READY_KHR

Creating swapchain:

Calling vkCreateSwapchainKHR(format = VK_FORMAT_R8G8B8A8_SRGB, colorSpace = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, extent = 1920 x 1080, presentMode VK_PRESENT_MODE_FIFO_LATEST_READY_KHR, oldSwapchain = 0x0)
  scaling behavior = VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_KHR
  gravity x        = 0
  gravity y        = 0

Expected behavior:

Vulkan swapchain creation succeeds

Actual behavior

  • Vulkan validation layer is silent
  • Error:
'hello_swap.exe' (Win32): Loaded 'C:\Windows\System32\D3D12.dll'. Symbol loading disabled by Include/Exclude setting.
'hello_swap.exe' (Win32): Loaded 'C:\Windows\System32\DriverStore\FileRepository\u0421109.inf_amd64_fb479f779d3886ae\B420961\amdxc64.dll'. Symbol loading disabled by Include/Exclude setting.
onecore\windows\directx\database\helperlibrary\lib\perappusersettingsqueryimpl.cpp(159)\directxdatabasehelper.dll!00007FFC54D2FEED: (caller: 00007FFC54D2FD30) ReturnHr(26) tid(6e28) 80070002 The system cannot find the file specified.
'hello_swap.exe' (Win32): Loaded 'C:\Windows\System32\D3D12Core.dll'. Symbol loading disabled by Include/Exclude setting.
onecore\windows\directx\database\helperlibrary\lib\perappusersettingsqueryimpl.cpp(159)\directxdatabasehelper.dll!00007FFC54D2FEED: (caller: 00007FFC54D2FD30) ReturnHr(27) tid(6e28) 80070002 The system cannot find the file specified.
'hello_swap.exe' (Win32): Loaded 'C:\Windows\System32\D3DSCache.dll'. Symbol loading disabled by Include/Exclude setting.
'hello_swap.exe' (Win32): Loaded 'C:\Windows\System32\userenv.dll'. Symbol loading disabled by Include/Exclude setting.
'hello_swap.exe' (Win32): Loaded 'C:\Windows\System32\dxilconv.dll'. Symbol loading disabled by Include/Exclude setting.
'hello_swap.exe' (Win32): Unloaded 'C:\Windows\System32\dxilconv.dll'
Exception thrown at 0x00007FFC5AF080DA in hello_swap.exe: Microsoft C++ exception: _com_error at memory location 0x00000047810FB270.
[2025-12-07 20:41:50.322] [erhe.graphics.context] [critical] vkCreateSwapchainKHR() failed with 4294967283 VK_ERROR_UNKNOWN

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions