cogentcore / core

A free and open source framework for building powerful, fast, elegant 2D and 3D apps that run on macOS, Windows, Linux, iOS, Android, and the web with a single Go codebase, allowing you to Code Once, Run Everywhere.
http://cogentcore.org/core
BSD 3-Clause "New" or "Revised" License
1.73k stars 82 forks source link

panic: vulkan error: vulkan error: feature not present (-8) #1063

Closed m-abdalrahman closed 2 months ago

m-abdalrahman commented 3 months ago

Describe the bug

I got this error when trying to execute go run cogentcore.org/core/examples/demo@main, even though core setup showed me this message core setup succeeded

Platform: Linux
System platform: Linux
App version: dev
Core version: dev
Time: 2024-07-25 21:20:44

panic: vulkan error: vulkan error: feature not present (-8)

goroutine 1 [running, locked to thread]:
runtime/debug.Stack()
    /usr/lib/go-1.22/src/runtime/debug/stack.go:24 +0x5e
cogentcore.org/core/system.HandleRecoverBase({0xe58b20, 0xc00bc82080})
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/system/recover.go:50 +0x4b
cogentcore.org/core/core.handleRecover({0xe58b20, 0xc00bc82080})
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/core/recover.go:33 +0x4b
cogentcore.org/core/core.(*Stage).run.func1()
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/core/stage.go:277 +0x24
panic({0xe58b20?, 0xc00bc82080?})
    /usr/lib/go-1.22/src/runtime/panic.go:770 +0x132
cogentcore.org/core/vgpu.IfPanic(...)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/vgpu/errors.go:39
cogentcore.org/core/vgpu.(*Device).MakeDevice(0xc00391c008, 0xc0000ef808)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/vgpu/device.go:98 +0x2ff
cogentcore.org/core/vgpu.(*Surface).Init(0xc00391c000, 0xc0000ef808, 0xe13ee0?)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/vgpu/surface.go:118 +0x15b
cogentcore.org/core/vgpu.NewSurface(0xc0000ef808, 0x23cfe40)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/vgpu/surface.go:68 +0x45
cogentcore.org/core/system/driver/desktop.(*App).NewWindow.func2()
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/system/driver/desktop/app.go:137 +0x87
cogentcore.org/core/system/driver/base.(*App).RunOnMain(0x0?, 0x0?)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/system/driver/base/app.go:90 +0xa9
cogentcore.org/core/system/driver/desktop.(*App).NewWindow(0x1d737c0, 0xc0037b2c60?)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/system/driver/desktop/app.go:135 +0x474
cogentcore.org/core/core.newRenderWindow({0xc003d14100, 0x31}, {0xc0003260f0, 0x25}, 0xc0037b2c60)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/core/renderwindow.go:108 +0xa5
cogentcore.org/core/core.(*Stage).newRenderWindow(0xc003926b40)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/core/mainstage.go:343 +0x20a
cogentcore.org/core/core.(*Stage).runWindow(0xc003926b40)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/core/mainstage.go:226 +0x6dc
cogentcore.org/core/core.(*Stage).run(0x1?)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/core/stage.go:280 +0x88
cogentcore.org/core/core.(*Stage).Run(0x0?)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/core/stage.go:259 +0x7a
cogentcore.org/core/core.(*Body).RunWindow(0x0?)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/core/mainstage.go:69 +0x26
cogentcore.org/core/core.handleRecover({0xe58b20, 0xc007922080})
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/core/recover.go:69 +0x20a
cogentcore.org/core/core.(*Stage).run.func1()
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/core/stage.go:277 +0x24
panic({0xe58b20?, 0xc007922080?})
    /usr/lib/go-1.22/src/runtime/panic.go:770 +0x132
cogentcore.org/core/vgpu.IfPanic(...)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/vgpu/errors.go:39
cogentcore.org/core/vgpu.(*Device).MakeDevice(0xc0036d0168, 0xc0000ef808)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/vgpu/device.go:98 +0x2ff
cogentcore.org/core/vgpu.(*Surface).Init(0xc0036d0160, 0xc0000ef808, 0xe13ee0?)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/vgpu/surface.go:118 +0x15b
cogentcore.org/core/vgpu.NewSurface(0xc0000ef808, 0x23ba800)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/vgpu/surface.go:68 +0x45
cogentcore.org/core/system/driver/desktop.(*App).NewWindow.func2()
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/system/driver/desktop/app.go:137 +0x87
cogentcore.org/core/system/driver/base.(*App).RunOnMain(0x0?, 0x0?)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/system/driver/base/app.go:90 +0xa9
cogentcore.org/core/system/driver/desktop.(*App).NewWindow(0x1d737c0, 0xc0058e41e0?)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/system/driver/desktop/app.go:135 +0x474
cogentcore.org/core/core.newRenderWindow({0xc0030f1230, 0x22}, {0xfa60be, 0x10}, 0xc0058e41e0)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/core/renderwindow.go:108 +0xa5
cogentcore.org/core/core.(*Stage).newRenderWindow(0xc0054e1860)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/core/mainstage.go:343 +0x20a
cogentcore.org/core/core.(*Stage).runWindow(0xc0054e1860)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/core/mainstage.go:226 +0x6dc
cogentcore.org/core/core.(*Stage).run(0x41a0000042a00000?)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/core/stage.go:280 +0x88
cogentcore.org/core/core.(*Stage).Run(0x0?)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/core/stage.go:259 +0x7a
cogentcore.org/core/core.(*Body).RunWindow(0xc004cb6a88?)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/core/mainstage.go:69 +0x26
cogentcore.org/core/core.(*Body).RunMainWindow(0xc000350008?)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/core/mainstage.go:59 +0x131
main.main()
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.1-0.20240725043440-7dbc33d1e076/examples/demo/demo.go:44 +0xcf

How to reproduce

execute go run cogentcore.org/core/examples/demo@main

Example code

No response

Relevant output

No response

Platform

Linux

kkoreilly commented 3 months ago

Thank you for the bug report! Can you please provide more information about the distro of Linux that you are using and the output of the vulkaninfo command? Thank you!

m-abdalrahman commented 2 months ago

OS: Ubuntu 24.04

vulkaninfo:

WARNING: [Loader Message] Code 0 : terminator_CreateInstance: Received return code -3 from call to vkCreateInstance in ICD /usr/lib/x86_64-linux-gnu/libvulkan_virtio.so. Skipping this driver.
MESA-INTEL: warning: Ivy Bridge Vulkan support is incomplete
ERROR: [../src/amd/vulkan/radv_physical_device.c:1828] Code 0 : Device '/dev/dri/renderD128' is not using the AMDGPU kernel driver: Invalid argument (VK_ERROR_INCOMPATIBLE_DRIVER)

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

Vulkan Instance Version: 1.3.275

Instance Extensions: count = 23
===============================
    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_surface_maintenance1            : extension revision 1
    VK_EXT_swapchain_colorspace            : extension revision 4
    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 = 4
=================
VK_LAYER_INTEL_nullhw (INTEL NULL HW) Vulkan version 1.1.73, layer version 1:
    Layer Extensions: count = 0
    Devices: count = 2
        GPU id = 0 (Intel(R) HD Graphics 4000 (IVB GT2))
        Layer-Device Extensions: count = 0

        GPU id = 1 (llvmpipe (LLVM 17.0.6, 256 bits))
        Layer-Device Extensions: count = 0

