2022-01-30 01:19:56

I made it to level 3 last night, the furthest I've ever been in the game, with a score of 1164 points, and it crashed. I am playing the Mac version. I personally like the idea of achievements.

2022-02-03 21:14:36

At the risk of sounding like a broken record, I just put up a new version that should resolve many of the crashes. I'm having a tough time getting Sentry to actually show me where crashes are happening, and am working the problem from a few different angles. If the crashes are still around and I can't figure out a solution, then I'll dump Sentry and just write crashes to a log and have folks send those to [email protected].

There are a few other interesting changes in this release. Incorrect north-south exits are now pitched higher than east-west exits, and they're louder if unexplored. It isn't a detail you necessarily have to pay attention to, but I'm now finding that I can pick out upcoming corners a bit more easily and change my play style.

The left/right/back wall bumpers are also a bit smaller to compensate for the fact that you can't move as quickly in those directions anyway. This makes running through doors a bit quieter. It also helps when hiding in corners to avoid passing swarms. Previously, the crackling made listening to the environment a bit more annoying. Now I can tuck myself in a corner, aim at the door, and hope nothing spots me as it wanders past.

Speaking of getting spotted, I may have fixed a visibility bug as well. Some of the shapes that blocked visibility were rendered half a tile off where they should have been, meaning there may have been gaps between walls where you couldn't navigate but where you might have been spotted by nearby robots. That was tough to track down, but I hope that cuts back on the odd incidents where robots might spot you through multiple rooms and come at you. There are still scenarios where they might tromp over long distances to investigate something, but I'll leave you to discover those for yourself if you haven't already.

Also, my tests running around level 10 made me realize just how big these levels can get, and how spaced out interactions are when the size grows. I dropped the rate at which levels expand, and also cut the starting robot count by 10. I'll be interested in how this affects difficulty.

We also now have a bug zapper crack impact sound when bullets hit walls. Gives things a nice bit of juice IMO. I'm sure I'm missing a thing or two, but that's what changelogs are for.

I'm hoping this boring update work is done so I can start new feature development and do a few development streams. Thanks for all your patience.

2022-02-22 00:04:47

Hey there. Just checking in. This topic as gone to page 2. I was just curious if things are still going for System Fault. I love that game and was wondering if it was still getting updates?

2022-02-22 00:24:12

Yup, still going. I actually did a pretty huge sound update, and I think folks will be pleased with the results. I've also been doing a bunch of boring back office stuff. Long story shorter, I automated release builds, but had to set up my own servers since GitHub's pricing on LFS storage is all sorts of ridiculous. I'm also trying to up my marketing game which, among other things, means I'll probably be doing at least some of my devlogs as podcasts with audio content. Some if not all of this should be more visible in the next few days. I should at least be able to get the new release out, and I'll update here when I have that.

And TBH, the random crashes have been kind of discouraging. Thankfully each is easy enough to fix, but it's going to be whack-a-mole until I either find them all, or convince the makers of my engine that crashing the entire app is a terrible way for them to respond to this particular error. At this point it's probably between me, another game developer, and a company making custom industrial CAD software for people pushing this engine the hardest, and I'm having to square off with academics who think my problem would go away if only I just used the engine less nonsensically. tongue But neither the other game or the industrial CAD software folks seem to be hitting these same issues, so yay me, I've found a whole new way to fail.

Anyway, sorry for the radio silence. Things have been a bit more active on my Discord, where there's an actual rough preview of the new soundscape plus some other updates. I just can't be everywhere at once.

Thanks for your continued interest!

2022-02-22 00:33:00

Oh yeah, and that I forgot about this is a testament to just how heads-down I've been over the last few weeks.

I made a start at the card mechanic I wrote about a while back. Right now I've implemented two cards: Brawler, which doesn't spawn shields but turns any damage you dish out within 5 tiles into healing, and Sniper pistol, which is louder but has double range. Eventually you'll unlock those with achievements, but they're available to everyone until I figure out the right balance. For now you can either start a new game, which is what you're most familiar with, or a new "card game" where you pick either Brawler or Sniper pistol and the game starts. I'll definitely add more of these--I just need to be careful about how I add this kind of expandability to the game or it'll become a huge unmaintainable mess.

2022-02-22 21:02:05

Well for what it is worth I am subscribed to your discord now since I have it loaded.
I won't necessarilly appear all the time but I am on there.

2022-03-12 02:42:17

So, @Nolan:

I'm trying to run this on a fresh Arch install with a Coffeee Lake UDH 620 Intel HD integrated graphics, and getting the same panicked at could not find a GPU error.

I've got the Vulkan stuf installed, but beyond that...no clue. I could run it fine on Solus, but not Arch. Do I need to mess about with kernel modules and such as per the Arch wiki?

Warning: Grumpy post above
Also on Linux natively

Jace's EA PGA Tour guide for blind golfers

2022-03-12 05:01:36

Oh, you know what I bet it might be? Someone somewhere recently said that there were subtleties to packaging appimages of vulkan apps. I definitely asked some folks to test this for me, and they claimed it ran. So either they're running Ubuntu, or the appimage I build in WSL installs whatever drivers I happen to have installed, which happens to be WSL Ubuntu. Not sure whether the commonality is the distro or the fact that we happen to have the same graphics card drivers installed.

Sorry, I'll look into it next week.

And yes, stuff is still moving forward. I've actually wanted to do a podcast with some of the new soundscapes I've added and tweaked, only I've had construction practically right outside my window most days and I have no idea WTF they're doin. Was hoping to offer more than just another wall of text, then the jackhammers threw a monkey wrench into those plans...

They've settled down from a most-of-day routine to a random and intermittent one. I don't know which is worse TBH, but this at least suggests progress. Hopefully they'll be predictably gone for long enough that I can try doing an audio devlog next week.

2022-03-12 08:22:49

@nolan
Great! I hope to hear it soon.

2022-03-12 18:49:59 (edited by nolan 2022-03-12 18:50:32)

@JaceK Can you please reach out to me at support at lightsout.games? I'd like to send you some test builds next week to see if I can package up the right drivers for you. I don't have a fast/capable enough Linux box to test builds on, and I think my mistake has been that I've always tested with Ubuntu users. I also finally got CI set up over the last couple weeks, so game builds are being done in an isolated build environment that'll ultimately be better but will probably break things in the short-term until I get all the right dependencies installed in the build containers.

Thanks.

2022-03-12 19:07:21

Sure, though FWIW it ran on the exact same hardware under Solus but won't under Arch. I have the intel Vulkan stuf installed and got mesa installed too...

I'll reach out sure, not sure if Ethin or anyone more familiar with Arch would be good to reach out to as well, a quick Google's not giving me any leads on that either

Warning: Grumpy post above
Also on Linux natively

Jace's EA PGA Tour guide for blind golfers

2022-03-12 21:33:46

OK, what I'll probably do is make a demo build and post it somewhere, then link it here. I'm not necessarily looking for Linux familiarity/expertise, I just want someone to let me know if a given thing works or not.

2022-03-13 18:54:34

I've got Intel XE graphics, will test it here.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2022-03-13 18:58:57

The thing that puzzles me, @Nolan, is the exact same hardware ran the game fine under Solus, but Arch insists it can't find a GPU, despite following the Arch wiki as far as Vulkan stuff, mesa drivers, and my last resort is fucking about with the i915 kernel parameters, something I really don't wanna do if I don't have to

Warning: Grumpy post above
Also on Linux natively

Jace's EA PGA Tour guide for blind golfers

2022-03-14 00:38:33

@164 Right, but if you look at what an appimage is, it's basically the binary and all its dependencies copied onto a squashfs with a bit of extra metadata. That packing process is orchestrated by a tool called linuxdeploy running in either a live environment or a container. I honestly don't know much about how the magic works beyond that point, and linuxdeploy has some of its own magic around best practices for what to include in the image and what not to.

