halloy icon indicating copy to clipboard operation
halloy copied to clipboard

segfault when closing while running vulkan, issue with choosing wgpu backend + device

Open JkktBkkt opened this issue 8 months ago • 4 comments

With selected backend getting set to vulkan (at least on my nvidia system), closing the application via either it's own interface ot window decorations leads to a segfault getting reported. The issue has been fixed in 24.0.3 of wgpu: https://github.com/gfx-rs/wgpu/commit/b2171dd1a4c2884f20ae95d67c21819ade336a5e Could you bump the dependency?

I am also wondering what the logic is for choosing which vulkan device to use. On my system it picks intel_icd.x86_64.json over intel_hasvk, virtio and nvidia ones, which results in a panic. Manually overriding VK_ICD_FILENAMES to nvidia one results in correctly using vulkan as mentioned above, others just fail-over to opengl on the nvidia card. For reference, most wgpu examples don't launch with this icd either, some others pick the nvidia one despite launch flags, misrepresenting the tests. I have built the wgpu examples locally, and have verified the crashing on startup behavior with auto-choosing the icd in both the version provided by void-linux packages and binary releases from here on github, 2024.11-2025.3 Trace with auto-picked intel_icd.x86_64.json :

[destroyed object]: error 7: importing the supplied dmabufs failed
Protocol error 7 on object @0: 

thread 'main' panicked at /host/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wgpu-24.0.1/src/backend/wgpu_core.rs:3432:18:
wgpu error: Validation Error

Caused by:
  In Surface::configure
    Surface does not support the adapter's queue family


stack backtrace:
   0:     0x560c356c0aca - <unknown>
   1:     0x560c356ef693 - <unknown>
   2:     0x560c356bb863 - <unknown>
   3:     0x560c356c0912 - <unknown>
   4:     0x560c356c1ac0 - <unknown>
   5:     0x560c356c18a0 - <unknown>
   6:     0x560c356c2222 - <unknown>
   7:     0x560c356c1fca - <unknown>
   8:     0x560c356c0fd9 - <unknown>
   9:     0x560c356c1c5d - <unknown>
  10:     0x560c33da08b0 - <unknown>
  11:     0x560c33d47ed8 - <unknown>
  12:     0x560c34a6ea37 - <unknown>
  13:     0x560c34a8c4d1 - <unknown>
  14:     0x560c34847ebd - <unknown>
  15:     0x560c33deb297 - <unknown>
  16:     0x560c33df4c1f - <unknown>
  17:     0x560c34199f7c - <unknown>
  18:     0x560c33e317ef - <unknown>
  19:     0x560c33df310e - <unknown>
  20:     0x560c33f0c41b - <unknown>
  21:     0x560c342d4f13 - <unknown>
  22:     0x560c3425e939 - <unknown>
  23:     0x560c356b26c7 - <unknown>
  24:     0x560c33f118f5 - <unknown>
  25:     0x7fb905569c4c - __libc_start_call_main
                               at ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
  26:     0x7fb905569d05 - __libc_start_main_impl
                               at ./csu/../csu/libc-start.c:360:3
  27:     0x560c33da1141 - <unknown>
  28:                0x0 - <unknown>

JkktBkkt avatar Mar 30 '25 20:03 JkktBkkt

Still happens on 2025.4: Image First one detects only OpenCL on Nvidia and works fine Second tries to launch Vulkan on Intel and crashes without opening Third launches Vulkan on Nvidia, runs fine but closing prints out a segfault, so it's just a minor nitpick.