VK_LAYER_KHRONOS_validation (Khronos Validation Layer) Vulkan version 1.3.275, layer version 1:
    Layer Extensions: count = 3
        VK_EXT_debug_report        : extension revision 9
        VK_EXT_debug_utils         : extension revision 1
        VK_EXT_validation_features : extension revision 2
    Devices: count = 2
        GPU id = 0 (Intel(R) HD Graphics 4000 (IVB GT2))
        Layer-Device Extensions: count = 3
            VK_EXT_debug_marker     : extension revision 4
            VK_EXT_tooling_info     : extension revision 1
            VK_EXT_validation_cache : extension revision 1

        GPU id = 1 (llvmpipe (LLVM 17.0.6, 256 bits))
        Layer-Device Extensions: count = 3
            VK_EXT_debug_marker     : extension revision 4
            VK_EXT_tooling_info     : extension revision 1
            VK_EXT_validation_cache : extension revision 1

VK_LAYER_MESA_device_select (Linux device selection layer) Vulkan version 1.3.211, layer version 1:
    Layer Extensions: count = 0
    Devices: count = 2
        GPU id = 0 (Intel(R) HD Graphics 4000 (IVB GT2))
        Layer-Device Extensions: count = 0

        GPU id = 1 (llvmpipe (LLVM 17.0.6, 256 bits))
        Layer-Device Extensions: count = 0

VK_LAYER_MESA_overlay (Mesa Overlay layer) Vulkan version 1.3.211, layer version 1:
    Layer Extensions: count = 0
    Devices: count = 2
        GPU id = 0 (Intel(R) HD Graphics 4000 (IVB GT2))
        Layer-Device Extensions: count = 0

        GPU id = 1 (llvmpipe (LLVM 17.0.6, 256 bits))
        Layer-Device Extensions: count = 0

Presentable Surfaces:
=====================
GPU id : 0 (Intel(R) HD Graphics 4000 (IVB GT2)):
    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 = 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_IMMEDIATE_KHR:
            VkSurfacePresentScalingCapabilitiesEXT:
                supportedPresentScaling:
                    None
                supportedPresentGravityX:
                    None
                supportedPresentGravityY:
                    None
                minScaledImageExtent:
                    width  = 256
                    height = 256
                maxScaledImageExtent:
                    width  = 256
                    height = 256
            VkSurfacePresentModeCompatibilityEXT:
                presentModeCount                = 1
                pPresentModes: count = 1
                    PRESENT_MODE_IMMEDIATE_KHR
        PRESENT_MODE_MAILBOX_KHR:
            VkSurfacePresentScalingCapabilitiesEXT:
                supportedPresentScaling:
                    None
                supportedPresentGravityX:
                    None
                supportedPresentGravityY:
                    None
                minScaledImageExtent:
                    width  = 256
                    height = 256
                maxScaledImageExtent:
                    width  = 256
                    height = 256
            VkSurfacePresentModeCompatibilityEXT:
                presentModeCount                = 1
                pPresentModes: count = 1
                    PRESENT_MODE_MAILBOX_KHR
        PRESENT_MODE_FIFO_KHR:
            VkSurfacePresentScalingCapabilitiesEXT:
                supportedPresentScaling:
                    None
                supportedPresentGravityX:
                    None
                supportedPresentGravityY:
                    None
                minScaledImageExtent:
                    width  = 256
                    height = 256
                maxScaledImageExtent:
                    width  = 256
                    height = 256
            VkSurfacePresentModeCompatibilityEXT:
                presentModeCount                = 1
                pPresentModes: count = 1
                    PRESENT_MODE_FIFO_KHR
        PRESENT_MODE_FIFO_RELAXED_KHR:
            VkSurfacePresentScalingCapabilitiesEXT:
                supportedPresentScaling:
                    None
                supportedPresentGravityX:
                    None
                supportedPresentGravityY:
                    None
                minScaledImageExtent:
                    width  = 256
                    height = 256
                maxScaledImageExtent:
                    width  = 256
                    height = 256
            VkSurfacePresentModeCompatibilityEXT:
                presentModeCount                = 1
                pPresentModes: count = 1
                    PRESENT_MODE_FIFO_RELAXED_KHR

GPU id : 1 (llvmpipe (LLVM 17.0.6, 256 bits)):
    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:
            VkSurfacePresentScalingCapabilitiesEXT:
                supportedPresentScaling:
                    None
                supportedPresentGravityX:
                    None
                supportedPresentGravityY:
                    None
                minScaledImageExtent:
                    width  = 256
                    height = 256
                maxScaledImageExtent:
                    width  = 256
                    height = 256
            VkSurfacePresentModeCompatibilityEXT:
                presentModeCount                = 1
                pPresentModes: count = 1
                    PRESENT_MODE_IMMEDIATE_KHR
        PRESENT_MODE_MAILBOX_KHR:
            VkSurfacePresentScalingCapabilitiesEXT:
                supportedPresentScaling:
                    None
                supportedPresentGravityX:
                    None
                supportedPresentGravityY:
                    None
                minScaledImageExtent:
                    width  = 256
                    height = 256
                maxScaledImageExtent:
                    width  = 256
                    height = 256
            VkSurfacePresentModeCompatibilityEXT:
                presentModeCount                = 1
                pPresentModes: count = 1
                    PRESENT_MODE_MAILBOX_KHR
        PRESENT_MODE_FIFO_KHR:
            VkSurfacePresentScalingCapabilitiesEXT:
                supportedPresentScaling:
                    None
                supportedPresentGravityX:
                    None
                supportedPresentGravityY:
                    None
                minScaledImageExtent:
                    width  = 256
                    height = 256
                maxScaledImageExtent:
                    width  = 256
                    height = 256
            VkSurfacePresentModeCompatibilityEXT:
                presentModeCount                = 1
                pPresentModes: count = 1
                    PRESENT_MODE_FIFO_KHR
        PRESENT_MODE_FIFO_RELAXED_KHR:
            VkSurfacePresentScalingCapabilitiesEXT:
                supportedPresentScaling:
                    None
                supportedPresentGravityX:
                    None
                supportedPresentGravityY:
                    None
                minScaledImageExtent:
                    width  = 256
                    height = 256
                maxScaledImageExtent:
                    width  = 256
                    height = 256
            VkSurfacePresentModeCompatibilityEXT:
                presentModeCount                = 1
                pPresentModes: count = 1
                    PRESENT_MODE_FIFO_RELAXED_KHR

GPU id : 0 (Intel(R) HD Graphics 4000 (IVB GT2)):
    Surface type = VK_KHR_wayland_surface
    Formats: count = 7
        SurfaceFormat[0]:
            format = FORMAT_R16G16B16A16_SFLOAT
            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_R5G6B5_UNORM_PACK16
            colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
    Present Modes: count = 2
        PRESENT_MODE_MAILBOX_KHR
        PRESENT_MODE_FIFO_KHR
    VkSurfaceCapabilitiesKHR:
    -------------------------
        minImageCount = 4
        maxImageCount = 0
        currentExtent:
            width  = 4294967295
            height = 4294967295
        minImageExtent:
            width  = 1
            height = 1
        maxImageExtent:
            width  = 8192
            height = 8192
        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
    VkSurfaceProtectedCapabilitiesKHR:
    ----------------------------------
        supportsProtected = false

    VK_EXT_surface_maintenance1:
    ----------------------------
        PRESENT_MODE_MAILBOX_KHR:
            VkSurfacePresentScalingCapabilitiesEXT:
                supportedPresentScaling:
                    None
                supportedPresentGravityX:
                    None
                supportedPresentGravityY:
                    None
                minScaledImageExtent:
                    width  = 1
                    height = 1
                maxScaledImageExtent:
                    width  = 8192
                    height = 8192
            VkSurfacePresentModeCompatibilityEXT:
                presentModeCount                = 2
                pPresentModes: count = 2
                    PRESENT_MODE_MAILBOX_KHR
                    PRESENT_MODE_FIFO_KHR
        PRESENT_MODE_FIFO_KHR:
            VkSurfacePresentScalingCapabilitiesEXT:
                supportedPresentScaling:
                    None
                supportedPresentGravityX:
                    None
                supportedPresentGravityY:
                    None
                minScaledImageExtent:
                    width  = 1
                    height = 1
                maxScaledImageExtent:
                    width  = 8192
                    height = 8192
            VkSurfacePresentModeCompatibilityEXT:
                presentModeCount                = 2
                pPresentModes: count = 2
                    PRESENT_MODE_FIFO_KHR
                    PRESENT_MODE_MAILBOX_KHR