What I'm saying is that I don't think the hardware is the key here, or at least, not the entirety of it. If you don't have a modern GPU then nothing will make it work. But if the dependencies in the image *also* happen to be the vulkan drivers, and those bundled drivers aren't compatible with your system for whatever reason, then it absolutely makes sense to me that the appimage would run or fail to run on the exact same hardware but different distros. What I need to figure out is whether the solution is to bundle more or less (I.e. bundle more dependencies so the app is larger and more self-contained, or more likely, bundle fewer dependencies so the appimage expects a fully working vulkan install. Right now it's probably bundling a partial set of vulkan drivers which works on some systems but fails on others.

I have figuring this stuff out prioritized for tomorrow or Tuesday. I have some tax stuff needing to be filed tomorrow so the IRS doesn't slap me with penalties for filing my 1120S late, and I need to do some more work for a paying client. But I should have a test build out in a day or two, and we can iterate and go from there.

2022-03-14 02:10:32

@165, yeah, don't bundle in drivers. I've never understood why people do that -- if you bundle in drivers you might as well bundle in a whole OS for good measure because those drivers sure aren't universally applicable.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2022-03-14 03:14:19

@166 Exactly. Thing is, I don't know if that's already happening or not. Going to figure out soon.

2022-03-14 15:20:13

JaceK, can you please include the output of the vulkaninfo command on the system where it works, and the one where it doesn't?

I popped open the image and am not immediately seeing traces of vulkan drivers being bundled, which is good. Next I need the vulkaninfo results for both so I can compare them and, if necessary, ask in the right Discords/IRC channels.

Thanks.

2022-03-14 15:35:20 (edited by JaceK 2022-03-14 15:36:09)

Sure, here's my vulkaninfo output from my Arch box. Anything glaringly obvious leaping out from this?


VULKANINFO
==========

Vulkan Instance Version: 1.3.207


Instance Extensions: count = 19
===============================
    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_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_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

Layers:
=======
Presentable Surfaces:
=====================
GPU id : 0 (Intel(R) UHD Graphics 630 (CFL 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 = 5
            IMAGE_USAGE_TRANSFER_SRC_BIT
            IMAGE_USAGE_TRANSFER_DST_BIT
            IMAGE_USAGE_SAMPLED_BIT
            IMAGE_USAGE_STORAGE_BIT
            IMAGE_USAGE_COLOR_ATTACHMENT_BIT
    VkSurfaceCapabilities2EXT:
    --------------------------
        supportedSurfaceCounters:
            None
    VkSurfaceProtectedCapabilitiesKHR:
    ----------------------------------
        supportsProtected = false



Device Groups:
==============
Group 0:
    Properties:
        physicalDevices: count = 1
            Intel(R) UHD Graphics 630 (CFL GT2) (ID: 0)
        subsetAllocation = 0

    Present Capabilities:
        Intel(R) UHD Graphics 630 (CFL GT2) (ID: 0):
            Can present images from the following devices: count = 1
                Intel(R) UHD Graphics 630 (CFL GT2) (ID: 0)
        Present modes: count = 1
            DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR


Device Properties and Extensions:
=================================
GPU0:
VkPhysicalDeviceProperties:
---------------------------
    apiVersion        = 4202691 (1.2.195)
    driverVersion     = 88092679 (0x5403007)
    vendorID          = 0x8086
    deviceID          = 0x3e92
    deviceType        = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
    deviceName        = Intel(R) UHD Graphics 630 (CFL GT2)
    pipelineCacheUUID = b9fecd4f-96ec-b15b-10b6-cd677d6a0b30

VkPhysicalDeviceLimits:
-----------------------
    maxImageDimension1D                             = 16384
    maxImageDimension2D                             = 16384
    maxImageDimension3D                             = 2048
    maxImageDimensionCube                           = 16384
    maxImageArrayLayers                             = 2048
    maxTexelBufferElements                          = 134217728
    maxUniformBufferRange                           = 134217728
    maxStorageBufferRange                           = 1073741824
    maxPushConstantsSize                            = 128
    maxMemoryAllocationCount                        = 4294967295
    maxSamplerAllocationCount                       = 65536
    bufferImageGranularity                          = 0x00000040
    sparseAddressSpaceSize                          = 0x00000000
    maxBoundDescriptorSets                          = 8
    maxPerStageDescriptorSamplers                   = 65535
    maxPerStageDescriptorUniformBuffers             = 64
    maxPerStageDescriptorStorageBuffers             = 65535
    maxPerStageDescriptorSampledImages              = 65535
    maxPerStageDescriptorStorageImages              = 65535
    maxPerStageDescriptorInputAttachments           = 64
    maxPerStageResources                            = 4294967295
    maxDescriptorSetSamplers                        = 393210
    maxDescriptorSetUniformBuffers                  = 384
    maxDescriptorSetUniformBuffersDynamic           = 8
    maxDescriptorSetStorageBuffers                  = 393210
    maxDescriptorSetStorageBuffersDynamic           = 8
    maxDescriptorSetSampledImages                   = 393210
    maxDescriptorSetStorageImages                   = 393210
    maxDescriptorSetInputAttachments                = 256
    maxVertexInputAttributes                        = 28
    maxVertexInputBindings                          = 28
    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                      = 128
    maxGeometryOutputComponents                     = 128
    maxGeometryOutputVertices                       = 256
    maxGeometryTotalOutputComponents                = 1024
    maxFragmentInputComponents                      = 116
    maxFragmentOutputAttachments                    = 8
    maxFragmentDualSrcAttachments                   = 1
    maxFragmentCombinedOutputResources              = 8
    maxComputeSharedMemorySize                      = 65536
    maxComputeWorkGroupCount: count = 3
        65535
        65535
        65535
    maxComputeWorkGroupInvocations                  = 1792
    maxComputeWorkGroupSize: count = 3
        1792
        1792
        1792
    subPixelPrecisionBits                           = 8
    subTexelPrecisionBits                           = 8
    mipmapPrecisionBits                             = 8
    maxDrawIndexedIndexValue                        = 4294967295
    maxDrawIndirectCount                            = 4294967295
    maxSamplerLodBias                               = 16
    maxSamplerAnisotropy                            = 16
    maxViewports                                    = 16
    maxViewportDimensions: count = 2
        16384
        16384
    viewportBoundsRange: count = 2
        -32768
        32767
    viewportSubPixelBits                            = 13
    minMemoryMapAlignment                           = 4096
    minTexelBufferOffsetAlignment                   = 0x00000010
    minUniformBufferOffsetAlignment                 = 0x00000040
    minStorageBufferOffsetAlignment                 = 0x00000004
    minTexelOffset                                  = -8
    maxTexelOffset                                  = 7
    minTexelGatherOffset                            = -32
    maxTexelGatherOffset                            = 31
    minInterpolationOffset                          = -0.5
    maxInterpolationOffset                          = 0.4375
    subPixelInterpolationOffsetBits                 = 4
    maxFramebufferWidth                             = 16384
    maxFramebufferHeight                            = 16384
    maxFramebufferLayers                            = 2048
    framebufferColorSampleCounts: count = 5
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_2_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
        SAMPLE_COUNT_16_BIT
    framebufferDepthSampleCounts: count = 5
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_2_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
        SAMPLE_COUNT_16_BIT
    framebufferStencilSampleCounts: count = 5
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_2_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
        SAMPLE_COUNT_16_BIT
    framebufferNoAttachmentsSampleCounts: count = 5
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_2_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
        SAMPLE_COUNT_16_BIT
    maxColorAttachments                             = 8
    sampledImageColorSampleCounts: count = 5
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_2_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
        SAMPLE_COUNT_16_BIT
    sampledImageIntegerSampleCounts: count = 5
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_2_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
        SAMPLE_COUNT_16_BIT
    sampledImageDepthSampleCounts: count = 5
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_2_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
        SAMPLE_COUNT_16_BIT
    sampledImageStencilSampleCounts: count = 5
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_2_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
        SAMPLE_COUNT_16_BIT
    storageImageSampleCounts: count = 1
        SAMPLE_COUNT_1_BIT
    maxSampleMaskWords                              = 1
    timestampComputeAndGraphics                     = true
    timestampPeriod                                 = 83.3333
    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

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

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

VkPhysicalDeviceDepthStencilResolveProperties:
----------------------------------------------
    supportedDepthResolveModes: count = 4
        RESOLVE_MODE_SAMPLE_ZERO_BIT
        RESOLVE_MODE_AVERAGE_BIT
        RESOLVE_MODE_MIN_BIT
        RESOLVE_MODE_MAX_BIT
    supportedStencilResolveModes: count = 3
        RESOLVE_MODE_SAMPLE_ZERO_BIT
        RESOLVE_MODE_MIN_BIT
        RESOLVE_MODE_MAX_BIT
    independentResolveNone = true
    independentResolve     = true

VkPhysicalDeviceDescriptorIndexingProperties:
---------------------------------------------
    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

VkPhysicalDeviceDriverProperties:
---------------------------------
    driverID           = DRIVER_ID_INTEL_OPEN_SOURCE_MESA
    driverName         = Intel open-source Mesa driver
    driverInfo         = Mesa 21.3.7
    conformanceVersion = 1.2.0.0

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

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

VkPhysicalDeviceFloatControlsProperties:
----------------------------------------
    denormBehaviorIndependence            = SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL
    roundingModeIndependence              = SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
    shaderSignedZeroInfNanPreserveFloat16 = true
    shaderSignedZeroInfNanPreserveFloat32 = true
    shaderSignedZeroInfNanPreserveFloat64 = true
    shaderDenormPreserveFloat16           = true
    shaderDenormPreserveFloat32           = true
    shaderDenormPreserveFloat64           = true
    shaderDenormFlushToZeroFloat16        = false
    shaderDenormFlushToZeroFloat32        = true
    shaderDenormFlushToZeroFloat64        = true
    shaderRoundingModeRTEFloat16          = true
    shaderRoundingModeRTEFloat32          = true
    shaderRoundingModeRTEFloat64          = true
    shaderRoundingModeRTZFloat16          = true
    shaderRoundingModeRTZFloat32          = true
    shaderRoundingModeRTZFloat64          = true

VkPhysicalDeviceIDProperties:
-----------------------------
    deviceUUID      = 43ef2a51-657f-2e96-0ecc-75e4e7eee67c
    driverUUID      = dba9428f-1511-d80e-789a-5a2ecded6488
    deviceNodeMask  = 0
    deviceLUIDValid = false

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

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

VkPhysicalDeviceMaintenance3Properties:
---------------------------------------
    maxPerSetDescriptors    = 1024
    maxMemoryAllocationSize = 0x80000000

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

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

VkPhysicalDeviceMultiviewProperties:
------------------------------------
    maxMultiviewViewCount     = 16
    maxMultiviewInstanceIndex = 268435455

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

VkPhysicalDevicePointClippingProperties:
----------------------------------------
    pointClippingBehavior = POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY

VkPhysicalDeviceProtectedMemoryProperties:
------------------------------------------
    protectedNoFault = false

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

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

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

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

VkPhysicalDeviceSamplerFilterMinmaxProperties:
----------------------------------------------
    filterMinmaxSingleComponentFormats = true
    filterMinmaxImageComponentMapping  = 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

VkPhysicalDeviceSubgroupProperties:
-----------------------------------
    subgroupSize              = 32
    supportedStages: count = 8
        SHADER_STAGE_VERTEX_BIT
        SHADER_STAGE_TESSELLATION_CONTROL_BIT
        SHADER_STAGE_TESSELLATION_EVALUATION_BIT
        SHADER_STAGE_GEOMETRY_BIT
        SHADER_STAGE_FRAGMENT_BIT
        SHADER_STAGE_COMPUTE_BIT
        SHADER_STAGE_ALL_GRAPHICS
        SHADER_STAGE_ALL
    supportedOperations: count = 8
        SUBGROUP_FEATURE_BASIC_BIT
        SUBGROUP_FEATURE_VOTE_BIT
        SUBGROUP_FEATURE_ARITHMETIC_BIT
        SUBGROUP_FEATURE_BALLOT_BIT
        SUBGROUP_FEATURE_SHUFFLE_BIT
        SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT
        SUBGROUP_FEATURE_CLUSTERED_BIT
        SUBGROUP_FEATURE_QUAD_BIT
    quadOperationsInAllStages = true

VkPhysicalDeviceSubgroupSizeControlPropertiesEXT:
-------------------------------------------------
    minSubgroupSize              = 8
    maxSubgroupSize              = 32
    maxComputeWorkgroupSubgroups = 56
    requiredSubgroupSizeStages: count = 2
        SHADER_STAGE_COMPUTE_BIT
        SHADER_STAGE_ALL

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

VkPhysicalDeviceTimelineSemaphoreProperties:
--------------------------------------------
    maxTimelineSemaphoreValueDifference = 18446744073709551615

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

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

VkPhysicalDeviceVulkan11Properties:
-----------------------------------
    deviceUUID                        = 43ef2a51-657f-2e96-0ecc-75e4e7eee67c
    driverUUID                        = dba9428f-1511-d80e-789a-5a2ecded6488
    deviceNodeMask                    = 0
    deviceLUIDValid                   = false
    subgroupSize                      = 32
    subgroupSupportedStages: count = 8
        SHADER_STAGE_VERTEX_BIT
        SHADER_STAGE_TESSELLATION_CONTROL_BIT
        SHADER_STAGE_TESSELLATION_EVALUATION_BIT
        SHADER_STAGE_GEOMETRY_BIT
        SHADER_STAGE_FRAGMENT_BIT
        SHADER_STAGE_COMPUTE_BIT
        SHADER_STAGE_ALL_GRAPHICS
        SHADER_STAGE_ALL
    subgroupSupportedOperations: count = 8
        SUBGROUP_FEATURE_BASIC_BIT
        SUBGROUP_FEATURE_VOTE_BIT
        SUBGROUP_FEATURE_ARITHMETIC_BIT
        SUBGROUP_FEATURE_BALLOT_BIT
        SUBGROUP_FEATURE_SHUFFLE_BIT
        SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT
        SUBGROUP_FEATURE_CLUSTERED_BIT
        SUBGROUP_FEATURE_QUAD_BIT
    subgroupQuadOperationsInAllStages = true
    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 21.3.7
    conformanceVersion                                   = 1.2.0.0
    denormBehaviorIndependence                           = SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL
    roundingModeIndependence                             = SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
    shaderSignedZeroInfNanPreserveFloat16                = true
    shaderSignedZeroInfNanPreserveFloat32                = true
    shaderSignedZeroInfNanPreserveFloat64                = true
    shaderDenormPreserveFloat16                          = true
    shaderDenormPreserveFloat32                          = true
    shaderDenormPreserveFloat64                          = true
    shaderDenormFlushToZeroFloat16                       = false
    shaderDenormFlushToZeroFloat32                       = true
    shaderDenormFlushToZeroFloat64                       = true
    shaderRoundingModeRTEFloat16                         = true
    shaderRoundingModeRTEFloat32                         = true
    shaderRoundingModeRTEFloat64                         = true
    shaderRoundingModeRTZFloat16                         = true
    shaderRoundingModeRTZFloat32                         = true
    shaderRoundingModeRTZFloat64                         = true
    maxUpdateAfterBindDescriptorsInAllPools              = 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 = 3
        RESOLVE_MODE_SAMPLE_ZERO_BIT
        RESOLVE_MODE_MIN_BIT
        RESOLVE_MODE_MAX_BIT
    independentResolveNone                               = true
    independentResolve                                   = true
    filterMinmaxSingleComponentFormats                   = true
    filterMinmaxImageComponentMapping                    = true
    maxTimelineSemaphoreValueDifference                  = 18446744073709551615
    framebufferIntegerColorSampleCounts: count = 5
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_2_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
        SAMPLE_COUNT_16_BIT


Device Extensions: count = 111
------------------------------
    VK_EXT_4444_formats                         : extension revision 1
    VK_EXT_buffer_device_address                : extension revision 2
    VK_EXT_calibrated_timestamps                : extension revision 2
    VK_EXT_color_write_enable                   : extension revision 1
    VK_EXT_conditional_rendering                : extension revision 2
    VK_EXT_conservative_rasterization           : extension revision 1
    VK_EXT_custom_border_color                  : extension revision 12
    VK_EXT_depth_clip_enable                    : extension revision 1
    VK_EXT_descriptor_indexing                  : extension revision 2
    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_fragment_shader_interlock            : extension revision 1
    VK_EXT_global_priority                      : extension revision 2
    VK_EXT_host_query_reset                     : extension revision 1
    VK_EXT_image_drm_format_modifier            : extension revision 2
    VK_EXT_image_robustness                     : 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_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_post_depth_coverage                  : extension revision 1
    VK_EXT_primitive_topology_list_restart      : extension revision 1
    VK_EXT_private_data                         : extension revision 1
    VK_EXT_provoking_vertex                     : extension revision 1
    VK_EXT_queue_family_foreign                 : extension revision 1
    VK_EXT_robustness2                          : extension revision 1
    VK_EXT_sample_locations                     : extension revision 1
    VK_EXT_sampler_filter_minmax                : extension revision 2
    VK_EXT_scalar_block_layout                  : extension revision 1
    VK_EXT_separate_stencil_usage               : extension revision 1
    VK_EXT_shader_atomic_float                  : extension revision 1
    VK_EXT_shader_atomic_float2                 : extension revision 1
    VK_EXT_shader_demote_to_helper_invocation   : extension revision 1
    VK_EXT_shader_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_ycbcr_image_arrays                   : extension revision 1
    VK_GOOGLE_decorate_string                   : extension revision 1
    VK_GOOGLE_hlsl_functionality1               : extension revision 1
    VK_GOOGLE_user_type                         : extension revision 1
    VK_INTEL_shader_integer_functions2          : extension revision 1
    VK_KHR_16bit_storage                        : extension revision 1
    VK_KHR_8bit_storage                         : extension revision 1
    VK_KHR_bind_memory2                         : extension revision 1
    VK_KHR_buffer_device_address                : extension revision 1
    VK_KHR_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_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 1
    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 1
    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_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_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

VkQueueFamilyProperties:
========================
    queueProperties[0]:
    -------------------
        minImageTransferGranularity = (1,1,1)
        queueCount                  = 1
        queueFlags                  = QUEUE_GRAPHICS | QUEUE_COMPUTE | QUEUE_TRANSFER
        timestampValidBits          = 36
        present support             = true

VkPhysicalDeviceMemoryProperties:
=================================
memoryHeaps: count = 1
    memoryHeaps[0]:
        size   = 12462120960 (0x2e6cce000) (11.61 GiB)
        budget = 11215568896 (0x29c800000) (10.45 GiB)
        usage  = 0 (0x00000000) (0.00 B)
        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                  = true
    textureCompressionASTC_LDR              = true
    textureCompressionBC                    = true
    occlusionQueryPrecise                   = true
    pipelineStatisticsQuery                 = true
    vertexPipelineStoresAndAtomics          = true
    fragmentStoresAndAtomics                = true
    shaderTessellationAndGeometryPointSize  = true
    shaderImageGatherExtended               = true
    shaderStorageImageExtendedFormats       = true
    shaderStorageImageMultisample           = false
    shaderStorageImageReadWithoutFormat     = false
    shaderStorageImageWriteWithoutFormat    = true
    shaderUniformBufferArrayDynamicIndexing = true
    shaderSampledImageArrayDynamicIndexing  = true
    shaderStorageBufferArrayDynamicIndexing = true
    shaderStorageImageArrayDynamicIndexing  = true
    shaderClipDistance                      = true
    shaderCullDistance                      = true
    shaderFloat64                           = true
    shaderInt64                             = true
    shaderInt16                             = true
    shaderResourceResidency                 = false
    shaderResourceMinLod                    = true
    sparseBinding                           = false
    sparseResidencyBuffer                   = false
    sparseResidencyImage2D                  = false
    sparseResidencyImage3D                  = false
    sparseResidency2Samples                 = false
    sparseResidency4Samples                 = false
    sparseResidency8Samples                 = false
    sparseResidency16Samples                = false
    sparseResidencyAliased                  = false
    variableMultisampleRate                 = true
    inheritedQueries                        = true

VkPhysicalDevice16BitStorageFeatures:
-------------------------------------
    storageBuffer16BitAccess           = true
    uniformAndStorageBuffer16BitAccess = true
    storagePushConstant16              = true
    storageInputOutput16               = false

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

VkPhysicalDevice8BitStorageFeatures:
------------------------------------
    storageBuffer8BitAccess           = true
    uniformAndStorageBuffer8BitAccess = true
    storagePushConstant8              = true

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

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

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

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

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

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

VkPhysicalDeviceDescriptorIndexingFeatures:
-------------------------------------------
    shaderInputAttachmentArrayDynamicIndexing          = false
    shaderUniformTexelBufferArrayDynamicIndexing       = true
    shaderStorageTexelBufferArrayDynamicIndexing       = true
    shaderUniformBufferArrayNonUniformIndexing         = true
    shaderSampledImageArrayNonUniformIndexing          = true
    shaderStorageBufferArrayNonUniformIndexing         = true
    shaderStorageImageArrayNonUniformIndexing          = true
    shaderInputAttachmentArrayNonUniformIndexing       = false
    shaderUniformTexelBufferArrayNonUniformIndexing    = true
    shaderStorageTexelBufferArrayNonUniformIndexing    = true
    descriptorBindingUniformBufferUpdateAfterBind      = true
    descriptorBindingSampledImageUpdateAfterBind       = true
    descriptorBindingStorageImageUpdateAfterBind       = true
    descriptorBindingStorageBufferUpdateAfterBind      = true
    descriptorBindingUniformTexelBufferUpdateAfterBind = true
    descriptorBindingStorageTexelBufferUpdateAfterBind = true
    descriptorBindingUpdateUnusedWhilePending          = true
    descriptorBindingPartiallyBound                    = true
    descriptorBindingVariableDescriptorCount           = true
    runtimeDescriptorArray                             = true

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

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

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

VkPhysicalDeviceHostQueryResetFeatures:
---------------------------------------
    hostQueryReset = true

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

VkPhysicalDeviceImagelessFramebufferFeatures:
---------------------------------------------
    imagelessFramebuffer = true

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

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

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

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

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

VkPhysicalDeviceMultiviewFeatures:
----------------------------------
    multiview                   = true
    multiviewGeometryShader     = true
    multiviewTessellationShader = true

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

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

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

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

VkPhysicalDeviceProtectedMemoryFeatures:
----------------------------------------
    protectedMemory = false

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

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

VkPhysicalDeviceSamplerYcbcrConversionFeatures:
-----------------------------------------------
    samplerYcbcrConversion = true

VkPhysicalDeviceScalarBlockLayoutFeatures:
------------------------------------------
    scalarBlockLayout = true

VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures:
----------------------------------------------------
    separateDepthStencilLayouts = true

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

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

VkPhysicalDeviceShaderAtomicInt64Features:
------------------------------------------
    shaderBufferInt64Atomics = true
    shaderSharedInt64Atomics = false

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

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

VkPhysicalDeviceShaderDrawParametersFeatures:
---------------------------------------------
    shaderDrawParameters = true

VkPhysicalDeviceShaderFloat16Int8Features:
------------------------------------------
    shaderFloat16 = true
    shaderInt8    = true

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

VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures:
----------------------------------------------------
    shaderSubgroupExtendedTypes = true

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

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

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

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

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

VkPhysicalDeviceTimelineSemaphoreFeatures:
------------------------------------------
    timelineSemaphore = true

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

VkPhysicalDeviceUniformBufferStandardLayoutFeatures:
----------------------------------------------------
    uniformBufferStandardLayout = true

VkPhysicalDeviceVariablePointersFeatures:
-----------------------------------------
    variablePointersStorageBuffer = true
    variablePointers              = true

VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT:
--------------------------------------------------
    vertexAttributeInstanceRateDivisor     = true
    vertexAttributeInstanceRateZeroDivisor = 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                           = false
    shaderFloat16                                      = true
    shaderInt8                                         = true
    descriptorIndexing                                 = true
    shaderInputAttachmentArrayDynamicIndexing          = false
    shaderUniformTexelBufferArrayDynamicIndexing       = true
    shaderStorageTexelBufferArrayDynamicIndexing       = true
    shaderUniformBufferArrayNonUniformIndexing         = true
    shaderSampledImageArrayNonUniformIndexing          = true
    shaderStorageBufferArrayNonUniformIndexing         = true
    shaderStorageImageArrayNonUniformIndexing          = true
    shaderInputAttachmentArrayNonUniformIndexing       = false
    shaderUniformTexelBufferArrayNonUniformIndexing    = true
    shaderStorageTexelBufferArrayNonUniformIndexing    = true
    descriptorBindingUniformBufferUpdateAfterBind      = true
    descriptorBindingSampledImageUpdateAfterBind       = true
    descriptorBindingStorageImageUpdateAfterBind       = true
    descriptorBindingStorageBufferUpdateAfterBind      = true
    descriptorBindingUniformTexelBufferUpdateAfterBind = true
    descriptorBindingStorageTexelBufferUpdateAfterBind = true
    descriptorBindingUpdateUnusedWhilePending          = true
    descriptorBindingPartiallyBound                    = true
    descriptorBindingVariableDescriptorCount           = true
    runtimeDescriptorArray                             = true
    samplerFilterMinmax                                = true
    scalarBlockLayout                                  = true
    imagelessFramebuffer                               = true
    uniformBufferStandardLayout                        = true
    shaderSubgroupExtendedTypes                        = true
    separateDepthStencilLayouts                        = true
    hostQueryReset                                     = true
    timelineSemaphore                                  = true
    bufferDeviceAddress                                = true
    bufferDeviceAddressCaptureReplay                   = true
    bufferDeviceAddressMultiDevice                     = false
    vulkanMemoryModel                                  = true
    vulkanMemoryModelDeviceScope                       = true
    vulkanMemoryModelAvailabilityVisibilityChains      = true
    shaderOutputViewportIndex                          = true
    shaderOutputLayer                                  = true
    subgroupBroadcastDynamicId                         = true

VkPhysicalDeviceVulkanMemoryModelFeatures:
------------------------------------------
    vulkanMemoryModel                             = true
    vulkanMemoryModelDeviceScope                  = true
    vulkanMemoryModelAvailabilityVisibilityChains = true

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

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

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

EDIT: I'll double check if Solus has vulkaninfo, but I never checked since it just worked over there and Solus is, well, light on packages

Warning: Grumpy post above
Also on Linux natively

Jace's EA PGA Tour guide for blind golfers

2022-03-15 21:41:40

OK, yeah, I'll need the solus vulkaninfo too. Thanks.

2022-03-16 02:57:22

I came to report a problem with the Linux version of the game launching, but I see I have been beaten to it lol. Anyway, Here is some stuff from my system in case it helps. This is the errors that appear in therminal when it is opened:

2022-03-16T00:41:33.754741Z  INFO winit::platform_impl::platform::x11::window: Guessed window scale factor: 1.0833333333333333    
2022-03-16T00:41:33.972070Z ERROR panic: thread 'main' panicked at 'Unable to find a GPU! Make sure you have installed required drivers!': /home/nolan/.cargo/registry/src/github.com-1ecc6299db9ec823/bevy_render-0.6.1/src/renderer/mod.rs:74   0: <unknown>
   1: <unknown>
   2: <unknown>
   3: <unknown>
   4: <unknown>
   5: <unknown>
   6: <unknown>
   7: <unknown>
   8: <unknown>
   9: <unknown>
  10: <unknown>
  11: <unknown>
  12: <unknown>
  13: <unknown>
  14: <unknown>
  15: __libc_start_call_main
  16: __libc_start_main@GLIBC_2.2.5
  17: <unknown>

Next comes the vulkaninfo command output:

ERROR: [Loader Message] Code 0 : loader_scanned_icd_add: Driver /usr/lib/libvulkan_intel.so supports Vulkan 1.2, but only supports loader interface version 4. Interface version 5 or newer required to support this version of Vulkan (Policy #LDP_DRIVER_7)
ERROR: [../mesa-21.3.7/src/intel/vulkan/anv_device.c:782] Code 0 : Vulkan not yet supported on Intel(R) HD Graphics 3000 (SNB GT2) (VK_ERROR_INCOMPATIBLE_DRIVER)
ERROR: [Loader Message] Code 0 : setup_loader_term_phys_devs:  Failed to detect any valid GPUs in the current config
ERROR: [Loader Message] Code 0 : setup_loader_tramp_phys_devs:  Failed during dispatch call of 'vkEnumeratePhysicalDevices' to lower layers or loader to get count.
ERROR at /build/vulkan-tools/src/Vulkan-Tools-1.3.207/vulkaninfo/vulkaninfo.h:230:vkEnumeratePhysicalDevices failed with ERROR_INITIALIZATION_FAILED

Judging from that, I'm either missing a dependency or this integrated intel graphics driver really is utter crap lol. Also, if it helps, here is what is reported as my video card:

00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)

Is there maybe some way to make it fall back to sdl if vulkan won't work?

My games: https://stormgames.wolfe.casa
Support my work on Ko-fi

2022-03-16 09:42:04 (edited by Ethin 2022-03-16 09:43:09)

@171, you mean OpenGL, and I'd think there'd be a way for it to fall back to that. It shouldn't prefer Vulkan over OpenGL all the time unless it absolutely requires something that only Vulkan supports.
My vulkaninfo command outputs:

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

Vulkan Instance Version: 1.3.207


Instance Extensions: count = 19
===============================
    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_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_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

Layers: count = 12
==================
VK_LAYER_INTEL_nullhw (INTEL NULL HW) Vulkan version 1.1.73, layer version 1:
    Layer Extensions: count = 0
    Devices: count = 1
        GPU id = 0 (Intel(R) Xe Graphics (TGL GT2))
        Layer-Device Extensions: count = 0

VK_LAYER_KHRONOS_validation (Khronos Validation Layer) Vulkan version 1.3.204, 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 = 1
        GPU id = 0 (Intel(R) Xe Graphics (TGL 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

VK_LAYER_LUNARG_api_dump (LunarG API dump layer) Vulkan version 1.3.204, layer version 2:
    Layer Extensions: count = 0
    Devices: count = 1
        GPU id = 0 (Intel(R) Xe Graphics (TGL GT2))
        Layer-Device Extensions: count = 1
            VK_EXT_tooling_info : extension revision 1

VK_LAYER_LUNARG_device_simulation (LunarG device simulation layer) Vulkan version 1.3.204, layer version 1:
    Layer Extensions: count = 0
    Devices: count = 1
        GPU id = 0 (Intel(R) Xe Graphics (TGL GT2))
        Layer-Device Extensions: count = 1
            VK_EXT_tooling_info : extension revision 1

VK_LAYER_LUNARG_monitor (Execution Monitoring Layer) Vulkan version 1.3.204, layer version 1:
    Layer Extensions: count = 0
    Devices: count = 1
        GPU id = 0 (Intel(R) Xe Graphics (TGL GT2))
        Layer-Device Extensions: count = 1
            VK_EXT_tooling_info : extension revision 1

VK_LAYER_LUNARG_screenshot (LunarG image capture layer) Vulkan version 1.3.204, layer version 1:
    Layer Extensions: count = 0
    Devices: count = 1
        GPU id = 0 (Intel(R) Xe Graphics (TGL GT2))
        Layer-Device Extensions: count = 1
            VK_EXT_tooling_info : extension revision 1

VK_LAYER_MESA_device_select (Linux device selection layer) Vulkan version 1.2.73, layer version 1:
    Layer Extensions: count = 0
    Devices: count = 1
        GPU id = 0 (Intel(R) Xe Graphics (TGL GT2))
        Layer-Device Extensions: count = 0

VK_LAYER_MESA_overlay (Mesa Overlay layer) Vulkan version 1.1.73, layer version 1:
    Layer Extensions: count = 0
    Devices: count = 1
        GPU id = 0 (Intel(R) Xe Graphics (TGL GT2))
        Layer-Device Extensions: count = 0

VK_LAYER_VALVE_steam_fossilize_32 (Steam Pipeline Caching Layer) Vulkan version 1.2.136, layer version 1:
    Layer Extensions: count = 0
    Devices: count = 1
        GPU id = 0 (Intel(R) Xe Graphics (TGL GT2))
        Layer-Device Extensions: count = 0

VK_LAYER_VALVE_steam_fossilize_64 (Steam Pipeline Caching Layer) Vulkan version 1.2.136, layer version 1:
    Layer Extensions: count = 0
    Devices: count = 1
        GPU id = 0 (Intel(R) Xe Graphics (TGL GT2))
        Layer-Device Extensions: count = 0

VK_LAYER_VALVE_steam_overlay_32 (Steam Overlay Layer) Vulkan version 1.2.136, layer version 1:
    Layer Extensions: count = 0
    Devices: count = 1
        GPU id = 0 (Intel(R) Xe Graphics (TGL GT2))
        Layer-Device Extensions: count = 0

VK_LAYER_VALVE_steam_overlay_64 (Steam Overlay Layer) Vulkan version 1.2.136, layer version 1:
    Layer Extensions: count = 0
    Devices: count = 1
        GPU id = 0 (Intel(R) Xe Graphics (TGL GT2))
        Layer-Device Extensions: count = 0

Presentable Surfaces:
=====================
GPU id : 0 (Intel(R) Xe Graphics (TGL 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 = 5
            IMAGE_USAGE_TRANSFER_SRC_BIT
            IMAGE_USAGE_TRANSFER_DST_BIT
            IMAGE_USAGE_SAMPLED_BIT
            IMAGE_USAGE_STORAGE_BIT
            IMAGE_USAGE_COLOR_ATTACHMENT_BIT
    VkSurfaceCapabilities2EXT:
    --------------------------
        supportedSurfaceCounters:
            None
    VkSurfaceProtectedCapabilitiesKHR:
    ----------------------------------
        supportsProtected = false



Device Groups:
==============
Group 0:
    Properties:
        physicalDevices: count = 1
            Intel(R) Xe Graphics (TGL GT2) (ID: 0)
        subsetAllocation = 0

    Present Capabilities:
        Intel(R) Xe Graphics (TGL GT2) (ID: 0):
            Can present images from the following devices: count = 1
                Intel(R) Xe Graphics (TGL GT2) (ID: 0)
        Present modes: count = 1
            DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR


Device Properties and Extensions:
=================================
GPU0:
VkPhysicalDeviceProperties:
---------------------------
    apiVersion        = 4202691 (1.2.195)
    driverVersion     = 88092679 (0x5403007)
    vendorID          = 0x8086
    deviceID          = 0x9a49
    deviceType        = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
    deviceName        = Intel(R) Xe Graphics (TGL GT2)
    pipelineCacheUUID = e23ae35a-ae48-0fcb-639d-ee0b579ab908

VkPhysicalDeviceLimits:
-----------------------
    maxImageDimension1D                             = 16384
    maxImageDimension2D                             = 16384
    maxImageDimension3D                             = 2048
    maxImageDimensionCube                           = 16384
    maxImageArrayLayers                             = 2048
    maxTexelBufferElements                          = 134217728
    maxUniformBufferRange                           = 134217728
    maxStorageBufferRange                           = 1073741824
    maxPushConstantsSize                            = 128
    maxMemoryAllocationCount                        = 4294967295
    maxSamplerAllocationCount                       = 65536
    bufferImageGranularity                          = 0x00000040
    sparseAddressSpaceSize                          = 0x00000000
    maxBoundDescriptorSets                          = 8
    maxPerStageDescriptorSamplers                   = 65535
    maxPerStageDescriptorUniformBuffers             = 64
    maxPerStageDescriptorStorageBuffers             = 65535
    maxPerStageDescriptorSampledImages              = 65535
    maxPerStageDescriptorStorageImages              = 65535
    maxPerStageDescriptorInputAttachments           = 64
    maxPerStageResources                            = 4294967295
    maxDescriptorSetSamplers                        = 393210
    maxDescriptorSetUniformBuffers                  = 384
    maxDescriptorSetUniformBuffersDynamic           = 8
    maxDescriptorSetStorageBuffers                  = 393210
    maxDescriptorSetStorageBuffersDynamic           = 8
    maxDescriptorSetSampledImages                   = 393210
    maxDescriptorSetStorageImages                   = 393210
    maxDescriptorSetInputAttachments                = 256
    maxVertexInputAttributes                        = 28
    maxVertexInputBindings                          = 28
    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                      = 128
    maxGeometryOutputComponents                     = 128
    maxGeometryOutputVertices                       = 256
    maxGeometryTotalOutputComponents                = 1024
    maxFragmentInputComponents                      = 116
    maxFragmentOutputAttachments                    = 8
    maxFragmentDualSrcAttachments                   = 1
    maxFragmentCombinedOutputResources              = 8
    maxComputeSharedMemorySize                      = 65536
    maxComputeWorkGroupCount: count = 3
        65535
        65535
        65535
    maxComputeWorkGroupInvocations                  = 2048
    maxComputeWorkGroupSize: count = 3
        2048
        2048
        2048
    subPixelPrecisionBits                           = 8
    subTexelPrecisionBits                           = 8
    mipmapPrecisionBits                             = 8
    maxDrawIndexedIndexValue                        = 4294967295
    maxDrawIndirectCount                            = 4294967295
    maxSamplerLodBias                               = 16
    maxSamplerAnisotropy                            = 16
    maxViewports                                    = 16
    maxViewportDimensions: count = 2
        16384
        16384
    viewportBoundsRange: count = 2
        -32768
        32767
    viewportSubPixelBits                            = 13
    minMemoryMapAlignment                           = 4096
    minTexelBufferOffsetAlignment                   = 0x00000010
    minUniformBufferOffsetAlignment                 = 0x00000040
    minStorageBufferOffsetAlignment                 = 0x00000004
    minTexelOffset                                  = -8
    maxTexelOffset                                  = 7
    minTexelGatherOffset                            = -32
    maxTexelGatherOffset                            = 31
    minInterpolationOffset                          = -0.5
    maxInterpolationOffset                          = 0.4375
    subPixelInterpolationOffsetBits                 = 4
    maxFramebufferWidth                             = 16384
    maxFramebufferHeight                            = 16384
    maxFramebufferLayers                            = 2048
    framebufferColorSampleCounts: count = 5
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_2_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
        SAMPLE_COUNT_16_BIT
    framebufferDepthSampleCounts: count = 5
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_2_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
        SAMPLE_COUNT_16_BIT
    framebufferStencilSampleCounts: count = 5
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_2_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
        SAMPLE_COUNT_16_BIT
    framebufferNoAttachmentsSampleCounts: count = 5
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_2_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
        SAMPLE_COUNT_16_BIT
    maxColorAttachments                             = 8
    sampledImageColorSampleCounts: count = 5
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_2_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
        SAMPLE_COUNT_16_BIT
    sampledImageIntegerSampleCounts: count = 5
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_2_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
        SAMPLE_COUNT_16_BIT
    sampledImageDepthSampleCounts: count = 5
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_2_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
        SAMPLE_COUNT_16_BIT
    sampledImageStencilSampleCounts: count = 5
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_2_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
        SAMPLE_COUNT_16_BIT
    storageImageSampleCounts: count = 1
        SAMPLE_COUNT_1_BIT
    maxSampleMaskWords                              = 1
    timestampComputeAndGraphics                     = true
    timestampPeriod                                 = 52.0833
    maxClipDistances                                = 8
    maxCullDistances                                = 8
    maxCombinedClipAndCullDistances                 = 8
    discreteQueuePriorities                         = 2
    pointSizeRange: count = 2
        0.125
        255.875
    lineWidthRange: count = 2
        0
        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

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

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

VkPhysicalDeviceDepthStencilResolveProperties:
----------------------------------------------
    supportedDepthResolveModes: count = 4
        RESOLVE_MODE_SAMPLE_ZERO_BIT
        RESOLVE_MODE_AVERAGE_BIT
        RESOLVE_MODE_MIN_BIT
        RESOLVE_MODE_MAX_BIT
    supportedStencilResolveModes: count = 3
        RESOLVE_MODE_SAMPLE_ZERO_BIT
        RESOLVE_MODE_MIN_BIT
        RESOLVE_MODE_MAX_BIT
    independentResolveNone = true
    independentResolve     = true

VkPhysicalDeviceDescriptorIndexingProperties:
---------------------------------------------
    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

VkPhysicalDeviceDriverProperties:
---------------------------------
    driverID           = DRIVER_ID_INTEL_OPEN_SOURCE_MESA
    driverName         = Intel open-source Mesa driver
    driverInfo         = Mesa 21.3.7
    conformanceVersion = 1.2.0.0

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

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

VkPhysicalDeviceFloatControlsProperties:
----------------------------------------
    denormBehaviorIndependence            = SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL
    roundingModeIndependence              = SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
    shaderSignedZeroInfNanPreserveFloat16 = true
    shaderSignedZeroInfNanPreserveFloat32 = true
    shaderSignedZeroInfNanPreserveFloat64 = true
    shaderDenormPreserveFloat16           = true
    shaderDenormPreserveFloat32           = true
    shaderDenormPreserveFloat64           = true
    shaderDenormFlushToZeroFloat16        = false
    shaderDenormFlushToZeroFloat32        = true
    shaderDenormFlushToZeroFloat64        = true
    shaderRoundingModeRTEFloat16          = true
    shaderRoundingModeRTEFloat32          = true
    shaderRoundingModeRTEFloat64          = true
    shaderRoundingModeRTZFloat16          = true
    shaderRoundingModeRTZFloat32          = true
    shaderRoundingModeRTZFloat64          = true

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

VkPhysicalDeviceIDProperties:
-----------------------------
    deviceUUID      = 3dd986d9-efa8-fff6-b3a2-c4167ed94617
    driverUUID      = dba9428f-1511-d80e-789a-5a2ecded6488
    deviceNodeMask  = 0
    deviceLUIDValid = false

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

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

VkPhysicalDeviceMaintenance3Properties:
---------------------------------------
    maxPerSetDescriptors    = 1024
    maxMemoryAllocationSize = 0x80000000

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

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

VkPhysicalDeviceMultiviewProperties:
------------------------------------
    maxMultiviewViewCount     = 16
    maxMultiviewInstanceIndex = 268435455

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

VkPhysicalDevicePerformanceQueryPropertiesKHR:
----------------------------------------------
    allowCommandBufferQueryCopies = false

VkPhysicalDevicePointClippingProperties:
----------------------------------------
    pointClippingBehavior = POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY

VkPhysicalDeviceProtectedMemoryProperties:
------------------------------------------
    protectedNoFault = false

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

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

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

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

VkPhysicalDeviceSamplerFilterMinmaxProperties:
----------------------------------------------
    filterMinmaxSingleComponentFormats = true
    filterMinmaxImageComponentMapping  = true

VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR:
-----------------------------------------------------
    integerDotProduct8BitUnsignedAccelerated                                      = false
    integerDotProduct8BitSignedAccelerated                                        = false
    integerDotProduct8BitMixedSignednessAccelerated                               = false
    integerDotProduct4x8BitPackedUnsignedAccelerated                              = true
    integerDotProduct4x8BitPackedSignedAccelerated                                = true
    integerDotProduct4x8BitPackedMixedSignednessAccelerated                       = true
    integerDotProduct16BitUnsignedAccelerated                                     = false
    integerDotProduct16BitSignedAccelerated                                       = false
    integerDotProduct16BitMixedSignednessAccelerated                              = false
    integerDotProduct32BitUnsignedAccelerated                                     = false
    integerDotProduct32BitSignedAccelerated                                       = false
    integerDotProduct32BitMixedSignednessAccelerated                              = false
    integerDotProduct64BitUnsignedAccelerated                                     = false
    integerDotProduct64BitSignedAccelerated                                       = false
    integerDotProduct64BitMixedSignednessAccelerated                              = false
    integerDotProductAccumulatingSaturating8BitUnsignedAccelerated                = false
    integerDotProductAccumulatingSaturating8BitSignedAccelerated                  = false
    integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated         = false
    integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated        = true
    integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated          = true
    integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = true
    integerDotProductAccumulatingSaturating16BitUnsignedAccelerated               = false
    integerDotProductAccumulatingSaturating16BitSignedAccelerated                 = false
    integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated        = false
    integerDotProductAccumulatingSaturating32BitUnsignedAccelerated               = false
    integerDotProductAccumulatingSaturating32BitSignedAccelerated                 = false
    integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated        = false
    integerDotProductAccumulatingSaturating64BitUnsignedAccelerated               = false
    integerDotProductAccumulatingSaturating64BitSignedAccelerated                 = false
    integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated        = false

VkPhysicalDeviceSubgroupProperties:
-----------------------------------
    subgroupSize              = 32
    supportedStages: count = 8
        SHADER_STAGE_VERTEX_BIT
        SHADER_STAGE_TESSELLATION_CONTROL_BIT
        SHADER_STAGE_TESSELLATION_EVALUATION_BIT
        SHADER_STAGE_GEOMETRY_BIT
        SHADER_STAGE_FRAGMENT_BIT
        SHADER_STAGE_COMPUTE_BIT
        SHADER_STAGE_ALL_GRAPHICS
        SHADER_STAGE_ALL
    supportedOperations: count = 8
        SUBGROUP_FEATURE_BASIC_BIT
        SUBGROUP_FEATURE_VOTE_BIT
        SUBGROUP_FEATURE_ARITHMETIC_BIT
        SUBGROUP_FEATURE_BALLOT_BIT
        SUBGROUP_FEATURE_SHUFFLE_BIT
        SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT
        SUBGROUP_FEATURE_CLUSTERED_BIT
        SUBGROUP_FEATURE_QUAD_BIT
    quadOperationsInAllStages = true

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

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

VkPhysicalDeviceTimelineSemaphoreProperties:
--------------------------------------------
    maxTimelineSemaphoreValueDifference = 18446744073709551615

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

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

VkPhysicalDeviceVulkan11Properties:
-----------------------------------
    deviceUUID                        = 3dd986d9-efa8-fff6-b3a2-c4167ed94617
    driverUUID                        = dba9428f-1511-d80e-789a-5a2ecded6488
    deviceNodeMask                    = 0
    deviceLUIDValid                   = false
    subgroupSize                      = 32
    subgroupSupportedStages: count = 8
        SHADER_STAGE_VERTEX_BIT
        SHADER_STAGE_TESSELLATION_CONTROL_BIT
        SHADER_STAGE_TESSELLATION_EVALUATION_BIT
        SHADER_STAGE_GEOMETRY_BIT
        SHADER_STAGE_FRAGMENT_BIT
        SHADER_STAGE_COMPUTE_BIT
        SHADER_STAGE_ALL_GRAPHICS
        SHADER_STAGE_ALL
    subgroupSupportedOperations: count = 8
        SUBGROUP_FEATURE_BASIC_BIT
        SUBGROUP_FEATURE_VOTE_BIT
        SUBGROUP_FEATURE_ARITHMETIC_BIT
        SUBGROUP_FEATURE_BALLOT_BIT
        SUBGROUP_FEATURE_SHUFFLE_BIT
        SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT
        SUBGROUP_FEATURE_CLUSTERED_BIT
        SUBGROUP_FEATURE_QUAD_BIT
    subgroupQuadOperationsInAllStages = true
    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 21.3.7
    conformanceVersion                                   = 1.2.0.0
    denormBehaviorIndependence                           = SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL
    roundingModeIndependence                             = SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
    shaderSignedZeroInfNanPreserveFloat16                = true
    shaderSignedZeroInfNanPreserveFloat32                = true
    shaderSignedZeroInfNanPreserveFloat64                = true
    shaderDenormPreserveFloat16                          = true
    shaderDenormPreserveFloat32                          = true
    shaderDenormPreserveFloat64                          = true
    shaderDenormFlushToZeroFloat16                       = false
    shaderDenormFlushToZeroFloat32                       = true
    shaderDenormFlushToZeroFloat64                       = true
    shaderRoundingModeRTEFloat16                         = true
    shaderRoundingModeRTEFloat32                         = true
    shaderRoundingModeRTEFloat64                         = true
    shaderRoundingModeRTZFloat16                         = true
    shaderRoundingModeRTZFloat32                         = true
    shaderRoundingModeRTZFloat64                         = true
    maxUpdateAfterBindDescriptorsInAllPools              = 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 = 3
        RESOLVE_MODE_SAMPLE_ZERO_BIT
        RESOLVE_MODE_MIN_BIT
        RESOLVE_MODE_MAX_BIT
    independentResolveNone                               = true
    independentResolve                                   = true
    filterMinmaxSingleComponentFormats                   = true
    filterMinmaxImageComponentMapping                    = true
    maxTimelineSemaphoreValueDifference                  = 18446744073709551615
    framebufferIntegerColorSampleCounts: count = 5
        SAMPLE_COUNT_1_BIT
        SAMPLE_COUNT_2_BIT
        SAMPLE_COUNT_4_BIT
        SAMPLE_COUNT_8_BIT
        SAMPLE_COUNT_16_BIT


Device Extensions: count = 114
------------------------------
    VK_EXT_4444_formats                         : extension revision 1
    VK_EXT_buffer_device_address                : extension revision 2
    VK_EXT_calibrated_timestamps                : extension revision 2
    VK_EXT_color_write_enable                   : extension revision 1
    VK_EXT_conditional_rendering                : extension revision 2
    VK_EXT_conservative_rasterization           : extension revision 1
    VK_EXT_custom_border_color                  : extension revision 12
    VK_EXT_depth_clip_enable                    : extension revision 1
    VK_EXT_descriptor_indexing                  : extension revision 2
    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_fragment_shader_interlock            : extension revision 1
    VK_EXT_global_priority                      : extension revision 2
    VK_EXT_host_query_reset                     : extension revision 1
    VK_EXT_image_drm_format_modifier            : extension revision 2
    VK_EXT_image_robustness                     : 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_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_post_depth_coverage                  : extension revision 1
    VK_EXT_primitive_topology_list_restart      : extension revision 1
    VK_EXT_private_data                         : extension revision 1
    VK_EXT_provoking_vertex                     : extension revision 1
    VK_EXT_queue_family_foreign                 : extension revision 1
    VK_EXT_robustness2                          : extension revision 1
    VK_EXT_sample_locations                     : extension revision 1
    VK_EXT_sampler_filter_minmax                : extension revision 2
    VK_EXT_scalar_block_layout                  : extension revision 1
    VK_EXT_separate_stencil_usage               : extension revision 1
    VK_EXT_shader_atomic_float                  : extension revision 1
    VK_EXT_shader_atomic_float2                 : extension revision 1
    VK_EXT_shader_demote_to_helper_invocation   : extension revision 1
    VK_EXT_shader_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_ycbcr_image_arrays                   : extension revision 1
    VK_GOOGLE_decorate_string                   : extension revision 1
    VK_GOOGLE_hlsl_functionality1               : extension revision 1
    VK_GOOGLE_user_type                         : extension revision 1
    VK_INTEL_performance_query                  : extension revision 2
    VK_INTEL_shader_integer_functions2          : extension revision 1
    VK_KHR_16bit_storage                        : extension revision 1
    VK_KHR_8bit_storage                         : extension revision 1
    VK_KHR_bind_memory2                         : extension revision 1
    VK_KHR_buffer_device_address                : extension revision 1
    VK_KHR_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_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 1
    VK_KHR_fragment_shading_rate                : 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 1
    VK_KHR_multiview                            : extension revision 1
    VK_KHR_performance_query                    : 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_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_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

VkQueueFamilyProperties:
========================
    queueProperties[0]:
    -------------------
        minImageTransferGranularity = (1,1,1)
        queueCount                  = 1
        queueFlags                  = QUEUE_GRAPHICS | QUEUE_COMPUTE | QUEUE_TRANSFER
        timestampValidBits          = 36
        present support             = true

VkPhysicalDeviceMemoryProperties:
=================================
memoryHeaps: count = 1
    memoryHeaps[0]:
        size   = 31432737792 (0x751898400) (29.27 GiB)
        budget = 28288483328 (0x696200000) (26.35 GiB)
        usage  = 0 (0x00000000) (0.00 B)
        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                             = true
    wideLines                               = true
    largePoints                             = true
    alphaToOne                              = true
    multiViewport                           = true
    samplerAnisotropy                       = true
    textureCompressionETC2                  = true
    textureCompressionASTC_LDR              = true
    textureCompressionBC                    = true
    occlusionQueryPrecise                   = true
    pipelineStatisticsQuery                 = true
    vertexPipelineStoresAndAtomics          = true
    fragmentStoresAndAtomics                = true
    shaderTessellationAndGeometryPointSize  = true
    shaderImageGatherExtended               = true
    shaderStorageImageExtendedFormats       = true
    shaderStorageImageMultisample           = false
    shaderStorageImageReadWithoutFormat     = false
    shaderStorageImageWriteWithoutFormat    = true
    shaderUniformBufferArrayDynamicIndexing = true
    shaderSampledImageArrayDynamicIndexing  = true
    shaderStorageBufferArrayDynamicIndexing = true
    shaderStorageImageArrayDynamicIndexing  = true
    shaderClipDistance                      = true
    shaderCullDistance                      = true
    shaderFloat64                           = false
    shaderInt64                             = true
    shaderInt16                             = true
    shaderResourceResidency                 = false
    shaderResourceMinLod                    = true
    sparseBinding                           = false
    sparseResidencyBuffer                   = false
    sparseResidencyImage2D                  = false
    sparseResidencyImage3D                  = false
    sparseResidency2Samples                 = false
    sparseResidency4Samples                 = false
    sparseResidency8Samples                 = false
    sparseResidency16Samples                = false
    sparseResidencyAliased                  = false
    variableMultisampleRate                 = true
    inheritedQueries                        = true

VkPhysicalDevice16BitStorageFeatures:
-------------------------------------
    storageBuffer16BitAccess           = true
    uniformAndStorageBuffer16BitAccess = true
    storagePushConstant16              = true
    storageInputOutput16               = false

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

VkPhysicalDevice8BitStorageFeatures:
------------------------------------
    storageBuffer8BitAccess           = true
    uniformAndStorageBuffer8BitAccess = true
    storagePushConstant8              = true

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

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

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

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

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

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

VkPhysicalDeviceDescriptorIndexingFeatures:
-------------------------------------------
    shaderInputAttachmentArrayDynamicIndexing          = false
    shaderUniformTexelBufferArrayDynamicIndexing       = true
    shaderStorageTexelBufferArrayDynamicIndexing       = true
    shaderUniformBufferArrayNonUniformIndexing         = true
    shaderSampledImageArrayNonUniformIndexing          = true
    shaderStorageBufferArrayNonUniformIndexing         = true
    shaderStorageImageArrayNonUniformIndexing          = true
    shaderInputAttachmentArrayNonUniformIndexing       = false
    shaderUniformTexelBufferArrayNonUniformIndexing    = true
    shaderStorageTexelBufferArrayNonUniformIndexing    = true
    descriptorBindingUniformBufferUpdateAfterBind      = true
    descriptorBindingSampledImageUpdateAfterBind       = true
    descriptorBindingStorageImageUpdateAfterBind       = true
    descriptorBindingStorageBufferUpdateAfterBind      = true
    descriptorBindingUniformTexelBufferUpdateAfterBind = true
    descriptorBindingStorageTexelBufferUpdateAfterBind = true
    descriptorBindingUpdateUnusedWhilePending          = true
    descriptorBindingPartiallyBound                    = true
    descriptorBindingVariableDescriptorCount           = true
    runtimeDescriptorArray                             = true

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

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

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

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

VkPhysicalDeviceHostQueryResetFeatures:
---------------------------------------
    hostQueryReset = true

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

VkPhysicalDeviceImagelessFramebufferFeatures:
---------------------------------------------
    imagelessFramebuffer = true

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

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

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

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

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

VkPhysicalDeviceMultiviewFeatures:
----------------------------------
    multiview                   = true
    multiviewGeometryShader     = true
    multiviewTessellationShader = true

VkPhysicalDevicePerformanceQueryFeaturesKHR:
--------------------------------------------
    performanceCounterQueryPools         = true
    performanceCounterMultipleQueryPools = false

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

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

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

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

VkPhysicalDeviceProtectedMemoryFeatures:
----------------------------------------
    protectedMemory = false

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

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

VkPhysicalDeviceSamplerYcbcrConversionFeatures:
-----------------------------------------------
    samplerYcbcrConversion = true

VkPhysicalDeviceScalarBlockLayoutFeatures:
------------------------------------------
    scalarBlockLayout = true

VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures:
----------------------------------------------------
    separateDepthStencilLayouts = true

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

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

VkPhysicalDeviceShaderAtomicInt64Features:
------------------------------------------
    shaderBufferInt64Atomics = true
    shaderSharedInt64Atomics = false

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

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

VkPhysicalDeviceShaderDrawParametersFeatures:
---------------------------------------------
    shaderDrawParameters = true

VkPhysicalDeviceShaderFloat16Int8Features:
------------------------------------------
    shaderFloat16 = true
    shaderInt8    = true

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

VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures:
----------------------------------------------------
    shaderSubgroupExtendedTypes = true

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

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

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

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

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

VkPhysicalDeviceTimelineSemaphoreFeatures:
------------------------------------------
    timelineSemaphore = true

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

VkPhysicalDeviceUniformBufferStandardLayoutFeatures:
----------------------------------------------------
    uniformBufferStandardLayout = true

VkPhysicalDeviceVariablePointersFeatures:
-----------------------------------------
    variablePointersStorageBuffer = true
    variablePointers              = true

VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT:
--------------------------------------------------
    vertexAttributeInstanceRateDivisor     = true
    vertexAttributeInstanceRateZeroDivisor = 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                           = false
    shaderFloat16                                      = true
    shaderInt8                                         = true
    descriptorIndexing                                 = true
    shaderInputAttachmentArrayDynamicIndexing          = false
    shaderUniformTexelBufferArrayDynamicIndexing       = true
    shaderStorageTexelBufferArrayDynamicIndexing       = true
    shaderUniformBufferArrayNonUniformIndexing         = true
    shaderSampledImageArrayNonUniformIndexing          = true
    shaderStorageBufferArrayNonUniformIndexing         = true
    shaderStorageImageArrayNonUniformIndexing          = true
    shaderInputAttachmentArrayNonUniformIndexing       = false
    shaderUniformTexelBufferArrayNonUniformIndexing    = true
    shaderStorageTexelBufferArrayNonUniformIndexing    = true
    descriptorBindingUniformBufferUpdateAfterBind      = true
    descriptorBindingSampledImageUpdateAfterBind       = true
    descriptorBindingStorageImageUpdateAfterBind       = true
    descriptorBindingStorageBufferUpdateAfterBind      = true
    descriptorBindingUniformTexelBufferUpdateAfterBind = true
    descriptorBindingStorageTexelBufferUpdateAfterBind = true
    descriptorBindingUpdateUnusedWhilePending          = true
    descriptorBindingPartiallyBound                    = true
    descriptorBindingVariableDescriptorCount           = true
    runtimeDescriptorArray                             = true
    samplerFilterMinmax                                = true
    scalarBlockLayout                                  = true
    imagelessFramebuffer                               = true
    uniformBufferStandardLayout                        = true
    shaderSubgroupExtendedTypes                        = true
    separateDepthStencilLayouts                        = true
    hostQueryReset                                     = true
    timelineSemaphore                                  = true
    bufferDeviceAddress                                = true
    bufferDeviceAddressCaptureReplay                   = true
    bufferDeviceAddressMultiDevice                     = false
    vulkanMemoryModel                                  = true
    vulkanMemoryModelDeviceScope                       = true
    vulkanMemoryModelAvailabilityVisibilityChains      = true
    shaderOutputViewportIndex                          = true
    shaderOutputLayer                                  = true
    subgroupBroadcastDynamicId                         = true

VkPhysicalDeviceVulkanMemoryModelFeatures:
------------------------------------------
    vulkanMemoryModel                             = true
    vulkanMemoryModelDeviceScope                  = true
    vulkanMemoryModelAvailabilityVisibilityChains = true

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

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

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

Funnily enough, the message you got is a warning for me:

WARNING: [Loader Message] Code 0 : loader_scanned_icd_add: Driver /usr/lib/libvulkan_intel.so supports Vulkan 1.2, but only supports loader interface version 4. Interface version 5 or newer required to support this version of Vulkan (Policy #LDP_DRIVER_7)

As a fix (source: https://bbs.archlinux.org/viewtopic.php?id=273946), you could try downloading the vulkan-icd-loader to version 1.2.199-2, and perhaps that would fix the problem.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2022-03-16 10:51:00

@Ethin you are right, I did mean OpenGL of course lol. I tried your suggestion, and it changed the error message a tiny bit, but still no go. Here is the updated version:

2022-03-16T08:49:05.257858Z  INFO winit::platform_impl::platform::x11::window: Guessed window scale factor: 1.0833333333333333    
2022-03-16T08:49:05.443446Z ERROR panic: thread 'main' panicked at 'Unable to find a GPU! Make sure you have installed required drivers!': /home/nolan/.cargo/registry/src/github.com-1ecc6299db9ec823/bevy_render-0.6.1/src/renderer/mod.rs:74   0: <unknown>
   1: <unknown>
   2: <unknown>
   3: <unknown>
   4: <unknown>
   5: <unknown>
   6: <unknown>
   7: <unknown>
   8: <unknown>
   9: <unknown>
  10: <unknown>
  11: <unknown>
  12: <unknown>
  13: <unknown>
  14: <unknown>
  15: __libc_start_call_main
  16: __libc_start_main@GLIBC_2.2.5
  17: <unknown>
My games: https://stormgames.wolfe.casa
Support my work on Ko-fi

2022-03-16 12:01:00

@Noaln:

I sadly, don't have Solus info to hand at all and haven't found a way to get it bar wiping Arch from my system which I don't wanna do. Well, aside from digging out my laptop that is...

@Ethin: Does the game launch for you as swell on Arch or no?

Warning: Grumpy post above
Also on Linux natively

Jace's EA PGA Tour guide for blind golfers

2022-03-16 14:58:53

OK, I'm getting a bit overwhelmed by details. Can we do this?

Please just send three bits of information:
* Distro
* Graphics hardware
* Working/not working

Trying to figure out whether this might be a software issue, and thanks for the vulkaninfo outputs, but I can't figure out where this works or doesn't on a higher level.

Thanks.