In case these might be relevant or helpful: void, running plasma with wayland, all up-to-date. KWIN_DRM_DEVICES="/dev/dri/card1:/dev/dri/card0" where card1 is nvidia (30-series) and card0 is intel (12th gen's iGPU detected as Display controller: Intel Corporation AlderLake-S GT1 (rev 0c))

Trace with the crash in the middle is identical except for addresses

Protocol error 7 on object @0: 

thread 'main' panicked at /host/cargo/registry/src/index.crates.io-1949cf8c6b5b557f/wgpu-24.0.1/src/backend/wgpu_core.rs:3432:18:
wgpu error: Validation Error

Caused by:
  In Surface::configure
    Surface does not support the adapter's queue family


stack backtrace:
   0:     0x565522253fb0 - <unknown>
   1:     0x565522283843 - <unknown>
   2:     0x56552224ed73 - <unknown>
   3:     0x565522253e02 - <unknown>
   4:     0x565522254e9f - <unknown>
   5:     0x565522254d0a - <unknown>
   6:     0x565522255842 - <unknown>
   7:     0x5655222555ea - <unknown>
   8:     0x5655222544c9 - <unknown>
   9:     0x56552225527d - <unknown>
  10:     0x5655209217a0 - <unknown>
  11:     0x5655208c8df8 - <unknown>
  12:     0x565521603527 - <unknown>
  13:     0x56552161da81 - <unknown>
  14:     0x5655213d9dc7 - <unknown>
  15:     0x565520c08ef9 - <unknown>
  16:     0x565520c127ce - <unknown>
  17:     0x565520c20a0f - <unknown>
  18:     0x565520c51bbb - <unknown>
  19:     0x565520c10cb1 - <unknown>
  20:     0x565520d47adc - <unknown>
  21:     0x565520cebaa3 - <unknown>
  22:     0x565520b47aa9 - <unknown>
  23:     0x5655222459c0 - <unknown>
  24:     0x565520d4a815 - <unknown>
  25:     0x7f645dcfec4c - __libc_start_call_main
                               at ./csu/../sysdeps/nptl/libc_start_call_main.h:58:16
  26:     0x7f645dcfed05 - __libc_start_main_impl
                               at ./csu/../csu/libc-start.c:360:3
  27:     0x565520922031 - <unknown>
  28:                0x0 - <unknown>

Edit: vulkaninfo summary:

==========
VULKANINFO
==========

Vulkan Instance Version: 1.3.268


Instance Extensions: count = 24
-------------------------------
VK_EXT_acquire_drm_display             : extension revision 1
VK_EXT_acquire_xlib_display            : extension revision 1
VK_EXT_debug_report                    : extension revision 10
VK_EXT_debug_utils                     : extension revision 2
VK_EXT_direct_mode_display             : extension revision 1
VK_EXT_display_surface_counter         : extension revision 1
VK_EXT_headless_surface                : extension revision 1
VK_EXT_surface_maintenance1            : extension revision 1
VK_EXT_swapchain_colorspace            : extension revision 5
VK_KHR_device_group_creation           : extension revision 1
VK_KHR_display                         : extension revision 23
VK_KHR_external_fence_capabilities     : extension revision 1
VK_KHR_external_memory_capabilities    : extension revision 1
VK_KHR_external_semaphore_capabilities : extension revision 1
VK_KHR_get_display_properties2         : extension revision 1
VK_KHR_get_physical_device_properties2 : extension revision 2
VK_KHR_get_surface_capabilities2       : extension revision 1
VK_KHR_portability_enumeration         : extension revision 1
VK_KHR_surface                         : extension revision 25
VK_KHR_surface_protected_capabilities  : extension revision 1
VK_KHR_wayland_surface                 : extension revision 6
VK_KHR_xcb_surface                     : extension revision 6
VK_KHR_xlib_surface                    : extension revision 6
VK_LUNARG_direct_driver_loading        : extension revision 1

Instance Layers: count = 6
--------------------------
VK_LAYER_MANGOHUD_overlay_x86_64  Vulkan Hud Overlay           1.3.0    version 1
VK_LAYER_NV_optimus               NVIDIA Optimus layer         1.4.303  version 1
VK_LAYER_VALVE_steam_fossilize_32 Steam Pipeline Caching Layer 1.3.207  version 1
VK_LAYER_VALVE_steam_fossilize_64 Steam Pipeline Caching Layer 1.3.207  version 1
VK_LAYER_VALVE_steam_overlay_32   Steam Overlay Layer          1.3.207  version 1
VK_LAYER_VALVE_steam_overlay_64   Steam Overlay Layer          1.3.207  version 1

Devices:
========
GPU0:
        apiVersion         = 1.4.303
        driverVersion      = 570.133.7.0
        vendorID           = 0x10de
        deviceID           = 0x220a
        deviceType         = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
        deviceName         = NVIDIA GeForce RTX 3080
        driverID           = DRIVER_ID_NVIDIA_PROPRIETARY
        driverName         = NVIDIA
        driverInfo         = 570.133.07
        conformanceVersion = 1.4.1.0
        deviceUUID         = ac3f6dae-ab9d-6bff-1e26-894255621ba1
        driverUUID         = a312329b-a338-5885-bebf-8b95ca9ae741
GPU1:
        apiVersion         = 1.3.296
        driverVersion      = 24.3.4
        vendorID           = 0x8086
        deviceID           = 0x4680
        deviceType         = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
        deviceName         = Intel(R) UHD Graphics 770 (ADL-S GT1)
        driverID           = DRIVER_ID_INTEL_OPEN_SOURCE_MESA
        driverName         = Intel open-source Mesa driver
        driverInfo         = Mesa 24.3.4
        conformanceVersion = 1.3.6.0
        deviceUUID         = 86808046-0c00-0000-0002-000000000000
        driverUUID         = cdca6099-cfd6-2231-e6e4-0932390684d9
full:

==========
VULKANINFO
==========

Vulkan Instance Version: 1.3.268


Instance Extensions: count = 24
===============================
        VK_EXT_acquire_drm_display             : extension revision 1
        VK_EXT_acquire_xlib_display            : extension revision 1
        VK_EXT_debug_report                    : extension revision 10
        VK_EXT_debug_utils                     : extension revision 2
        VK_EXT_direct_mode_display             : extension revision 1
        VK_EXT_display_surface_counter         : extension revision 1
        VK_EXT_headless_surface                : extension revision 1
        VK_EXT_surface_maintenance1            : extension revision 1
        VK_EXT_swapchain_colorspace            : extension revision 5
        VK_KHR_device_group_creation           : extension revision 1
        VK_KHR_display                         : extension revision 23
        VK_KHR_external_fence_capabilities     : extension revision 1
        VK_KHR_external_memory_capabilities    : extension revision 1
        VK_KHR_external_semaphore_capabilities : extension revision 1
        VK_KHR_get_display_properties2         : extension revision 1
        VK_KHR_get_physical_device_properties2 : extension revision 2
        VK_KHR_get_surface_capabilities2       : extension revision 1
        VK_KHR_portability_enumeration         : extension revision 1
        VK_KHR_surface                         : extension revision 25
        VK_KHR_surface_protected_capabilities  : extension revision 1
        VK_KHR_wayland_surface                 : extension revision 6
        VK_KHR_xcb_surface                     : extension revision 6
        VK_KHR_xlib_surface                    : extension revision 6
        VK_LUNARG_direct_driver_loading        : extension revision 1

Layers: count = 6
=================
VK_LAYER_MANGOHUD_overlay_x86_64 (Vulkan Hud Overlay) Vulkan version 1.3.0, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 2
                GPU id = 0 (NVIDIA GeForce RTX 3080)
                Layer-Device Extensions: count = 0

                GPU id = 1 (Intel(R) UHD Graphics 770 (ADL-S GT1))
                Layer-Device Extensions: count = 0

VK_LAYER_NV_optimus (NVIDIA Optimus layer) Vulkan version 1.4.303, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 2
                GPU id = 0 (NVIDIA GeForce RTX 3080)
                Layer-Device Extensions: count = 0

                GPU id = 1 (Intel(R) UHD Graphics 770 (ADL-S GT1))
                Layer-Device Extensions: count = 0

VK_LAYER_VALVE_steam_fossilize_32 (Steam Pipeline Caching Layer) Vulkan version 1.3.207, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 2
                GPU id = 0 (NVIDIA GeForce RTX 3080)
                Layer-Device Extensions: count = 0

                GPU id = 1 (Intel(R) UHD Graphics 770 (ADL-S GT1))
                Layer-Device Extensions: count = 0

VK_LAYER_VALVE_steam_fossilize_64 (Steam Pipeline Caching Layer) Vulkan version 1.3.207, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 2
                GPU id = 0 (NVIDIA GeForce RTX 3080)
                Layer-Device Extensions: count = 0

                GPU id = 1 (Intel(R) UHD Graphics 770 (ADL-S GT1))
                Layer-Device Extensions: count = 0

VK_LAYER_VALVE_steam_overlay_32 (Steam Overlay Layer) Vulkan version 1.3.207, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 2
                GPU id = 0 (NVIDIA GeForce RTX 3080)
                Layer-Device Extensions: count = 0

                GPU id = 1 (Intel(R) UHD Graphics 770 (ADL-S GT1))
                Layer-Device Extensions: count = 0

VK_LAYER_VALVE_steam_overlay_64 (Steam Overlay Layer) Vulkan version 1.3.207, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 2
                GPU id = 0 (NVIDIA GeForce RTX 3080)
                Layer-Device Extensions: count = 0

                GPU id = 1 (Intel(R) UHD Graphics 770 (ADL-S GT1))
                Layer-Device Extensions: count = 0

Presentable Surfaces:
=====================
GPU id : 0 (NVIDIA GeForce RTX 3080):
        Surface types: count = 2
                VK_KHR_xcb_surface
                VK_KHR_xlib_surface
        Formats: count = 2
                SurfaceFormat[0]:
                        format = FORMAT_B8G8R8A8_UNORM
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[1]:
                        format = FORMAT_B8G8R8A8_SRGB
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
        Present Modes: count = 2
                PRESENT_MODE_FIFO_KHR
                PRESENT_MODE_IMMEDIATE_KHR
        VkSurfaceCapabilitiesKHR:
        -------------------------
                minImageCount = 3
                maxImageCount = 8
                currentExtent:
                        width  = 256
                        height = 256
                minImageExtent:
                        width  = 256
                        height = 256
                maxImageExtent:
                        width  = 256
                        height = 256
                maxImageArrayLayers = 1
                supportedTransforms: count = 1
                        SURFACE_TRANSFORM_IDENTITY_BIT_KHR
                currentTransform = SURFACE_TRANSFORM_IDENTITY_BIT_KHR
                supportedCompositeAlpha: count = 1
                        COMPOSITE_ALPHA_OPAQUE_BIT_KHR
                supportedUsageFlags: count = 6
                        IMAGE_USAGE_TRANSFER_SRC_BIT
                        IMAGE_USAGE_TRANSFER_DST_BIT
                        IMAGE_USAGE_SAMPLED_BIT
                        IMAGE_USAGE_STORAGE_BIT
                        IMAGE_USAGE_COLOR_ATTACHMENT_BIT
                        IMAGE_USAGE_INPUT_ATTACHMENT_BIT
        VkSharedPresentSurfaceCapabilitiesKHR:
        --------------------------------------
                sharedPresentSupportedUsageFlags: count = 6
                        IMAGE_USAGE_TRANSFER_SRC_BIT
                        IMAGE_USAGE_TRANSFER_DST_BIT
                        IMAGE_USAGE_SAMPLED_BIT
                        IMAGE_USAGE_STORAGE_BIT
                        IMAGE_USAGE_COLOR_ATTACHMENT_BIT
                        IMAGE_USAGE_INPUT_ATTACHMENT_BIT

        VkSurfaceProtectedCapabilitiesKHR:
        ----------------------------------
                supportsProtected = false

        VK_EXT_surface_maintenance1:
        ----------------------------
                PRESENT_MODE_FIFO_KHR:
                        minImageCount = 3
                        maxImageCount = 8
                        VkSurfacePresentScalingCapabilitiesEXT:
                                supportedPresentScaling:
                                        None
                                supportedPresentGravityX:
                                        None
                                supportedPresentGravityY:
                                        None
                                minScaledImageExtent:
                                        width  = 0
                                        height = 0
                                maxScaledImageExtent:
                                        width  = 0
                                        height = 0
                        VkSurfacePresentModeCompatibilityEXT:
                                presentModeCount                = 2
                                pPresentModes: count = 2
                                        PRESENT_MODE_IMMEDIATE_KHR
                                        PRESENT_MODE_IMMEDIATE_KHR
                PRESENT_MODE_IMMEDIATE_KHR:
                        minImageCount = 4
                        maxImageCount = 8
                        VkSurfacePresentScalingCapabilitiesEXT:
                                supportedPresentScaling:
                                        None
                                supportedPresentGravityX:
                                        None
                                supportedPresentGravityY:
                                        None
                                minScaledImageExtent:
                                        width  = 0
                                        height = 0
                                maxScaledImageExtent:
                                        width  = 0
                                        height = 0
                        VkSurfacePresentModeCompatibilityEXT:
                                presentModeCount                = 2
                                pPresentModes: count = 2
                                        PRESENT_MODE_IMMEDIATE_KHR
                                        PRESENT_MODE_IMMEDIATE_KHR

GPU id : 1 (Intel(R) UHD Graphics 770 (ADL-S GT1)):
        Surface types: count = 2
                VK_KHR_xcb_surface
                VK_KHR_xlib_surface
        Formats: count = 2
                SurfaceFormat[0]:
                        format = FORMAT_B8G8R8A8_SRGB
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[1]:
                        format = FORMAT_B8G8R8A8_UNORM
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
        Present Modes: count = 4
                PRESENT_MODE_IMMEDIATE_KHR
                PRESENT_MODE_MAILBOX_KHR
                PRESENT_MODE_FIFO_KHR
                PRESENT_MODE_FIFO_RELAXED_KHR
        VkSurfaceCapabilitiesKHR:
        -------------------------
                minImageCount = 3
                maxImageCount = 0
                currentExtent:
                        width  = 256
                        height = 256
                minImageExtent:
                        width  = 256
                        height = 256
                maxImageExtent:
                        width  = 256
                        height = 256
                maxImageArrayLayers = 1
                supportedTransforms: count = 1
                        SURFACE_TRANSFORM_IDENTITY_BIT_KHR
                currentTransform = SURFACE_TRANSFORM_IDENTITY_BIT_KHR
                supportedCompositeAlpha: count = 2
                        COMPOSITE_ALPHA_OPAQUE_BIT_KHR
                        COMPOSITE_ALPHA_INHERIT_BIT_KHR
                supportedUsageFlags: count = 7
                        IMAGE_USAGE_TRANSFER_SRC_BIT
                        IMAGE_USAGE_TRANSFER_DST_BIT
                        IMAGE_USAGE_SAMPLED_BIT
                        IMAGE_USAGE_STORAGE_BIT
                        IMAGE_USAGE_COLOR_ATTACHMENT_BIT
                        IMAGE_USAGE_INPUT_ATTACHMENT_BIT
                        IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT
        VkSurfaceProtectedCapabilitiesKHR:
        ----------------------------------
                supportsProtected = false

        VK_EXT_surface_maintenance1:
        ----------------------------
                PRESENT_MODE_IMMEDIATE_KHR:
                        minImageCount = 3
                        maxImageCount = 0
                        VkSurfacePresentScalingCapabilitiesEXT:
                                supportedPresentScaling:
                                        None
                                supportedPresentGravityX:
                                        None
                                supportedPresentGravityY:
                                        None
                                minScaledImageExtent:
                                        width  = 256
                                        height = 256
                                maxScaledImageExtent:
                                        width  = 256
                                        height = 256
                        VkSurfacePresentModeCompatibilityEXT:
                                presentModeCount                = 4
                                pPresentModes: count = 4
                                        PRESENT_MODE_IMMEDIATE_KHR
                                        PRESENT_MODE_MAILBOX_KHR
                                        PRESENT_MODE_FIFO_KHR
                                        PRESENT_MODE_FIFO_RELAXED_KHR
                PRESENT_MODE_MAILBOX_KHR:
                        minImageCount = 4
                        maxImageCount = 0
                        VkSurfacePresentScalingCapabilitiesEXT:
                                supportedPresentScaling:
                                        None
                                supportedPresentGravityX:
                                        None
                                supportedPresentGravityY:
                                        None
                                minScaledImageExtent:
                                        width  = 256
                                        height = 256
                                maxScaledImageExtent:
                                        width  = 256
                                        height = 256
                        VkSurfacePresentModeCompatibilityEXT:
                                presentModeCount                = 4
                                pPresentModes: count = 4
                                        PRESENT_MODE_MAILBOX_KHR
                                        PRESENT_MODE_IMMEDIATE_KHR
                                        PRESENT_MODE_FIFO_KHR
                                        PRESENT_MODE_FIFO_RELAXED_KHR
                PRESENT_MODE_FIFO_KHR:
                        minImageCount = 3
                        maxImageCount = 0
                        VkSurfacePresentScalingCapabilitiesEXT:
                                supportedPresentScaling:
                                        None
                                supportedPresentGravityX:
                                        None
                                supportedPresentGravityY:
                                        None
                                minScaledImageExtent:
                                        width  = 256
                                        height = 256
                                maxScaledImageExtent:
                                        width  = 256
                                        height = 256
                        VkSurfacePresentModeCompatibilityEXT:
                                presentModeCount                = 4
                                pPresentModes: count = 4
                                        PRESENT_MODE_FIFO_KHR
                                        PRESENT_MODE_IMMEDIATE_KHR
                                        PRESENT_MODE_MAILBOX_KHR
                                        PRESENT_MODE_FIFO_RELAXED_KHR
                PRESENT_MODE_FIFO_RELAXED_KHR:
                        minImageCount = 3
                        maxImageCount = 0
                        VkSurfacePresentScalingCapabilitiesEXT:
                                supportedPresentScaling:
                                        None
                                supportedPresentGravityX:
                                        None
                                supportedPresentGravityY:
                                        None
                                minScaledImageExtent:
                                        width  = 256
                                        height = 256
                                maxScaledImageExtent:
                                        width  = 256
                                        height = 256
                        VkSurfacePresentModeCompatibilityEXT:
                                presentModeCount                = 4
                                pPresentModes: count = 4
                                        PRESENT_MODE_FIFO_RELAXED_KHR
                                        PRESENT_MODE_IMMEDIATE_KHR
                                        PRESENT_MODE_MAILBOX_KHR
                                        PRESENT_MODE_FIFO_KHR

GPU id : 0 (NVIDIA GeForce RTX 3080):
        Surface type = VK_KHR_wayland_surface
        Formats: count = 7
                SurfaceFormat[0]:
                        format = FORMAT_A2B10G10R10_UNORM_PACK32
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[1]:
                        format = FORMAT_A2R10G10B10_UNORM_PACK32
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[2]:
                        format = FORMAT_B8G8R8A8_SRGB
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[3]:
                        format = FORMAT_B8G8R8A8_UNORM
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[4]:
                        format = FORMAT_R8G8B8A8_SRGB
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[5]:
                        format = FORMAT_R8G8B8A8_UNORM
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[6]:
                        format = FORMAT_R16G16B16A16_SFLOAT
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
        Present Modes: count = 3
                PRESENT_MODE_MAILBOX_KHR
                PRESENT_MODE_FIFO_KHR
                PRESENT_MODE_IMMEDIATE_KHR
        VkSurfaceCapabilitiesKHR:
        -------------------------
                minImageCount = 2
                maxImageCount = 8
                currentExtent:
                        width  = 4294967295
                        height = 4294967295
                minImageExtent:
                        width  = 1
                        height = 1
                maxImageExtent:
                        width  = 16384
                        height = 16384
                maxImageArrayLayers = 1
                supportedTransforms: count = 1
                        SURFACE_TRANSFORM_IDENTITY_BIT_KHR
                currentTransform = SURFACE_TRANSFORM_IDENTITY_BIT_KHR
                supportedCompositeAlpha: count = 2
                        COMPOSITE_ALPHA_OPAQUE_BIT_KHR
                        COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR
                supportedUsageFlags: count = 6
                        IMAGE_USAGE_TRANSFER_SRC_BIT
                        IMAGE_USAGE_TRANSFER_DST_BIT
                        IMAGE_USAGE_SAMPLED_BIT
                        IMAGE_USAGE_STORAGE_BIT
                        IMAGE_USAGE_COLOR_ATTACHMENT_BIT
                        IMAGE_USAGE_INPUT_ATTACHMENT_BIT
        VkSharedPresentSurfaceCapabilitiesKHR:
        --------------------------------------
                sharedPresentSupportedUsageFlags: count = 6
                        IMAGE_USAGE_TRANSFER_SRC_BIT
                        IMAGE_USAGE_TRANSFER_DST_BIT
                        IMAGE_USAGE_SAMPLED_BIT
                        IMAGE_USAGE_STORAGE_BIT
                        IMAGE_USAGE_COLOR_ATTACHMENT_BIT
                        IMAGE_USAGE_INPUT_ATTACHMENT_BIT

        VkSurfaceProtectedCapabilitiesKHR:
        ----------------------------------
                supportsProtected = false

        VK_EXT_surface_maintenance1:
        ----------------------------
                PRESENT_MODE_MAILBOX_KHR:
                        minImageCount = 2
                        maxImageCount = 8
                        VkSurfacePresentScalingCapabilitiesEXT:
                                supportedPresentScaling:
                                        None
                                supportedPresentGravityX:
                                        None
                                supportedPresentGravityY:
                                        None
                                minScaledImageExtent:
                                        width  = 0
                                        height = 0
                                maxScaledImageExtent:
                                        width  = 0
                                        height = 0
                        VkSurfacePresentModeCompatibilityEXT:
                                presentModeCount                = 3
                                pPresentModes: count = 3
                                        PRESENT_MODE_IMMEDIATE_KHR
                                        PRESENT_MODE_IMMEDIATE_KHR
                                        PRESENT_MODE_IMMEDIATE_KHR
                PRESENT_MODE_FIFO_KHR:
                        minImageCount = 2
                        maxImageCount = 8
                        VkSurfacePresentScalingCapabilitiesEXT:
                                supportedPresentScaling:
                                        None
                                supportedPresentGravityX:
                                        None
                                supportedPresentGravityY:
                                        None
                                minScaledImageExtent:
                                        width  = 0
                                        height = 0
                                maxScaledImageExtent:
                                        width  = 0
                                        height = 0
                        VkSurfacePresentModeCompatibilityEXT:
                                presentModeCount                = 3
                                pPresentModes: count = 3
                                        PRESENT_MODE_IMMEDIATE_KHR
                                        PRESENT_MODE_IMMEDIATE_KHR
                                        PRESENT_MODE_IMMEDIATE_KHR
                PRESENT_MODE_IMMEDIATE_KHR:
                        minImageCount = 2
                        maxImageCount = 8
                        VkSurfacePresentScalingCapabilitiesEXT:
                                supportedPresentScaling:
                                        None
                                supportedPresentGravityX:
                                        None
                                supportedPresentGravityY:
                                        None
                                minScaledImageExtent:
                                        width  = 0
                                        height = 0
                                maxScaledImageExtent:
                                        width  = 0
                                        height = 0
                        VkSurfacePresentModeCompatibilityEXT:
                                presentModeCount                = 3
                                pPresentModes: count = 3
                                        PRESENT_MODE_IMMEDIATE_KHR
                                        PRESENT_MODE_IMMEDIATE_KHR
                                        PRESENT_MODE_IMMEDIATE_KHR

GPU id : 1 (Intel(R) UHD Graphics 770 (ADL-S GT1)):
        Surface type = VK_KHR_wayland_surface
        Formats: count = 12
                SurfaceFormat[0]:
                        format = FORMAT_A2B10G10R10_UNORM_PACK32
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[1]:
                        format = FORMAT_A2R10G10B10_UNORM_PACK32
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[2]:
                        format = FORMAT_B8G8R8A8_SRGB
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[3]:
                        format = FORMAT_B8G8R8A8_UNORM
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[4]:
                        format = FORMAT_R8G8B8A8_SRGB
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[5]:
                        format = FORMAT_R8G8B8A8_UNORM
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[6]:
                        format = FORMAT_R16G16B16A16_SFLOAT
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[7]:
                        format = FORMAT_B5G5R5A1_UNORM_PACK16
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[8]:
                        format = FORMAT_A1R5G5B5_UNORM_PACK16
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[9]:
                        format = FORMAT_R5G6B5_UNORM_PACK16
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[10]:
                        format = FORMAT_B5G6R5_UNORM_PACK16
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[11]:
                        format = FORMAT_R5G5B5A1_UNORM_PACK16
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
        Present Modes: count = 3
                PRESENT_MODE_MAILBOX_KHR
                PRESENT_MODE_FIFO_KHR
                PRESENT_MODE_IMMEDIATE_KHR
        VkSurfaceCapabilitiesKHR:
        -------------------------
                minImageCount = 4
                maxImageCount = 0
                currentExtent:
                        width  = 4294967295
                        height = 4294967295
                minImageExtent:
                        width  = 1
                        height = 1
                maxImageExtent:
                        width  = 16384
                        height = 16384
                maxImageArrayLayers = 1
                supportedTransforms: count = 1
                        SURFACE_TRANSFORM_IDENTITY_BIT_KHR
                currentTransform = SURFACE_TRANSFORM_IDENTITY_BIT_KHR
                supportedCompositeAlpha: count = 2
                        COMPOSITE_ALPHA_OPAQUE_BIT_KHR
                        COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR
                supportedUsageFlags: count = 7
                        IMAGE_USAGE_TRANSFER_SRC_BIT
                        IMAGE_USAGE_TRANSFER_DST_BIT
                        IMAGE_USAGE_SAMPLED_BIT
                        IMAGE_USAGE_STORAGE_BIT
                        IMAGE_USAGE_COLOR_ATTACHMENT_BIT
                        IMAGE_USAGE_INPUT_ATTACHMENT_BIT
                        IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT
        VkSurfaceProtectedCapabilitiesKHR:
        ----------------------------------
                supportsProtected = false

        VK_EXT_surface_maintenance1:
        ----------------------------
                PRESENT_MODE_MAILBOX_KHR:
                        minImageCount = 4
                        maxImageCount = 0
                        VkSurfacePresentScalingCapabilitiesEXT:
                                supportedPresentScaling:
                                        None
                                supportedPresentGravityX:
                                        None
                                supportedPresentGravityY:
                                        None
                                minScaledImageExtent:
                                        width  = 1
                                        height = 1
                                maxScaledImageExtent:
                                        width  = 16384
                                        height = 16384
                        VkSurfacePresentModeCompatibilityEXT:
                                presentModeCount                = 2
                                pPresentModes: count = 2
                                        PRESENT_MODE_MAILBOX_KHR
                                        PRESENT_MODE_FIFO_KHR
                PRESENT_MODE_FIFO_KHR:
                        minImageCount = 3
                        maxImageCount = 0
                        VkSurfacePresentScalingCapabilitiesEXT:
                                supportedPresentScaling:
                                        None
                                supportedPresentGravityX:
                                        None
                                supportedPresentGravityY:
                                        None
                                minScaledImageExtent:
                                        width  = 1
                                        height = 1
                                maxScaledImageExtent:
                                        width  = 16384
                                        height = 16384
                        VkSurfacePresentModeCompatibilityEXT:
                                presentModeCount                = 2
                                pPresentModes: count = 2
                                        PRESENT_MODE_FIFO_KHR
                                        PRESENT_MODE_MAILBOX_KHR
                PRESENT_MODE_IMMEDIATE_KHR:
                        minImageCount = 3
                        maxImageCount = 0
                        VkSurfacePresentScalingCapabilitiesEXT:
                                supportedPresentScaling:
                                        None
                                supportedPresentGravityX:
                                        None
                                supportedPresentGravityY:
                                        None
                                minScaledImageExtent:
                                        width  = 1
                                        height = 1
                                maxScaledImageExtent:
                                        width  = 16384
                                        height = 16384
                        VkSurfacePresentModeCompatibilityEXT:
                                presentModeCount                = 1
                                pPresentModes: count = 1
                                        PRESENT_MODE_IMMEDIATE_KHR


Device Properties and Extensions:
=================================
GPU0:
VkPhysicalDeviceProperties:
---------------------------
        apiVersion        = 1.4.303 (4210991)
        driverVersion     = 570.133.7.0 (2392932800)
        vendorID          = 0x10de
        deviceID          = 0x220a
        deviceType        = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
        deviceName        = NVIDIA GeForce RTX 3080
        pipelineCacheUUID = 436ff9e7-7db9-30ec-e96a-6441bffd3896

VkPhysicalDeviceLimits:
-----------------------
        maxImageDimension1D                             = 32768
        maxImageDimension2D                             = 32768
        maxImageDimension3D                             = 16384
        maxImageDimensionCube                           = 32768
        maxImageArrayLayers                             = 2048
        maxTexelBufferElements                          = 134217728
        maxUniformBufferRange                           = 65536
        maxStorageBufferRange                           = 4294967295
        maxPushConstantsSize                            = 256
        maxMemoryAllocationCount                        = 4294967295
        maxSamplerAllocationCount                       = 4000
        bufferImageGranularity                          = 0x00000400
        sparseAddressSpaceSize                          = 0x10000000000
        maxBoundDescriptorSets                          = 32
        maxPerStageDescriptorSamplers                   = 1048576
        maxPerStageDescriptorUniformBuffers             = 1048576
        maxPerStageDescriptorStorageBuffers             = 1048576
        maxPerStageDescriptorSampledImages              = 1048576
        maxPerStageDescriptorStorageImages              = 1048576
        maxPerStageDescriptorInputAttachments           = 1048576
        maxPerStageResources                            = 4294967295
        maxDescriptorSetSamplers                        = 1048576
        maxDescriptorSetUniformBuffers                  = 1048576
        maxDescriptorSetUniformBuffersDynamic           = 15
        maxDescriptorSetStorageBuffers                  = 1048576
        maxDescriptorSetStorageBuffersDynamic           = 16
        maxDescriptorSetSampledImages                   = 1048576
        maxDescriptorSetStorageImages                   = 1048576
        maxDescriptorSetInputAttachments                = 1048576
        maxVertexInputAttributes                        = 32
        maxVertexInputBindings                          = 32
        maxVertexInputAttributeOffset                   = 2047
        maxVertexInputBindingStride                     = 2048
        maxVertexOutputComponents                       = 128
        maxTessellationGenerationLevel                  = 64
        maxTessellationPatchSize                        = 32
        maxTessellationControlPerVertexInputComponents  = 128
        maxTessellationControlPerVertexOutputComponents = 128
        maxTessellationControlPerPatchOutputComponents  = 120
        maxTessellationControlTotalOutputComponents     = 4216
        maxTessellationEvaluationInputComponents        = 128
        maxTessellationEvaluationOutputComponents       = 128
        maxGeometryShaderInvocations                    = 32
        maxGeometryInputComponents                      = 128
        maxGeometryOutputComponents                     = 128
        maxGeometryOutputVertices                       = 1024
        maxGeometryTotalOutputComponents                = 1024
        maxFragmentInputComponents                      = 128
        maxFragmentOutputAttachments                    = 8
        maxFragmentDualSrcAttachments                   = 1
        maxFragmentCombinedOutputResources              = 4294967295
        maxComputeSharedMemorySize                      = 49152
        maxComputeWorkGroupCount: count = 3
                2147483647
                65535
                65535
        maxComputeWorkGroupInvocations                  = 1024
        maxComputeWorkGroupSize: count = 3
                1024
                1024
                64
        subPixelPrecisionBits                           = 8
        subTexelPrecisionBits                           = 8
        mipmapPrecisionBits                             = 8
        maxDrawIndexedIndexValue                        = 4294967295
        maxDrawIndirectCount                            = 4294967295
        maxSamplerLodBias                               = 15
        maxSamplerAnisotropy                            = 16
        maxViewports                                    = 16
        maxViewportDimensions: count = 2
                32768
                32768
        viewportBoundsRange: count = 2
                -65536
                65536
        viewportSubPixelBits                            = 8
        minMemoryMapAlignment                           = 64
        minTexelBufferOffsetAlignment                   = 0x00000010
        minUniformBufferOffsetAlignment                 = 0x00000040
        minStorageBufferOffsetAlignment                 = 0x00000010
        minTexelOffset                                  = -8
        maxTexelOffset                                  = 7
        minTexelGatherOffset                            = -32
        maxTexelGatherOffset                            = 31
        minInterpolationOffset                          = -0.5
        maxInterpolationOffset                          = 0.4375
        subPixelInterpolationOffsetBits                 = 4
        maxFramebufferWidth                             = 32768
        maxFramebufferHeight                            = 32768
        maxFramebufferLayers                            = 2048
        framebufferColorSampleCounts: count = 4
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_2_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT
        framebufferDepthSampleCounts: count = 4
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_2_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT
        framebufferStencilSampleCounts: count = 5
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_2_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT
                SAMPLE_COUNT_16_BIT
        framebufferNoAttachmentsSampleCounts: count = 5
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_2_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT
                SAMPLE_COUNT_16_BIT
        maxColorAttachments                             = 8
        sampledImageColorSampleCounts: count = 4
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_2_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT
        sampledImageIntegerSampleCounts: count = 4
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_2_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT
        sampledImageDepthSampleCounts: count = 4
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_2_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT
        sampledImageStencilSampleCounts: count = 5
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_2_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT
                SAMPLE_COUNT_16_BIT
        storageImageSampleCounts: count = 4
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_2_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT
        maxSampleMaskWords                              = 1
        timestampComputeAndGraphics                     = true
        timestampPeriod                                 = 1
        maxClipDistances                                = 8
        maxCullDistances                                = 8
        maxCombinedClipAndCullDistances                 = 8
        discreteQueuePriorities                         = 2
        pointSizeRange: count = 2
                1
                2047.94
        lineWidthRange: count = 2
                1
                64
        pointSizeGranularity                            = 0.0625
        lineWidthGranularity                            = 0.0625
        strictLines                                     = true
        standardSampleLocations                         = true
        optimalBufferCopyOffsetAlignment                = 0x00000001
        optimalBufferCopyRowPitchAlignment              = 0x00000001
        nonCoherentAtomSize                             = 0x00000040

VkPhysicalDeviceSparseProperties:
---------------------------------
        residencyStandard2DBlockShape            = true
        residencyStandard2DMultisampleBlockShape = true
        residencyStandard3DBlockShape            = true
        residencyAlignedMipSize                  = false
        residencyNonResidentStrict               = true

VkPhysicalDeviceAccelerationStructurePropertiesKHR:
---------------------------------------------------
        maxGeometryCount                                           = 16777215
        maxInstanceCount                                           = 16777215
        maxPrimitiveCount                                          = 536870911
        maxPerStageDescriptorAccelerationStructures                = 1048576
        maxPerStageDescriptorUpdateAfterBindAccelerationStructures = 1048576
        maxDescriptorSetAccelerationStructures                     = 1048576
        maxDescriptorSetUpdateAfterBindAccelerationStructures      = 1048576
        minAccelerationStructureScratchOffsetAlignment             = 128

VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT:
----------------------------------------------------
        advancedBlendMaxColorAttachments      = 8
        advancedBlendIndependentBlend         = false
        advancedBlendNonPremultipliedSrcColor = true
        advancedBlendNonPremultipliedDstColor = true
        advancedBlendCorrelatedOverlap        = true
        advancedBlendAllOperations            = true

VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR:
------------------------------------------------------
        meshAndTaskShaderDerivatives = false

VkPhysicalDeviceConservativeRasterizationPropertiesEXT:
-------------------------------------------------------
        primitiveOverestimationSize                 = 0.00195312
        maxExtraPrimitiveOverestimationSize         = 0.75
        extraPrimitiveOverestimationSizeGranularity = 0.25
        primitiveUnderestimation                    = true
        conservativePointAndLineRasterization       = true
        degenerateTrianglesRasterized               = true
        degenerateLinesRasterized                   = true
        fullyCoveredFragmentShaderInputVariable     = true
        conservativeRasterizationPostDepthCoverage  = true

VkPhysicalDeviceCooperativeMatrixPropertiesKHR:
-----------------------------------------------
        cooperativeMatrixSupportedStages: count = 1
                SHADER_STAGE_COMPUTE_BIT

VkPhysicalDeviceCustomBorderColorPropertiesEXT:
-----------------------------------------------
        maxCustomBorderColorSamplers = 4000

VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT:
--------------------------------------------------------
        combinedImageSamplerDensityMapDescriptorSize = 4

VkPhysicalDeviceDescriptorBufferPropertiesEXT:
----------------------------------------------
        combinedImageSamplerDescriptorSingleArray            = true
        bufferlessPushDescriptors                            = true
        allowSamplerImageViewPostSubmitCreation              = false
        descriptorBufferOffsetAlignment                      = 0x00000040
        maxDescriptorBufferBindings                          = 32
        maxResourceDescriptorBufferBindings                  = 32
        maxSamplerDescriptorBufferBindings                   = 32
        maxEmbeddedImmutableSamplerBindings                  = 32
        maxEmbeddedImmutableSamplers                         = 4000
        bufferCaptureReplayDescriptorDataSize                = 8
        imageCaptureReplayDescriptorDataSize                 = 1
        imageViewCaptureReplayDescriptorDataSize             = 12
        samplerCaptureReplayDescriptorDataSize               = 4
        accelerationStructureCaptureReplayDescriptorDataSize = 1
        samplerDescriptorSize                                = 4
        combinedImageSamplerDescriptorSize                   = 4
        sampledImageDescriptorSize                           = 4
        storageImageDescriptorSize                           = 4
        uniformTexelBufferDescriptorSize                     = 16
        robustUniformTexelBufferDescriptorSize               = 16
        storageTexelBufferDescriptorSize                     = 16
        robustStorageTexelBufferDescriptorSize               = 16
        uniformBufferDescriptorSize                          = 8
        robustUniformBufferDescriptorSize                    = 8
        storageBufferDescriptorSize                          = 16
        robustStorageBufferDescriptorSize                    = 16
        inputAttachmentDescriptorSize                        = 4
        accelerationStructureDescriptorSize                  = 8
        maxSamplerDescriptorBufferRange                      = 0x10000000000
        maxResourceDescriptorBufferRange                     = 0x10000000000
        samplerDescriptorBufferAddressSpaceSize              = 0x10000000000
        resourceDescriptorBufferAddressSpaceSize             = 0x10000000000
        descriptorBufferAddressSpaceSize                     = 0x10000000000

VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT:
-----------------------------------------------------
        maxIndirectPipelineCount                      = 16384
        maxIndirectShaderObjectCount                  = 16384
        maxIndirectSequenceCount                      = 4194303
        maxIndirectCommandsTokenCount                 = 32
        maxIndirectCommandsTokenOffset                = 4294967295
        maxIndirectCommandsIndirectStride             = 4294967295
        supportedIndirectCommandsInputModes: count = 2
                INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT
                INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT
        supportedIndirectCommandsShaderStages: count = 8
                SHADER_STAGE_VERTEX_BIT
                SHADER_STAGE_TESSELLATION_CONTROL_BIT
                SHADER_STAGE_TESSELLATION_EVALUATION_BIT
                SHADER_STAGE_GEOMETRY_BIT
                SHADER_STAGE_FRAGMENT_BIT
                SHADER_STAGE_COMPUTE_BIT
                SHADER_STAGE_TASK_BIT_EXT
                SHADER_STAGE_MESH_BIT_EXT
        supportedIndirectCommandsShaderStagesPipelineBinding: count = 8
                SHADER_STAGE_VERTEX_BIT
                SHADER_STAGE_TESSELLATION_CONTROL_BIT
                SHADER_STAGE_TESSELLATION_EVALUATION_BIT
                SHADER_STAGE_GEOMETRY_BIT
                SHADER_STAGE_FRAGMENT_BIT
                SHADER_STAGE_COMPUTE_BIT
                SHADER_STAGE_TASK_BIT_EXT
                SHADER_STAGE_MESH_BIT_EXT
        supportedIndirectCommandsShaderStagesShaderBinding: count = 8
                SHADER_STAGE_VERTEX_BIT
                SHADER_STAGE_TESSELLATION_CONTROL_BIT
                SHADER_STAGE_TESSELLATION_EVALUATION_BIT
                SHADER_STAGE_GEOMETRY_BIT
                SHADER_STAGE_FRAGMENT_BIT
                SHADER_STAGE_COMPUTE_BIT
                SHADER_STAGE_TASK_BIT_EXT
                SHADER_STAGE_MESH_BIT_EXT
        deviceGeneratedCommandsTransformFeedback      = true
        deviceGeneratedCommandsMultiDrawIndirectCount = true

VkPhysicalDeviceDiscardRectanglePropertiesEXT:
----------------------------------------------
        maxDiscardRectangles = 8

VkPhysicalDeviceDrmPropertiesEXT:
---------------------------------
        hasPrimary   = true
        hasRender    = true
        primaryMajor = 226
        primaryMinor = 1
        renderMajor  = 226
        renderMinor  = 129

VkPhysicalDeviceExtendedDynamicState3PropertiesEXT:
---------------------------------------------------
        dynamicPrimitiveTopologyUnrestricted = true

VkPhysicalDeviceExternalMemoryHostPropertiesEXT:
------------------------------------------------
        minImportedHostPointerAlignment = 0x00001000

VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR:
-------------------------------------------------------
        triStripVertexOrderIndependentOfProvokingVertex = false

VkPhysicalDeviceFragmentShadingRatePropertiesKHR:
-------------------------------------------------
        minFragmentShadingRateAttachmentTexelSize:
                width  = 16
                height = 16
        maxFragmentShadingRateAttachmentTexelSize:
                width  = 16
                height = 16
        maxFragmentShadingRateAttachmentTexelSizeAspectRatio = 1
        primitiveFragmentShadingRateWithMultipleViewports    = true
        layeredShadingRateAttachments                        = true
        fragmentShadingRateNonTrivialCombinerOps             = true
        maxFragmentSize:
                width  = 4
                height = 4
        maxFragmentSizeAspectRatio                           = 2
        maxFragmentShadingRateCoverageSamples                = 16
        maxFragmentShadingRateRasterizationSamples           = SAMPLE_COUNT_16_BIT
        fragmentShadingRateWithShaderDepthStencilWrites      = true
        fragmentShadingRateWithSampleMask                    = true
        fragmentShadingRateWithShaderSampleMask              = true
        fragmentShadingRateWithConservativeRasterization     = true
        fragmentShadingRateWithFragmentShaderInterlock       = true
        fragmentShadingRateWithCustomSampleLocations         = true
        fragmentShadingRateStrictMultiplyCombiner            = true

VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT:
-----------------------------------------------------
        graphicsPipelineLibraryFastLinking                        = true
        graphicsPipelineLibraryIndependentInterpolationDecoration = true

VkPhysicalDeviceHostImageCopyPropertiesEXT:
-------------------------------------------
        copySrcLayoutCount                  = 18
        pCopySrcLayouts: count = 18
                IMAGE_LAYOUT_GENERAL
                IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
                IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
                IMAGE_LAYOUT_PREINITIALIZED
                IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_PRESENT_SRC_KHR
                IMAGE_LAYOUT_SHARED_PRESENT_KHR
        copyDstLayoutCount                  = 18
        pCopyDstLayouts: count = 18
                IMAGE_LAYOUT_GENERAL
                IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
                IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
                IMAGE_LAYOUT_PREINITIALIZED
                IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_PRESENT_SRC_KHR
                IMAGE_LAYOUT_SHARED_PRESENT_KHR
        optimalTilingLayoutUUID             = 436ff9e7-7db9-30ec-e96a-6441bffd3896
        identicalMemoryTypeRequirements     = false

VkPhysicalDeviceLayeredApiPropertiesListKHR:
--------------------------------------------
        layeredApiCount               = 0
        pLayeredApis                  = NULL

VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT:
----------------------------------------------------
        nativeUnalignedPerformance = true

VkPhysicalDeviceLineRasterizationPropertiesKHR:
-----------------------------------------------
        lineSubPixelPrecisionBits = 8

VkPhysicalDeviceMaintenance5PropertiesKHR:
------------------------------------------
        earlyFragmentMultisampleCoverageAfterSampleCounting = true
        earlyFragmentSampleMaskTestBeforeSampleCounting     = true
        depthStencilSwizzleOneSupport                       = true
        polygonModePointSize                                = true
        nonStrictSinglePixelWideLinesUseParallelogram       = false
        nonStrictWideLinesUseParallelogram                  = false

VkPhysicalDeviceMaintenance6PropertiesKHR:
------------------------------------------
        blockTexelViewCompatibleMultipleLayers = true
        maxCombinedImageSamplerDescriptorCount = 1
        fragmentShadingRateClampCombinerInputs = true

VkPhysicalDeviceMaintenance7PropertiesKHR:
------------------------------------------
        robustFragmentShadingRateAttachmentAccess                 = true
        separateDepthStencilAttachmentAccess                      = true
        maxDescriptorSetTotalUniformBuffersDynamic                = 15
        maxDescriptorSetTotalStorageBuffersDynamic                = 16
        maxDescriptorSetTotalBuffersDynamic                       = 31
        maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic = 15
        maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic = 16
        maxDescriptorSetUpdateAfterBindTotalBuffersDynamic        = 31

VkPhysicalDeviceMapMemoryPlacedPropertiesEXT:
---------------------------------------------
        minPlacedMemoryMapAlignment = 0x00001000

VkPhysicalDeviceMeshShaderPropertiesEXT:
----------------------------------------
        maxTaskWorkGroupTotalCount            = 4194304
        maxTaskWorkGroupCount: count = 3
                4194304
                65535
                65535
        maxTaskWorkGroupInvocations           = 128
        maxTaskWorkGroupSize: count = 3
                128
                128
                128
        maxTaskPayloadSize                    = 16384
        maxTaskSharedMemorySize               = 32768
        maxTaskPayloadAndSharedMemorySize     = 32768
        maxMeshWorkGroupTotalCount            = 4194304
        maxMeshWorkGroupCount: count = 3
                4194304
                65535
                65535
        maxMeshWorkGroupInvocations           = 128
        maxMeshWorkGroupSize: count = 3
                128
                128
                128
        maxMeshSharedMemorySize               = 28672
        maxMeshPayloadAndSharedMemorySize     = 28672
        maxMeshOutputMemorySize               = 32768
        maxMeshPayloadAndOutputMemorySize     = 48128
        maxMeshOutputComponents               = 128
        maxMeshOutputVertices                 = 256
        maxMeshOutputPrimitives               = 256
        maxMeshOutputLayers                   = 2048
        maxMeshMultiviewViewCount             = 4
        meshOutputPerVertexGranularity        = 32
        meshOutputPerPrimitiveGranularity     = 32
        maxPreferredTaskWorkGroupInvocations  = 32
        maxPreferredMeshWorkGroupInvocations  = 32
        prefersLocalInvocationVertexOutput    = false
        prefersLocalInvocationPrimitiveOutput = false
        prefersCompactVertexOutput            = false
        prefersCompactPrimitiveOutput         = true

VkPhysicalDeviceMultiDrawPropertiesEXT:
---------------------------------------
        maxMultiDrawCount = 4294967295

VkPhysicalDeviceNestedCommandBufferPropertiesEXT:
-------------------------------------------------
        maxCommandBufferNestingLevel = 4294967295

VkPhysicalDeviceOpacityMicromapPropertiesEXT:
---------------------------------------------
        maxOpacity2StateSubdivisionLevel = 12
        maxOpacity4StateSubdivisionLevel = 12

VkPhysicalDevicePCIBusInfoPropertiesEXT:
----------------------------------------
        pciDomain   = 0
        pciBus      = 1
        pciDevice   = 0
        pciFunction = 0

VkPhysicalDevicePipelineBinaryPropertiesKHR:
--------------------------------------------
        pipelineBinaryInternalCache            = true
        pipelineBinaryInternalCacheControl     = true
        pipelineBinaryPrefersInternalCache     = false
        pipelineBinaryPrecompiledInternalCache = false
        pipelineBinaryCompressedData           = true

VkPhysicalDevicePipelineRobustnessPropertiesEXT:
------------------------------------------------
        defaultRobustnessStorageBuffers = PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT
        defaultRobustnessUniformBuffers = PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT
        defaultRobustnessVertexInputs = PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT
        defaultRobustnessImages = PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT

VkPhysicalDeviceProvokingVertexPropertiesEXT:
---------------------------------------------
        provokingVertexModePerPipeline                       = true
        transformFeedbackPreservesTriangleFanProvokingVertex = true

VkPhysicalDevicePushDescriptorPropertiesKHR:
--------------------------------------------
        maxPushDescriptors = 32

VkPhysicalDeviceRayTracingPipelinePropertiesKHR:
------------------------------------------------
        shaderGroupHandleSize              = 32
        maxRayRecursionDepth               = 31
        maxShaderGroupStride               = 4096
        shaderGroupBaseAlignment           = 64
        shaderGroupHandleCaptureReplaySize = 32
        maxRayDispatchInvocationCount      = 1073741824
        shaderGroupHandleAlignment         = 32
        maxRayHitAttributeSize             = 32

VkPhysicalDeviceRobustness2PropertiesEXT:
-----------------------------------------
        robustStorageBufferAccessSizeAlignment = 0x00000001
        robustUniformBufferAccessSizeAlignment = 0x00000010

VkPhysicalDeviceSampleLocationsPropertiesEXT:
---------------------------------------------
        sampleLocationSampleCounts: count = 5
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_2_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT
                SAMPLE_COUNT_16_BIT
        maxSampleLocationGridSize:
                width  = 1
                height = 1
        sampleLocationCoordinateRange: count = 2
                0
                0.9375
        sampleLocationSubPixelBits       = 4
        variableSampleLocations          = true

VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT:
----------------------------------------------------
        shaderModuleIdentifierAlgorithmUUID     = 1f4517a6-c1c4-11ec-9d64-0242ac120005

VkPhysicalDeviceShaderObjectPropertiesEXT:
------------------------------------------
        shaderBinaryUUID     = 436ff9e7-7db9-30ec-e96a-6441bffd3896
        shaderBinaryVersion  = 1

VkPhysicalDeviceTransformFeedbackPropertiesEXT:
-----------------------------------------------
        maxTransformFeedbackStreams                = 4
        maxTransformFeedbackBuffers                = 4
        maxTransformFeedbackBufferSize             = 0xffffffff
        maxTransformFeedbackStreamDataSize         = 2048
        maxTransformFeedbackBufferDataSize         = 512
        maxTransformFeedbackBufferDataStride       = 2048
        transformFeedbackQueries                   = true
        transformFeedbackStreamsLinesTriangles     = false
        transformFeedbackRasterizationStreamSelect = true
        transformFeedbackDraw                      = true

VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT:
----------------------------------------------------
        maxVertexAttribDivisor = 4294967295

VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR:
----------------------------------------------------
        maxVertexAttribDivisor       = 4294967295
        supportsNonZeroFirstInstance = true

VkPhysicalDeviceVulkan11Properties:
-----------------------------------
        deviceUUID                        = ac3f6dae-ab9d-6bff-1e26-894255621ba1
        driverUUID                        = a312329b-a338-5885-bebf-8b95ca9ae741
        deviceNodeMask                    = 1
        deviceLUIDValid                   = false
        subgroupSize                      = 32
        subgroupSupportedStages: count = 14
                SHADER_STAGE_VERTEX_BIT
                SHADER_STAGE_TESSELLATION_CONTROL_BIT
                SHADER_STAGE_TESSELLATION_EVALUATION_BIT
                SHADER_STAGE_GEOMETRY_BIT
                SHADER_STAGE_FRAGMENT_BIT
                SHADER_STAGE_COMPUTE_BIT
                SHADER_STAGE_RAYGEN_BIT_KHR
                SHADER_STAGE_ANY_HIT_BIT_KHR
                SHADER_STAGE_CLOSEST_HIT_BIT_KHR
                SHADER_STAGE_MISS_BIT_KHR
                SHADER_STAGE_INTERSECTION_BIT_KHR
                SHADER_STAGE_CALLABLE_BIT_KHR
                SHADER_STAGE_TASK_BIT_EXT
                SHADER_STAGE_MESH_BIT_EXT
        subgroupSupportedOperations: count = 11
                SUBGROUP_FEATURE_BASIC_BIT
                SUBGROUP_FEATURE_VOTE_BIT
                SUBGROUP_FEATURE_ARITHMETIC_BIT
                SUBGROUP_FEATURE_BALLOT_BIT
                SUBGROUP_FEATURE_SHUFFLE_BIT
                SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT
                SUBGROUP_FEATURE_CLUSTERED_BIT
                SUBGROUP_FEATURE_QUAD_BIT
                SUBGROUP_FEATURE_PARTITIONED_BIT_NV
                SUBGROUP_FEATURE_ROTATE_BIT_KHR
                SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT_KHR
        subgroupQuadOperationsInAllStages = true
        pointClippingBehavior             = POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY
        maxMultiviewViewCount             = 32
        maxMultiviewInstanceIndex         = 134217727
        protectedNoFault                  = false
        maxPerSetDescriptors              = 4294967295
        maxMemoryAllocationSize           = 0xffe00000

VkPhysicalDeviceVulkan12Properties:
-----------------------------------
        driverID                                             = DRIVER_ID_NVIDIA_PROPRIETARY
        driverName                                           = NVIDIA
        driverInfo                                           = 570.133.07
        conformanceVersion:
                major    = 1
                minor    = 4
                subminor = 1
                patch    = 0
        denormBehaviorIndependence                           = SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL
        roundingModeIndependence                             = SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL
        shaderSignedZeroInfNanPreserveFloat16                = true
        shaderSignedZeroInfNanPreserveFloat32                = true
        shaderSignedZeroInfNanPreserveFloat64                = true
        shaderDenormPreserveFloat16                          = true
        shaderDenormPreserveFloat32                          = false
        shaderDenormPreserveFloat64                          = false
        shaderDenormFlushToZeroFloat16                       = false
        shaderDenormFlushToZeroFloat32                       = false
        shaderDenormFlushToZeroFloat64                       = false
        shaderRoundingModeRTEFloat16                         = true
        shaderRoundingModeRTEFloat32                         = true
        shaderRoundingModeRTEFloat64                         = true
        shaderRoundingModeRTZFloat16                         = false
        shaderRoundingModeRTZFloat32                         = true
        shaderRoundingModeRTZFloat64                         = true
        maxUpdateAfterBindDescriptorsInAllPools              = 4294967295
        shaderUniformBufferArrayNonUniformIndexingNative     = true
        shaderSampledImageArrayNonUniformIndexingNative      = true
        shaderStorageBufferArrayNonUniformIndexingNative     = true
        shaderStorageImageArrayNonUniformIndexingNative      = true
        shaderInputAttachmentArrayNonUniformIndexingNative   = true
        robustBufferAccessUpdateAfterBind                    = true
        quadDivergentImplicitLod                             = true
        maxPerStageDescriptorUpdateAfterBindSamplers         = 1048576
        maxPerStageDescriptorUpdateAfterBindUniformBuffers   = 1048576
        maxPerStageDescriptorUpdateAfterBindStorageBuffers   = 1048576
        maxPerStageDescriptorUpdateAfterBindSampledImages    = 1048576
        maxPerStageDescriptorUpdateAfterBindStorageImages    = 1048576
        maxPerStageDescriptorUpdateAfterBindInputAttachments = 1048576
        maxPerStageUpdateAfterBindResources                  = 4294967295
        maxDescriptorSetUpdateAfterBindSamplers              = 1048576
        maxDescriptorSetUpdateAfterBindUniformBuffers        = 1048576
        maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = 15
        maxDescriptorSetUpdateAfterBindStorageBuffers        = 1048576
        maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = 16
        maxDescriptorSetUpdateAfterBindSampledImages         = 1048576
        maxDescriptorSetUpdateAfterBindStorageImages         = 1048576
        maxDescriptorSetUpdateAfterBindInputAttachments      = 1048576
        supportedDepthResolveModes: count = 4
                RESOLVE_MODE_SAMPLE_ZERO_BIT
                RESOLVE_MODE_AVERAGE_BIT
                RESOLVE_MODE_MIN_BIT
                RESOLVE_MODE_MAX_BIT
        supportedStencilResolveModes: count = 3
                RESOLVE_MODE_SAMPLE_ZERO_BIT
                RESOLVE_MODE_MIN_BIT
                RESOLVE_MODE_MAX_BIT
        independentResolveNone                               = true
        independentResolve                                   = true
        filterMinmaxSingleComponentFormats                   = true
        filterMinmaxImageComponentMapping                    = true
        maxTimelineSemaphoreValueDifference                  = 18446744073709551615
        framebufferIntegerColorSampleCounts: count = 4
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_2_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT

VkPhysicalDeviceVulkan13Properties:
-----------------------------------
        minSubgroupSize                                                               = 32
        maxSubgroupSize                                                               = 32
        maxComputeWorkgroupSubgroups                                                  = 32
        requiredSubgroupSizeStages: count = 14
                SHADER_STAGE_VERTEX_BIT
                SHADER_STAGE_TESSELLATION_CONTROL_BIT
                SHADER_STAGE_TESSELLATION_EVALUATION_BIT
                SHADER_STAGE_GEOMETRY_BIT
                SHADER_STAGE_FRAGMENT_BIT
                SHADER_STAGE_COMPUTE_BIT
                SHADER_STAGE_RAYGEN_BIT_KHR
                SHADER_STAGE_ANY_HIT_BIT_KHR
                SHADER_STAGE_CLOSEST_HIT_BIT_KHR
                SHADER_STAGE_MISS_BIT_KHR
                SHADER_STAGE_INTERSECTION_BIT_KHR
                SHADER_STAGE_CALLABLE_BIT_KHR
                SHADER_STAGE_TASK_BIT_EXT
                SHADER_STAGE_MESH_BIT_EXT
        maxInlineUniformBlockSize                                                     = 256
        maxPerStageDescriptorInlineUniformBlocks                                      = 32
        maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks                       = 32
        maxDescriptorSetInlineUniformBlocks                                           = 32
        maxDescriptorSetUpdateAfterBindInlineUniformBlocks                            = 32
        maxInlineUniformTotalSize                                                     = 3584
        integerDotProduct8BitUnsignedAccelerated                                      = false
        integerDotProduct8BitSignedAccelerated                                        = false
        integerDotProduct8BitMixedSignednessAccelerated                               = false
        integerDotProduct4x8BitPackedUnsignedAccelerated                              = true
        integerDotProduct4x8BitPackedSignedAccelerated                                = true
        integerDotProduct4x8BitPackedMixedSignednessAccelerated                       = true
        integerDotProduct16BitUnsignedAccelerated                                     = false
        integerDotProduct16BitSignedAccelerated                                       = false
        integerDotProduct16BitMixedSignednessAccelerated                              = false
        integerDotProduct32BitUnsignedAccelerated                                     = false
        integerDotProduct32BitSignedAccelerated                                       = false
        integerDotProduct32BitMixedSignednessAccelerated                              = false
        integerDotProduct64BitUnsignedAccelerated                                     = false
        integerDotProduct64BitSignedAccelerated                                       = false
        integerDotProduct64BitMixedSignednessAccelerated                              = false
        integerDotProductAccumulatingSaturating8BitUnsignedAccelerated                = false
        integerDotProductAccumulatingSaturating8BitSignedAccelerated                  = false
        integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated         = false
        integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated        = true
        integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated          = true
        integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = true
        integerDotProductAccumulatingSaturating16BitUnsignedAccelerated               = false
        integerDotProductAccumulatingSaturating16BitSignedAccelerated                 = false
        integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated        = false
        integerDotProductAccumulatingSaturating32BitUnsignedAccelerated               = false
        integerDotProductAccumulatingSaturating32BitSignedAccelerated                 = false
        integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated        = false
        integerDotProductAccumulatingSaturating64BitUnsignedAccelerated               = false
        integerDotProductAccumulatingSaturating64BitSignedAccelerated                 = false
        integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated        = false
        storageTexelBufferOffsetAlignmentBytes                                        = 0x00000010
        storageTexelBufferOffsetSingleTexelAlignment                                  = true
        uniformTexelBufferOffsetAlignmentBytes                                        = 0x00000010
        uniformTexelBufferOffsetSingleTexelAlignment                                  = true
        maxBufferSize                                                                 = 0x10000000000

Device Extensions: count = 238
        VK_AMD_buffer_marker                          : extension revision 1
        VK_EXT_4444_formats                           : extension revision 1
        VK_EXT_attachment_feedback_loop_dynamic_state : extension revision 1
        VK_EXT_attachment_feedback_loop_layout        : extension revision 2
        VK_EXT_blend_operation_advanced               : extension revision 2
        VK_EXT_border_color_swizzle                   : extension revision 1
        VK_EXT_buffer_device_address                  : extension revision 2
        VK_EXT_calibrated_timestamps                  : extension revision 2
        VK_EXT_color_write_enable                     : extension revision 1
        VK_EXT_conditional_rendering                  : extension revision 2
        VK_EXT_conservative_rasterization             : extension revision 1
        VK_EXT_custom_border_color                    : extension revision 12
        VK_EXT_depth_bias_control                     : extension revision 1
        VK_EXT_depth_clamp_control                    : extension revision 1
        VK_EXT_depth_clamp_zero_one                   : extension revision 1
        VK_EXT_depth_clip_control                     : extension revision 1
        VK_EXT_depth_clip_enable                      : extension revision 1
        VK_EXT_depth_range_unrestricted               : extension revision 1
        VK_EXT_descriptor_buffer                      : extension revision 1
        VK_EXT_descriptor_indexing                    : extension revision 2
        VK_EXT_device_fault                           : extension revision 2
        VK_EXT_device_generated_commands              : extension revision 1
        VK_EXT_discard_rectangles                     : extension revision 2
        VK_EXT_display_control                        : extension revision 1
        VK_EXT_dynamic_rendering_unused_attachments   : extension revision 1
        VK_EXT_extended_dynamic_state                 : extension revision 1
        VK_EXT_extended_dynamic_state2                : extension revision 1
        VK_EXT_extended_dynamic_state3                : extension revision 2
        VK_EXT_external_memory_dma_buf                : extension revision 1
        VK_EXT_external_memory_host                   : extension revision 1
        VK_EXT_fragment_shader_interlock              : extension revision 1
        VK_EXT_global_priority                        : extension revision 2
        VK_EXT_global_priority_query                  : extension revision 1
        VK_EXT_graphics_pipeline_library              : extension revision 1
        VK_EXT_host_image_copy                        : extension revision 1
        VK_EXT_host_query_reset                       : extension revision 1
        VK_EXT_image_2d_view_of_3d                    : extension revision 1
        VK_EXT_image_drm_format_modifier              : extension revision 2
        VK_EXT_image_robustness                       : extension revision 1
        VK_EXT_image_sliced_view_of_3d                : extension revision 1
        VK_EXT_image_view_min_lod                     : extension revision 1
        VK_EXT_index_type_uint8                       : extension revision 1
        VK_EXT_inline_uniform_block                   : extension revision 1
        VK_EXT_legacy_vertex_attributes               : extension revision 1
        VK_EXT_line_rasterization                     : extension revision 1
        VK_EXT_load_store_op_none                     : extension revision 1
        VK_EXT_map_memory_placed                      : extension revision 1
        VK_EXT_memory_budget                          : extension revision 1
        VK_EXT_memory_priority                        : extension revision 1
        VK_EXT_mesh_shader                            : extension revision 1
        VK_EXT_multi_draw                             : extension revision 1
        VK_EXT_mutable_descriptor_type                : extension revision 1
        VK_EXT_nested_command_buffer                  : extension revision 1
        VK_EXT_non_seamless_cube_map                  : extension revision 1
        VK_EXT_opacity_micromap                       : extension revision 2
        VK_EXT_pageable_device_local_memory           : extension revision 1
        VK_EXT_pci_bus_info                           : extension revision 2
        VK_EXT_physical_device_drm                    : extension revision 1
        VK_EXT_pipeline_creation_cache_control        : extension revision 3
        VK_EXT_pipeline_creation_feedback             : extension revision 1
        VK_EXT_pipeline_library_group_handles         : extension revision 1
        VK_EXT_pipeline_robustness                    : extension revision 1
        VK_EXT_post_depth_coverage                    : extension revision 1
        VK_EXT_primitive_topology_list_restart        : extension revision 1
        VK_EXT_primitives_generated_query             : extension revision 1
        VK_EXT_private_data                           : extension revision 1
        VK_EXT_provoking_vertex                       : extension revision 1
        VK_EXT_queue_family_foreign                   : extension revision 1
        VK_EXT_robustness2                            : extension revision 1
        VK_EXT_sample_locations                       : extension revision 1
        VK_EXT_sampler_filter_minmax                  : extension revision 2
        VK_EXT_scalar_block_layout                    : extension revision 1
        VK_EXT_separate_stencil_usage                 : extension revision 1
        VK_EXT_shader_atomic_float                    : extension revision 1
        VK_EXT_shader_demote_to_helper_invocation     : extension revision 1
        VK_EXT_shader_image_atomic_int64              : extension revision 1
        VK_EXT_shader_module_identifier               : extension revision 1
        VK_EXT_shader_object                          : extension revision 1
        VK_EXT_shader_replicated_composites           : extension revision 1
        VK_EXT_shader_subgroup_ballot                 : extension revision 1
        VK_EXT_shader_subgroup_vote                   : extension revision 1
        VK_EXT_shader_viewport_index_layer            : extension revision 1
        VK_EXT_subgroup_size_control                  : extension revision 2
        VK_EXT_swapchain_maintenance1                 : extension revision 1
        VK_EXT_texel_buffer_alignment                 : extension revision 1
        VK_EXT_tooling_info                           : extension revision 1
        VK_EXT_transform_feedback                     : extension revision 1
        VK_EXT_vertex_attribute_divisor               : extension revision 3
        VK_EXT_vertex_input_dynamic_state             : extension revision 2
        VK_EXT_ycbcr_2plane_444_formats               : extension revision 1
        VK_EXT_ycbcr_image_arrays                     : extension revision 1
        VK_GOOGLE_user_type                           : extension revision 1
        VK_KHR_16bit_storage                          : extension revision 1
        VK_KHR_8bit_storage                           : extension revision 1
        VK_KHR_acceleration_structure                 : extension revision 13
        VK_KHR_bind_memory2                           : extension revision 1
        VK_KHR_buffer_device_address                  : extension revision 1
        VK_KHR_calibrated_timestamps                  : extension revision 1
        VK_KHR_compute_shader_derivatives             : extension revision 1
        VK_KHR_cooperative_matrix                     : extension revision 2
        VK_KHR_copy_commands2                         : extension revision 1
        VK_KHR_create_renderpass2                     : extension revision 1
        VK_KHR_dedicated_allocation                   : extension revision 3
        VK_KHR_deferred_host_operations               : extension revision 4
        VK_KHR_depth_stencil_resolve                  : extension revision 1
        VK_KHR_descriptor_update_template             : extension revision 1
        VK_KHR_device_group                           : extension revision 4
        VK_KHR_draw_indirect_count                    : extension revision 1
        VK_KHR_driver_properties                      : extension revision 1
        VK_KHR_dynamic_rendering                      : extension revision 1
        VK_KHR_dynamic_rendering_local_read           : extension revision 1
        VK_KHR_external_fence                         : extension revision 1
        VK_KHR_external_fence_fd                      : extension revision 1
        VK_KHR_external_memory                        : extension revision 1
        VK_KHR_external_memory_fd                     : extension revision 1
        VK_KHR_external_semaphore                     : extension revision 1
        VK_KHR_external_semaphore_fd                  : extension revision 1
        VK_KHR_format_feature_flags2                  : extension revision 2
        VK_KHR_fragment_shader_barycentric            : extension revision 1
        VK_KHR_fragment_shading_rate                  : extension revision 2
        VK_KHR_get_memory_requirements2               : extension revision 1
        VK_KHR_global_priority                        : extension revision 1
        VK_KHR_image_format_list                      : extension revision 1
        VK_KHR_imageless_framebuffer                  : extension revision 1
        VK_KHR_incremental_present                    : extension revision 2
        VK_KHR_index_type_uint8                       : extension revision 1
        VK_KHR_line_rasterization                     : extension revision 1
        VK_KHR_load_store_op_none                     : extension revision 1
        VK_KHR_maintenance1                           : extension revision 2
        VK_KHR_maintenance2                           : extension revision 1
        VK_KHR_maintenance3                           : extension revision 1
        VK_KHR_maintenance4                           : extension revision 2
        VK_KHR_maintenance5                           : extension revision 1
        VK_KHR_maintenance6                           : extension revision 1
        VK_KHR_maintenance7                           : extension revision 1
        VK_KHR_map_memory2                            : extension revision 1
        VK_KHR_multiview                              : extension revision 1
        VK_KHR_pipeline_binary                        : extension revision 1
        VK_KHR_pipeline_executable_properties         : extension revision 1
        VK_KHR_pipeline_library                       : extension revision 1
        VK_KHR_present_id                             : extension revision 1
        VK_KHR_present_wait                           : extension revision 1
        VK_KHR_push_descriptor                        : extension revision 2
        VK_KHR_ray_query                              : extension revision 1
        VK_KHR_ray_tracing_maintenance1               : extension revision 1
        VK_KHR_ray_tracing_pipeline                   : extension revision 1
        VK_KHR_ray_tracing_position_fetch             : extension revision 1
        VK_KHR_relaxed_block_layout                   : extension revision 1
        VK_KHR_sampler_mirror_clamp_to_edge           : extension revision 3
        VK_KHR_sampler_ycbcr_conversion               : extension revision 14
        VK_KHR_separate_depth_stencil_layouts         : extension revision 1
        VK_KHR_shader_atomic_int64                    : extension revision 1
        VK_KHR_shader_clock                           : extension revision 1
        VK_KHR_shader_draw_parameters                 : extension revision 1
        VK_KHR_shader_expect_assume                   : extension revision 1
        VK_KHR_shader_float16_int8                    : extension revision 1
        VK_KHR_shader_float_controls                  : extension revision 4
        VK_KHR_shader_float_controls2                 : extension revision 1
        VK_KHR_shader_integer_dot_product             : extension revision 1
        VK_KHR_shader_maximal_reconvergence           : extension revision 1
        VK_KHR_shader_non_semantic_info               : extension revision 1
        VK_KHR_shader_quad_control                    : extension revision 1
        VK_KHR_shader_relaxed_extended_instruction    : extension revision 1
        VK_KHR_shader_subgroup_extended_types         : extension revision 1
        VK_KHR_shader_subgroup_rotate                 : extension revision 2
        VK_KHR_shader_subgroup_uniform_control_flow   : extension revision 1
        VK_KHR_shader_terminate_invocation            : extension revision 1
        VK_KHR_shared_presentable_image               : extension revision 1
        VK_KHR_spirv_1_4                              : extension revision 1
        VK_KHR_storage_buffer_storage_class           : extension revision 1
        VK_KHR_swapchain                              : extension revision 70
        VK_KHR_swapchain_mutable_format               : extension revision 1
        VK_KHR_synchronization2                       : extension revision 1
        VK_KHR_timeline_semaphore                     : extension revision 2
        VK_KHR_uniform_buffer_standard_layout         : extension revision 1
        VK_KHR_variable_pointers                      : extension revision 1
        VK_KHR_vertex_attribute_divisor               : extension revision 1
        VK_KHR_video_decode_av1                       : extension revision 1
        VK_KHR_video_decode_h264                      : extension revision 9
        VK_KHR_video_decode_h265                      : extension revision 8
        VK_KHR_video_decode_queue                     : extension revision 8
        VK_KHR_video_encode_h264                      : extension revision 14
        VK_KHR_video_encode_h265                      : extension revision 14
        VK_KHR_video_encode_queue                     : extension revision 12
        VK_KHR_video_maintenance1                     : extension revision 1
        VK_KHR_video_queue                            : extension revision 8
        VK_KHR_vulkan_memory_model                    : extension revision 3
        VK_KHR_workgroup_memory_explicit_layout       : extension revision 1
        VK_KHR_zero_initialize_workgroup_memory       : extension revision 1
        VK_NVX_binary_import                          : extension revision 2
        VK_NVX_image_view_handle                      : extension revision 3
        VK_NVX_multiview_per_view_attributes          : extension revision 1
        VK_NV_clip_space_w_scaling                    : extension revision 1
        VK_NV_cluster_acceleration_structure          : extension revision 2
        VK_NV_compute_shader_derivatives              : extension revision 1
        VK_NV_cooperative_matrix                      : extension revision 1
        VK_NV_cooperative_vector                      : extension revision 4
        VK_NV_copy_memory_indirect                    : extension revision 1
        VK_NV_corner_sampled_image                    : extension revision 2
        VK_NV_coverage_reduction_mode                 : extension revision 1
        VK_NV_cuda_kernel_launch                      : extension revision 2
        VK_NV_dedicated_allocation                    : extension revision 1
        VK_NV_dedicated_allocation_image_aliasing     : extension revision 1
        VK_NV_descriptor_pool_overallocation          : extension revision 1
        VK_NV_device_diagnostic_checkpoints           : extension revision 2
        VK_NV_device_diagnostics_config               : extension revision 2
        VK_NV_device_generated_commands               : extension revision 3
        VK_NV_device_generated_commands_compute       : extension revision 2
        VK_NV_extended_sparse_address_space           : extension revision 1
        VK_NV_fill_rectangle                          : extension revision 1
        VK_NV_fragment_coverage_to_color              : extension revision 1
        VK_NV_fragment_shader_barycentric             : extension revision 1
        VK_NV_fragment_shading_rate_enums             : extension revision 1
        VK_NV_framebuffer_mixed_samples               : extension revision 1
        VK_NV_geometry_shader_passthrough             : extension revision 1
        VK_NV_inherited_viewport_scissor              : extension revision 1
        VK_NV_linear_color_attachment                 : extension revision 1
        VK_NV_low_latency                             : extension revision 1
        VK_NV_low_latency2                            : extension revision 2
        VK_NV_memory_decompression                    : extension revision 1
        VK_NV_mesh_shader                             : extension revision 1
        VK_NV_optical_flow                            : extension revision 1
        VK_NV_partitioned_acceleration_structure      : extension revision 1
        VK_NV_present_metering                        : extension revision 1
        VK_NV_raw_access_chains                       : extension revision 1
        VK_NV_ray_tracing                             : extension revision 3
        VK_NV_ray_tracing_invocation_reorder          : extension revision 1
        VK_NV_ray_tracing_motion_blur                 : extension revision 1
        VK_NV_representative_fragment_test            : extension revision 2
        VK_NV_sample_mask_override_coverage           : extension revision 1
        VK_NV_scissor_exclusive                       : extension revision 2
        VK_NV_shader_atomic_float16_vector            : extension revision 1
        VK_NV_shader_image_footprint                  : extension revision 2
        VK_NV_shader_sm_builtins                      : extension revision 1
        VK_NV_shader_subgroup_partitioned             : extension revision 1
        VK_NV_shading_rate_image                      : extension revision 3
        VK_NV_viewport_array2                         : extension revision 1
        VK_NV_viewport_swizzle                        : extension revision 1

VkQueueFamilyProperties:
========================
        queueProperties[0]:
        -------------------
                minImageTransferGranularity = (1,1,1)
                queueCount                  = 16
                queueFlags                  = QUEUE_GRAPHICS_BIT | QUEUE_COMPUTE_BIT | QUEUE_TRANSFER_BIT | QUEUE_SPARSE_BINDING_BIT
                timestampValidBits          = 64
                present support             = true
                VkQueueFamilyGlobalPriorityPropertiesKHR:
                -----------------------------------------
                        priorityCount  = 1
                        priorities: count = 1
                                QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR

                VkQueueFamilyQueryResultStatusPropertiesKHR:
                --------------------------------------------
                        queryResultStatusSupport = false

                VkQueueFamilyVideoPropertiesKHR:
                --------------------------------
                        videoCodecOperations:
                                None


        queueProperties[1]:
        -------------------
                minImageTransferGranularity = (1,1,1)
                queueCount                  = 2
                queueFlags                  = QUEUE_TRANSFER_BIT | QUEUE_SPARSE_BINDING_BIT
                timestampValidBits          = 64
                present support             = false
                VkQueueFamilyGlobalPriorityPropertiesKHR:
                -----------------------------------------
                        priorityCount  = 1
                        priorities: count = 1
                                QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR

                VkQueueFamilyQueryResultStatusPropertiesKHR:
                --------------------------------------------
                        queryResultStatusSupport = false

                VkQueueFamilyVideoPropertiesKHR:
                --------------------------------
                        videoCodecOperations:
                                None


        queueProperties[2]:
        -------------------
                minImageTransferGranularity = (1,1,1)
                queueCount                  = 8
                queueFlags                  = QUEUE_COMPUTE_BIT | QUEUE_TRANSFER_BIT | QUEUE_SPARSE_BINDING_BIT
                timestampValidBits          = 64
                present support:
                        VK_KHR_xcb_surface     = true
                        VK_KHR_xlib_surface    = true
                        VK_KHR_wayland_surface = false
                VkQueueFamilyGlobalPriorityPropertiesKHR:
                -----------------------------------------
                        priorityCount  = 1
                        priorities: count = 1
                                QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR

                VkQueueFamilyQueryResultStatusPropertiesKHR:
                --------------------------------------------
                        queryResultStatusSupport = false

                VkQueueFamilyVideoPropertiesKHR:
                --------------------------------
                        videoCodecOperations:
                                None


        queueProperties[3]:
        -------------------
                minImageTransferGranularity = (1,1,1)
                queueCount                  = 1
                queueFlags                  = QUEUE_TRANSFER_BIT | QUEUE_SPARSE_BINDING_BIT | QUEUE_VIDEO_DECODE_BIT_KHR
                timestampValidBits          = 32
                present support             = false
                VkQueueFamilyGlobalPriorityPropertiesKHR:
                -----------------------------------------
                        priorityCount  = 1
                        priorities: count = 1
                                QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR

                VkQueueFamilyQueryResultStatusPropertiesKHR:
                --------------------------------------------
                        queryResultStatusSupport = true

                VkQueueFamilyVideoPropertiesKHR:
                --------------------------------
                        videoCodecOperations: count = 3
                                VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR
                                VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR
                                VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR


        queueProperties[4]:
        -------------------
                minImageTransferGranularity = (1,1,1)
                queueCount                  = 1
                queueFlags                  = QUEUE_TRANSFER_BIT | QUEUE_SPARSE_BINDING_BIT | QUEUE_VIDEO_ENCODE_BIT_KHR
                timestampValidBits          = 32
                present support             = false
                VkQueueFamilyGlobalPriorityPropertiesKHR:
                -----------------------------------------
                        priorityCount  = 1
                        priorities: count = 1
                                QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR

                VkQueueFamilyQueryResultStatusPropertiesKHR:
                --------------------------------------------
                        queryResultStatusSupport = true

                VkQueueFamilyVideoPropertiesKHR:
                --------------------------------
                        videoCodecOperations: count = 2
                                VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR
                                VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR


        queueProperties[5]:
        -------------------
                minImageTransferGranularity = (1,1,1)
                queueCount                  = 1
                queueFlags                  = QUEUE_TRANSFER_BIT | QUEUE_SPARSE_BINDING_BIT | QUEUE_OPTICAL_FLOW_BIT_NV
                timestampValidBits          = 64
                present support             = false
                VkQueueFamilyGlobalPriorityPropertiesKHR:
                -----------------------------------------
                        priorityCount  = 1
                        priorities: count = 1
                                QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR

                VkQueueFamilyQueryResultStatusPropertiesKHR:
                --------------------------------------------
                        queryResultStatusSupport = false

                VkQueueFamilyVideoPropertiesKHR:
                --------------------------------
                        videoCodecOperations:
                                None


VkPhysicalDeviceMemoryProperties:
=================================
memoryHeaps: count = 2
        memoryHeaps[0]:
                size   = 12884901888 (0x300000000) (12.00 GiB)
                budget = 11826954240 (0x2c0f10000) (11.01 GiB)
                usage  = 0 (0x00000000) (0.00 B)
                flags: count = 1
                        MEMORY_HEAP_DEVICE_LOCAL_BIT
        memoryHeaps[1]:
                size   = 25072253952 (0x5d66c3c00) (23.35 GiB)
                budget = 25072253952 (0x5d66c3c00) (23.35 GiB)
                usage  = 0 (0x00000000) (0.00 B)
                flags:
                        None
memoryTypes: count = 6
        memoryTypes[0]:
                heapIndex     = 1
                propertyFlags = 0x0000:
                        None
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                color images
                                FORMAT_D16_UNORM
                                FORMAT_X8_D24_UNORM_PACK32
                                FORMAT_D32_SFLOAT
                                FORMAT_S8_UINT
                                FORMAT_D24_UNORM_S8_UINT
                                FORMAT_D32_SFLOAT_S8_UINT
                        IMAGE_TILING_LINEAR:
                                color images
                                (non-sparse, non-transient)
        memoryTypes[1]:
                heapIndex     = 0
                propertyFlags = 0x0001: count = 1
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                color images
                                FORMAT_D16_UNORM
                                FORMAT_X8_D24_UNORM_PACK32
                                FORMAT_D32_SFLOAT
                                FORMAT_S8_UINT
                                FORMAT_D24_UNORM_S8_UINT
                                FORMAT_D32_SFLOAT_S8_UINT
                        IMAGE_TILING_LINEAR:
                                color images
                                (non-sparse, non-transient)
        memoryTypes[2]:
                heapIndex     = 0
                propertyFlags = 0x0001: count = 1
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[3]:
                heapIndex     = 1
                propertyFlags = 0x0006: count = 2
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                color images
                                (non-sparse, non-transient)
        memoryTypes[4]:
                heapIndex     = 1
                propertyFlags = 0x000e: count = 3
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_HOST_CACHED_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                color images
                                (non-sparse, non-transient)
        memoryTypes[5]:
                heapIndex     = 0
                propertyFlags = 0x0007: count = 3
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                color images
                                (non-sparse, non-transient)

VkPhysicalDeviceFeatures:
=========================
        robustBufferAccess                      = true
        fullDrawIndexUint32                     = true
        imageCubeArray                          = true
        independentBlend                        = true
        geometryShader                          = true
        tessellationShader                      = true
        sampleRateShading                       = true
        dualSrcBlend                            = true
        logicOp                                 = true
        multiDrawIndirect                       = true
        drawIndirectFirstInstance               = true
        depthClamp                              = true
        depthBiasClamp                          = true
        fillModeNonSolid                        = true
        depthBounds                             = true
        wideLines                               = true
        largePoints                             = true
        alphaToOne                              = true
        multiViewport                           = true
        samplerAnisotropy                       = true
        textureCompressionETC2                  = false
        textureCompressionASTC_LDR              = false
        textureCompressionBC                    = true
        occlusionQueryPrecise                   = true
        pipelineStatisticsQuery                 = true
        vertexPipelineStoresAndAtomics          = true
        fragmentStoresAndAtomics                = true
        shaderTessellationAndGeometryPointSize  = true
        shaderImageGatherExtended               = true
        shaderStorageImageExtendedFormats       = true
        shaderStorageImageMultisample           = true
        shaderStorageImageReadWithoutFormat     = true
        shaderStorageImageWriteWithoutFormat    = true
        shaderUniformBufferArrayDynamicIndexing = true
        shaderSampledImageArrayDynamicIndexing  = true
        shaderStorageBufferArrayDynamicIndexing = true
        shaderStorageImageArrayDynamicIndexing  = true
        shaderClipDistance                      = true
        shaderCullDistance                      = true
        shaderFloat64                           = true
        shaderInt64                             = true
        shaderInt16                             = true
        shaderResourceResidency                 = true
        shaderResourceMinLod                    = true
        sparseBinding                           = true
        sparseResidencyBuffer                   = true
        sparseResidencyImage2D                  = true
        sparseResidencyImage3D                  = true
        sparseResidency2Samples                 = true
        sparseResidency4Samples                 = true
        sparseResidency8Samples                 = true
        sparseResidency16Samples                = true
        sparseResidencyAliased                  = true
        variableMultisampleRate                 = true
        inheritedQueries                        = true

VkPhysicalDevice4444FormatsFeaturesEXT:
---------------------------------------
        formatA4R4G4B4 = true
        formatA4B4G4R4 = true

VkPhysicalDeviceAccelerationStructureFeaturesKHR:
-------------------------------------------------
        accelerationStructure                                 = true
        accelerationStructureCaptureReplay                    = true
        accelerationStructureIndirectBuild                    = false
        accelerationStructureHostCommands                     = false
        descriptorBindingAccelerationStructureUpdateAfterBind = true

VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT:
--------------------------------------------------------------
        attachmentFeedbackLoopDynamicState = true

VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT:
--------------------------------------------------------
        attachmentFeedbackLoopLayout = true

VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT:
--------------------------------------------------
        advancedBlendCoherentOperations = true

VkPhysicalDeviceBorderColorSwizzleFeaturesEXT:
----------------------------------------------
        borderColorSwizzle          = true
        borderColorSwizzleFromImage = false

VkPhysicalDeviceBufferDeviceAddressFeaturesEXT:
-----------------------------------------------
        bufferDeviceAddress              = true
        bufferDeviceAddressCaptureReplay = true
        bufferDeviceAddressMultiDevice   = true

VkPhysicalDeviceColorWriteEnableFeaturesEXT:
--------------------------------------------
        colorWriteEnable = true

VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR:
----------------------------------------------------
        computeDerivativeGroupQuads  = true
        computeDerivativeGroupLinear = true

VkPhysicalDeviceConditionalRenderingFeaturesEXT:
------------------------------------------------
        conditionalRendering          = true
        inheritedConditionalRendering = true

VkPhysicalDeviceCooperativeMatrixFeaturesKHR:
---------------------------------------------
        cooperativeMatrix                   = true
        cooperativeMatrixRobustBufferAccess = false

VkPhysicalDeviceCustomBorderColorFeaturesEXT:
---------------------------------------------
        customBorderColors             = true
        customBorderColorWithoutFormat = true

VkPhysicalDeviceDepthBiasControlFeaturesEXT:
--------------------------------------------
        depthBiasControl                                = true
        leastRepresentableValueForceUnormRepresentation = true
        floatRepresentation                             = false
        depthBiasExact                                  = true

VkPhysicalDeviceDepthClampControlFeaturesEXT:
---------------------------------------------
        depthClampControl = true

VkPhysicalDeviceDepthClampZeroOneFeaturesEXT:
---------------------------------------------
        depthClampZeroOne = true

VkPhysicalDeviceDepthClipControlFeaturesEXT:
--------------------------------------------
        depthClipControl = true

VkPhysicalDeviceDepthClipEnableFeaturesEXT:
-------------------------------------------
        depthClipEnable = true

VkPhysicalDeviceDescriptorBufferFeaturesEXT:
--------------------------------------------
        descriptorBuffer                   = true
        descriptorBufferCaptureReplay      = true
        descriptorBufferImageLayoutIgnored = true
        descriptorBufferPushDescriptors    = true

VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT:
---------------------------------------------------
        deviceGeneratedCommands        = true
        dynamicGeneratedPipelineLayout = true

VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR:
-----------------------------------------------------
        dynamicRenderingLocalRead = true

VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT:
-------------------------------------------------------------
        dynamicRenderingUnusedAttachments = true

VkPhysicalDeviceExtendedDynamicState2FeaturesEXT:
-------------------------------------------------
        extendedDynamicState2                   = true
        extendedDynamicState2LogicOp            = true
        extendedDynamicState2PatchControlPoints = true

VkPhysicalDeviceExtendedDynamicState3FeaturesEXT:
-------------------------------------------------
        extendedDynamicState3TessellationDomainOrigin         = true
        extendedDynamicState3DepthClampEnable                 = true
        extendedDynamicState3PolygonMode                      = true
        extendedDynamicState3RasterizationSamples             = true
        extendedDynamicState3SampleMask                       = true
        extendedDynamicState3AlphaToCoverageEnable            = true
        extendedDynamicState3AlphaToOneEnable                 = true
        extendedDynamicState3LogicOpEnable                    = true
        extendedDynamicState3ColorBlendEnable                 = true
        extendedDynamicState3ColorBlendEquation               = true
        extendedDynamicState3ColorWriteMask                   = true
        extendedDynamicState3RasterizationStream              = true
        extendedDynamicState3ConservativeRasterizationMode    = true
        extendedDynamicState3ExtraPrimitiveOverestimationSize = true
        extendedDynamicState3DepthClipEnable                  = true
        extendedDynamicState3SampleLocationsEnable            = true
        extendedDynamicState3ColorBlendAdvanced               = true
        extendedDynamicState3ProvokingVertexMode              = true
        extendedDynamicState3LineRasterizationMode            = true
        extendedDynamicState3LineStippleEnable                = true
        extendedDynamicState3DepthClipNegativeOneToOne        = true
        extendedDynamicState3ViewportWScalingEnable           = true
        extendedDynamicState3ViewportSwizzle                  = true
        extendedDynamicState3CoverageToColorEnable            = true
        extendedDynamicState3CoverageToColorLocation          = true
        extendedDynamicState3CoverageModulationMode           = true
        extendedDynamicState3CoverageModulationTableEnable    = true
        extendedDynamicState3CoverageModulationTable          = true
        extendedDynamicState3CoverageReductionMode            = true
        extendedDynamicState3RepresentativeFragmentTestEnable = true
        extendedDynamicState3ShadingRateImageEnable           = true

VkPhysicalDeviceExtendedDynamicStateFeaturesEXT:
------------------------------------------------
        extendedDynamicState = true

VkPhysicalDeviceFaultFeaturesEXT:
---------------------------------
        deviceFault             = true
        deviceFaultVendorBinary = false

VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR:
-----------------------------------------------------
        fragmentShaderBarycentric = true

VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT:
---------------------------------------------------
        fragmentShaderSampleInterlock      = true
        fragmentShaderPixelInterlock       = true
        fragmentShaderShadingRateInterlock = true

VkPhysicalDeviceFragmentShadingRateFeaturesKHR:
-----------------------------------------------
        pipelineFragmentShadingRate   = true
        primitiveFragmentShadingRate  = true
        attachmentFragmentShadingRate = true

VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR:
-----------------------------------------------
        globalPriorityQuery = true

VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT:
---------------------------------------------------
        graphicsPipelineLibrary = true

VkPhysicalDeviceHostImageCopyFeaturesEXT:
-----------------------------------------
        hostImageCopy = true

VkPhysicalDeviceImage2DViewOf3DFeaturesEXT:
-------------------------------------------
        image2DViewOf3D   = true
        sampler2DViewOf3D = true

VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT:
-----------------------------------------------
        imageSlicedViewOf3D = true

VkPhysicalDeviceImageViewMinLodFeaturesEXT:
-------------------------------------------
        minLod = true

VkPhysicalDeviceIndexTypeUint8FeaturesKHR:
------------------------------------------
        indexTypeUint8 = true

VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT:
--------------------------------------------------
        legacyVertexAttributes = true

VkPhysicalDeviceLineRasterizationFeaturesKHR:
---------------------------------------------
        rectangularLines         = true
        bresenhamLines           = true
        smoothLines              = true
        stippledRectangularLines = true
        stippledBresenhamLines   = true
        stippledSmoothLines      = true

VkPhysicalDeviceMaintenance5FeaturesKHR:
----------------------------------------
        maintenance5 = true

VkPhysicalDeviceMaintenance6FeaturesKHR:
----------------------------------------
        maintenance6 = true

VkPhysicalDeviceMaintenance7FeaturesKHR:
----------------------------------------
        maintenance7 = true

VkPhysicalDeviceMapMemoryPlacedFeaturesEXT:
-------------------------------------------
        memoryMapPlaced      = true
        memoryMapRangePlaced = false
        memoryUnmapReserve   = true

VkPhysicalDeviceMemoryPriorityFeaturesEXT:
------------------------------------------
        memoryPriority = true

VkPhysicalDeviceMeshShaderFeaturesEXT:
--------------------------------------
        taskShader                             = true
        meshShader                             = true
        multiviewMeshShader                    = true
        primitiveFragmentShadingRateMeshShader = true
        meshShaderQueries                      = true

VkPhysicalDeviceMultiDrawFeaturesEXT:
-------------------------------------
        multiDraw = true

VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT:
-------------------------------------------------
        mutableDescriptorType = true

VkPhysicalDeviceNestedCommandBufferFeaturesEXT:
-----------------------------------------------
        nestedCommandBuffer                = true
        nestedCommandBufferRendering       = true
        nestedCommandBufferSimultaneousUse = true

VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT:
----------------------------------------------
        nonSeamlessCubeMap = true

VkPhysicalDeviceOpacityMicromapFeaturesEXT:
-------------------------------------------
        micromap              = true
        micromapCaptureReplay = false
        micromapHostCommands  = false

VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT:
-----------------------------------------------------
        pageableDeviceLocalMemory = true

VkPhysicalDevicePipelineBinaryFeaturesKHR:
------------------------------------------
        pipelineBinaries = true

VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR:
--------------------------------------------------------
        pipelineExecutableInfo = true

VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT:
-------------------------------------------------------
        pipelineLibraryGroupHandles = true

VkPhysicalDevicePipelineRobustnessFeaturesEXT:
----------------------------------------------
        pipelineRobustness = true

VkPhysicalDevicePresentIdFeaturesKHR:
-------------------------------------
        presentId = true

VkPhysicalDevicePresentWaitFeaturesKHR:
---------------------------------------
        presentWait = true

VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT:
--------------------------------------------------------
        primitiveTopologyListRestart      = true
        primitiveTopologyPatchListRestart = true

VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT:
----------------------------------------------------
        primitivesGeneratedQuery                      = true
        primitivesGeneratedQueryWithRasterizerDiscard = true
        primitivesGeneratedQueryWithNonZeroStreams    = true

VkPhysicalDeviceProvokingVertexFeaturesEXT:
-------------------------------------------
        provokingVertexLast                       = true
        transformFeedbackPreservesProvokingVertex = true

VkPhysicalDeviceRayQueryFeaturesKHR:
------------------------------------
        rayQuery = true

VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR:
--------------------------------------------------
        rayTracingMaintenance1               = true
        rayTracingPipelineTraceRaysIndirect2 = true

VkPhysicalDeviceRayTracingPipelineFeaturesKHR:
----------------------------------------------
        rayTracingPipeline                                    = true
        rayTracingPipelineShaderGroupHandleCaptureReplay      = false
        rayTracingPipelineShaderGroupHandleCaptureReplayMixed = false
        rayTracingPipelineTraceRaysIndirect                   = true
        rayTraversalPrimitiveCulling                          = true

VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR:
---------------------------------------------------
        rayTracingPositionFetch = true

VkPhysicalDeviceRobustness2FeaturesEXT:
---------------------------------------
        robustBufferAccess2 = true
        robustImageAccess2  = true
        nullDescriptor      = true

VkPhysicalDeviceShaderAtomicFloatFeaturesEXT:
---------------------------------------------
        shaderBufferFloat32Atomics   = true
        shaderBufferFloat32AtomicAdd = true
        shaderBufferFloat64Atomics   = true
        shaderBufferFloat64AtomicAdd = true
        shaderSharedFloat32Atomics   = true
        shaderSharedFloat32AtomicAdd = true
        shaderSharedFloat64Atomics   = true
        shaderSharedFloat64AtomicAdd = true
        shaderImageFloat32Atomics    = true
        shaderImageFloat32AtomicAdd  = true
        sparseImageFloat32Atomics    = true
        sparseImageFloat32AtomicAdd  = true

VkPhysicalDeviceShaderClockFeaturesKHR:
---------------------------------------
        shaderSubgroupClock = true
        shaderDeviceClock   = true

VkPhysicalDeviceShaderExpectAssumeFeaturesKHR:
----------------------------------------------
        shaderExpectAssume = true

VkPhysicalDeviceShaderFloatControls2FeaturesKHR:
------------------------------------------------
        shaderFloatControls2 = true

VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT:
--------------------------------------------------
        shaderImageInt64Atomics = true
        sparseImageInt64Atomics = true

VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR:
------------------------------------------------------
        shaderMaximalReconvergence = true

VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT:
--------------------------------------------------
        shaderModuleIdentifier = true

VkPhysicalDeviceShaderObjectFeaturesEXT:
----------------------------------------
        shaderObject = true

VkPhysicalDeviceShaderQuadControlFeaturesKHR:
---------------------------------------------
        shaderQuadControl = true

VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR:
------------------------------------------------------------
        shaderRelaxedExtendedInstruction = true

VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT:
------------------------------------------------------
        shaderReplicatedComposites = true

VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR:
------------------------------------------------
        shaderSubgroupRotate          = true
        shaderSubgroupRotateClustered = true

VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR:
------------------------------------------------------------
        shaderSubgroupUniformControlFlow = true

VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT:
-------------------------------------------------
        swapchainMaintenance1 = true

VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT:
------------------------------------------------
        texelBufferAlignment = true

VkPhysicalDeviceTransformFeedbackFeaturesEXT:
---------------------------------------------
        transformFeedback = true
        geometryStreams   = true

VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR:
--------------------------------------------------
        vertexAttributeInstanceRateDivisor     = true
        vertexAttributeInstanceRateZeroDivisor = true

VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT:
---------------------------------------------------
        vertexInputDynamicState = true

VkPhysicalDeviceVideoMaintenance1FeaturesKHR:
---------------------------------------------
        videoMaintenance1 = true

VkPhysicalDeviceVulkan11Features:
---------------------------------
        storageBuffer16BitAccess           = true
        uniformAndStorageBuffer16BitAccess = true
        storagePushConstant16              = true
        storageInputOutput16               = false
        multiview                          = true
        multiviewGeometryShader            = true
        multiviewTessellationShader        = true
        variablePointersStorageBuffer      = true
        variablePointers                   = true
        protectedMemory                    = false
        samplerYcbcrConversion             = true
        shaderDrawParameters               = true

VkPhysicalDeviceVulkan12Features:
---------------------------------
        samplerMirrorClampToEdge                           = true
        drawIndirectCount                                  = true
        storageBuffer8BitAccess                            = true
        uniformAndStorageBuffer8BitAccess                  = true
        storagePushConstant8                               = true
        shaderBufferInt64Atomics                           = true
        shaderSharedInt64Atomics                           = true
        shaderFloat16                                      = true
        shaderInt8                                         = true
        descriptorIndexing                                 = true
        shaderInputAttachmentArrayDynamicIndexing          = true
        shaderUniformTexelBufferArrayDynamicIndexing       = true
        shaderStorageTexelBufferArrayDynamicIndexing       = true
        shaderUniformBufferArrayNonUniformIndexing         = true
        shaderSampledImageArrayNonUniformIndexing          = true
        shaderStorageBufferArrayNonUniformIndexing         = true
        shaderStorageImageArrayNonUniformIndexing          = true
        shaderInputAttachmentArrayNonUniformIndexing       = true
        shaderUniformTexelBufferArrayNonUniformIndexing    = true
        shaderStorageTexelBufferArrayNonUniformIndexing    = true
        descriptorBindingUniformBufferUpdateAfterBind      = true
        descriptorBindingSampledImageUpdateAfterBind       = true
        descriptorBindingStorageImageUpdateAfterBind       = true
        descriptorBindingStorageBufferUpdateAfterBind      = true
        descriptorBindingUniformTexelBufferUpdateAfterBind = true
        descriptorBindingStorageTexelBufferUpdateAfterBind = true
        descriptorBindingUpdateUnusedWhilePending          = true
        descriptorBindingPartiallyBound                    = true
        descriptorBindingVariableDescriptorCount           = true
        runtimeDescriptorArray                             = true
        samplerFilterMinmax                                = true
        scalarBlockLayout                                  = true
        imagelessFramebuffer                               = true
        uniformBufferStandardLayout                        = true
        shaderSubgroupExtendedTypes                        = true
        separateDepthStencilLayouts                        = true
        hostQueryReset                                     = true
        timelineSemaphore                                  = true
        bufferDeviceAddress                                = true
        bufferDeviceAddressCaptureReplay                   = true
        bufferDeviceAddressMultiDevice                     = true
        vulkanMemoryModel                                  = true
        vulkanMemoryModelDeviceScope                       = true
        vulkanMemoryModelAvailabilityVisibilityChains      = true
        shaderOutputViewportIndex                          = true
        shaderOutputLayer                                  = true
        subgroupBroadcastDynamicId                         = true

VkPhysicalDeviceVulkan13Features:
---------------------------------
        robustImageAccess                                  = true
        inlineUniformBlock                                 = true
        descriptorBindingInlineUniformBlockUpdateAfterBind = true
        pipelineCreationCacheControl                       = true
        privateData                                        = true
        shaderDemoteToHelperInvocation                     = true
        shaderTerminateInvocation                          = true
        subgroupSizeControl                                = true
        computeFullSubgroups                               = true
        synchronization2                                   = true
        textureCompressionASTC_HDR                         = false
        shaderZeroInitializeWorkgroupMemory                = true
        dynamicRendering                                   = true
        shaderIntegerDotProduct                            = true
        maintenance4                                       = true

VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR:
---------------------------------------------------------
        workgroupMemoryExplicitLayout                  = true
        workgroupMemoryExplicitLayoutScalarBlockLayout = true
        workgroupMemoryExplicitLayout8BitAccess        = true
        workgroupMemoryExplicitLayout16BitAccess       = true

VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT:
-------------------------------------------------
        ycbcr2plane444Formats = true

VkPhysicalDeviceYcbcrImageArraysFeaturesEXT:
--------------------------------------------
        ycbcrImageArrays = true


GPU1:
VkPhysicalDeviceProperties:
---------------------------
        apiVersion        = 1.3.296 (4206888)
        driverVersion     = 24.3.4 (100675588)
        vendorID          = 0x8086
        deviceID          = 0x4680
        deviceType        = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
        deviceName        = Intel(R) UHD Graphics 770 (ADL-S GT1)
        pipelineCacheUUID = 903a1638-229a-4c32-5d47-9fa0dc35fea0

VkPhysicalDeviceLimits:
-----------------------
        maxImageDimension1D                             = 16384
        maxImageDimension2D                             = 16384
        maxImageDimension3D                             = 2048
        maxImageDimensionCube                           = 16384
        maxImageArrayLayers                             = 2048
        maxTexelBufferElements                          = 134217728
        maxUniformBufferRange                           = 1073741824
        maxStorageBufferRange                           = 4294967295
        maxPushConstantsSize                            = 128
        maxMemoryAllocationCount                        = 4294967295
        maxSamplerAllocationCount                       = 65536
        bufferImageGranularity                          = 0x00000001
        sparseAddressSpaceSize                          = 0xfff00000000
        maxBoundDescriptorSets                          = 8
        maxPerStageDescriptorSamplers                   = 402653184
        maxPerStageDescriptorUniformBuffers             = 201326592
        maxPerStageDescriptorStorageBuffers             = 201326592
        maxPerStageDescriptorSampledImages              = 201326592
        maxPerStageDescriptorStorageImages              = 201326592
        maxPerStageDescriptorInputAttachments           = 64
        maxPerStageResources                            = 201326592
        maxDescriptorSetSamplers                        = 402653184
        maxDescriptorSetUniformBuffers                  = 201326592
        maxDescriptorSetUniformBuffersDynamic           = 8
        maxDescriptorSetStorageBuffers                  = 201326592
        maxDescriptorSetStorageBuffersDynamic           = 8
        maxDescriptorSetSampledImages                   = 201326592
        maxDescriptorSetStorageImages                   = 201326592
        maxDescriptorSetInputAttachments                = 256
        maxVertexInputAttributes                        = 29
        maxVertexInputBindings                          = 31
        maxVertexInputAttributeOffset                   = 2047
        maxVertexInputBindingStride                     = 4095
        maxVertexOutputComponents                       = 128
        maxTessellationGenerationLevel                  = 64
        maxTessellationPatchSize                        = 32
        maxTessellationControlPerVertexInputComponents  = 128
        maxTessellationControlPerVertexOutputComponents = 128
        maxTessellationControlPerPatchOutputComponents  = 128
        maxTessellationControlTotalOutputComponents     = 2048
        maxTessellationEvaluationInputComponents        = 128
        maxTessellationEvaluationOutputComponents       = 128
        maxGeometryShaderInvocations                    = 32
        maxGeometryInputComponents                      = 128
        maxGeometryOutputComponents                     = 128
        maxGeometryOutputVertices                       = 256
        maxGeometryTotalOutputComponents                = 1024
        maxFragmentInputComponents                      = 116
        maxFragmentOutputAttachments                    = 8
        maxFragmentDualSrcAttachments                   = 1
        maxFragmentCombinedOutputResources              = 402653192
        maxComputeSharedMemorySize                      = 65536
        maxComputeWorkGroupCount: count = 3
                65535
                65535
                65535
        maxComputeWorkGroupInvocations                  = 1024
        maxComputeWorkGroupSize: count = 3
                1024
                1024
                1024
        subPixelPrecisionBits                           = 8
        subTexelPrecisionBits                           = 8
        mipmapPrecisionBits                             = 8
        maxDrawIndexedIndexValue                        = 4294967295
        maxDrawIndirectCount                            = 4294967295
        maxSamplerLodBias                               = 16
        maxSamplerAnisotropy                            = 16
        maxViewports                                    = 16
        maxViewportDimensions: count = 2
                16384
                16384
        viewportBoundsRange: count = 2
                -32768
                32767
        viewportSubPixelBits                            = 13
        minMemoryMapAlignment                           = 4096
        minTexelBufferOffsetAlignment                   = 0x00000010
        minUniformBufferOffsetAlignment                 = 0x00000040
        minStorageBufferOffsetAlignment                 = 0x00000004
        minTexelOffset                                  = -8
        maxTexelOffset                                  = 7
        minTexelGatherOffset                            = -32
        maxTexelGatherOffset                            = 31
        minInterpolationOffset                          = -0.5
        maxInterpolationOffset                          = 0.4375
        subPixelInterpolationOffsetBits                 = 4
        maxFramebufferWidth                             = 16384
        maxFramebufferHeight                            = 16384
        maxFramebufferLayers                            = 2048
        framebufferColorSampleCounts: count = 5
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_2_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT
                SAMPLE_COUNT_16_BIT
        framebufferDepthSampleCounts: count = 5
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_2_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT
                SAMPLE_COUNT_16_BIT
        framebufferStencilSampleCounts: count = 5
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_2_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT
                SAMPLE_COUNT_16_BIT
        framebufferNoAttachmentsSampleCounts: count = 5
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_2_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT
                SAMPLE_COUNT_16_BIT
        maxColorAttachments                             = 8
        sampledImageColorSampleCounts: count = 5
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_2_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT
                SAMPLE_COUNT_16_BIT
        sampledImageIntegerSampleCounts: count = 5
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_2_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT
                SAMPLE_COUNT_16_BIT
        sampledImageDepthSampleCounts: count = 5
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_2_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT
                SAMPLE_COUNT_16_BIT
        sampledImageStencilSampleCounts: count = 5
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_2_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT
                SAMPLE_COUNT_16_BIT
        storageImageSampleCounts: count = 1
                SAMPLE_COUNT_1_BIT
        maxSampleMaskWords                              = 1
        timestampComputeAndGraphics                     = true
        timestampPeriod                                 = 52.0833
        maxClipDistances                                = 8
        maxCullDistances                                = 8
        maxCombinedClipAndCullDistances                 = 8
        discreteQueuePriorities                         = 2
        pointSizeRange: count = 2
                0.125
                255.875
        lineWidthRange: count = 2
                0
                8
        pointSizeGranularity                            = 0.125
        lineWidthGranularity                            = 0.0078125
        strictLines                                     = false
        standardSampleLocations                         = true
        optimalBufferCopyOffsetAlignment                = 0x00000080
        optimalBufferCopyRowPitchAlignment              = 0x00000080
        nonCoherentAtomSize                             = 0x00000040

VkPhysicalDeviceSparseProperties:
---------------------------------
        residencyStandard2DBlockShape            = true
        residencyStandard2DMultisampleBlockShape = false
        residencyStandard3DBlockShape            = true
        residencyAlignedMipSize                  = false
        residencyNonResidentStrict               = true

VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR:
------------------------------------------------------
        meshAndTaskShaderDerivatives = false

VkPhysicalDeviceConservativeRasterizationPropertiesEXT:
-------------------------------------------------------
        primitiveOverestimationSize                 = 0.00195312
        maxExtraPrimitiveOverestimationSize         = 0
        extraPrimitiveOverestimationSizeGranularity = 0
        primitiveUnderestimation                    = false
        conservativePointAndLineRasterization       = false
        degenerateTrianglesRasterized               = true
        degenerateLinesRasterized                   = false
        fullyCoveredFragmentShaderInputVariable     = false
        conservativeRasterizationPostDepthCoverage  = true

VkPhysicalDeviceCooperativeMatrixPropertiesKHR:
-----------------------------------------------
        cooperativeMatrixSupportedStages: count = 1
                SHADER_STAGE_COMPUTE_BIT

VkPhysicalDeviceCustomBorderColorPropertiesEXT:
-----------------------------------------------
        maxCustomBorderColorSamplers = 4096

VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT:
--------------------------------------------------------
        combinedImageSamplerDensityMapDescriptorSize = 0

VkPhysicalDeviceDescriptorBufferPropertiesEXT:
----------------------------------------------
        combinedImageSamplerDescriptorSingleArray            = true
        bufferlessPushDescriptors                            = true
        allowSamplerImageViewPostSubmitCreation              = true
        descriptorBufferOffsetAlignment                      = 0x00000040
        maxDescriptorBufferBindings                          = 3
        maxResourceDescriptorBufferBindings                  = 1
        maxSamplerDescriptorBufferBindings                   = 1
        maxEmbeddedImmutableSamplerBindings                  = 1
        maxEmbeddedImmutableSamplers                         = 2048
        bufferCaptureReplayDescriptorDataSize                = 8
        imageCaptureReplayDescriptorDataSize                 = 8
        imageViewCaptureReplayDescriptorDataSize             = 0
        samplerCaptureReplayDescriptorDataSize               = 4
        accelerationStructureCaptureReplayDescriptorDataSize = 0
        samplerDescriptorSize                                = 32
        combinedImageSamplerDescriptorSize                   = 128
        sampledImageDescriptorSize                           = 64
        storageImageDescriptorSize                           = 64
        uniformTexelBufferDescriptorSize                     = 64
        robustUniformTexelBufferDescriptorSize               = 64
        storageTexelBufferDescriptorSize                     = 64
        robustStorageTexelBufferDescriptorSize               = 64
        uniformBufferDescriptorSize                          = 64
        robustUniformBufferDescriptorSize                    = 64
        storageBufferDescriptorSize                          = 64
        robustStorageBufferDescriptorSize                    = 64
        inputAttachmentDescriptorSize                        = 64
        accelerationStructureDescriptorSize                  = 16
        maxSamplerDescriptorBufferRange                      = 0xbffff000
        maxResourceDescriptorBufferRange                     = 0x04000000
        samplerDescriptorBufferAddressSpaceSize              = 0xbffff000
        resourceDescriptorBufferAddressSpaceSize             = 0xbffff000
        descriptorBufferAddressSpaceSize                     = 0xbffff000

VkPhysicalDeviceDrmPropertiesEXT:
---------------------------------
        hasPrimary   = true
        hasRender    = true
        primaryMajor = 226
        primaryMinor = 0
        renderMajor  = 226
        renderMinor  = 128

VkPhysicalDeviceExtendedDynamicState3PropertiesEXT:
---------------------------------------------------
        dynamicPrimitiveTopologyUnrestricted = true

VkPhysicalDeviceExternalMemoryHostPropertiesEXT:
------------------------------------------------
        minImportedHostPointerAlignment = 0x00001000

VkPhysicalDeviceFragmentShadingRatePropertiesKHR:
-------------------------------------------------
        minFragmentShadingRateAttachmentTexelSize:
                width  = 0
                height = 0
        maxFragmentShadingRateAttachmentTexelSize:
                width  = 0
                height = 0
        maxFragmentShadingRateAttachmentTexelSizeAspectRatio = 0
        primitiveFragmentShadingRateWithMultipleViewports    = false
        layeredShadingRateAttachments                        = false
        fragmentShadingRateNonTrivialCombinerOps             = false
        maxFragmentSize:
                width  = 4
                height = 4
        maxFragmentSizeAspectRatio                           = 4
        maxFragmentShadingRateCoverageSamples                = 256
        maxFragmentShadingRateRasterizationSamples           = SAMPLE_COUNT_16_BIT
        fragmentShadingRateWithShaderDepthStencilWrites      = false
        fragmentShadingRateWithSampleMask                    = true
        fragmentShadingRateWithShaderSampleMask              = false
        fragmentShadingRateWithConservativeRasterization     = true
        fragmentShadingRateWithFragmentShaderInterlock       = true
        fragmentShadingRateWithCustomSampleLocations         = true
        fragmentShadingRateStrictMultiplyCombiner            = true

VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT:
-----------------------------------------------------
        graphicsPipelineLibraryFastLinking                        = true
        graphicsPipelineLibraryIndependentInterpolationDecoration = true

VkPhysicalDeviceHostImageCopyPropertiesEXT:
-------------------------------------------
        copySrcLayoutCount                  = 18
        pCopySrcLayouts: count = 18
                IMAGE_LAYOUT_GENERAL
                IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
                IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
                IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR
                IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
                IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR
        copyDstLayoutCount                  = 18
        pCopyDstLayouts: count = 18
                IMAGE_LAYOUT_GENERAL
                IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
                IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
                IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR
                IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT
                IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR
        optimalTilingLayoutUUID             = 783b3ae5-2591-dda9-caee-9e748a411a58
        identicalMemoryTypeRequirements     = false

VkPhysicalDeviceLayeredApiPropertiesListKHR:
--------------------------------------------
        layeredApiCount               = 0
        pLayeredApis                  = NULL

VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT:
----------------------------------------------------
        nativeUnalignedPerformance = true

VkPhysicalDeviceLineRasterizationPropertiesKHR:
-----------------------------------------------
        lineSubPixelPrecisionBits = 4

VkPhysicalDeviceMaintenance5PropertiesKHR:
------------------------------------------
        earlyFragmentMultisampleCoverageAfterSampleCounting = false
        earlyFragmentSampleMaskTestBeforeSampleCounting     = false
        depthStencilSwizzleOneSupport                       = true
        polygonModePointSize                                = true
        nonStrictSinglePixelWideLinesUseParallelogram       = false
        nonStrictWideLinesUseParallelogram                  = false

VkPhysicalDeviceMaintenance6PropertiesKHR:
------------------------------------------
        blockTexelViewCompatibleMultipleLayers = true
        maxCombinedImageSamplerDescriptorCount = 3
        fragmentShadingRateClampCombinerInputs = true

VkPhysicalDeviceMaintenance7PropertiesKHR:
------------------------------------------
        robustFragmentShadingRateAttachmentAccess                 = true
        separateDepthStencilAttachmentAccess                      = true
        maxDescriptorSetTotalUniformBuffersDynamic                = 16
        maxDescriptorSetTotalStorageBuffersDynamic                = 16
        maxDescriptorSetTotalBuffersDynamic                       = 16
        maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic = 16
        maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic = 16
        maxDescriptorSetUpdateAfterBindTotalBuffersDynamic        = 16

VkPhysicalDeviceMapMemoryPlacedPropertiesEXT:
---------------------------------------------
        minPlacedMemoryMapAlignment = 0x00001000

VkPhysicalDeviceMultiDrawPropertiesEXT:
---------------------------------------
        maxMultiDrawCount = 2048

VkPhysicalDeviceNestedCommandBufferPropertiesEXT:
-------------------------------------------------
        maxCommandBufferNestingLevel = 4294967295

VkPhysicalDevicePCIBusInfoPropertiesEXT:
----------------------------------------
        pciDomain   = 0
        pciBus      = 0
        pciDevice   = 2
        pciFunction = 0

VkPhysicalDevicePipelineRobustnessPropertiesEXT:
------------------------------------------------
        defaultRobustnessStorageBuffers = PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT
        defaultRobustnessUniformBuffers = PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT
        defaultRobustnessVertexInputs = PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT
        defaultRobustnessImages = PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT

VkPhysicalDeviceProvokingVertexPropertiesEXT:
---------------------------------------------
        provokingVertexModePerPipeline                       = true
        transformFeedbackPreservesTriangleFanProvokingVertex = false

VkPhysicalDevicePushDescriptorPropertiesKHR:
--------------------------------------------
        maxPushDescriptors = 32

VkPhysicalDeviceRobustness2PropertiesEXT:
-----------------------------------------
        robustStorageBufferAccessSizeAlignment = 0x00000004
        robustUniformBufferAccessSizeAlignment = 0x00000040

VkPhysicalDeviceSampleLocationsPropertiesEXT:
---------------------------------------------
        sampleLocationSampleCounts: count = 5
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_2_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT
                SAMPLE_COUNT_16_BIT
        maxSampleLocationGridSize:
                width  = 1
                height = 1
        sampleLocationCoordinateRange: count = 2
                0
                0.9375
        sampleLocationSubPixelBits       = 4
        variableSampleLocations          = true

VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT:
----------------------------------------------------
        shaderModuleIdentifierAlgorithmUUID     = 4d455341-2d42-4c41-4b45-330000000000

VkPhysicalDeviceTransformFeedbackPropertiesEXT:
-----------------------------------------------
        maxTransformFeedbackStreams                = 4
        maxTransformFeedbackBuffers                = 4
        maxTransformFeedbackBufferSize             = 0x100000000
        maxTransformFeedbackStreamDataSize         = 512
        maxTransformFeedbackBufferDataSize         = 512
        maxTransformFeedbackBufferDataStride       = 2048
        transformFeedbackQueries                   = true
        transformFeedbackStreamsLinesTriangles     = false
        transformFeedbackRasterizationStreamSelect = false
        transformFeedbackDraw                      = true

VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT:
----------------------------------------------------
        maxVertexAttribDivisor = 268435455

VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR:
----------------------------------------------------
        maxVertexAttribDivisor       = 268435455
        supportsNonZeroFirstInstance = true

VkPhysicalDeviceVulkan11Properties:
-----------------------------------
        deviceUUID                        = 86808046-0c00-0000-0002-000000000000
        driverUUID                        = cdca6099-cfd6-2231-e6e4-0932390684d9
        deviceNodeMask                    = 0
        deviceLUIDValid                   = false
        subgroupSize                      = 32
        subgroupSupportedStages: count = 6
                SHADER_STAGE_VERTEX_BIT
                SHADER_STAGE_TESSELLATION_CONTROL_BIT
                SHADER_STAGE_TESSELLATION_EVALUATION_BIT
                SHADER_STAGE_GEOMETRY_BIT
                SHADER_STAGE_FRAGMENT_BIT
                SHADER_STAGE_COMPUTE_BIT
        subgroupSupportedOperations: count = 10
                SUBGROUP_FEATURE_BASIC_BIT
                SUBGROUP_FEATURE_VOTE_BIT
                SUBGROUP_FEATURE_ARITHMETIC_BIT
                SUBGROUP_FEATURE_BALLOT_BIT
                SUBGROUP_FEATURE_SHUFFLE_BIT
                SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT
                SUBGROUP_FEATURE_CLUSTERED_BIT
                SUBGROUP_FEATURE_QUAD_BIT
                SUBGROUP_FEATURE_ROTATE_BIT_KHR
                SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT_KHR
        subgroupQuadOperationsInAllStages = true
        pointClippingBehavior             = POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY
        maxMultiviewViewCount             = 16
        maxMultiviewInstanceIndex         = 268435455
        protectedNoFault                  = false
        maxPerSetDescriptors              = 1024
        maxMemoryAllocationSize           = 0x3e4482800

VkPhysicalDeviceVulkan12Properties:
-----------------------------------
        driverID                                             = DRIVER_ID_INTEL_OPEN_SOURCE_MESA
        driverName                                           = Intel open-source Mesa driver
        driverInfo                                           = Mesa 24.3.4
        conformanceVersion:
                major    = 1
                minor    = 3
                subminor = 6
                patch    = 0
        denormBehaviorIndependence                           = SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL
        roundingModeIndependence                             = SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
        shaderSignedZeroInfNanPreserveFloat16                = true
        shaderSignedZeroInfNanPreserveFloat32                = true
        shaderSignedZeroInfNanPreserveFloat64                = true
        shaderDenormPreserveFloat16                          = true
        shaderDenormPreserveFloat32                          = true
        shaderDenormPreserveFloat64                          = true
        shaderDenormFlushToZeroFloat16                       = false
        shaderDenormFlushToZeroFloat32                       = true
        shaderDenormFlushToZeroFloat64                       = true
        shaderRoundingModeRTEFloat16                         = true
        shaderRoundingModeRTEFloat32                         = true
        shaderRoundingModeRTEFloat64                         = true
        shaderRoundingModeRTZFloat16                         = true
        shaderRoundingModeRTZFloat32                         = true
        shaderRoundingModeRTZFloat64                         = true
        maxUpdateAfterBindDescriptorsInAllPools              = 201326592
        shaderUniformBufferArrayNonUniformIndexingNative     = false
        shaderSampledImageArrayNonUniformIndexingNative      = false
        shaderStorageBufferArrayNonUniformIndexingNative     = true
        shaderStorageImageArrayNonUniformIndexingNative      = false
        shaderInputAttachmentArrayNonUniformIndexingNative   = false
        robustBufferAccessUpdateAfterBind                    = true
        quadDivergentImplicitLod                             = false
        maxPerStageDescriptorUpdateAfterBindSamplers         = 402653184
        maxPerStageDescriptorUpdateAfterBindUniformBuffers   = 201326592
        maxPerStageDescriptorUpdateAfterBindStorageBuffers   = 201326592
        maxPerStageDescriptorUpdateAfterBindSampledImages    = 201326592
        maxPerStageDescriptorUpdateAfterBindStorageImages    = 201326592
        maxPerStageDescriptorUpdateAfterBindInputAttachments = 64
        maxPerStageUpdateAfterBindResources                  = 201326592
        maxDescriptorSetUpdateAfterBindSamplers              = 402653184
        maxDescriptorSetUpdateAfterBindUniformBuffers        = 201326592
        maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = 8
        maxDescriptorSetUpdateAfterBindStorageBuffers        = 201326592
        maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = 8
        maxDescriptorSetUpdateAfterBindSampledImages         = 201326592
        maxDescriptorSetUpdateAfterBindStorageImages         = 201326592
        maxDescriptorSetUpdateAfterBindInputAttachments      = 256
        supportedDepthResolveModes: count = 4
                RESOLVE_MODE_SAMPLE_ZERO_BIT
                RESOLVE_MODE_AVERAGE_BIT
                RESOLVE_MODE_MIN_BIT
                RESOLVE_MODE_MAX_BIT
        supportedStencilResolveModes: count = 3
                RESOLVE_MODE_SAMPLE_ZERO_BIT
                RESOLVE_MODE_MIN_BIT
                RESOLVE_MODE_MAX_BIT
        independentResolveNone                               = true
        independentResolve                                   = true
        filterMinmaxSingleComponentFormats                   = true
        filterMinmaxImageComponentMapping                    = true
        maxTimelineSemaphoreValueDifference                  = 18446744073709551615
        framebufferIntegerColorSampleCounts: count = 5
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_2_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT
                SAMPLE_COUNT_16_BIT

VkPhysicalDeviceVulkan13Properties:
-----------------------------------
        minSubgroupSize                                                               = 8
        maxSubgroupSize                                                               = 32
        maxComputeWorkgroupSubgroups                                                  = 64
        requiredSubgroupSizeStages: count = 3
                SHADER_STAGE_COMPUTE_BIT
                SHADER_STAGE_TASK_BIT_EXT
                SHADER_STAGE_MESH_BIT_EXT
        maxInlineUniformBlockSize                                                     = 4096
        maxPerStageDescriptorInlineUniformBlocks                                      = 32
        maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks                       = 32
        maxDescriptorSetInlineUniformBlocks                                           = 32
        maxDescriptorSetUpdateAfterBindInlineUniformBlocks                            = 32
        maxInlineUniformTotalSize                                                     = 65535
        integerDotProduct8BitUnsignedAccelerated                                      = false
        integerDotProduct8BitSignedAccelerated                                        = false
        integerDotProduct8BitMixedSignednessAccelerated                               = false
        integerDotProduct4x8BitPackedUnsignedAccelerated                              = true
        integerDotProduct4x8BitPackedSignedAccelerated                                = true
        integerDotProduct4x8BitPackedMixedSignednessAccelerated                       = true
        integerDotProduct16BitUnsignedAccelerated                                     = false
        integerDotProduct16BitSignedAccelerated                                       = false
        integerDotProduct16BitMixedSignednessAccelerated                              = false
        integerDotProduct32BitUnsignedAccelerated                                     = false
        integerDotProduct32BitSignedAccelerated                                       = false
        integerDotProduct32BitMixedSignednessAccelerated                              = false
        integerDotProduct64BitUnsignedAccelerated                                     = false
        integerDotProduct64BitSignedAccelerated                                       = false
        integerDotProduct64BitMixedSignednessAccelerated                              = false
        integerDotProductAccumulatingSaturating8BitUnsignedAccelerated                = false
        integerDotProductAccumulatingSaturating8BitSignedAccelerated                  = false
        integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated         = false
        integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated        = true
        integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated          = true
        integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = true
        integerDotProductAccumulatingSaturating16BitUnsignedAccelerated               = false
        integerDotProductAccumulatingSaturating16BitSignedAccelerated                 = false
        integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated        = false
        integerDotProductAccumulatingSaturating32BitUnsignedAccelerated               = false
        integerDotProductAccumulatingSaturating32BitSignedAccelerated                 = false
        integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated        = false
        integerDotProductAccumulatingSaturating64BitUnsignedAccelerated               = false
        integerDotProductAccumulatingSaturating64BitSignedAccelerated                 = false
        integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated        = false
        storageTexelBufferOffsetAlignmentBytes                                        = 0x00000010
        storageTexelBufferOffsetSingleTexelAlignment                                  = true
        uniformTexelBufferOffsetAlignmentBytes                                        = 0x00000001
        uniformTexelBufferOffsetSingleTexelAlignment                                  = true
        maxBufferSize                                                                 = 0x100000000

Device Extensions: count = 170
        VK_AMD_buffer_marker                          : extension revision 1
        VK_EXT_4444_formats                           : extension revision 1
        VK_EXT_attachment_feedback_loop_dynamic_state : extension revision 1
        VK_EXT_attachment_feedback_loop_layout        : extension revision 2
        VK_EXT_border_color_swizzle                   : extension revision 1
        VK_EXT_buffer_device_address                  : extension revision 2
        VK_EXT_calibrated_timestamps                  : extension revision 2
        VK_EXT_color_write_enable                     : extension revision 1
        VK_EXT_conditional_rendering                  : extension revision 2
        VK_EXT_conservative_rasterization             : extension revision 1
        VK_EXT_custom_border_color                    : extension revision 12
        VK_EXT_depth_bias_control                     : extension revision 1
        VK_EXT_depth_clamp_control                    : extension revision 1
        VK_EXT_depth_clamp_zero_one                   : extension revision 1
        VK_EXT_depth_clip_control                     : extension revision 1
        VK_EXT_depth_clip_enable                      : extension revision 1
        VK_EXT_descriptor_buffer                      : extension revision 1
        VK_EXT_descriptor_indexing                    : extension revision 2
        VK_EXT_display_control                        : extension revision 1
        VK_EXT_dynamic_rendering_unused_attachments   : extension revision 1
        VK_EXT_extended_dynamic_state                 : extension revision 1
        VK_EXT_extended_dynamic_state2                : extension revision 1
        VK_EXT_extended_dynamic_state3                : extension revision 2
        VK_EXT_external_memory_dma_buf                : extension revision 1
        VK_EXT_external_memory_host                   : extension revision 1
        VK_EXT_fragment_shader_interlock              : extension revision 1
        VK_EXT_global_priority                        : extension revision 2
        VK_EXT_global_priority_query                  : extension revision 1
        VK_EXT_graphics_pipeline_library              : extension revision 1
        VK_EXT_host_image_copy                        : extension revision 1
        VK_EXT_host_query_reset                       : extension revision 1
        VK_EXT_image_2d_view_of_3d                    : extension revision 1
        VK_EXT_image_drm_format_modifier              : extension revision 2
        VK_EXT_image_robustness                       : extension revision 1
        VK_EXT_image_sliced_view_of_3d                : extension revision 1
        VK_EXT_image_view_min_lod                     : extension revision 1
        VK_EXT_index_type_uint8                       : extension revision 1
        VK_EXT_inline_uniform_block                   : extension revision 1
        VK_EXT_legacy_dithering                       : extension revision 2
        VK_EXT_legacy_vertex_attributes               : extension revision 1
        VK_EXT_line_rasterization                     : extension revision 1
        VK_EXT_load_store_op_none                     : extension revision 1
        VK_EXT_map_memory_placed                      : extension revision 1
        VK_EXT_memory_budget                          : extension revision 1
        VK_EXT_multi_draw                             : extension revision 1
        VK_EXT_mutable_descriptor_type                : extension revision 1
        VK_EXT_nested_command_buffer                  : extension revision 1
        VK_EXT_non_seamless_cube_map                  : extension revision 1
        VK_EXT_pci_bus_info                           : extension revision 2
        VK_EXT_physical_device_drm                    : extension revision 1
        VK_EXT_pipeline_creation_cache_control        : extension revision 3
        VK_EXT_pipeline_creation_feedback             : extension revision 1
        VK_EXT_pipeline_protected_access              : extension revision 1
        VK_EXT_pipeline_robustness                    : extension revision 1
        VK_EXT_post_depth_coverage                    : extension revision 1
        VK_EXT_primitive_topology_list_restart        : extension revision 1
        VK_EXT_primitives_generated_query             : extension revision 1
        VK_EXT_private_data                           : extension revision 1
        VK_EXT_provoking_vertex                       : extension revision 1
        VK_EXT_queue_family_foreign                   : extension revision 1
        VK_EXT_robustness2                            : extension revision 1
        VK_EXT_sample_locations                       : extension revision 1
        VK_EXT_sampler_filter_minmax                  : extension revision 2
        VK_EXT_scalar_block_layout                    : extension revision 1
        VK_EXT_separate_stencil_usage                 : extension revision 1
        VK_EXT_shader_atomic_float                    : extension revision 1
        VK_EXT_shader_atomic_float2                   : extension revision 1
        VK_EXT_shader_demote_to_helper_invocation     : extension revision 1
        VK_EXT_shader_module_identifier               : extension revision 1
        VK_EXT_shader_replicated_composites           : extension revision 1
        VK_EXT_shader_stencil_export                  : extension revision 1
        VK_EXT_shader_subgroup_ballot                 : extension revision 1
        VK_EXT_shader_subgroup_vote                   : extension revision 1
        VK_EXT_shader_viewport_index_layer            : extension revision 1
        VK_EXT_subgroup_size_control                  : extension revision 2
        VK_EXT_swapchain_maintenance1                 : extension revision 1
        VK_EXT_texel_buffer_alignment                 : extension revision 1
        VK_EXT_tooling_info                           : extension revision 1
        VK_EXT_transform_feedback                     : extension revision 1
        VK_EXT_vertex_attribute_divisor               : extension revision 3
        VK_EXT_vertex_input_dynamic_state             : extension revision 2
        VK_EXT_ycbcr_2plane_444_formats               : extension revision 1
        VK_EXT_ycbcr_image_arrays                     : extension revision 1
        VK_GOOGLE_decorate_string                     : extension revision 1
        VK_GOOGLE_hlsl_functionality1                 : extension revision 1
        VK_GOOGLE_user_type                           : extension revision 1
        VK_INTEL_shader_integer_functions2            : extension revision 1
        VK_KHR_16bit_storage                          : extension revision 1
        VK_KHR_8bit_storage                           : extension revision 1
        VK_KHR_bind_memory2                           : extension revision 1
        VK_KHR_buffer_device_address                  : extension revision 1
        VK_KHR_calibrated_timestamps                  : extension revision 1
        VK_KHR_compute_shader_derivatives             : extension revision 1
        VK_KHR_cooperative_matrix                     : extension revision 2
        VK_KHR_copy_commands2                         : extension revision 1
        VK_KHR_create_renderpass2                     : extension revision 1
        VK_KHR_dedicated_allocation                   : extension revision 3
        VK_KHR_deferred_host_operations               : extension revision 4
        VK_KHR_depth_stencil_resolve                  : extension revision 1
        VK_KHR_descriptor_update_template             : extension revision 1
        VK_KHR_device_group                           : extension revision 4
        VK_KHR_draw_indirect_count                    : extension revision 1
        VK_KHR_driver_properties                      : extension revision 1
        VK_KHR_dynamic_rendering                      : extension revision 1
        VK_KHR_dynamic_rendering_local_read           : extension revision 1
        VK_KHR_external_fence                         : extension revision 1
        VK_KHR_external_fence_fd                      : extension revision 1
        VK_KHR_external_memory                        : extension revision 1
        VK_KHR_external_memory_fd                     : extension revision 1
        VK_KHR_external_semaphore                     : extension revision 1
        VK_KHR_external_semaphore_fd                  : extension revision 1
        VK_KHR_format_feature_flags2                  : extension revision 2
        VK_KHR_fragment_shading_rate                  : extension revision 2
        VK_KHR_get_memory_requirements2               : extension revision 1
        VK_KHR_global_priority                        : extension revision 1
        VK_KHR_image_format_list                      : extension revision 1
        VK_KHR_imageless_framebuffer                  : extension revision 1
        VK_KHR_incremental_present                    : extension revision 2
        VK_KHR_index_type_uint8                       : extension revision 1
        VK_KHR_line_rasterization                     : extension revision 1
        VK_KHR_load_store_op_none                     : extension revision 1
        VK_KHR_maintenance1                           : extension revision 2
        VK_KHR_maintenance2                           : extension revision 1
        VK_KHR_maintenance3                           : extension revision 1
        VK_KHR_maintenance4                           : extension revision 2
        VK_KHR_maintenance5                           : extension revision 1
        VK_KHR_maintenance6                           : extension revision 1
        VK_KHR_maintenance7                           : extension revision 1
        VK_KHR_map_memory2                            : extension revision 1
        VK_KHR_multiview                              : extension revision 1
        VK_KHR_pipeline_executable_properties         : extension revision 1
        VK_KHR_pipeline_library                       : extension revision 1
        VK_KHR_present_id                             : extension revision 1
        VK_KHR_present_wait                           : extension revision 1
        VK_KHR_push_descriptor                        : extension revision 2
        VK_KHR_relaxed_block_layout                   : extension revision 1
        VK_KHR_sampler_mirror_clamp_to_edge           : extension revision 3
        VK_KHR_sampler_ycbcr_conversion               : extension revision 14
        VK_KHR_separate_depth_stencil_layouts         : extension revision 1
        VK_KHR_shader_atomic_int64                    : extension revision 1
        VK_KHR_shader_clock                           : extension revision 1
        VK_KHR_shader_draw_parameters                 : extension revision 1
        VK_KHR_shader_expect_assume                   : extension revision 1
        VK_KHR_shader_float16_int8                    : extension revision 1
        VK_KHR_shader_float_controls                  : extension revision 4
        VK_KHR_shader_float_controls2                 : extension revision 1
        VK_KHR_shader_integer_dot_product             : extension revision 1
        VK_KHR_shader_maximal_reconvergence           : extension revision 1
        VK_KHR_shader_non_semantic_info               : extension revision 1
        VK_KHR_shader_quad_control                    : extension revision 1
        VK_KHR_shader_relaxed_extended_instruction    : extension revision 1
        VK_KHR_shader_subgroup_extended_types         : extension revision 1
        VK_KHR_shader_subgroup_rotate                 : extension revision 2
        VK_KHR_shader_subgroup_uniform_control_flow   : extension revision 1
        VK_KHR_shader_terminate_invocation            : extension revision 1
        VK_KHR_spirv_1_4                              : extension revision 1
        VK_KHR_storage_buffer_storage_class           : extension revision 1
        VK_KHR_swapchain                              : extension revision 70
        VK_KHR_swapchain_mutable_format               : extension revision 1
        VK_KHR_synchronization2                       : extension revision 1
        VK_KHR_timeline_semaphore                     : extension revision 2
        VK_KHR_uniform_buffer_standard_layout         : extension revision 1
        VK_KHR_variable_pointers                      : extension revision 1
        VK_KHR_vertex_attribute_divisor               : extension revision 1
        VK_KHR_vulkan_memory_model                    : extension revision 3
        VK_KHR_workgroup_memory_explicit_layout       : extension revision 1
        VK_KHR_zero_initialize_workgroup_memory       : extension revision 1
        VK_MESA_image_alignment_control               : extension revision 1
        VK_NV_compute_shader_derivatives              : extension revision 1
        VK_VALVE_mutable_descriptor_type              : extension revision 1

VkQueueFamilyProperties:
========================
        queueProperties[0]:
        -------------------
                minImageTransferGranularity = (1,1,1)
                queueCount                  = 1
                queueFlags                  = QUEUE_GRAPHICS_BIT | QUEUE_COMPUTE_BIT | QUEUE_TRANSFER_BIT | QUEUE_SPARSE_BINDING_BIT | QUEUE_PROTECTED_BIT
                timestampValidBits          = 36
                present support             = true
                VkQueueFamilyGlobalPriorityPropertiesKHR:
                -----------------------------------------
                        priorityCount  = 2
                        priorities: count = 2
                                QUEUE_GLOBAL_PRIORITY_LOW_KHR
                                QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR


VkPhysicalDeviceMemoryProperties:
=================================
memoryHeaps: count = 1
        memoryHeaps[0]:
                size   = 16714835968 (0x3e4482800) (15.57 GiB)
                budget = 13344178176 (0x31b600000) (12.43 GiB)
                usage  = 0 (0x00000000) (0.00 B)
                flags: count = 1
                        MEMORY_HEAP_DEVICE_LOCAL_BIT
memoryTypes: count = 7
        memoryTypes[0]:
                heapIndex     = 0
                propertyFlags = 0x0001: count = 1
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                color images
                                FORMAT_D16_UNORM
                                FORMAT_X8_D24_UNORM_PACK32
                                FORMAT_D32_SFLOAT
                                FORMAT_S8_UINT
                                FORMAT_D24_UNORM_S8_UINT
                                FORMAT_D32_SFLOAT_S8_UINT
                        IMAGE_TILING_LINEAR:
                                color images
        memoryTypes[1]:
                heapIndex     = 0
                propertyFlags = 0x0007: count = 3
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                color images
                                FORMAT_D16_UNORM
                                FORMAT_X8_D24_UNORM_PACK32
                                FORMAT_D32_SFLOAT
                                FORMAT_S8_UINT
                                FORMAT_D24_UNORM_S8_UINT
                                FORMAT_D32_SFLOAT_S8_UINT
                        IMAGE_TILING_LINEAR:
                                color images
        memoryTypes[2]:
                heapIndex     = 0
                propertyFlags = 0x000f: count = 4
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_HOST_CACHED_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                color images
                                FORMAT_D16_UNORM
                                FORMAT_X8_D24_UNORM_PACK32
                                FORMAT_D32_SFLOAT
                                FORMAT_S8_UINT
                                FORMAT_D24_UNORM_S8_UINT
                                FORMAT_D32_SFLOAT_S8_UINT
                        IMAGE_TILING_LINEAR:
                                color images
        memoryTypes[3]:
                heapIndex     = 0
                propertyFlags = 0x0021: count = 2
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_PROTECTED_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[4]:
                heapIndex     = 0
                propertyFlags = 0x0001: count = 1
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[5]:
                heapIndex     = 0
                propertyFlags = 0x0007: count = 3
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[6]:
                heapIndex     = 0
                propertyFlags = 0x000f: count = 4
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_HOST_CACHED_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None

VkPhysicalDeviceFeatures:
=========================
        robustBufferAccess                      = true
        fullDrawIndexUint32                     = true
        imageCubeArray                          = true
        independentBlend                        = true
        geometryShader                          = true
        tessellationShader                      = true
        sampleRateShading                       = true
        dualSrcBlend                            = true
        logicOp                                 = true
        multiDrawIndirect                       = true
        drawIndirectFirstInstance               = true
        depthClamp                              = true
        depthBiasClamp                          = true
        fillModeNonSolid                        = true
        depthBounds                             = true
        wideLines                               = true
        largePoints                             = true
        alphaToOne                              = true
        multiViewport                           = true
        samplerAnisotropy                       = true
        textureCompressionETC2                  = true
        textureCompressionASTC_LDR              = true
        textureCompressionBC                    = true
        occlusionQueryPrecise                   = true
        pipelineStatisticsQuery                 = true
        vertexPipelineStoresAndAtomics          = true
        fragmentStoresAndAtomics                = true
        shaderTessellationAndGeometryPointSize  = true
        shaderImageGatherExtended               = true
        shaderStorageImageExtendedFormats       = true
        shaderStorageImageMultisample           = false
        shaderStorageImageReadWithoutFormat     = false
        shaderStorageImageWriteWithoutFormat    = true
        shaderUniformBufferArrayDynamicIndexing = true
        shaderSampledImageArrayDynamicIndexing  = true
        shaderStorageBufferArrayDynamicIndexing = true
        shaderStorageImageArrayDynamicIndexing  = true
        shaderClipDistance                      = true
        shaderCullDistance                      = true
        shaderFloat64                           = false
        shaderInt64                             = true
        shaderInt16                             = true
        shaderResourceResidency                 = true
        shaderResourceMinLod                    = true
        sparseBinding                           = true
        sparseResidencyBuffer                   = true
        sparseResidencyImage2D                  = true
        sparseResidencyImage3D                  = true
        sparseResidency2Samples                 = true
        sparseResidency4Samples                 = true
        sparseResidency8Samples                 = true
        sparseResidency16Samples                = true
        sparseResidencyAliased                  = true
        variableMultisampleRate                 = true
        inheritedQueries                        = true

VkPhysicalDevice4444FormatsFeaturesEXT:
---------------------------------------
        formatA4R4G4B4 = true
        formatA4B4G4R4 = false

VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT:
--------------------------------------------------------------
        attachmentFeedbackLoopDynamicState = true

VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT:
--------------------------------------------------------
        attachmentFeedbackLoopLayout = true

VkPhysicalDeviceBorderColorSwizzleFeaturesEXT:
----------------------------------------------
        borderColorSwizzle          = true
        borderColorSwizzleFromImage = true

VkPhysicalDeviceBufferDeviceAddressFeaturesEXT:
-----------------------------------------------
        bufferDeviceAddress              = true
        bufferDeviceAddressCaptureReplay = false
        bufferDeviceAddressMultiDevice   = false

VkPhysicalDeviceColorWriteEnableFeaturesEXT:
--------------------------------------------
        colorWriteEnable = true

VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR:
----------------------------------------------------
        computeDerivativeGroupQuads  = true
        computeDerivativeGroupLinear = true

VkPhysicalDeviceConditionalRenderingFeaturesEXT:
------------------------------------------------
        conditionalRendering          = true
        inheritedConditionalRendering = true

VkPhysicalDeviceCooperativeMatrixFeaturesKHR:
---------------------------------------------
        cooperativeMatrix                   = true
        cooperativeMatrixRobustBufferAccess = false

VkPhysicalDeviceCustomBorderColorFeaturesEXT:
---------------------------------------------
        customBorderColors             = true
        customBorderColorWithoutFormat = true

VkPhysicalDeviceDepthBiasControlFeaturesEXT:
--------------------------------------------
        depthBiasControl                                = true
        leastRepresentableValueForceUnormRepresentation = false
        floatRepresentation                             = true
        depthBiasExact                                  = true

VkPhysicalDeviceDepthClampControlFeaturesEXT:
---------------------------------------------
        depthClampControl = true

VkPhysicalDeviceDepthClampZeroOneFeaturesEXT:
---------------------------------------------
        depthClampZeroOne = true

VkPhysicalDeviceDepthClipControlFeaturesEXT:
--------------------------------------------
        depthClipControl = true

VkPhysicalDeviceDepthClipEnableFeaturesEXT:
-------------------------------------------
        depthClipEnable = true

VkPhysicalDeviceDescriptorBufferFeaturesEXT:
--------------------------------------------
        descriptorBuffer                   = true
        descriptorBufferCaptureReplay      = true
        descriptorBufferImageLayoutIgnored = false
        descriptorBufferPushDescriptors    = true

VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR:
-----------------------------------------------------
        dynamicRenderingLocalRead = true

VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT:
-------------------------------------------------------------
        dynamicRenderingUnusedAttachments = true

VkPhysicalDeviceExtendedDynamicState2FeaturesEXT:
-------------------------------------------------
        extendedDynamicState2                   = true
        extendedDynamicState2LogicOp            = true
        extendedDynamicState2PatchControlPoints = true

VkPhysicalDeviceExtendedDynamicState3FeaturesEXT:
-------------------------------------------------
        extendedDynamicState3TessellationDomainOrigin         = true
        extendedDynamicState3DepthClampEnable                 = true
        extendedDynamicState3PolygonMode                      = true
        extendedDynamicState3RasterizationSamples             = true
        extendedDynamicState3SampleMask                       = true
        extendedDynamicState3AlphaToCoverageEnable            = true
        extendedDynamicState3AlphaToOneEnable                 = true
        extendedDynamicState3LogicOpEnable                    = true
        extendedDynamicState3ColorBlendEnable                 = true
        extendedDynamicState3ColorBlendEquation               = true
        extendedDynamicState3ColorWriteMask                   = true
        extendedDynamicState3RasterizationStream              = true
        extendedDynamicState3ConservativeRasterizationMode    = true
        extendedDynamicState3ExtraPrimitiveOverestimationSize = false
        extendedDynamicState3DepthClipEnable                  = true
        extendedDynamicState3SampleLocationsEnable            = true
        extendedDynamicState3ColorBlendAdvanced               = false
        extendedDynamicState3ProvokingVertexMode              = true
        extendedDynamicState3LineRasterizationMode            = true
        extendedDynamicState3LineStippleEnable                = true
        extendedDynamicState3DepthClipNegativeOneToOne        = true
        extendedDynamicState3ViewportWScalingEnable           = false
        extendedDynamicState3ViewportSwizzle                  = false
        extendedDynamicState3CoverageToColorEnable            = false
        extendedDynamicState3CoverageToColorLocation          = false
        extendedDynamicState3CoverageModulationMode           = false
        extendedDynamicState3CoverageModulationTableEnable    = false
        extendedDynamicState3CoverageModulationTable          = false
        extendedDynamicState3CoverageReductionMode            = false
        extendedDynamicState3RepresentativeFragmentTestEnable = false
        extendedDynamicState3ShadingRateImageEnable           = false

VkPhysicalDeviceExtendedDynamicStateFeaturesEXT:
------------------------------------------------
        extendedDynamicState = true

VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT:
---------------------------------------------------
        fragmentShaderSampleInterlock      = true
        fragmentShaderPixelInterlock       = true
        fragmentShaderShadingRateInterlock = false

VkPhysicalDeviceFragmentShadingRateFeaturesKHR:
-----------------------------------------------
        pipelineFragmentShadingRate   = true
        primitiveFragmentShadingRate  = false
        attachmentFragmentShadingRate = false

VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR:
-----------------------------------------------
        globalPriorityQuery = true

VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT:
---------------------------------------------------
        graphicsPipelineLibrary = true

VkPhysicalDeviceHostImageCopyFeaturesEXT:
-----------------------------------------
        hostImageCopy = true

VkPhysicalDeviceImage2DViewOf3DFeaturesEXT:
-------------------------------------------
        image2DViewOf3D   = true
        sampler2DViewOf3D = true

VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT:
-----------------------------------------------
        imageSlicedViewOf3D = true

VkPhysicalDeviceImageViewMinLodFeaturesEXT:
-------------------------------------------
        minLod = true

VkPhysicalDeviceIndexTypeUint8FeaturesKHR:
------------------------------------------
        indexTypeUint8 = true

VkPhysicalDeviceLegacyDitheringFeaturesEXT:
-------------------------------------------
        legacyDithering = true

VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT:
--------------------------------------------------
        legacyVertexAttributes = true

VkPhysicalDeviceLineRasterizationFeaturesKHR:
---------------------------------------------
        rectangularLines         = true
        bresenhamLines           = true
        smoothLines              = false
        stippledRectangularLines = false
        stippledBresenhamLines   = true
        stippledSmoothLines      = false

VkPhysicalDeviceMaintenance5FeaturesKHR:
----------------------------------------
        maintenance5 = true

VkPhysicalDeviceMaintenance6FeaturesKHR:
----------------------------------------
        maintenance6 = true

VkPhysicalDeviceMaintenance7FeaturesKHR:
----------------------------------------
        maintenance7 = true

VkPhysicalDeviceMapMemoryPlacedFeaturesEXT:
-------------------------------------------
        memoryMapPlaced      = true
        memoryMapRangePlaced = false
        memoryUnmapReserve   = true

VkPhysicalDeviceMultiDrawFeaturesEXT:
-------------------------------------
        multiDraw = true

VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT:
-------------------------------------------------
        mutableDescriptorType = true

VkPhysicalDeviceNestedCommandBufferFeaturesEXT:
-----------------------------------------------
        nestedCommandBuffer                = true
        nestedCommandBufferRendering       = true
        nestedCommandBufferSimultaneousUse = false

VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT:
----------------------------------------------
        nonSeamlessCubeMap = true

VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR:
--------------------------------------------------------
        pipelineExecutableInfo = true

VkPhysicalDevicePipelineProtectedAccessFeaturesEXT:
---------------------------------------------------
        pipelineProtectedAccess = true

VkPhysicalDevicePipelineRobustnessFeaturesEXT:
----------------------------------------------
        pipelineRobustness = true

VkPhysicalDevicePresentIdFeaturesKHR:
-------------------------------------
        presentId = true

VkPhysicalDevicePresentWaitFeaturesKHR:
---------------------------------------
        presentWait = true

VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT:
--------------------------------------------------------
        primitiveTopologyListRestart      = true
        primitiveTopologyPatchListRestart = true

VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT:
----------------------------------------------------
        primitivesGeneratedQuery                      = true
        primitivesGeneratedQueryWithRasterizerDiscard = false
        primitivesGeneratedQueryWithNonZeroStreams    = false

VkPhysicalDeviceProvokingVertexFeaturesEXT:
-------------------------------------------
        provokingVertexLast                       = true
        transformFeedbackPreservesProvokingVertex = true

VkPhysicalDeviceRobustness2FeaturesEXT:
---------------------------------------
        robustBufferAccess2 = true
        robustImageAccess2  = true
        nullDescriptor      = true

VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT:
----------------------------------------------
        shaderBufferFloat16Atomics      = false
        shaderBufferFloat16AtomicAdd    = false
        shaderBufferFloat16AtomicMinMax = false
        shaderBufferFloat32AtomicMinMax = true
        shaderBufferFloat64AtomicMinMax = false
        shaderSharedFloat16Atomics      = false
        shaderSharedFloat16AtomicAdd    = false
        shaderSharedFloat16AtomicMinMax = false
        shaderSharedFloat32AtomicMinMax = true
        shaderSharedFloat64AtomicMinMax = false
        shaderImageFloat32AtomicMinMax  = false
        sparseImageFloat32AtomicMinMax  = false

VkPhysicalDeviceShaderAtomicFloatFeaturesEXT:
---------------------------------------------
        shaderBufferFloat32Atomics   = true
        shaderBufferFloat32AtomicAdd = false
        shaderBufferFloat64Atomics   = false
        shaderBufferFloat64AtomicAdd = false
        shaderSharedFloat32Atomics   = true
        shaderSharedFloat32AtomicAdd = false
        shaderSharedFloat64Atomics   = false
        shaderSharedFloat64AtomicAdd = false
        shaderImageFloat32Atomics    = true
        shaderImageFloat32AtomicAdd  = false
        sparseImageFloat32Atomics    = false
        sparseImageFloat32AtomicAdd  = false

VkPhysicalDeviceShaderClockFeaturesKHR:
---------------------------------------
        shaderSubgroupClock = true
        shaderDeviceClock   = false

VkPhysicalDeviceShaderExpectAssumeFeaturesKHR:
----------------------------------------------
        shaderExpectAssume = true

VkPhysicalDeviceShaderFloatControls2FeaturesKHR:
------------------------------------------------
        shaderFloatControls2 = true

VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR:
------------------------------------------------------
        shaderMaximalReconvergence = true

VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT:
--------------------------------------------------
        shaderModuleIdentifier = true

VkPhysicalDeviceShaderQuadControlFeaturesKHR:
---------------------------------------------
        shaderQuadControl = true

VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR:
------------------------------------------------------------
        shaderRelaxedExtendedInstruction = true

VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT:
------------------------------------------------------
        shaderReplicatedComposites = true

VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR:
------------------------------------------------
        shaderSubgroupRotate          = true
        shaderSubgroupRotateClustered = true

VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR:
------------------------------------------------------------
        shaderSubgroupUniformControlFlow = true

VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT:
-------------------------------------------------
        swapchainMaintenance1 = true

VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT:
------------------------------------------------
        texelBufferAlignment = true

VkPhysicalDeviceTransformFeedbackFeaturesEXT:
---------------------------------------------
        transformFeedback = true
        geometryStreams   = true

VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR:
--------------------------------------------------
        vertexAttributeInstanceRateDivisor     = true
        vertexAttributeInstanceRateZeroDivisor = true

VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT:
---------------------------------------------------
        vertexInputDynamicState = true

VkPhysicalDeviceVulkan11Features:
---------------------------------
        storageBuffer16BitAccess           = true
        uniformAndStorageBuffer16BitAccess = true
        storagePushConstant16              = true
        storageInputOutput16               = false
        multiview                          = true
        multiviewGeometryShader            = true
        multiviewTessellationShader        = true
        variablePointersStorageBuffer      = true
        variablePointers                   = true
        protectedMemory                    = true
        samplerYcbcrConversion             = true
        shaderDrawParameters               = true

VkPhysicalDeviceVulkan12Features:
---------------------------------
        samplerMirrorClampToEdge                           = true
        drawIndirectCount                                  = true
        storageBuffer8BitAccess                            = true
        uniformAndStorageBuffer8BitAccess                  = true
        storagePushConstant8                               = true
        shaderBufferInt64Atomics                           = true
        shaderSharedInt64Atomics                           = false
        shaderFloat16                                      = true
        shaderInt8                                         = true
        descriptorIndexing                                 = true
        shaderInputAttachmentArrayDynamicIndexing          = false
        shaderUniformTexelBufferArrayDynamicIndexing       = true
        shaderStorageTexelBufferArrayDynamicIndexing       = true
        shaderUniformBufferArrayNonUniformIndexing         = true
        shaderSampledImageArrayNonUniformIndexing          = true
        shaderStorageBufferArrayNonUniformIndexing         = true
        shaderStorageImageArrayNonUniformIndexing          = true
        shaderInputAttachmentArrayNonUniformIndexing       = false
        shaderUniformTexelBufferArrayNonUniformIndexing    = true
        shaderStorageTexelBufferArrayNonUniformIndexing    = true
        descriptorBindingUniformBufferUpdateAfterBind      = true
        descriptorBindingSampledImageUpdateAfterBind       = true
        descriptorBindingStorageImageUpdateAfterBind       = true
        descriptorBindingStorageBufferUpdateAfterBind      = true
        descriptorBindingUniformTexelBufferUpdateAfterBind = true
        descriptorBindingStorageTexelBufferUpdateAfterBind = true
        descriptorBindingUpdateUnusedWhilePending          = true
        descriptorBindingPartiallyBound                    = true
        descriptorBindingVariableDescriptorCount           = true
        runtimeDescriptorArray                             = true
        samplerFilterMinmax                                = true
        scalarBlockLayout                                  = true
        imagelessFramebuffer                               = true
        uniformBufferStandardLayout                        = true
        shaderSubgroupExtendedTypes                        = true
        separateDepthStencilLayouts                        = true
        hostQueryReset                                     = true
        timelineSemaphore                                  = true
        bufferDeviceAddress                                = true
        bufferDeviceAddressCaptureReplay                   = true
        bufferDeviceAddressMultiDevice                     = false
        vulkanMemoryModel                                  = true
        vulkanMemoryModelDeviceScope                       = true
        vulkanMemoryModelAvailabilityVisibilityChains      = true
        shaderOutputViewportIndex                          = true
        shaderOutputLayer                                  = true
        subgroupBroadcastDynamicId                         = true

VkPhysicalDeviceVulkan13Features:
---------------------------------
        robustImageAccess                                  = true
        inlineUniformBlock                                 = true
        descriptorBindingInlineUniformBlockUpdateAfterBind = true
        pipelineCreationCacheControl                       = true
        privateData                                        = true
        shaderDemoteToHelperInvocation                     = true
        shaderTerminateInvocation                          = true
        subgroupSizeControl                                = true
        computeFullSubgroups                               = true
        synchronization2                                   = true
        textureCompressionASTC_HDR                         = false
        shaderZeroInitializeWorkgroupMemory                = true
        dynamicRendering                                   = true
        shaderIntegerDotProduct                            = true
        maintenance4                                       = true

VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR:
---------------------------------------------------------
        workgroupMemoryExplicitLayout                  = true
        workgroupMemoryExplicitLayoutScalarBlockLayout = true
        workgroupMemoryExplicitLayout8BitAccess        = true
        workgroupMemoryExplicitLayout16BitAccess       = true

VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT:
-------------------------------------------------
        ycbcr2plane444Formats = true

VkPhysicalDeviceYcbcrImageArraysFeaturesEXT:
--------------------------------------------
        ycbcrImageArrays = true

JkktBkkt avatar Apr 08 '25 23:04 JkktBkkt

If you are able to, could you test #907 to see if it fixes the issue for you?

andymandias avatar Apr 10 '25 01:04 andymandias

Responded in the PR (still segfaults but with more info)

As for the backend issue: TL;DR: Not expecting solution to this second part of it, I'll see if I can find something else/upstream.

I'm thinking there's something else at play, since vulkan on my iGPU seems to refuse to work at all. Perhaps that's because this is a dual system or something else with the Xe-generation of iGPUs (here are the symptoms/findings so far). Most apps, however, switch to dGPU by default, wgpu seems to try to use the intel ICD and fails in my case.

JkktBkkt avatar Apr 10 '25 15:04 JkktBkkt

As it turns out, this has been mentioned in another issue https://github.com/squidowl/halloy/issues/834 and I think the segfault may be caused by upstream too https://github.com/iced-rs/iced/issues/2625 (which also didn't get resolved with the update we tried) — probably should wait for resolution there.

Am unsure whether some kind of fallback can be organized for Vulkan device switching in case one doesn't work, otherwise this issue is completely redundant

JkktBkkt avatar Apr 15 '25 09:04 JkktBkkt

I saw a report that this is no longer happening in 2025.8, but I don't have the setup to reproduce currently. Is this issue still possible to reproduce?

andymandias avatar Sep 09 '25 18:09 andymandias

doesn't happen anymore on main

nekopsykose avatar Sep 09 '25 21:09 nekopsykose

Thank you for the confirmation @nekopsykose. Will close this for now then.

andymandias avatar Sep 10 '25 01:09 andymandias