GPU id : 1 (llvmpipe (LLVM 17.0.6, 256 bits)):
    Surface type = VK_KHR_wayland_surface
    Formats: count = 8
        SurfaceFormat[0]:
            format = FORMAT_B8G8R8A8_SRGB
            colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
        SurfaceFormat[1]:
            format = FORMAT_B8G8R8A8_UNORM
            colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
        SurfaceFormat[2]:
            format = FORMAT_R8G8B8A8_SRGB
            colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
        SurfaceFormat[3]:
            format = FORMAT_R8G8B8A8_UNORM
            colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
        SurfaceFormat[4]:
            format = FORMAT_R5G6B5_UNORM_PACK16
            colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
        SurfaceFormat[5]:
            format = FORMAT_A2R10G10B10_UNORM_PACK32
            colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
        SurfaceFormat[6]:
            format = FORMAT_A2B10G10R10_UNORM_PACK32
            colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
        SurfaceFormat[7]:
            format = FORMAT_R16G16B16A16_SFLOAT
            colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
    Present Modes: count = 2
        PRESENT_MODE_MAILBOX_KHR
        PRESENT_MODE_FIFO_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:
            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:
            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

Device Properties and Extensions:
=================================
GPU0:
VkPhysicalDeviceProperties:
---------------------------
    apiVersion        = 1.2.274 (4202770)
    driverVersion     = 24.0.9 (100663305)
    vendorID          = 0x8086
    deviceID          = 0x0166
    deviceType        = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
    deviceName        = Intel(R) HD Graphics 4000 (IVB GT2)
    pipelineCacheUUID = 8c867b0b-da5c-39d7-840e-b0cdeb16e885

VkPhysicalDeviceLimits:
-----------------------
    maxImageDimension1D                             = 16384
    maxImageDimension2D                             = 8192
    maxImageDimension3D                             = 2048
    maxImageDimensionCube                           = 16384
    maxImageArrayLayers                             = 2048
    maxTexelBufferElements                          = 134217728
    maxUniformBufferRange                           = 134217728
    maxStorageBufferRange                           = 1073741824
    maxPushConstantsSize                            = 128
    maxMemoryAllocationCount                        = 4294967295
    maxSamplerAllocationCount                       = 65536
    bufferImageGranularity                          = 0x00000001
    sparseAddressSpaceSize                          = 0x00000000
    maxBoundDescriptorSets                          = 32
    maxPerStageDescriptorSamplers                   = 16
    maxPerStageDescriptorUniformBuffers             = 64
    maxPerStageDescriptorStorageBuffers             = 64
    maxPerStageDescriptorSampledImages              = 128
    maxPerStageDescriptorStorageImages              = 64
    maxPerStageDescriptorInputAttachments           = 64
    maxPerStageResources                            = 231
    maxDescriptorSetSamplers                        = 96
    maxDescriptorSetUniformBuffers                  = 384
    maxDescriptorSetUniformBuffersDynamic           = 8
    maxDescriptorSetStorageBuffers                  = 384
    maxDescriptorSetStorageBuffersDynamic           = 8
    maxDescriptorSetSampledImages                   = 768
    maxDescriptorSetStorageImages                   = 384
    maxDescriptorSetInputAttachments                = 256
    maxVertexInputAttributes                        = 29
    maxVertexInputBindings                          = 31
    maxVertexInputAttributeOffset                   = 2047
    maxVertexInputBindingStride                     = 2048
    maxVertexOutputComponents                       = 128
    maxTessellationGenerationLevel                  = 64
    maxTessellationPatchSize                        = 32
    maxTessellationControlPerVertexInputComponents  = 128
    maxTessellationControlPerVertexOutputComponents = 128
    maxTessellationControlPerPatchOutputComponents  = 128
    maxTessellationControlTotalOutputComponents     = 2048
    maxTessellationEvaluationInputComponents        = 128
    maxTessellationEvaluationOutputComponents       = 128
    maxGeometryShaderInvocations                    = 32
    maxGeometryInputComponents                      = 64
    maxGeometryOutputComponents                     = 128
    maxGeometryOutputVertices                       = 256
    maxGeometryTotalOutputComponents                = 1024
    maxFragmentInputComponents                      = 116
    maxFragmentOutputAttachments                    = 8
    maxFragmentDualSrcAttachments                   = 1
    maxFragmentCombinedOutputResources              = 136
    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 = 3
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
    framebufferDepthSampleCounts: count = 3
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
    framebufferStencilSampleCounts: count = 3
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
    framebufferNoAttachmentsSampleCounts: count = 3
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
    maxColorAttachments                             = 8
    sampledImageColorSampleCounts: count = 3
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
    sampledImageIntegerSampleCounts: count = 1
        SAMPLE_COUNT_1_BIT
    sampledImageDepthSampleCounts: count = 3
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
    sampledImageStencilSampleCounts: count = 3
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
    storageImageSampleCounts: count = 1
        SAMPLE_COUNT_1_BIT
    maxSampleMaskWords                              = 1
    timestampComputeAndGraphics                     = true
    timestampPeriod                                 = 80
    maxClipDistances                                = 8
    maxCullDistances                                = 8
    maxCombinedClipAndCullDistances                 = 8
    discreteQueuePriorities                         = 2
    pointSizeRange: count = 2
        0.125
        255.875
    lineWidthRange: count = 2
        0
        7.99219
    pointSizeGranularity                            = 0.125
    lineWidthGranularity                            = 0.0078125
    strictLines                                     = false
    standardSampleLocations                         = true
    optimalBufferCopyOffsetAlignment                = 0x00000080
    optimalBufferCopyRowPitchAlignment              = 0x00000080
    nonCoherentAtomSize                             = 0x00000040

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

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

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

VkPhysicalDeviceInlineUniformBlockPropertiesEXT:
------------------------------------------------
    maxInlineUniformBlockSize                               = 4096
    maxPerStageDescriptorInlineUniformBlocks                = 32
    maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = 32
    maxDescriptorSetInlineUniformBlocks                     = 32
    maxDescriptorSetUpdateAfterBindInlineUniformBlocks      = 32

VkPhysicalDeviceLineRasterizationPropertiesEXT:
-----------------------------------------------
    lineSubPixelPrecisionBits = 4

VkPhysicalDeviceMaintenance4PropertiesKHR:
------------------------------------------
    maxBufferSize = 0x40000000

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

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

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

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

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

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

VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR:
-----------------------------------------------------
    integerDotProduct8BitUnsignedAccelerated                                      = false
    integerDotProduct8BitSignedAccelerated                                        = false
    integerDotProduct8BitMixedSignednessAccelerated                               = false
    integerDotProduct4x8BitPackedUnsignedAccelerated                              = false
    integerDotProduct4x8BitPackedSignedAccelerated                                = false
    integerDotProduct4x8BitPackedMixedSignednessAccelerated                       = false
    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        = false
    integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated          = false
    integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = false
    integerDotProductAccumulatingSaturating16BitUnsignedAccelerated               = false
    integerDotProductAccumulatingSaturating16BitSignedAccelerated                 = false
    integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated        = false
    integerDotProductAccumulatingSaturating32BitUnsignedAccelerated               = false
    integerDotProductAccumulatingSaturating32BitSignedAccelerated                 = false
    integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated        = false
    integerDotProductAccumulatingSaturating64BitUnsignedAccelerated               = false
    integerDotProductAccumulatingSaturating64BitSignedAccelerated                 = false
    integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated        = false

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

VkPhysicalDeviceSubgroupSizeControlPropertiesEXT:
-------------------------------------------------
    minSubgroupSize              = 8
    maxSubgroupSize              = 32
    maxComputeWorkgroupSubgroups = 64
    requiredSubgroupSizeStages: count = 1
        SHADER_STAGE_COMPUTE_BIT

VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT:
--------------------------------------------------
    storageTexelBufferOffsetAlignmentBytes       = 0x00000010
    storageTexelBufferOffsetSingleTexelAlignment = true
    uniformTexelBufferOffsetAlignmentBytes       = 0x00000001
    uniformTexelBufferOffsetSingleTexelAlignment = true

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

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

VkPhysicalDeviceVulkan11Properties:
-----------------------------------
    deviceUUID                        = 86806601-0900-0000-0002-000000000000
    driverUUID                        = 940211a8-518f-efb8-874b-ae67724448bf
    deviceNodeMask                    = 0
    deviceLUIDValid                   = false
    subgroupSize                      = 32
    subgroupSupportedStages: count = 2
        SHADER_STAGE_FRAGMENT_BIT
        SHADER_STAGE_COMPUTE_BIT
    subgroupSupportedOperations: count = 6
        SUBGROUP_FEATURE_BASIC_BIT
        SUBGROUP_FEATURE_VOTE_BIT
        SUBGROUP_FEATURE_BALLOT_BIT
        SUBGROUP_FEATURE_SHUFFLE_BIT
        SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT
        SUBGROUP_FEATURE_QUAD_BIT
    subgroupQuadOperationsInAllStages = false
    pointClippingBehavior             = POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY
    maxMultiviewViewCount             = 16
    maxMultiviewInstanceIndex         = 268435455
    protectedNoFault                  = false
    maxPerSetDescriptors              = 1024
    maxMemoryAllocationSize           = 0x80000000

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

VkPhysicalDeviceHostImageCopyPropertiesEXT:
    copySrcLayoutCount                  = 0
    pCopySrcLayouts:
    copyDstLayoutCount                  = 0
    pCopyDstLayouts:
    optimalTilingLayoutUUID             = 00000000-0000-0000-0000-000000000000
    identicalMemoryTypeRequirements     = false
Device Extensions: count = 103
    VK_EXT_4444_formats                         : extension revision 1
    VK_EXT_calibrated_timestamps                : extension revision 2
    VK_EXT_color_write_enable                   : 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_display_control                      : extension revision 1
    VK_EXT_extended_dynamic_state               : extension revision 1
    VK_EXT_extended_dynamic_state2              : extension revision 1
    VK_EXT_external_memory_dma_buf              : extension revision 1
    VK_EXT_external_memory_host                 : 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_view_min_lod                   : extension revision 1
    VK_EXT_index_type_uint8                     : extension revision 1
    VK_EXT_inline_uniform_block                 : extension revision 1
    VK_EXT_line_rasterization                   : extension revision 1
    VK_EXT_memory_budget                        : extension revision 1
    VK_EXT_multi_draw                           : 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_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_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_module_identifier             : 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_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_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_KHR_bind_memory2                         : extension revision 1
    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_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_get_memory_requirements2             : 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_maintenance1                         : extension revision 2
    VK_KHR_maintenance2                         : extension revision 1
    VK_KHR_maintenance3                         : extension revision 1
    VK_KHR_maintenance4                         : extension revision 2
    VK_KHR_multiview                            : extension revision 1
    VK_KHR_pipeline_executable_properties       : 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_clock                         : extension revision 1
    VK_KHR_shader_draw_parameters               : extension revision 1
    VK_KHR_shader_float_controls                : extension revision 4
    VK_KHR_shader_integer_dot_product           : extension revision 1
    VK_KHR_shader_non_semantic_info             : extension revision 1
    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_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_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
        timestampValidBits          = 36
        present support             = true

VkPhysicalDeviceMemoryProperties:
=================================
memoryHeaps: count = 1
    memoryHeaps[0]:
        size   = 1610612736 (0x60000000) (1.50 GiB)
        budget = 1610612736 (0x60000000) (1.50 GiB)
        usage  = 0 (0x00000000) (0.00 B)
        flags: count = 1
            MEMORY_HEAP_DEVICE_LOCAL_BIT
memoryTypes: count = 2
    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
                (non-sparse)
            IMAGE_TILING_LINEAR:
                color images
                (non-sparse)
    memoryTypes[1]:
        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
                (non-sparse)
            IMAGE_TILING_LINEAR:
                color images
                (non-sparse)

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                             = false
    wideLines                               = true
    largePoints                             = true
    alphaToOne                              = true
    multiViewport                           = true
    samplerAnisotropy                       = true
    textureCompressionETC2                  = false
    textureCompressionASTC_LDR              = false
    textureCompressionBC                    = true
    occlusionQueryPrecise                   = true
    pipelineStatisticsQuery                 = true
    vertexPipelineStoresAndAtomics          = false
    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                             = false
    shaderInt16                             = false
    shaderResourceResidency                 = false
    shaderResourceMinLod                    = false
    sparseBinding                           = false
    sparseResidencyBuffer                   = false
    sparseResidencyImage2D                  = false
    sparseResidencyImage3D                  = false
    sparseResidency2Samples                 = false
    sparseResidency4Samples                 = false
    sparseResidency8Samples                 = false
    sparseResidency16Samples                = false
    sparseResidencyAliased                  = false
    variableMultisampleRate                 = true
    inheritedQueries                        = true

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

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

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

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

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

VkPhysicalDeviceDynamicRenderingFeaturesKHR:
--------------------------------------------
    dynamicRendering = true

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

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

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

VkPhysicalDeviceImageRobustnessFeaturesEXT:
-------------------------------------------
    robustImageAccess = true

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

VkPhysicalDeviceIndexTypeUint8FeaturesEXT:
------------------------------------------
    indexTypeUint8 = true

VkPhysicalDeviceInlineUniformBlockFeaturesEXT:
----------------------------------------------
    inlineUniformBlock                                 = true
    descriptorBindingInlineUniformBlockUpdateAfterBind = true

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

VkPhysicalDeviceMaintenance4FeaturesKHR:
----------------------------------------
    maintenance4 = true

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

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

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

VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT:
--------------------------------------------------------
    pipelineCreationCacheControl = true

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

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

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

VkPhysicalDevicePrivateDataFeaturesEXT:
---------------------------------------
    privateData = true

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

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

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

VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT:
----------------------------------------------------------
    shaderDemoteToHelperInvocation = true

VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR:
---------------------------------------------------
    shaderIntegerDotProduct = true

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

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

VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR:
-----------------------------------------------------
    shaderTerminateInvocation = true

VkPhysicalDeviceSubgroupSizeControlFeaturesEXT:
-----------------------------------------------
    subgroupSizeControl  = true
    computeFullSubgroups = true

VkPhysicalDeviceSynchronization2FeaturesKHR:
--------------------------------------------
    synchronization2 = true

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

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

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

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

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

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

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

VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR:
---------------------------------------------------------
    shaderZeroInitializeWorkgroupMemory = true

GPU1:
VkPhysicalDeviceProperties:
---------------------------
    apiVersion        = 1.3.274 (4206866)
    driverVersion     = 0.0.1 (1)
    vendorID          = 0x10005
    deviceID          = 0x0000
    deviceType        = PHYSICAL_DEVICE_TYPE_CPU
    deviceName        = llvmpipe (LLVM 17.0.6, 256 bits)
    pipelineCacheUUID = 32342e30-2e39-2d30-7562-756e7475302e

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

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

VkPhysicalDeviceCustomBorderColorPropertiesEXT:
-----------------------------------------------
    maxCustomBorderColorSamplers = 32768

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

VkPhysicalDeviceDescriptorBufferPropertiesEXT:
----------------------------------------------
    combinedImageSamplerDescriptorSingleArray            = true
    bufferlessPushDescriptors                            = true
    allowSamplerImageViewPostSubmitCreation              = false
    descriptorBufferOffsetAlignment                      = 0x00000004
    maxDescriptorBufferBindings                          = 8
    maxResourceDescriptorBufferBindings                  = 8
    maxSamplerDescriptorBufferBindings                   = 8
    maxEmbeddedImmutableSamplerBindings                  = 8
    maxEmbeddedImmutableSamplers                         = 2032
    bufferCaptureReplayDescriptorDataSize                = 0
    imageCaptureReplayDescriptorDataSize                 = 0
    imageViewCaptureReplayDescriptorDataSize             = 0
    samplerCaptureReplayDescriptorDataSize               = 0
    accelerationStructureCaptureReplayDescriptorDataSize = 0
    samplerDescriptorSize                                = 256
    combinedImageSamplerDescriptorSize                   = 256
    sampledImageDescriptorSize                           = 256
    storageImageDescriptorSize                           = 256
    uniformTexelBufferDescriptorSize                     = 256
    robustUniformTexelBufferDescriptorSize               = 256
    storageTexelBufferDescriptorSize                     = 256
    robustStorageTexelBufferDescriptorSize               = 256
    uniformBufferDescriptorSize                          = 256
    robustUniformBufferDescriptorSize                    = 256
    storageBufferDescriptorSize                          = 256
    robustStorageBufferDescriptorSize                    = 256
    inputAttachmentDescriptorSize                        = 256
    accelerationStructureDescriptorSize                  = 0
    maxSamplerDescriptorBufferRange                      = 0x08000000
    maxResourceDescriptorBufferRange                     = 0x10000000
    samplerDescriptorBufferAddressSpaceSize              = 0x08000000
    resourceDescriptorBufferAddressSpaceSize             = 0x08000000
    descriptorBufferAddressSpaceSize                     = 0x08000000

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

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

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

VkPhysicalDeviceLineRasterizationPropertiesEXT:
-----------------------------------------------
    lineSubPixelPrecisionBits = 8

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

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

VkPhysicalDeviceMeshShaderPropertiesEXT:
----------------------------------------
    maxTaskWorkGroupTotalCount            = 4194304
    maxTaskWorkGroupCount: count = 3
        65536
        65536
        65536
    maxTaskWorkGroupInvocations           = 1024
    maxTaskWorkGroupSize: count = 3
        1024
        1024
        1024
    maxTaskPayloadSize                    = 16384
    maxTaskSharedMemorySize               = 32768
    maxTaskPayloadAndSharedMemorySize     = 32768
    maxMeshWorkGroupTotalCount            = 4194304
    maxMeshWorkGroupCount: count = 3
        65536
        65536
        65536
    maxMeshWorkGroupInvocations           = 1024
    maxMeshWorkGroupSize: count = 3
        1024
        1024
        1024
    maxMeshSharedMemorySize               = 28672
    maxMeshPayloadAndSharedMemorySize     = 45056
    maxMeshOutputMemorySize               = 32768
    maxMeshPayloadAndOutputMemorySize     = 49152
    maxMeshOutputComponents               = 128
    maxMeshOutputVertices                 = 256
    maxMeshOutputPrimitives               = 256
    maxMeshOutputLayers                   = 8
    maxMeshMultiviewViewCount             = 0
    meshOutputPerVertexGranularity        = 1
    meshOutputPerPrimitiveGranularity     = 1
    maxPreferredTaskWorkGroupInvocations  = 64
    maxPreferredMeshWorkGroupInvocations  = 128
    prefersLocalInvocationVertexOutput    = true
    prefersLocalInvocationPrimitiveOutput = true
    prefersCompactVertexOutput            = true
    prefersCompactPrimitiveOutput         = false

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

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

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

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

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

VkPhysicalDeviceShaderObjectPropertiesEXT:
------------------------------------------
    shaderBinaryUUID     = 32342e30-2e39-2d30-7562-756e7475302e
    shaderBinaryVersion  = 1

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

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

VkPhysicalDeviceVulkan11Properties:
-----------------------------------
    deviceUUID                        = 6d657361-3234-2e30-2e39-2d3075627500
    driverUUID                        = 6c6c766d-7069-7065-5555-494400000000
    deviceNodeMask                    = 0
    deviceLUIDValid                   = false
    subgroupSize                      = 8
    subgroupSupportedStages: count = 4
        SHADER_STAGE_FRAGMENT_BIT
        SHADER_STAGE_COMPUTE_BIT
        SHADER_STAGE_TASK_BIT_EXT
        SHADER_STAGE_MESH_BIT_EXT
    subgroupSupportedOperations: count = 7
        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_QUAD_BIT
    subgroupQuadOperationsInAllStages = false
    pointClippingBehavior             = POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES
    maxMultiviewViewCount             = 6
    maxMultiviewInstanceIndex         = 2147483647
    protectedNoFault                  = false
    maxPerSetDescriptors              = 1000000
    maxMemoryAllocationSize           = 0x80000000

VkPhysicalDeviceVulkan12Properties:
-----------------------------------
    driverID                                             = DRIVER_ID_MESA_LLVMPIPE
    driverName                                           = llvmpipe
    driverInfo                                           = Mesa 24.0.9-0ubuntu0.1 (LLVM 17.0.6)
    conformanceVersion:
        major    = 1
        minor    = 3
        subminor = 1
        patch    = 1
    denormBehaviorIndependence                           = SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL
    roundingModeIndependence                             = SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL
    shaderSignedZeroInfNanPreserveFloat16                = true
    shaderSignedZeroInfNanPreserveFloat32                = true
    shaderSignedZeroInfNanPreserveFloat64                = true
    shaderDenormPreserveFloat16                          = false
    shaderDenormPreserveFloat32                          = false
    shaderDenormPreserveFloat64                          = false
    shaderDenormFlushToZeroFloat16                       = false
    shaderDenormFlushToZeroFloat32                       = false
    shaderDenormFlushToZeroFloat64                       = false
    shaderRoundingModeRTEFloat16                         = true
    shaderRoundingModeRTEFloat32                         = true
    shaderRoundingModeRTEFloat64                         = true
    shaderRoundingModeRTZFloat16                         = false
    shaderRoundingModeRTZFloat32                         = false
    shaderRoundingModeRTZFloat64                         = false
    maxUpdateAfterBindDescriptorsInAllPools              = 4294967295
    shaderUniformBufferArrayNonUniformIndexingNative     = true
    shaderSampledImageArrayNonUniformIndexingNative      = true
    shaderStorageBufferArrayNonUniformIndexingNative     = true
    shaderStorageImageArrayNonUniformIndexingNative      = true
    shaderInputAttachmentArrayNonUniformIndexingNative   = true
    robustBufferAccessUpdateAfterBind                    = true
    quadDivergentImplicitLod                             = true
    maxPerStageDescriptorUpdateAfterBindSamplers         = 1000000
    maxPerStageDescriptorUpdateAfterBindUniformBuffers   = 1000000
    maxPerStageDescriptorUpdateAfterBindStorageBuffers   = 1000000
    maxPerStageDescriptorUpdateAfterBindSampledImages    = 1000000
    maxPerStageDescriptorUpdateAfterBindStorageImages    = 1000000
    maxPerStageDescriptorUpdateAfterBindInputAttachments = 1000000
    maxPerStageUpdateAfterBindResources                  = 1000000
    maxDescriptorSetUpdateAfterBindSamplers              = 1000000
    maxDescriptorSetUpdateAfterBindUniformBuffers        = 1000000
    maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = 1000000
    maxDescriptorSetUpdateAfterBindStorageBuffers        = 1000000
    maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = 1000000
    maxDescriptorSetUpdateAfterBindSampledImages         = 1000000
    maxDescriptorSetUpdateAfterBindStorageImages         = 1000000
    maxDescriptorSetUpdateAfterBindInputAttachments      = 1000000
    supportedDepthResolveModes: count = 2
        RESOLVE_MODE_SAMPLE_ZERO_BIT
        RESOLVE_MODE_AVERAGE_BIT
    supportedStencilResolveModes: count = 1
        RESOLVE_MODE_SAMPLE_ZERO_BIT
    independentResolveNone                               = false
    independentResolve                                   = false
    filterMinmaxSingleComponentFormats                   = true
    filterMinmaxImageComponentMapping                    = true
    maxTimelineSemaphoreValueDifference                  = 18446744073709551615
    framebufferIntegerColorSampleCounts: count = 1
        SAMPLE_COUNT_1_BIT

VkPhysicalDeviceVulkan13Properties:
-----------------------------------
    minSubgroupSize                                                               = 8
    maxSubgroupSize                                                               = 8
    maxComputeWorkgroupSubgroups                                                  = 32
    requiredSubgroupSizeStages: count = 2
        SHADER_STAGE_FRAGMENT_BIT
        SHADER_STAGE_COMPUTE_BIT
    maxInlineUniformBlockSize                                                     = 4096
    maxPerStageDescriptorInlineUniformBlocks                                      = 8
    maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks                       = 8
    maxDescriptorSetInlineUniformBlocks                                           = 8
    maxDescriptorSetUpdateAfterBindInlineUniformBlocks                            = 8
    maxInlineUniformTotalSize                                                     = 262144
    integerDotProduct8BitUnsignedAccelerated                                      = false
    integerDotProduct8BitSignedAccelerated                                        = false
    integerDotProduct8BitMixedSignednessAccelerated                               = false
    integerDotProduct4x8BitPackedUnsignedAccelerated                              = false
    integerDotProduct4x8BitPackedSignedAccelerated                                = false
    integerDotProduct4x8BitPackedMixedSignednessAccelerated                       = false
    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        = false
    integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated          = false
    integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = false
    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                                                                 = 0xffffffff

VkPhysicalDeviceHostImageCopyPropertiesEXT:
    copySrcLayoutCount                  = 23
    pCopySrcLayouts: count = 23
        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_VIDEO_DECODE_DST_KHR
        IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR
        IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR
        IMAGE_LAYOUT_SHARED_PRESENT_KHR
        IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT
        IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR
    copyDstLayoutCount                  = 23
    pCopyDstLayouts: count = 23
        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_VIDEO_DECODE_DST_KHR
        IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR
        IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR
        IMAGE_LAYOUT_SHARED_PRESENT_KHR
        IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT
        IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR
    optimalTilingLayoutUUID             = 32342e30-2e39-2d30-7562-756e7475302e
    identicalMemoryTypeRequirements     = false
Device Extensions: count = 124
    VK_AMDX_shader_enqueue                        : extension revision 1
    VK_ARM_rasterization_order_attachment_access  : 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_calibrated_timestamps                  : extension revision 2
    VK_EXT_color_write_enable                     : extension revision 1
    VK_EXT_conditional_rendering                  : extension revision 2
    VK_EXT_custom_border_color                    : extension revision 12
    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_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_host                   : 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_robustness                       : extension revision 1
    VK_EXT_image_sliced_view_of_3d                : extension revision 1
    VK_EXT_index_type_uint8                       : extension revision 1
    VK_EXT_inline_uniform_block                   : extension revision 1
    VK_EXT_line_rasterization                     : extension revision 1
    VK_EXT_load_store_op_none                     : 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_multisampled_render_to_single_sampled  : 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_pageable_device_local_memory           : extension revision 1
    VK_EXT_pipeline_creation_cache_control        : extension revision 3
    VK_EXT_pipeline_creation_feedback             : 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_rasterization_order_attachment_access  : extension revision 1
    VK_EXT_robustness2                            : 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_object                          : 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_texel_buffer_alignment                 : 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_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_copy_commands2                         : extension revision 1
    VK_KHR_create_renderpass2                     : extension revision 1
    VK_KHR_dedicated_allocation                   : extension revision 3
    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_external_fence                         : 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_format_feature_flags2                  : extension revision 2
    VK_KHR_get_memory_requirements2               : 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_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_map_memory2                            : extension revision 1
    VK_KHR_multiview                              : extension revision 1
    VK_KHR_pipeline_library                       : 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_float16_int8                    : extension revision 1
    VK_KHR_shader_float_controls                  : extension revision 4
    VK_KHR_shader_integer_dot_product             : extension revision 1
    VK_KHR_shader_non_semantic_info               : extension revision 1
    VK_KHR_shader_subgroup_extended_types         : 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_vulkan_memory_model                    : extension revision 3
    VK_KHR_zero_initialize_workgroup_memory       : extension revision 1
    VK_NV_device_generated_commands               : extension revision 3

VkQueueFamilyProperties:
========================
    queueProperties[0]:
    -------------------
        minImageTransferGranularity = (1,1,1)
        queueCount                  = 1
        queueFlags                  = QUEUE_GRAPHICS_BIT | QUEUE_COMPUTE_BIT | QUEUE_TRANSFER_BIT
        timestampValidBits          = 64
        present support             = true

VkPhysicalDeviceMemoryProperties:
=================================
memoryHeaps: count = 1
    memoryHeaps[0]:
        size   = 6087053312 (0x16ad11000) (5.67 GiB)
        budget = 6087053312 (0x16ad11000) (5.67 GiB)
        usage  = 1728040960 (0x66ffd000) (1.61 GiB)
        flags: count = 1
            MEMORY_HEAP_DEVICE_LOCAL_BIT
memoryTypes: count = 1
    memoryTypes[0]:
        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
                (non-sparse)
            IMAGE_TILING_LINEAR:
                color images
                (non-sparse)

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                             = false
    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                 = false
    shaderResourceMinLod                    = false
    sparseBinding                           = false
    sparseResidencyBuffer                   = false
    sparseResidencyImage2D                  = false
    sparseResidencyImage3D                  = false
    sparseResidency2Samples                 = false
    sparseResidency4Samples                 = false
    sparseResidency8Samples                 = false
    sparseResidency16Samples                = false
    sparseResidencyAliased                  = false
    variableMultisampleRate                 = false
    inheritedQueries                        = false

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

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

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

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

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

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

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

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

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

VkPhysicalDeviceDescriptorBufferFeaturesEXT:
--------------------------------------------
    descriptorBuffer                   = true
    descriptorBufferCaptureReplay      = false
    descriptorBufferImageLayoutIgnored = true
    descriptorBufferPushDescriptors    = 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              = false
    extendedDynamicState3ConservativeRasterizationMode    = false
    extendedDynamicState3ExtraPrimitiveOverestimationSize = false
    extendedDynamicState3DepthClipEnable                  = true
    extendedDynamicState3SampleLocationsEnable            = false
    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

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

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

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

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

VkPhysicalDeviceIndexTypeUint8FeaturesEXT:
------------------------------------------
    indexTypeUint8 = true

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

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

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

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

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

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

VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT:
-------------------------------------------------------------
    multisampledRenderToSingleSampled = true

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

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

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

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

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

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

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

VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT:
--------------------------------------------------------------
    rasterizationOrderColorAttachmentAccess   = true
    rasterizationOrderDepthAttachmentAccess   = true
    rasterizationOrderStencilAttachmentAccess = 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  = true
    sparseImageFloat32AtomicMinMax  = false

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

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

VkPhysicalDeviceShaderObjectFeaturesEXT:
----------------------------------------
    shaderObject = 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                    = 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                   = false
    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

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

VkPhysicalDeviceYcbcrImageArraysFeaturesEXT:
--------------------------------------------
    ycbcrImageArrays = true
kkoreilly commented 2 months ago

It appears that your device does not have sufficient support for Vulkan. We are going to resolve this soon by switching from Vulkan to WebGPU, which should get rid of these issues entirely (#507). We apologize for the inconvenience. In the meantime, you can develop apps by running them on the web using core run web, which does not require Vulkan. Again, this issue should be resolved soon with the use of WebGPU.

rcoreilly commented 2 months ago

@m-abdalrahman also you might just try running it again -- we had another report that they got this error on the first run and then it worked thereafter.

kkoreilly commented 2 months ago

Feature not present implies a deeper issue with the device, not just a one-time crash.

m-abdalrahman commented 2 months ago

@kkoreilly Thank you for the amazing job, it's working now but I get this warning: MESA-INTEL: warning: Ivy Bridge Vulkan support is incomplete

m-abdalrahman commented 2 months ago

webgpuinfo after run go run cogentcore.org/core/gpu/cmd/webgpuinfo@latest

MESA-INTEL: warning: Ivy Bridge Vulkan support is incomplete
[wgpu] [Warn] Adapter is not Vulkan compliant, hiding adapter: Intel(R) HD Graphics 4000 (IVB GT2)
[wgpu] [Warn] Adapter is not Vulkan compliant, hiding adapter: Intel(R) HD Graphics 4000 (IVB GT2)

########################
WebGPU Adapter number: 0
{
    "VendorId": 65541,
    "VendorName": "0x10005",
    "Architecture": "",
    "DeviceId": 0,
    "Name": "0x0",
    "DriverDescription": "llvmpipe (LLVM 17.0.6, 256 bits)",
    "AdapterType": 2,
    "BackendType": 6
}

{
    "Limits": {
        "MaxTextureDimension1D": 16384,
        "MaxTextureDimension2D": 16384,
        "MaxTextureDimension3D": 4096,
        "MaxTextureArrayLayers": 2048,
        "MaxBindGroups": 8,
        "MaxBindingsPerBindGroup": 1000,
        "MaxDynamicUniformBuffersPerPipelineLayout": 1000000,
        "MaxDynamicStorageBuffersPerPipelineLayout": 1000000,
        "MaxSampledTexturesPerShaderStage": 1000000,
        "MaxSamplersPerShaderStage": 1000000,
        "MaxStorageBuffersPerShaderStage": 1000000,
        "MaxStorageTexturesPerShaderStage": 1000000,
        "MaxUniformBuffersPerShaderStage": 1000000,
        "MaxUniformBufferBindingSize": 65536,
        "MaxStorageBufferBindingSize": 134217728,
        "MinUniformBufferOffsetAlignment": 32,
        "MinStorageBufferOffsetAlignment": 32,
        "MaxVertexBuffers": 16,
        "MaxBufferSize": 2147483647,
        "MaxVertexAttributes": 32,
        "MaxVertexBufferArrayStride": 2048,
        "MaxInterStageShaderComponents": 128,
        "MaxInterStageShaderVariables": 0,
        "MaxColorAttachments": 0,
        "MaxColorAttachmentBytesPerSample": 0,
        "MaxComputeWorkgroupStorageSize": 32768,
        "MaxComputeInvocationsPerWorkgroup": 1024,
        "MaxComputeWorkgroupSizeX": 1024,
        "MaxComputeWorkgroupSizeY": 1024,
        "MaxComputeWorkgroupSizeZ": 1024,
        "MaxComputeWorkgroupsPerDimension": 65535,
        "MaxPushConstantSize": 775102547
    }
}

########################
WebGPU Adapter number: 1
{
    "VendorId": 32902,
    "VendorName": "0x8086",
    "Architecture": "",
    "DeviceId": 0,
    "Name": "0x0",
    "DriverDescription": "Mesa Intel(R) HD Graphics 4000 (IVB GT2)",
    "AdapterType": 1,
    "BackendType": 7
}

{
    "Limits": {
        "MaxTextureDimension1D": 16384,
        "MaxTextureDimension2D": 16384,
        "MaxTextureDimension3D": 2048,
        "MaxTextureArrayLayers": 2048,
        "MaxBindGroups": 8,
        "MaxBindingsPerBindGroup": 65535,
        "MaxDynamicUniformBuffersPerPipelineLayout": 15,
        "MaxDynamicStorageBuffersPerPipelineLayout": 0,
        "MaxSampledTexturesPerShaderStage": 16,
        "MaxSamplersPerShaderStage": 16,
        "MaxStorageBuffersPerShaderStage": 0,
        "MaxStorageTexturesPerShaderStage": 0,
        "MaxUniformBuffersPerShaderStage": 15,
        "MaxUniformBufferBindingSize": 65536,
        "MaxStorageBufferBindingSize": 0,
        "MinUniformBufferOffsetAlignment": 32,
        "MinStorageBufferOffsetAlignment": 256,
        "MaxVertexBuffers": 16,
        "MaxBufferSize": 2147483647,
        "MaxVertexAttributes": 16,
        "MaxVertexBufferArrayStride": 4294967295,
        "MaxInterStageShaderComponents": 128,
        "MaxInterStageShaderVariables": 0,
        "MaxColorAttachments": 0,
        "MaxColorAttachmentBytesPerSample": 0,
        "MaxComputeWorkgroupStorageSize": 0,
        "MaxComputeInvocationsPerWorkgroup": 0,
        "MaxComputeWorkgroupSizeX": 0,
        "MaxComputeWorkgroupSizeY": 0,
        "MaxComputeWorkgroupSizeZ": 0,
        "MaxComputeWorkgroupsPerDimension": 0,
        "MaxPushConstantSize": 0
    }
}
rcoreilly commented 2 months ago

Could you also try these two commands, and see in general how performant it feels when you zoom and pan the screen, etc?

VK_DEVICE_SELECT=0 go run cogentcore.org/core/examples/xyz@main
VK_DEVICE_SELECT=1 go run cogentcore.org/core/examples/xyz@main
m-abdalrahman commented 2 months ago

@rcoreilly first command VK_DEVICE_SELECT=0 go run cogentcore.org/core/examples/xyz@main the response is very very slow Screencast from 2024-08-19 17-55-01.webm Screencast from 2024-08-19 17-56-54.webm

second command VK_DEVICE_SELECT=1 go run cogentcore.org/core/examples/xyz@main not working

MESA-INTEL: warning: Ivy Bridge Vulkan support is incomplete
2024/08/19 18:14:04 panic: runtime error: index out of range [0] with length 0
2024/08/19 18:14:04 
2024/08/19 18:14:04 ----- START OF STACK TRACE: -----
2024/08/19 18:14:04 goroutine 1 [running, locked to thread]:
runtime/debug.Stack()
    /usr/lib/go-1.22/src/runtime/debug/stack.go:24 +0x5e
cogentcore.org/core/system.HandleRecoverBase({0x120c660, 0xc0003cc3d8})
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/system/recover.go:50 +0x4b
cogentcore.org/core/core.handleRecover({0x120c660, 0xc0003cc3d8})
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/core/recover.go:33 +0x4b
cogentcore.org/core/core.(*Stage).run.func1()
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/core/stage.go:277 +0x24
panic({0x120c660?, 0xc0003cc3d8?})
    /usr/lib/go-1.22/src/runtime/panic.go:770 +0x132
cogentcore.org/core/gpu.(*Surface).InitConfig(0xc00033f208)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/gpu/surface.go:155 +0x245
cogentcore.org/core/gpu.(*Surface).init(0xc00033f208, 0x4376ee0?, 0x4376ee0?, {0xc0005b97c0?, 0x75b354?}, 0x1, 0x0)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/gpu/surface.go:85 +0x10b
cogentcore.org/core/gpu.NewSurface(0xc000110000, 0xc0003c3250, {0x2441f30?, 0xc000112120?}, 0x1, 0x0)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/gpu/surface.go:62 +0xc5
cogentcore.org/core/system/driver/desktop.(*App).NewWindow.func2()
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/system/driver/desktop/app.go:137 +0xaa
cogentcore.org/core/system/driver/base.(*App).RunOnMain(0x0?, 0x0?)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/system/driver/base/app.go:91 +0xa9
cogentcore.org/core/system/driver/desktop.(*App).NewWindow(0x2441820, 0xc0006ee360?)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/system/driver/desktop/app.go:129 +0x44f
cogentcore.org/core/core.newRenderWindow({0xc00011e4a0, 0x1a}, {0x129a51b, 0x8}, 0xc0006ee360)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/core/renderwindow.go:103 +0xa5
cogentcore.org/core/core.(*Stage).newRenderWindow(0xc0001da9a0)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/core/mainstage.go:360 +0x20a
cogentcore.org/core/core.(*Stage).runWindow(0xc0001da9a0)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/core/mainstage.go:243 +0x6dc
cogentcore.org/core/core.(*Stage).run(0xc00003dd90?)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/core/stage.go:280 +0x88
cogentcore.org/core/core.(*Stage).Run(0x0?)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/core/stage.go:259 +0x7a
cogentcore.org/core/core.(*Body).RunWindow(0x1b395e0?)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/core/mainstage.go:71 +0x47
cogentcore.org/core/core.(*Body).RunMainWindow(0xc000316730?)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/core/mainstage.go:45 +0x28
main.main()
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/examples/xyz/xyz.go:331 +0x1c4a

2024/08/19 18:14:04 ----- END OF STACK TRACE -----
2024/08/19 18:14:04 SAVED CRASH LOG TO /home/user/.config/XYZ\ Demo/crash-logs/crash_2024-08-19_18-14-04
2024/08/19 18:14:04 panic: runtime error: index out of range [0] with length 0
2024/08/19 18:14:04 
2024/08/19 18:14:04 ----- START OF STACK TRACE: -----
2024/08/19 18:14:04 goroutine 1 [running, locked to thread]:
runtime/debug.Stack()
    /usr/lib/go-1.22/src/runtime/debug/stack.go:24 +0x5e
cogentcore.org/core/system.HandleRecoverBase({0x120c660, 0xc0004a0198})
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/system/recover.go:50 +0x4b
cogentcore.org/core/core.handleRecover({0x120c660, 0xc0004a0198})
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/core/recover.go:33 +0x4b
cogentcore.org/core/core.(*Stage).run.func1()
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/core/stage.go:277 +0x24
panic({0x120c660?, 0xc0004a0198?})
    /usr/lib/go-1.22/src/runtime/panic.go:770 +0x132
cogentcore.org/core/gpu.(*Surface).InitConfig(0xc0001dc308)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/gpu/surface.go:155 +0x245
cogentcore.org/core/gpu.(*Surface).init(0xc0001dc308, 0x4a24df0?, 0x4a24df0?, {0xc00003ce60?, 0x75b354?}, 0x1, 0x0)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/gpu/surface.go:85 +0x10b
cogentcore.org/core/gpu.NewSurface(0xc000110000, 0xc000bf2000, {0x2441f0a?, 0xc0003ee000?}, 0x1, 0x0)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/gpu/surface.go:62 +0xc5
cogentcore.org/core/system/driver/desktop.(*App).NewWindow.func2()
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/system/driver/desktop/app.go:137 +0xaa
cogentcore.org/core/system/driver/base.(*App).RunOnMain(0x0?, 0x0?)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/system/driver/base/app.go:91 +0xa9
cogentcore.org/core/system/driver/desktop.(*App).NewWindow(0x2441820, 0xc0006eeb40?)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/system/driver/desktop/app.go:129 +0x44f
cogentcore.org/core/core.newRenderWindow({0xc00002c5a0, 0x29}, {0xc0002b9180, 0x1d}, 0xc0006eeb40)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/core/renderwindow.go:103 +0xa5
cogentcore.org/core/core.(*Stage).newRenderWindow(0xc00037d810)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/core/mainstage.go:360 +0x20a
cogentcore.org/core/core.(*Stage).runWindow(0xc00037d810)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/core/mainstage.go:243 +0x6dc
cogentcore.org/core/core.(*Stage).run(0x1?)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/core/stage.go:280 +0x88
cogentcore.org/core/core.(*Stage).Run(0x0?)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/core/stage.go:259 +0x7a
cogentcore.org/core/core.(*Body).RunWindow(0x0?)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/core/mainstage.go:71 +0x47
cogentcore.org/core/core.handleRecover({0x120c660, 0xc0003cc3d8})
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/core/recover.go:69 +0x20a
cogentcore.org/core/core.(*Stage).run.func1()
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/core/stage.go:277 +0x24
panic({0x120c660?, 0xc0003cc3d8?})
    /usr/lib/go-1.22/src/runtime/panic.go:770 +0x132
cogentcore.org/core/gpu.(*Surface).InitConfig(0xc00033f208)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/gpu/surface.go:155 +0x245
cogentcore.org/core/gpu.(*Surface).init(0xc00033f208, 0x4376ee0?, 0x4376ee0?, {0xc0005b97c0?, 0x75b354?}, 0x1, 0x0)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/gpu/surface.go:85 +0x10b
cogentcore.org/core/gpu.NewSurface(0xc000110000, 0xc0003c3250, {0x2441f30?, 0xc000112120?}, 0x1, 0x0)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/gpu/surface.go:62 +0xc5
cogentcore.org/core/system/driver/desktop.(*App).NewWindow.func2()
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/system/driver/desktop/app.go:137 +0xaa
cogentcore.org/core/system/driver/base.(*App).RunOnMain(0x0?, 0x0?)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/system/driver/base/app.go:91 +0xa9
cogentcore.org/core/system/driver/desktop.(*App).NewWindow(0x2441820, 0xc0006ee360?)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/system/driver/desktop/app.go:129 +0x44f
cogentcore.org/core/core.newRenderWindow({0xc00011e4a0, 0x1a}, {0x129a51b, 0x8}, 0xc0006ee360)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/core/renderwindow.go:103 +0xa5
cogentcore.org/core/core.(*Stage).newRenderWindow(0xc0001da9a0)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/core/mainstage.go:360 +0x20a
cogentcore.org/core/core.(*Stage).runWindow(0xc0001da9a0)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/core/mainstage.go:243 +0x6dc
cogentcore.org/core/core.(*Stage).run(0xc00003dd90?)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/core/stage.go:280 +0x88
cogentcore.org/core/core.(*Stage).Run(0x0?)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/core/stage.go:259 +0x7a
cogentcore.org/core/core.(*Body).RunWindow(0x1b395e0?)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/core/mainstage.go:71 +0x47
cogentcore.org/core/core.(*Body).RunMainWindow(0xc000316730?)
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/core/mainstage.go:45 +0x28
main.main()
    /home/user/go/pkg/mod/cogentcore.org/core@v0.3.3-0.20240819085555-796f3621ccd2/examples/xyz/xyz.go:331 +0x1c4a

2024/08/19 18:14:04 ----- END OF STACK TRACE -----
2024/08/19 18:14:04 SAVED CRASH LOG TO /home/user/.config/XYZ\ Demo/crash-logs/crash_2024-08-19_18-14-04
kkoreilly commented 2 months ago

Thank you for providing that information. It does not appear that your graphics card is well-supported, so that is probably the best we can do (https://www.reddit.com/r/linux_gaming/comments/sd7yup/how_can_i_fully_install_vulkan_in_my_intel_hd_4000/). We will keep the VK_DEVICE_SELECT=0 behavior as the default, so it will work but without ideal performance on your computer. You can ignore the warnings about MESA-INTEL: warning: Ivy Bridge Vulkan support is incomplete as long as everything is working correctly. Apologies for the poor 3D performance, which is largely out of our control; the 2D performance should be good. Thank you again for helping us get this working.