GpuZelenograd / memtest_vulkan

Vulkan compute tool for testing video memory stability
https://github.com/GpuZelenograd/memtest_vulkan/blob/main/Readme.md
zlib License
291 stars 14 forks source link

Low-memory iGPU reports "Failed determining memory budget" #22

Open galkinvv opened 10 months ago

galkinvv commented 10 months ago
          I have quite a similar error message but different system (using iGPU)

GPU: Vega 3 iGPU (R3 3200U) UMA: 512M RAM: 16GB OS: Windows 11 Latest Insider Beta

 bagusnl_reg   ~      memtest_vulkan_verbose.exe                                            in cmd at 15:16:25
https://github.com/GpuZelenograd/memtest_vulkan v0.5.0 by GpuZelenograd
To finish testing use Ctrl+C
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
Verbose feature enabled (or 'verbose' found in name). Vulkan instance 1.3.261
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
Available:
VK_LAYER_AMD_switchable_graphics, VK_LAYER_VALVE_steam_overlay, VK_LAYER_VALVE_steam_fossilize, VK_LAYER_RTSS
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
Extensions: VK_KHR_device_group_creation, VK_KHR_external_fence_capabilities, VK_KHR_external_memory_capabilities, VK_KHR_external_semaphore_capabilities, VK_KHR_get_physical_device_properties2, VK_KHR_get_surface_capabilities2, VK_KHR_surface, VK_KHR_win32_surface, VK_EXT_debug_report, VK_EXT_debug_utils, VK_EXT_swapchain_colorspace, VK_KHR_portability_enumeration, VK_LUNARG_direct_driver_loading

WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
ERROR:            loader_validate_layers: Layer 0 does not exist in the list of available layers
Not using validation layers due to ERROR_LAYER_NOT_PRESENT while getting erupt::generated::InstanceLoader in context instance with validation
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.

1: Bus=0x03:00 DevId=0x15D8 API 1.3.262  0x80011B  1GB AMD Radeon(TM) Vega 3 Graphics
2: Bus=0x03:00 DevId=0x15D8 API 1.3.262  0x80011B  1GB AMD Radeon(TM) Vega 3 Graphics
                                                   Override index to test:1
Loading memory info for selected device index 0...
heap size  0.2GB budget  0.2GB usage  0.0GB flags=DEVICE_LOCAL | MULTI_INSTANCE | MULTI_INSTANCE_KHR
heap size  7.5GB budget  7.1GB usage  0.0GB flags=(empty)
heap size  0.2GB budget  0.2GB usage  0.0GB flags=DEVICE_LOCAL | MULTI_INSTANCE | MULTI_INSTANCE_KHR
Spawned child Child { stdin: None, stdout: None, stderr: None, .. } with PID 34076
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
Verbose feature enabled (or 'verbose' found in name). Vulkan instance 1.3.261
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
Available:
VK_LAYER_AMD_switchable_graphics, VK_LAYER_VALVE_steam_overlay, VK_LAYER_VALVE_steam_fossilize, VK_LAYER_RTSS
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
Extensions: VK_KHR_device_group_creation, VK_KHR_external_fence_capabilities, VK_KHR_external_memory_capabilities, VK_KHR_external_semaphore_capabilities, VK_KHR_get_physical_device_properties2, VK_KHR_get_surface_capabilities2, VK_KHR_surface, VK_KHR_win32_surface, VK_EXT_debug_report, VK_EXT_debug_utils, VK_EXT_swapchain_colorspace, VK_KHR_portability_enumeration, VK_LUNARG_direct_driver_loading

WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
ERROR:            loader_validate_layers: Layer 0 does not exist in the list of available layers
Not using validation layers due to ERROR_LAYER_NOT_PRESENT while getting erupt::generated::InstanceLoader in context instance with validation
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
Loading memory info for selected device index 0...
heap size  0.2GB budget  0.2GB usage  0.0GB flags=DEVICE_LOCAL | MULTI_INSTANCE | MULTI_INSTANCE_KHR
heap size  7.5GB budget  7.1GB usage  0.0GB flags=(empty)
heap size  0.2GB budget  0.2GB usage  0.0GB flags=DEVICE_LOCAL | MULTI_INSTANCE | MULTI_INSTANCE_KHR
Runtime error: Failed determining memory budget
Subprocess status exit code: 68 parent_close_requested false
Using in-process testing method with small memory limit 0
Using in-process testing method
Runtime error: Failed determining memory budget

memtest_vulkan: INIT OR FIRST testing failed due to runtime error
  press any key to continue...

vulkaninfo output: https://gist.github.com/bagusnl/eb2125cf9e7c606b62c7dedd659b2753

_Originally posted by @bagusnl in https://github.com/GpuZelenograd/memtest_vulkan/issues/11#issuecomment-1823964502_

galkinvv commented 10 months ago

The memory size displayed in the GPU list id rounded up to 1GB. But according to logs and vulkaninfo the vulkan rumtime reports only 256MB usable GPU-DeviceLocal memory total. (I'm not sure what causes this, maybe the UMA: 512MB causes this).

memtest_vulkan requires at least 512MB of GPU-DeviceLocal memory to operate. So It will not support such setting. but i'll try to improve the error message.

Try incresing UMA to 1GB, it shold run fine then.

bagusnl commented 10 months ago

Increased UMA to 1GB and it still errors out, though it does give different memory limit value memtest output

 bagusnl_reg   ~    memtest_vulkan_verbose.exe                                                in cmd at 16:24:38
https://github.com/GpuZelenograd/memtest_vulkan v0.5.0 by GpuZelenograd
To finish testing use Ctrl+C
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
Verbose feature enabled (or 'verbose' found in name). Vulkan instance 1.3.261
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
Available:
VK_LAYER_AMD_switchable_graphics, VK_LAYER_VALVE_steam_overlay, VK_LAYER_VALVE_steam_fossilize, VK_LAYER_RTSS
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
Extensions: VK_KHR_device_group_creation, VK_KHR_external_fence_capabilities, VK_KHR_external_memory_capabilities, VK_KHR_external_semaphore_capabilities, VK_KHR_get_physical_device_properties2, VK_KHR_get_surface_capabilities2, VK_KHR_surface, VK_KHR_win32_surface, VK_EXT_debug_report, VK_EXT_debug_utils, VK_EXT_swapchain_colorspace, VK_KHR_portability_enumeration, VK_LUNARG_direct_driver_loading

WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
ERROR:            loader_validate_layers: Layer 0 does not exist in the list of available layers
Not using validation layers due to ERROR_LAYER_NOT_PRESENT while getting erupt::generated::InstanceLoader in context instance with validation
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.

1: Bus=0x03:00 DevId=0x15D8 API 1.3.262  0x80011B  1GB AMD Radeon(TM) Vega 3 Graphics
2: Bus=0x03:00 DevId=0x15D8 API 1.3.262  0x80011B  1GB AMD Radeon(TM) Vega 3 Graphics
                                                   Override index to test:1
Loading memory info for selected device index 0...
heap size  0.8GB budget  0.7GB usage  0.0GB flags=DEVICE_LOCAL | MULTI_INSTANCE | MULTI_INSTANCE_KHR
heap size  7.2GB budget  6.9GB usage  0.0GB flags=(empty)
heap size  0.2GB budget  0.2GB usage  0.0GB flags=DEVICE_LOCAL | MULTI_INSTANCE | MULTI_INSTANCE_KHR
Spawned child Child { stdin: None, stdout: None, stderr: None, .. } with PID 14848
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
Verbose feature enabled (or 'verbose' found in name). Vulkan instance 1.3.261
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
Available:
VK_LAYER_AMD_switchable_graphics, VK_LAYER_VALVE_steam_overlay, VK_LAYER_VALVE_steam_fossilize, VK_LAYER_RTSS
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
Extensions: VK_KHR_device_group_creation, VK_KHR_external_fence_capabilities, VK_KHR_external_memory_capabilities, VK_KHR_external_semaphore_capabilities, VK_KHR_get_physical_device_properties2, VK_KHR_get_surface_capabilities2, VK_KHR_surface, VK_KHR_win32_surface, VK_EXT_debug_report, VK_EXT_debug_utils, VK_EXT_swapchain_colorspace, VK_KHR_portability_enumeration, VK_LUNARG_direct_driver_loading

WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
ERROR:            loader_validate_layers: Layer 0 does not exist in the list of available layers
Not using validation layers due to ERROR_LAYER_NOT_PRESENT while getting erupt::generated::InstanceLoader in context instance with validation
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
Loading memory info for selected device index 0...
Runtime error: requested test size is smaller than minimum wanted
Subprocess status exit code: 68 parent_close_requested false
Using in-process testing method with small memory limit 345610624
Using in-process testing method
Runtime error: requested test size is smaller than minimum wanted

memtest_vulkan: INIT OR FIRST testing failed due to runtime error
  press any key to continue...

vulkaninfo output:

 bagusnl_reg  vulkaninfo
WARNING: [Loader Message] Code 0 : Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING: [Loader Message] Code 0 : windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
==========
VULKANINFO
==========

Vulkan Instance Version: 1.3.261

Instance Extensions: count = 13
===============================
        VK_EXT_debug_report                    : extension revision 10
        VK_EXT_debug_utils                     : extension revision 2
        VK_EXT_swapchain_colorspace            : extension revision 4
        VK_KHR_device_group_creation           : extension revision 1
        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_physical_device_properties2 : extension revision 2
        VK_KHR_get_surface_capabilities2       : extension revision 1
        VK_KHR_portability_enumeration         : extension revision 1
        VK_KHR_surface                         : extension revision 25
        VK_KHR_win32_surface                   : extension revision 6
        VK_LUNARG_direct_driver_loading        : extension revision 1

Layers: count = 4
=================
VK_LAYER_AMD_switchable_graphics (AMD switchable graphics layer) Vulkan version 1.3.262, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 2
                GPU id = 0 (AMD Radeon(TM) Vega 3 Graphics )
                Layer-Device Extensions: count = 0

                GPU id = 1 (AMD Radeon(TM) Vega 3 Graphics )
                Layer-Device Extensions: count = 0

VK_LAYER_RTSS (RTSS overlay hook bootstrap) Vulkan version 1.3.224, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 2
                GPU id = 0 (AMD Radeon(TM) Vega 3 Graphics )
                Layer-Device Extensions: count = 0

                GPU id = 1 (AMD Radeon(TM) Vega 3 Graphics )
                Layer-Device Extensions: count = 0

VK_LAYER_VALVE_steam_fossilize (Steam Pipeline Caching Layer) Vulkan version 1.3.207, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 2
                GPU id = 0 (AMD Radeon(TM) Vega 3 Graphics )
                Layer-Device Extensions: count = 0

                GPU id = 1 (AMD Radeon(TM) Vega 3 Graphics )
                Layer-Device Extensions: count = 0

VK_LAYER_VALVE_steam_overlay (Steam Overlay Layer) Vulkan version 1.3.207, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 2
                GPU id = 0 (AMD Radeon(TM) Vega 3 Graphics )
                Layer-Device Extensions: count = 0

                GPU id = 1 (AMD Radeon(TM) Vega 3 Graphics )
                Layer-Device Extensions: count = 0

Presentable Surfaces:
=====================
GPU id : 0 (AMD Radeon(TM) Vega 3 Graphics ):
        Surface type = VK_KHR_win32_surface
        Formats: count = 4
                SurfaceFormat[0]:
                        format = FORMAT_R8G8B8A8_UNORM
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[1]:
                        format = FORMAT_B8G8R8A8_UNORM
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[2]:
                        format = FORMAT_R8G8B8A8_SRGB
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[3]:
                        format = FORMAT_B8G8R8A8_SRGB
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
        Present Modes: count = 3
                PRESENT_MODE_IMMEDIATE_KHR
                PRESENT_MODE_FIFO_KHR
                PRESENT_MODE_FIFO_RELAXED_KHR
        VkSurfaceCapabilitiesKHR:
        -------------------------
                minImageCount = 2
                maxImageCount = 16
                currentExtent:
                        width  = 256
                        height = 256
                minImageExtent:
                        width  = 256
                        height = 256
                maxImageExtent:
                        width  = 256
                        height = 256
                maxImageArrayLayers = 1
                supportedTransforms: count = 1
                        SURFACE_TRANSFORM_IDENTITY_BIT_KHR
                currentTransform = SURFACE_TRANSFORM_IDENTITY_BIT_KHR
                supportedCompositeAlpha: count = 1
                        COMPOSITE_ALPHA_OPAQUE_BIT_KHR
                supportedUsageFlags: count = 6
                        IMAGE_USAGE_TRANSFER_SRC_BIT
                        IMAGE_USAGE_TRANSFER_DST_BIT
                        IMAGE_USAGE_SAMPLED_BIT
                        IMAGE_USAGE_STORAGE_BIT
                        IMAGE_USAGE_COLOR_ATTACHMENT_BIT
                        IMAGE_USAGE_INPUT_ATTACHMENT_BIT
        VkSurfaceCapabilitiesFullScreenExclusiveEXT:
        --------------------------------------------
                fullScreenExclusiveSupported = true

GPU id : 1 (AMD Radeon(TM) Vega 3 Graphics ):
        Surface type = VK_KHR_win32_surface
        Formats: count = 4
                SurfaceFormat[0]:
                        format = FORMAT_R8G8B8A8_UNORM
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[1]:
                        format = FORMAT_B8G8R8A8_UNORM
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[2]:
                        format = FORMAT_R8G8B8A8_SRGB
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[3]:
                        format = FORMAT_B8G8R8A8_SRGB
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
        Present Modes: count = 3
                PRESENT_MODE_IMMEDIATE_KHR
                PRESENT_MODE_FIFO_KHR
                PRESENT_MODE_FIFO_RELAXED_KHR
        VkSurfaceCapabilitiesKHR:
        -------------------------
                minImageCount = 2
                maxImageCount = 16
                currentExtent:
                        width  = 256
                        height = 256
                minImageExtent:
                        width  = 256
                        height = 256
                maxImageExtent:
                        width  = 256
                        height = 256
                maxImageArrayLayers = 1
                supportedTransforms: count = 1
                        SURFACE_TRANSFORM_IDENTITY_BIT_KHR
                currentTransform = SURFACE_TRANSFORM_IDENTITY_BIT_KHR
                supportedCompositeAlpha: count = 1
                        COMPOSITE_ALPHA_OPAQUE_BIT_KHR
                supportedUsageFlags: count = 6
                        IMAGE_USAGE_TRANSFER_SRC_BIT
                        IMAGE_USAGE_TRANSFER_DST_BIT
                        IMAGE_USAGE_SAMPLED_BIT
                        IMAGE_USAGE_STORAGE_BIT
                        IMAGE_USAGE_COLOR_ATTACHMENT_BIT
                        IMAGE_USAGE_INPUT_ATTACHMENT_BIT
        VkSurfaceCapabilitiesFullScreenExclusiveEXT:
        --------------------------------------------
                fullScreenExclusiveSupported = true

Device Properties and Extensions:
=================================
GPU0:
VkPhysicalDeviceProperties:
---------------------------
        apiVersion        = 1.3.262 (4206854)
        driverVersion     = 2.0.283 (8388891)
        vendorID          = 0x1002
        deviceID          = 0x15d8
        deviceType        = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
        deviceName        = AMD Radeon(TM) Vega 3 Graphics
        pipelineCacheUUID = 3a2f3e0f-35b0-5668-b0b9-710855e96c02

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

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

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

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

VkPhysicalDeviceDepthStencilResolveProperties:
----------------------------------------------
        supportedDepthResolveModes: count = 3
                RESOLVE_MODE_SAMPLE_ZERO_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

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

VkPhysicalDeviceDescriptorBufferPropertiesEXT:
----------------------------------------------
        combinedImageSamplerDescriptorSingleArray            = true
        bufferlessPushDescriptors                            = true
        allowSamplerImageViewPostSubmitCreation              = true
        descriptorBufferOffsetAlignment                      = 0x00000010
        maxDescriptorBufferBindings                          = 32
        maxResourceDescriptorBufferBindings                  = 32
        maxSamplerDescriptorBufferBindings                   = 32
        maxEmbeddedImmutableSamplerBindings                  = 32
        maxEmbeddedImmutableSamplers                         = 4294967295
        bufferCaptureReplayDescriptorDataSize                = 4
        imageCaptureReplayDescriptorDataSize                 = 4
        imageViewCaptureReplayDescriptorDataSize             = 4
        samplerCaptureReplayDescriptorDataSize               = 4
        accelerationStructureCaptureReplayDescriptorDataSize = 4
        samplerDescriptorSize                                = 16
        combinedImageSamplerDescriptorSize                   = 48
        sampledImageDescriptorSize                           = 32
        storageImageDescriptorSize                           = 32
        uniformTexelBufferDescriptorSize                     = 16
        robustUniformTexelBufferDescriptorSize               = 16
        storageTexelBufferDescriptorSize                     = 16
        robustStorageTexelBufferDescriptorSize               = 16
        uniformBufferDescriptorSize                          = 16
        robustUniformBufferDescriptorSize                    = 16
        storageBufferDescriptorSize                          = 16
        robustStorageBufferDescriptorSize                    = 16
        inputAttachmentDescriptorSize                        = 32
        accelerationStructureDescriptorSize                  = 16
        maxSamplerDescriptorBufferRange                      = 0xffffffff
        maxResourceDescriptorBufferRange                     = 0xffffffff
        samplerDescriptorBufferAddressSpaceSize              = 0xffffffff
        resourceDescriptorBufferAddressSpaceSize             = 0xffffffff
        descriptorBufferAddressSpaceSize                     = 0xffffffff

VkPhysicalDeviceDescriptorIndexingProperties:
---------------------------------------------
        maxUpdateAfterBindDescriptorsInAllPools              = 4294967295
        shaderUniformBufferArrayNonUniformIndexingNative     = false
        shaderSampledImageArrayNonUniformIndexingNative      = false
        shaderStorageBufferArrayNonUniformIndexingNative     = false
        shaderStorageImageArrayNonUniformIndexingNative      = false
        shaderInputAttachmentArrayNonUniformIndexingNative   = false
        robustBufferAccessUpdateAfterBind                    = true
        quadDivergentImplicitLod                             = false
        maxPerStageDescriptorUpdateAfterBindSamplers         = 4294967295
        maxPerStageDescriptorUpdateAfterBindUniformBuffers   = 4294967295
        maxPerStageDescriptorUpdateAfterBindStorageBuffers   = 4294967295
        maxPerStageDescriptorUpdateAfterBindSampledImages    = 4294967295
        maxPerStageDescriptorUpdateAfterBindStorageImages    = 4294967295
        maxPerStageDescriptorUpdateAfterBindInputAttachments = 4294967295
        maxPerStageUpdateAfterBindResources                  = 4294967295
        maxDescriptorSetUpdateAfterBindSamplers              = 4294967295
        maxDescriptorSetUpdateAfterBindUniformBuffers        = 4294967295
        maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = 8
        maxDescriptorSetUpdateAfterBindStorageBuffers        = 4294967295
        maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = 8
        maxDescriptorSetUpdateAfterBindSampledImages         = 4294967295
        maxDescriptorSetUpdateAfterBindStorageImages         = 4294967295
        maxDescriptorSetUpdateAfterBindInputAttachments      = 4294967295

VkPhysicalDeviceDriverProperties:
---------------------------------
        driverID        = DRIVER_ID_AMD_PROPRIETARY
        driverName      = AMD proprietary driver
        driverInfo      = 23.12.1 (AMD proprietary shader compiler)
        conformanceVersion:
                major    = 1
                minor    = 3
                subminor = 3
                patch    = 1

VkPhysicalDeviceExtendedDynamicState3PropertiesEXT:
---------------------------------------------------
        dynamicPrimitiveTopologyUnrestricted = false

VkPhysicalDeviceExternalMemoryHostPropertiesEXT:
------------------------------------------------
        minImportedHostPointerAlignment = 0x00010000

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

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

VkPhysicalDeviceIDProperties:
-----------------------------
        deviceUUID      = 00000000-0300-0000-0000-000000000000
        driverUUID      = 414d442d-5749-4e2d-4452-560000000000
        deviceLUID      = 45280100-00000000
        deviceNodeMask  = 1
        deviceLUIDValid = true

VkPhysicalDeviceInlineUniformBlockProperties:
---------------------------------------------
        maxInlineUniformBlockSize                               = 65536
        maxPerStageDescriptorInlineUniformBlocks                = 16
        maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = 16
        maxDescriptorSetInlineUniformBlocks                     = 16
        maxDescriptorSetUpdateAfterBindInlineUniformBlocks      = 16

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

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

VkPhysicalDeviceMaintenance4Properties:
---------------------------------------
        maxBufferSize = 0x80000000

VkPhysicalDeviceMultiviewProperties:
------------------------------------
        maxMultiviewViewCount     = 6
        maxMultiviewInstanceIndex = 4294967295

VkPhysicalDevicePointClippingProperties:
----------------------------------------
        pointClippingBehavior = POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES

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

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

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

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

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

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

VkPhysicalDeviceShaderIntegerDotProductProperties:
--------------------------------------------------
        integerDotProduct8BitUnsignedAccelerated                                      = false
        integerDotProduct8BitSignedAccelerated                                        = false
        integerDotProduct8BitMixedSignednessAccelerated                               = false
        integerDotProduct4x8BitPackedUnsignedAccelerated                              = false
        integerDotProduct4x8BitPackedSignedAccelerated                                = false
        integerDotProduct4x8BitPackedMixedSignednessAccelerated                       = false
        integerDotProduct16BitUnsignedAccelerated                                     = true
        integerDotProduct16BitSignedAccelerated                                       = true
        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               = true
        integerDotProductAccumulatingSaturating16BitSignedAccelerated                 = true
        integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated        = false
        integerDotProductAccumulatingSaturating32BitUnsignedAccelerated               = false
        integerDotProductAccumulatingSaturating32BitSignedAccelerated                 = false
        integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated        = false
        integerDotProductAccumulatingSaturating64BitUnsignedAccelerated               = false
        integerDotProductAccumulatingSaturating64BitSignedAccelerated                 = false
        integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated        = false

VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT:
----------------------------------------------------
        shaderModuleIdentifierAlgorithmUUID     = 414d444d-6574-726f-4861-736831323800

VkPhysicalDeviceSubgroupProperties:
-----------------------------------
        subgroupSize              = 64
        supportedStages: count = 6
                SHADER_STAGE_VERTEX_BIT
                SHADER_STAGE_TESSELLATION_CONTROL_BIT
                SHADER_STAGE_TESSELLATION_EVALUATION_BIT
                SHADER_STAGE_GEOMETRY_BIT
                SHADER_STAGE_FRAGMENT_BIT
                SHADER_STAGE_COMPUTE_BIT
        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

VkPhysicalDeviceSubgroupSizeControlProperties:
----------------------------------------------
        minSubgroupSize              = 64
        maxSubgroupSize              = 64
        maxComputeWorkgroupSubgroups = 4294967295
        requiredSubgroupSizeStages: count = 1
                SHADER_STAGE_COMPUTE_BIT

VkPhysicalDeviceTexelBufferAlignmentProperties:
-----------------------------------------------
        storageTexelBufferOffsetAlignmentBytes       = 0x00000004
        storageTexelBufferOffsetSingleTexelAlignment = true
        uniformTexelBufferOffsetAlignmentBytes       = 0x00000004
        uniformTexelBufferOffsetSingleTexelAlignment = true

VkPhysicalDeviceTimelineSemaphoreProperties:
--------------------------------------------
        maxTimelineSemaphoreValueDifference = 4294967295

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

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

VkPhysicalDeviceVulkan11Properties:
-----------------------------------
        deviceUUID                        = 00000000-0300-0000-0000-000000000000
        driverUUID                        = 414d442d-5749-4e2d-4452-560000000000
        deviceLUID                        = 45280100-00000000
        deviceNodeMask                    = 1
        deviceLUIDValid                   = true
        subgroupSize                      = 64
        subgroupSupportedStages: count = 6
                SHADER_STAGE_VERTEX_BIT
                SHADER_STAGE_TESSELLATION_CONTROL_BIT
                SHADER_STAGE_TESSELLATION_EVALUATION_BIT
                SHADER_STAGE_GEOMETRY_BIT
                SHADER_STAGE_FRAGMENT_BIT
                SHADER_STAGE_COMPUTE_BIT
        subgroupSupportedOperations: count = 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_ALL_CLIP_PLANES
        maxMultiviewViewCount             = 6
        maxMultiviewInstanceIndex         = 4294967295
        protectedNoFault                  = false
        maxPerSetDescriptors              = 4294967295
        maxMemoryAllocationSize           = 0x80000000

VkPhysicalDeviceVulkan12Properties:
-----------------------------------
        driverID                                             = DRIVER_ID_AMD_PROPRIETARY
        driverName                                           = AMD proprietary driver
        driverInfo                                           = 23.12.1 (AMD proprietary shader compiler)
        conformanceVersion:
                major    = 1
                minor    = 3
                subminor = 3
                patch    = 1
        denormBehaviorIndependence                           = SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY
        roundingModeIndependence                             = SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY
        shaderSignedZeroInfNanPreserveFloat16                = true
        shaderSignedZeroInfNanPreserveFloat32                = true
        shaderSignedZeroInfNanPreserveFloat64                = true
        shaderDenormPreserveFloat16                          = true
        shaderDenormPreserveFloat32                          = true
        shaderDenormPreserveFloat64                          = true
        shaderDenormFlushToZeroFloat16                       = true
        shaderDenormFlushToZeroFloat32                       = true
        shaderDenormFlushToZeroFloat64                       = true
        shaderRoundingModeRTEFloat16                         = true
        shaderRoundingModeRTEFloat32                         = true
        shaderRoundingModeRTEFloat64                         = true
        shaderRoundingModeRTZFloat16                         = true
        shaderRoundingModeRTZFloat32                         = true
        shaderRoundingModeRTZFloat64                         = true
        maxUpdateAfterBindDescriptorsInAllPools              = 4294967295
        shaderUniformBufferArrayNonUniformIndexingNative     = false
        shaderSampledImageArrayNonUniformIndexingNative      = false
        shaderStorageBufferArrayNonUniformIndexingNative     = false
        shaderStorageImageArrayNonUniformIndexingNative      = false
        shaderInputAttachmentArrayNonUniformIndexingNative   = false
        robustBufferAccessUpdateAfterBind                    = true
        quadDivergentImplicitLod                             = false
        maxPerStageDescriptorUpdateAfterBindSamplers         = 4294967295
        maxPerStageDescriptorUpdateAfterBindUniformBuffers   = 4294967295
        maxPerStageDescriptorUpdateAfterBindStorageBuffers   = 4294967295
        maxPerStageDescriptorUpdateAfterBindSampledImages    = 4294967295
        maxPerStageDescriptorUpdateAfterBindStorageImages    = 4294967295
        maxPerStageDescriptorUpdateAfterBindInputAttachments = 4294967295
        maxPerStageUpdateAfterBindResources                  = 4294967295
        maxDescriptorSetUpdateAfterBindSamplers              = 4294967295
        maxDescriptorSetUpdateAfterBindUniformBuffers        = 4294967295
        maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = 8
        maxDescriptorSetUpdateAfterBindStorageBuffers        = 4294967295
        maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = 8
        maxDescriptorSetUpdateAfterBindSampledImages         = 4294967295
        maxDescriptorSetUpdateAfterBindStorageImages         = 4294967295
        maxDescriptorSetUpdateAfterBindInputAttachments      = 4294967295
        supportedDepthResolveModes: count = 3
                RESOLVE_MODE_SAMPLE_ZERO_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                  = 4294967295
        framebufferIntegerColorSampleCounts: count = 4
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_2_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT

VkPhysicalDeviceVulkan13Properties:
-----------------------------------
        minSubgroupSize                                                               = 64
        maxSubgroupSize                                                               = 64
        maxComputeWorkgroupSubgroups                                                  = 4294967295
        requiredSubgroupSizeStages: count = 1
                SHADER_STAGE_COMPUTE_BIT
        maxInlineUniformBlockSize                                                     = 65536
        maxPerStageDescriptorInlineUniformBlocks                                      = 16
        maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks                       = 16
        maxDescriptorSetInlineUniformBlocks                                           = 16
        maxDescriptorSetUpdateAfterBindInlineUniformBlocks                            = 16
        maxInlineUniformTotalSize                                                     = 4294967295
        integerDotProduct8BitUnsignedAccelerated                                      = false
        integerDotProduct8BitSignedAccelerated                                        = false
        integerDotProduct8BitMixedSignednessAccelerated                               = false
        integerDotProduct4x8BitPackedUnsignedAccelerated                              = false
        integerDotProduct4x8BitPackedSignedAccelerated                                = false
        integerDotProduct4x8BitPackedMixedSignednessAccelerated                       = false
        integerDotProduct16BitUnsignedAccelerated                                     = true
        integerDotProduct16BitSignedAccelerated                                       = true
        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               = true
        integerDotProductAccumulatingSaturating16BitSignedAccelerated                 = true
        integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated        = false
        integerDotProductAccumulatingSaturating32BitUnsignedAccelerated               = false
        integerDotProductAccumulatingSaturating32BitSignedAccelerated                 = false
        integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated        = false
        integerDotProductAccumulatingSaturating64BitUnsignedAccelerated               = false
        integerDotProductAccumulatingSaturating64BitSignedAccelerated                 = false
        integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated        = false
        storageTexelBufferOffsetAlignmentBytes                                        = 0x00000004
        storageTexelBufferOffsetSingleTexelAlignment                                  = true
        uniformTexelBufferOffsetAlignmentBytes                                        = 0x00000004
        uniformTexelBufferOffsetSingleTexelAlignment                                  = true
        maxBufferSize                                                                 = 0x80000000

Device Extensions: count = 148
        VK_AMD_buffer_marker                        : extension revision 1
        VK_AMD_calibrated_timestamps                : extension revision 1
        VK_AMD_device_coherent_memory               : extension revision 1
        VK_AMD_display_native_hdr                   : extension revision 1
        VK_AMD_draw_indirect_count                  : extension revision 2
        VK_AMD_gcn_shader                           : extension revision 1
        VK_AMD_gpa_interface                        : extension revision 1
        VK_AMD_gpu_shader_half_float                : extension revision 2
        VK_AMD_gpu_shader_int16                     : extension revision 2
        VK_AMD_memory_overallocation_behavior       : extension revision 1
        VK_AMD_mixed_attachment_samples             : extension revision 1
        VK_AMD_rasterization_order                  : extension revision 1
        VK_AMD_shader_ballot                        : extension revision 1
        VK_AMD_shader_core_properties               : extension revision 2
        VK_AMD_shader_core_properties2              : extension revision 1
        VK_AMD_shader_early_and_late_fragment_tests : extension revision 1
        VK_AMD_shader_explicit_vertex_parameter     : extension revision 1
        VK_AMD_shader_fragment_mask                 : extension revision 1
        VK_AMD_shader_image_load_store_lod          : extension revision 1
        VK_AMD_shader_info                          : extension revision 1
        VK_AMD_shader_trinary_minmax                : extension revision 1
        VK_AMD_texture_gather_bias_lod              : extension revision 1
        VK_EXT_4444_formats                         : extension revision 1
        VK_EXT_attachment_feedback_loop_layout      : 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_clamp_zero_one                 : extension revision 1
        VK_EXT_depth_clip_control                   : extension revision 1
        VK_EXT_depth_clip_enable                    : extension revision 1
        VK_EXT_depth_range_unrestricted             : extension revision 1
        VK_EXT_descriptor_buffer                    : extension revision 1
        VK_EXT_descriptor_indexing                  : extension revision 2
        VK_EXT_device_address_binding_report        : extension revision 1
        VK_EXT_device_fault                         : extension revision 2
        VK_EXT_dynamic_rendering_unused_attachments : extension revision 1
        VK_EXT_extended_dynamic_state               : extension revision 1
        VK_EXT_extended_dynamic_state2              : extension revision 1
        VK_EXT_extended_dynamic_state3              : extension revision 2
        VK_EXT_external_memory_host                 : extension revision 1
        VK_EXT_full_screen_exclusive                : extension revision 4
        VK_EXT_global_priority                      : extension revision 2
        VK_EXT_global_priority_query                : extension revision 1
        VK_EXT_hdr_metadata                         : extension revision 2
        VK_EXT_host_query_reset                     : extension revision 1
        VK_EXT_image_robustness                     : extension revision 1
        VK_EXT_image_view_min_lod                   : extension revision 1
        VK_EXT_index_type_uint8                     : extension revision 1
        VK_EXT_inline_uniform_block                 : extension revision 1
        VK_EXT_line_rasterization                   : extension revision 1
        VK_EXT_load_store_op_none                   : extension revision 1
        VK_EXT_memory_budget                        : extension revision 1
        VK_EXT_memory_priority                      : extension revision 1
        VK_EXT_mutable_descriptor_type              : extension revision 1
        VK_EXT_non_seamless_cube_map                : extension revision 1
        VK_EXT_pageable_device_local_memory         : extension revision 1
        VK_EXT_pipeline_creation_cache_control      : extension revision 3
        VK_EXT_pipeline_creation_feedback           : extension revision 1
        VK_EXT_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_demote_to_helper_invocation   : extension revision 1
        VK_EXT_shader_image_atomic_int64            : extension revision 1
        VK_EXT_shader_module_identifier             : extension revision 1
        VK_EXT_shader_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_tooling_info                         : extension revision 1
        VK_EXT_transform_feedback                   : extension revision 1
        VK_EXT_vertex_attribute_divisor             : extension revision 3
        VK_EXT_vertex_input_dynamic_state           : extension revision 2
        VK_EXT_ycbcr_image_arrays                   : extension revision 1
        VK_GOOGLE_decorate_string                   : extension revision 1
        VK_GOOGLE_hlsl_functionality1               : extension revision 1
        VK_GOOGLE_user_type                         : extension revision 1
        VK_KHR_16bit_storage                        : extension revision 1
        VK_KHR_8bit_storage                         : extension revision 1
        VK_KHR_bind_memory2                         : extension revision 1
        VK_KHR_buffer_device_address                : extension revision 1
        VK_KHR_copy_commands2                       : extension revision 1
        VK_KHR_create_renderpass2                   : extension revision 1
        VK_KHR_dedicated_allocation                 : extension revision 3
        VK_KHR_depth_stencil_resolve                : extension revision 1
        VK_KHR_descriptor_update_template           : extension revision 1
        VK_KHR_device_group                         : extension revision 4
        VK_KHR_draw_indirect_count                  : extension revision 1
        VK_KHR_driver_properties                    : extension revision 1
        VK_KHR_dynamic_rendering                    : extension revision 1
        VK_KHR_external_fence                       : extension revision 1
        VK_KHR_external_fence_win32                 : extension revision 1
        VK_KHR_external_memory                      : extension revision 1
        VK_KHR_external_memory_win32                : extension revision 1
        VK_KHR_external_semaphore                   : extension revision 1
        VK_KHR_external_semaphore_win32             : extension revision 1
        VK_KHR_format_feature_flags2                : extension revision 2
        VK_KHR_fragment_shader_barycentric          : extension revision 1
        VK_KHR_get_memory_requirements2             : extension revision 1
        VK_KHR_global_priority                      : extension revision 1
        VK_KHR_image_format_list                    : extension revision 1
        VK_KHR_imageless_framebuffer                : extension revision 1
        VK_KHR_maintenance1                         : extension revision 2
        VK_KHR_maintenance2                         : extension revision 1
        VK_KHR_maintenance3                         : extension revision 1
        VK_KHR_maintenance4                         : extension revision 2
        VK_KHR_map_memory2                          : extension revision 1
        VK_KHR_multiview                            : extension revision 1
        VK_KHR_pipeline_executable_properties       : extension revision 1
        VK_KHR_pipeline_library                     : extension revision 1
        VK_KHR_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_win32_keyed_mutex                    : extension revision 1
        VK_KHR_workgroup_memory_explicit_layout     : extension revision 1
        VK_KHR_zero_initialize_workgroup_memory     : extension revision 1
        VK_VALVE_mutable_descriptor_type            : extension revision 1

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

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

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

VkPhysicalDeviceMemoryProperties:
=================================
memoryHeaps: count = 3
        memoryHeaps[0]:
                size   = 805306368 (0x30000000) (768.00 MiB)
                budget = 765041024 (0x2d999980) (729.60 MiB)
                usage  = 0 (0x00000000) (0.00 B)
                flags: count = 2
                        MEMORY_HEAP_DEVICE_LOCAL_BIT
                        MEMORY_HEAP_MULTI_INSTANCE_BIT
        memoryHeaps[1]:
                size   = 7752122368 (0x1ce100000) (7.22 GiB)
                budget = 7364516352 (0x1b6f59a00) (6.86 GiB)
                usage  = 0 (0x00000000) (0.00 B)
                flags:
                        None
        memoryHeaps[2]:
                size   = 268435456 (0x10000000) (256.00 MiB)
                budget = 255013680 (0x0f333330) (243.20 MiB)
                usage  = 0 (0x00000000) (0.00 B)
                flags: count = 2
                        MEMORY_HEAP_DEVICE_LOCAL_BIT
                        MEMORY_HEAP_MULTI_INSTANCE_BIT
memoryTypes: count = 16
        memoryTypes[0]:
                heapIndex     = 0
                propertyFlags = 0x0001: count = 1
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                color images
                                FORMAT_D16_UNORM
                                FORMAT_D32_SFLOAT
                                FORMAT_S8_UINT
                                FORMAT_D16_UNORM_S8_UINT
                                FORMAT_D32_SFLOAT_S8_UINT
                        IMAGE_TILING_LINEAR:
                                color images
        memoryTypes[1]:
                heapIndex     = 1
                propertyFlags = 0x0006: count = 2
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                color images
                                FORMAT_D16_UNORM
                                FORMAT_D32_SFLOAT
                                FORMAT_S8_UINT
                                FORMAT_D16_UNORM_S8_UINT
                                FORMAT_D32_SFLOAT_S8_UINT
                        IMAGE_TILING_LINEAR:
                                color images
        memoryTypes[2]:
                heapIndex     = 2
                propertyFlags = 0x0007: count = 3
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                color images
                                FORMAT_D16_UNORM
                                FORMAT_D32_SFLOAT
                                FORMAT_S8_UINT
                                FORMAT_D16_UNORM_S8_UINT
                                FORMAT_D32_SFLOAT_S8_UINT
                        IMAGE_TILING_LINEAR:
                                color images
        memoryTypes[3]:
                heapIndex     = 1
                propertyFlags = 0x000e: count = 3
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_HOST_CACHED_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                color images
                                FORMAT_D16_UNORM
                                FORMAT_D32_SFLOAT
                                FORMAT_S8_UINT
                                FORMAT_D16_UNORM_S8_UINT
                                FORMAT_D32_SFLOAT_S8_UINT
                        IMAGE_TILING_LINEAR:
                                color images
        memoryTypes[4]:
                heapIndex     = 0
                propertyFlags = 0x00c1: count = 3
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[5]:
                heapIndex     = 1
                propertyFlags = 0x00c6: count = 4
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[6]:
                heapIndex     = 2
                propertyFlags = 0x00c7: count = 5
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[7]:
                heapIndex     = 1
                propertyFlags = 0x00ce: count = 5
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_HOST_CACHED_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[8]:
                heapIndex     = 0
                propertyFlags = 0x0001: count = 1
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[9]:
                heapIndex     = 1
                propertyFlags = 0x0006: count = 2
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[10]:
                heapIndex     = 2
                propertyFlags = 0x0007: count = 3
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[11]:
                heapIndex     = 1
                propertyFlags = 0x000e: count = 3
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_HOST_CACHED_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[12]:
                heapIndex     = 0
                propertyFlags = 0x00c1: count = 3
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[13]:
                heapIndex     = 1
                propertyFlags = 0x00c6: count = 4
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[14]:
                heapIndex     = 2
                propertyFlags = 0x00c7: count = 5
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[15]:
                heapIndex     = 1
                propertyFlags = 0x00ce: count = 5
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_HOST_CACHED_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None

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

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

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

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

VkPhysicalDeviceAddressBindingReportFeaturesEXT:
------------------------------------------------
        reportAddressBinding = true

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

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

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

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

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

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

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

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

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

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

VkPhysicalDeviceDynamicRenderingFeatures:
-----------------------------------------
        dynamicRendering = true

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

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

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

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

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

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

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

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

VkPhysicalDeviceImageRobustnessFeatures:
----------------------------------------
        robustImageAccess = true

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

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

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

VkPhysicalDeviceInlineUniformBlockFeatures:
-------------------------------------------
        inlineUniformBlock                                 = true
        descriptorBindingInlineUniformBlockUpdateAfterBind = true

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

VkPhysicalDeviceMaintenance4Features:
-------------------------------------
        maintenance4 = true

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

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

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

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

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

VkPhysicalDevicePipelineCreationCacheControlFeatures:
-----------------------------------------------------
        pipelineCreationCacheControl = true

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

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

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

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

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

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

VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures:
-------------------------------------------------------
        shaderDemoteToHelperInvocation = true

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

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

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

VkPhysicalDeviceShaderIntegerDotProductFeatures:
------------------------------------------------
        shaderIntegerDotProduct = true

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

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

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

VkPhysicalDeviceShaderTerminateInvocationFeatures:
--------------------------------------------------
        shaderTerminateInvocation = true

VkPhysicalDeviceSubgroupSizeControlFeatures:
--------------------------------------------
        subgroupSizeControl  = true
        computeFullSubgroups = true

VkPhysicalDeviceSynchronization2Features:
-----------------------------------------
        synchronization2 = true

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

VkPhysicalDeviceTextureCompressionASTCHDRFeatures:
--------------------------------------------------
        textureCompressionASTC_HDR = false

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

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

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

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

VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT:
--------------------------------------------------
        vertexAttributeInstanceRateDivisor     = true
        vertexAttributeInstanceRateZeroDivisor = true

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

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

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

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

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

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

VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures:
------------------------------------------------------
        shaderZeroInitializeWorkgroupMemory = true

GPU1:
VkPhysicalDeviceProperties:
---------------------------
        apiVersion        = 1.3.262 (4206854)
        driverVersion     = 2.0.283 (8388891)
        vendorID          = 0x1002
        deviceID          = 0x15d8
        deviceType        = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
        deviceName        = AMD Radeon(TM) Vega 3 Graphics
        pipelineCacheUUID = 3a2f3e0f-35b0-5668-b0b9-710855e96c02

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

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

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

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

VkPhysicalDeviceDepthStencilResolveProperties:
----------------------------------------------
        supportedDepthResolveModes: count = 3
                RESOLVE_MODE_SAMPLE_ZERO_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

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

VkPhysicalDeviceDescriptorBufferPropertiesEXT:
----------------------------------------------
        combinedImageSamplerDescriptorSingleArray            = true
        bufferlessPushDescriptors                            = true
        allowSamplerImageViewPostSubmitCreation              = true
        descriptorBufferOffsetAlignment                      = 0x00000010
        maxDescriptorBufferBindings                          = 32
        maxResourceDescriptorBufferBindings                  = 32
        maxSamplerDescriptorBufferBindings                   = 32
        maxEmbeddedImmutableSamplerBindings                  = 32
        maxEmbeddedImmutableSamplers                         = 4294967295
        bufferCaptureReplayDescriptorDataSize                = 4
        imageCaptureReplayDescriptorDataSize                 = 4
        imageViewCaptureReplayDescriptorDataSize             = 4
        samplerCaptureReplayDescriptorDataSize               = 4
        accelerationStructureCaptureReplayDescriptorDataSize = 4
        samplerDescriptorSize                                = 16
        combinedImageSamplerDescriptorSize                   = 48
        sampledImageDescriptorSize                           = 32
        storageImageDescriptorSize                           = 32
        uniformTexelBufferDescriptorSize                     = 16
        robustUniformTexelBufferDescriptorSize               = 16
        storageTexelBufferDescriptorSize                     = 16
        robustStorageTexelBufferDescriptorSize               = 16
        uniformBufferDescriptorSize                          = 16
        robustUniformBufferDescriptorSize                    = 16
        storageBufferDescriptorSize                          = 16
        robustStorageBufferDescriptorSize                    = 16
        inputAttachmentDescriptorSize                        = 32
        accelerationStructureDescriptorSize                  = 16
        maxSamplerDescriptorBufferRange                      = 0xffffffff
        maxResourceDescriptorBufferRange                     = 0xffffffff
        samplerDescriptorBufferAddressSpaceSize              = 0xffffffff
        resourceDescriptorBufferAddressSpaceSize             = 0xffffffff
        descriptorBufferAddressSpaceSize                     = 0xffffffff

VkPhysicalDeviceDescriptorIndexingProperties:
---------------------------------------------
        maxUpdateAfterBindDescriptorsInAllPools              = 4294967295
        shaderUniformBufferArrayNonUniformIndexingNative     = false
        shaderSampledImageArrayNonUniformIndexingNative      = false
        shaderStorageBufferArrayNonUniformIndexingNative     = false
        shaderStorageImageArrayNonUniformIndexingNative      = false
        shaderInputAttachmentArrayNonUniformIndexingNative   = false
        robustBufferAccessUpdateAfterBind                    = true
        quadDivergentImplicitLod                             = false
        maxPerStageDescriptorUpdateAfterBindSamplers         = 4294967295
        maxPerStageDescriptorUpdateAfterBindUniformBuffers   = 4294967295
        maxPerStageDescriptorUpdateAfterBindStorageBuffers   = 4294967295
        maxPerStageDescriptorUpdateAfterBindSampledImages    = 4294967295
        maxPerStageDescriptorUpdateAfterBindStorageImages    = 4294967295
        maxPerStageDescriptorUpdateAfterBindInputAttachments = 4294967295
        maxPerStageUpdateAfterBindResources                  = 4294967295
        maxDescriptorSetUpdateAfterBindSamplers              = 4294967295
        maxDescriptorSetUpdateAfterBindUniformBuffers        = 4294967295
        maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = 8
        maxDescriptorSetUpdateAfterBindStorageBuffers        = 4294967295
        maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = 8
        maxDescriptorSetUpdateAfterBindSampledImages         = 4294967295
        maxDescriptorSetUpdateAfterBindStorageImages         = 4294967295
        maxDescriptorSetUpdateAfterBindInputAttachments      = 4294967295

VkPhysicalDeviceDriverProperties:
---------------------------------
        driverID        = DRIVER_ID_AMD_PROPRIETARY
        driverName      = AMD proprietary driver
        driverInfo      = 23.12.1 (AMD proprietary shader compiler)
        conformanceVersion:
                major    = 1
                minor    = 3
                subminor = 3
                patch    = 1

VkPhysicalDeviceExtendedDynamicState3PropertiesEXT:
---------------------------------------------------
        dynamicPrimitiveTopologyUnrestricted = false

VkPhysicalDeviceExternalMemoryHostPropertiesEXT:
------------------------------------------------
        minImportedHostPointerAlignment = 0x00010000

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

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

VkPhysicalDeviceIDProperties:
-----------------------------
        deviceUUID      = 00000000-0300-0000-0000-000000000000
        driverUUID      = 414d442d-5749-4e2d-4452-560000000000
        deviceLUID      = 45280100-00000000
        deviceNodeMask  = 1
        deviceLUIDValid = true

VkPhysicalDeviceInlineUniformBlockProperties:
---------------------------------------------
        maxInlineUniformBlockSize                               = 65536
        maxPerStageDescriptorInlineUniformBlocks                = 16
        maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = 16
        maxDescriptorSetInlineUniformBlocks                     = 16
        maxDescriptorSetUpdateAfterBindInlineUniformBlocks      = 16

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

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

VkPhysicalDeviceMaintenance4Properties:
---------------------------------------
        maxBufferSize = 0x80000000

VkPhysicalDeviceMultiviewProperties:
------------------------------------
        maxMultiviewViewCount     = 6
        maxMultiviewInstanceIndex = 4294967295

VkPhysicalDevicePointClippingProperties:
----------------------------------------
        pointClippingBehavior = POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES

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

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

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

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

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

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

VkPhysicalDeviceShaderIntegerDotProductProperties:
--------------------------------------------------
        integerDotProduct8BitUnsignedAccelerated                                      = false
        integerDotProduct8BitSignedAccelerated                                        = false
        integerDotProduct8BitMixedSignednessAccelerated                               = false
        integerDotProduct4x8BitPackedUnsignedAccelerated                              = false
        integerDotProduct4x8BitPackedSignedAccelerated                                = false
        integerDotProduct4x8BitPackedMixedSignednessAccelerated                       = false
        integerDotProduct16BitUnsignedAccelerated                                     = true
        integerDotProduct16BitSignedAccelerated                                       = true
        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               = true
        integerDotProductAccumulatingSaturating16BitSignedAccelerated                 = true
        integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated        = false
        integerDotProductAccumulatingSaturating32BitUnsignedAccelerated               = false
        integerDotProductAccumulatingSaturating32BitSignedAccelerated                 = false
        integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated        = false
        integerDotProductAccumulatingSaturating64BitUnsignedAccelerated               = false
        integerDotProductAccumulatingSaturating64BitSignedAccelerated                 = false
        integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated        = false

VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT:
----------------------------------------------------
        shaderModuleIdentifierAlgorithmUUID     = 414d444d-6574-726f-4861-736831323800

VkPhysicalDeviceSubgroupProperties:
-----------------------------------
        subgroupSize              = 64
        supportedStages: count = 6
                SHADER_STAGE_VERTEX_BIT
                SHADER_STAGE_TESSELLATION_CONTROL_BIT
                SHADER_STAGE_TESSELLATION_EVALUATION_BIT
                SHADER_STAGE_GEOMETRY_BIT
                SHADER_STAGE_FRAGMENT_BIT
                SHADER_STAGE_COMPUTE_BIT
        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

VkPhysicalDeviceSubgroupSizeControlProperties:
----------------------------------------------
        minSubgroupSize              = 64
        maxSubgroupSize              = 64
        maxComputeWorkgroupSubgroups = 4294967295
        requiredSubgroupSizeStages: count = 1
                SHADER_STAGE_COMPUTE_BIT

VkPhysicalDeviceTexelBufferAlignmentProperties:
-----------------------------------------------
        storageTexelBufferOffsetAlignmentBytes       = 0x00000004
        storageTexelBufferOffsetSingleTexelAlignment = true
        uniformTexelBufferOffsetAlignmentBytes       = 0x00000004
        uniformTexelBufferOffsetSingleTexelAlignment = true

VkPhysicalDeviceTimelineSemaphoreProperties:
--------------------------------------------
        maxTimelineSemaphoreValueDifference = 4294967295

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

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

VkPhysicalDeviceVulkan11Properties:
-----------------------------------
        deviceUUID                        = 00000000-0300-0000-0000-000000000000
        driverUUID                        = 414d442d-5749-4e2d-4452-560000000000
        deviceLUID                        = 45280100-00000000
        deviceNodeMask                    = 1
        deviceLUIDValid                   = true
        subgroupSize                      = 64
        subgroupSupportedStages: count = 6
                SHADER_STAGE_VERTEX_BIT
                SHADER_STAGE_TESSELLATION_CONTROL_BIT
                SHADER_STAGE_TESSELLATION_EVALUATION_BIT
                SHADER_STAGE_GEOMETRY_BIT
                SHADER_STAGE_FRAGMENT_BIT
                SHADER_STAGE_COMPUTE_BIT
        subgroupSupportedOperations: count = 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_ALL_CLIP_PLANES
        maxMultiviewViewCount             = 6
        maxMultiviewInstanceIndex         = 4294967295
        protectedNoFault                  = false
        maxPerSetDescriptors              = 4294967295
        maxMemoryAllocationSize           = 0x80000000

VkPhysicalDeviceVulkan12Properties:
-----------------------------------
        driverID                                             = DRIVER_ID_AMD_PROPRIETARY
        driverName                                           = AMD proprietary driver
        driverInfo                                           = 23.12.1 (AMD proprietary shader compiler)
        conformanceVersion:
                major    = 1
                minor    = 3
                subminor = 3
                patch    = 1
        denormBehaviorIndependence                           = SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY
        roundingModeIndependence                             = SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY
        shaderSignedZeroInfNanPreserveFloat16                = true
        shaderSignedZeroInfNanPreserveFloat32                = true
        shaderSignedZeroInfNanPreserveFloat64                = true
        shaderDenormPreserveFloat16                          = true
        shaderDenormPreserveFloat32                          = true
        shaderDenormPreserveFloat64                          = true
        shaderDenormFlushToZeroFloat16                       = true
        shaderDenormFlushToZeroFloat32                       = true
        shaderDenormFlushToZeroFloat64                       = true
        shaderRoundingModeRTEFloat16                         = true
        shaderRoundingModeRTEFloat32                         = true
        shaderRoundingModeRTEFloat64                         = true
        shaderRoundingModeRTZFloat16                         = true
        shaderRoundingModeRTZFloat32                         = true
        shaderRoundingModeRTZFloat64                         = true
        maxUpdateAfterBindDescriptorsInAllPools              = 4294967295
        shaderUniformBufferArrayNonUniformIndexingNative     = false
        shaderSampledImageArrayNonUniformIndexingNative      = false
        shaderStorageBufferArrayNonUniformIndexingNative     = false
        shaderStorageImageArrayNonUniformIndexingNative      = false
        shaderInputAttachmentArrayNonUniformIndexingNative   = false
        robustBufferAccessUpdateAfterBind                    = true
        quadDivergentImplicitLod                             = false
        maxPerStageDescriptorUpdateAfterBindSamplers         = 4294967295
        maxPerStageDescriptorUpdateAfterBindUniformBuffers   = 4294967295
        maxPerStageDescriptorUpdateAfterBindStorageBuffers   = 4294967295
        maxPerStageDescriptorUpdateAfterBindSampledImages    = 4294967295
        maxPerStageDescriptorUpdateAfterBindStorageImages    = 4294967295
        maxPerStageDescriptorUpdateAfterBindInputAttachments = 4294967295
        maxPerStageUpdateAfterBindResources                  = 4294967295
        maxDescriptorSetUpdateAfterBindSamplers              = 4294967295
        maxDescriptorSetUpdateAfterBindUniformBuffers        = 4294967295
        maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = 8
        maxDescriptorSetUpdateAfterBindStorageBuffers        = 4294967295
        maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = 8
        maxDescriptorSetUpdateAfterBindSampledImages         = 4294967295
        maxDescriptorSetUpdateAfterBindStorageImages         = 4294967295
        maxDescriptorSetUpdateAfterBindInputAttachments      = 4294967295
        supportedDepthResolveModes: count = 3
                RESOLVE_MODE_SAMPLE_ZERO_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                  = 4294967295
        framebufferIntegerColorSampleCounts: count = 4
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_2_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT

VkPhysicalDeviceVulkan13Properties:
-----------------------------------
        minSubgroupSize                                                               = 64
        maxSubgroupSize                                                               = 64
        maxComputeWorkgroupSubgroups                                                  = 4294967295
        requiredSubgroupSizeStages: count = 1
                SHADER_STAGE_COMPUTE_BIT
        maxInlineUniformBlockSize                                                     = 65536
        maxPerStageDescriptorInlineUniformBlocks                                      = 16
        maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks                       = 16
        maxDescriptorSetInlineUniformBlocks                                           = 16
        maxDescriptorSetUpdateAfterBindInlineUniformBlocks                            = 16
        maxInlineUniformTotalSize                                                     = 4294967295
        integerDotProduct8BitUnsignedAccelerated                                      = false
        integerDotProduct8BitSignedAccelerated                                        = false
        integerDotProduct8BitMixedSignednessAccelerated                               = false
        integerDotProduct4x8BitPackedUnsignedAccelerated                              = false
        integerDotProduct4x8BitPackedSignedAccelerated                                = false
        integerDotProduct4x8BitPackedMixedSignednessAccelerated                       = false
        integerDotProduct16BitUnsignedAccelerated                                     = true
        integerDotProduct16BitSignedAccelerated                                       = true
        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               = true
        integerDotProductAccumulatingSaturating16BitSignedAccelerated                 = true
        integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated        = false
        integerDotProductAccumulatingSaturating32BitUnsignedAccelerated               = false
        integerDotProductAccumulatingSaturating32BitSignedAccelerated                 = false
        integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated        = false
        integerDotProductAccumulatingSaturating64BitUnsignedAccelerated               = false
        integerDotProductAccumulatingSaturating64BitSignedAccelerated                 = false
        integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated        = false
        storageTexelBufferOffsetAlignmentBytes                                        = 0x00000004
        storageTexelBufferOffsetSingleTexelAlignment                                  = true
        uniformTexelBufferOffsetAlignmentBytes                                        = 0x00000004
        uniformTexelBufferOffsetSingleTexelAlignment                                  = true
        maxBufferSize                                                                 = 0x80000000

Device Extensions: count = 148
        VK_AMD_buffer_marker                        : extension revision 1
        VK_AMD_calibrated_timestamps                : extension revision 1
        VK_AMD_device_coherent_memory               : extension revision 1
        VK_AMD_display_native_hdr                   : extension revision 1
        VK_AMD_draw_indirect_count                  : extension revision 2
        VK_AMD_gcn_shader                           : extension revision 1
        VK_AMD_gpa_interface                        : extension revision 1
        VK_AMD_gpu_shader_half_float                : extension revision 2
        VK_AMD_gpu_shader_int16                     : extension revision 2
        VK_AMD_memory_overallocation_behavior       : extension revision 1
        VK_AMD_mixed_attachment_samples             : extension revision 1
        VK_AMD_rasterization_order                  : extension revision 1
        VK_AMD_shader_ballot                        : extension revision 1
        VK_AMD_shader_core_properties               : extension revision 2
        VK_AMD_shader_core_properties2              : extension revision 1
        VK_AMD_shader_early_and_late_fragment_tests : extension revision 1
        VK_AMD_shader_explicit_vertex_parameter     : extension revision 1
        VK_AMD_shader_fragment_mask                 : extension revision 1
        VK_AMD_shader_image_load_store_lod          : extension revision 1
        VK_AMD_shader_info                          : extension revision 1
        VK_AMD_shader_trinary_minmax                : extension revision 1
        VK_AMD_texture_gather_bias_lod              : extension revision 1
        VK_EXT_4444_formats                         : extension revision 1
        VK_EXT_attachment_feedback_loop_layout      : 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_clamp_zero_one                 : extension revision 1
        VK_EXT_depth_clip_control                   : extension revision 1
        VK_EXT_depth_clip_enable                    : extension revision 1
        VK_EXT_depth_range_unrestricted             : extension revision 1
        VK_EXT_descriptor_buffer                    : extension revision 1
        VK_EXT_descriptor_indexing                  : extension revision 2
        VK_EXT_device_address_binding_report        : extension revision 1
        VK_EXT_device_fault                         : extension revision 2
        VK_EXT_dynamic_rendering_unused_attachments : extension revision 1
        VK_EXT_extended_dynamic_state               : extension revision 1
        VK_EXT_extended_dynamic_state2              : extension revision 1
        VK_EXT_extended_dynamic_state3              : extension revision 2
        VK_EXT_external_memory_host                 : extension revision 1
        VK_EXT_full_screen_exclusive                : extension revision 4
        VK_EXT_global_priority                      : extension revision 2
        VK_EXT_global_priority_query                : extension revision 1
        VK_EXT_hdr_metadata                         : extension revision 2
        VK_EXT_host_query_reset                     : extension revision 1
        VK_EXT_image_robustness                     : extension revision 1
        VK_EXT_image_view_min_lod                   : extension revision 1
        VK_EXT_index_type_uint8                     : extension revision 1
        VK_EXT_inline_uniform_block                 : extension revision 1
        VK_EXT_line_rasterization                   : extension revision 1
        VK_EXT_load_store_op_none                   : extension revision 1
        VK_EXT_memory_budget                        : extension revision 1
        VK_EXT_memory_priority                      : extension revision 1
        VK_EXT_mutable_descriptor_type              : extension revision 1
        VK_EXT_non_seamless_cube_map                : extension revision 1
        VK_EXT_pageable_device_local_memory         : extension revision 1
        VK_EXT_pipeline_creation_cache_control      : extension revision 3
        VK_EXT_pipeline_creation_feedback           : extension revision 1
        VK_EXT_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_demote_to_helper_invocation   : extension revision 1
        VK_EXT_shader_image_atomic_int64            : extension revision 1
        VK_EXT_shader_module_identifier             : extension revision 1
        VK_EXT_shader_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_tooling_info                         : extension revision 1
        VK_EXT_transform_feedback                   : extension revision 1
        VK_EXT_vertex_attribute_divisor             : extension revision 3
        VK_EXT_vertex_input_dynamic_state           : extension revision 2
        VK_EXT_ycbcr_image_arrays                   : extension revision 1
        VK_GOOGLE_decorate_string                   : extension revision 1
        VK_GOOGLE_hlsl_functionality1               : extension revision 1
        VK_GOOGLE_user_type                         : extension revision 1
        VK_KHR_16bit_storage                        : extension revision 1
        VK_KHR_8bit_storage                         : extension revision 1
        VK_KHR_bind_memory2                         : extension revision 1
        VK_KHR_buffer_device_address                : extension revision 1
        VK_KHR_copy_commands2                       : extension revision 1
        VK_KHR_create_renderpass2                   : extension revision 1
        VK_KHR_dedicated_allocation                 : extension revision 3
        VK_KHR_depth_stencil_resolve                : extension revision 1
        VK_KHR_descriptor_update_template           : extension revision 1
        VK_KHR_device_group                         : extension revision 4
        VK_KHR_draw_indirect_count                  : extension revision 1
        VK_KHR_driver_properties                    : extension revision 1
        VK_KHR_dynamic_rendering                    : extension revision 1
        VK_KHR_external_fence                       : extension revision 1
        VK_KHR_external_fence_win32                 : extension revision 1
        VK_KHR_external_memory                      : extension revision 1
        VK_KHR_external_memory_win32                : extension revision 1
        VK_KHR_external_semaphore                   : extension revision 1
        VK_KHR_external_semaphore_win32             : extension revision 1
        VK_KHR_format_feature_flags2                : extension revision 2
        VK_KHR_fragment_shader_barycentric          : extension revision 1
        VK_KHR_get_memory_requirements2             : extension revision 1
        VK_KHR_global_priority                      : extension revision 1
        VK_KHR_image_format_list                    : extension revision 1
        VK_KHR_imageless_framebuffer                : extension revision 1
        VK_KHR_maintenance1                         : extension revision 2
        VK_KHR_maintenance2                         : extension revision 1
        VK_KHR_maintenance3                         : extension revision 1
        VK_KHR_maintenance4                         : extension revision 2
        VK_KHR_map_memory2                          : extension revision 1
        VK_KHR_multiview                            : extension revision 1
        VK_KHR_pipeline_executable_properties       : extension revision 1
        VK_KHR_pipeline_library                     : extension revision 1
        VK_KHR_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_win32_keyed_mutex                    : extension revision 1
        VK_KHR_workgroup_memory_explicit_layout     : extension revision 1
        VK_KHR_zero_initialize_workgroup_memory     : extension revision 1
        VK_VALVE_mutable_descriptor_type            : extension revision 1

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

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

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

VkPhysicalDeviceMemoryProperties:
=================================
memoryHeaps: count = 3
        memoryHeaps[0]:
                size   = 805306368 (0x30000000) (768.00 MiB)
                budget = 765041024 (0x2d999980) (729.60 MiB)
                usage  = 0 (0x00000000) (0.00 B)
                flags: count = 2
                        MEMORY_HEAP_DEVICE_LOCAL_BIT
                        MEMORY_HEAP_MULTI_INSTANCE_BIT
        memoryHeaps[1]:
                size   = 7752122368 (0x1ce100000) (7.22 GiB)
                budget = 7364516352 (0x1b6f59a00) (6.86 GiB)
                usage  = 0 (0x00000000) (0.00 B)
                flags:
                        None
        memoryHeaps[2]:
                size   = 268435456 (0x10000000) (256.00 MiB)
                budget = 255013680 (0x0f333330) (243.20 MiB)
                usage  = 0 (0x00000000) (0.00 B)
                flags: count = 2
                        MEMORY_HEAP_DEVICE_LOCAL_BIT
                        MEMORY_HEAP_MULTI_INSTANCE_BIT
memoryTypes: count = 16
        memoryTypes[0]:
                heapIndex     = 0
                propertyFlags = 0x0001: count = 1
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                color images
                                FORMAT_D16_UNORM
                                FORMAT_D32_SFLOAT
                                FORMAT_S8_UINT
                                FORMAT_D16_UNORM_S8_UINT
                                FORMAT_D32_SFLOAT_S8_UINT
                        IMAGE_TILING_LINEAR:
                                color images
        memoryTypes[1]:
                heapIndex     = 1
                propertyFlags = 0x0006: count = 2
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                color images
                                FORMAT_D16_UNORM
                                FORMAT_D32_SFLOAT
                                FORMAT_S8_UINT
                                FORMAT_D16_UNORM_S8_UINT
                                FORMAT_D32_SFLOAT_S8_UINT
                        IMAGE_TILING_LINEAR:
                                color images
        memoryTypes[2]:
                heapIndex     = 2
                propertyFlags = 0x0007: count = 3
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                color images
                                FORMAT_D16_UNORM
                                FORMAT_D32_SFLOAT
                                FORMAT_S8_UINT
                                FORMAT_D16_UNORM_S8_UINT
                                FORMAT_D32_SFLOAT_S8_UINT
                        IMAGE_TILING_LINEAR:
                                color images
        memoryTypes[3]:
                heapIndex     = 1
                propertyFlags = 0x000e: count = 3
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_HOST_CACHED_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                color images
                                FORMAT_D16_UNORM
                                FORMAT_D32_SFLOAT
                                FORMAT_S8_UINT
                                FORMAT_D16_UNORM_S8_UINT
                                FORMAT_D32_SFLOAT_S8_UINT
                        IMAGE_TILING_LINEAR:
                                color images
        memoryTypes[4]:
                heapIndex     = 0
                propertyFlags = 0x00c1: count = 3
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[5]:
                heapIndex     = 1
                propertyFlags = 0x00c6: count = 4
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[6]:
                heapIndex     = 2
                propertyFlags = 0x00c7: count = 5
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[7]:
                heapIndex     = 1
                propertyFlags = 0x00ce: count = 5
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_HOST_CACHED_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[8]:
                heapIndex     = 0
                propertyFlags = 0x0001: count = 1
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[9]:
                heapIndex     = 1
                propertyFlags = 0x0006: count = 2
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[10]:
                heapIndex     = 2
                propertyFlags = 0x0007: count = 3
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[11]:
                heapIndex     = 1
                propertyFlags = 0x000e: count = 3
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_HOST_CACHED_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[12]:
                heapIndex     = 0
                propertyFlags = 0x00c1: count = 3
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[13]:
                heapIndex     = 1
                propertyFlags = 0x00c6: count = 4
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[14]:
                heapIndex     = 2
                propertyFlags = 0x00c7: count = 5
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[15]:
                heapIndex     = 1
                propertyFlags = 0x00ce: count = 5
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_HOST_CACHED_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None

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

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

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

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

VkPhysicalDeviceAddressBindingReportFeaturesEXT:
------------------------------------------------
        reportAddressBinding = true

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

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

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

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

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

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

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

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

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

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

VkPhysicalDeviceDynamicRenderingFeatures:
-----------------------------------------
        dynamicRendering = true

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

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

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

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

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

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

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

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

VkPhysicalDeviceImageRobustnessFeatures:
----------------------------------------
        robustImageAccess = true

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

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

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

VkPhysicalDeviceInlineUniformBlockFeatures:
-------------------------------------------
        inlineUniformBlock                                 = true
        descriptorBindingInlineUniformBlockUpdateAfterBind = true

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

VkPhysicalDeviceMaintenance4Features:
-------------------------------------
        maintenance4 = true

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

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

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

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

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

VkPhysicalDevicePipelineCreationCacheControlFeatures:
-----------------------------------------------------
        pipelineCreationCacheControl = true

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

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

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

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

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

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

VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures:
-------------------------------------------------------
        shaderDemoteToHelperInvocation = true

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

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

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

VkPhysicalDeviceShaderIntegerDotProductFeatures:
------------------------------------------------
        shaderIntegerDotProduct = true

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

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

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

VkPhysicalDeviceShaderTerminateInvocationFeatures:
--------------------------------------------------
        shaderTerminateInvocation = true

VkPhysicalDeviceSubgroupSizeControlFeatures:
--------------------------------------------
        subgroupSizeControl  = true
        computeFullSubgroups = true

VkPhysicalDeviceSynchronization2Features:
-----------------------------------------
        synchronization2 = true

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

VkPhysicalDeviceTextureCompressionASTCHDRFeatures:
--------------------------------------------------
        textureCompressionASTC_HDR = false

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

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

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

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

VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT:
--------------------------------------------------
        vertexAttributeInstanceRateDivisor     = true
        vertexAttributeInstanceRateZeroDivisor = true

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

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

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

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

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

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

VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures:
------------------------------------------------------
        shaderZeroInitializeWorkgroupMemory = true

GPU-z Vulkan Memory screenshot image

bagusnl commented 10 months ago

Increased the UMA to 2GB and seems to work

 bagusnl_reg  memtest_vulkan_verbose.exe
https://github.com/GpuZelenograd/memtest_vulkan v0.5.0 by GpuZelenograd
To finish testing use Ctrl+C
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
Verbose feature enabled (or 'verbose' found in name). Vulkan instance 1.3.261
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
Available:
VK_LAYER_AMD_switchable_graphics, VK_LAYER_VALVE_steam_overlay, VK_LAYER_VALVE_steam_fossilize, VK_LAYER_RTSS
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
Extensions: VK_KHR_device_group_creation, VK_KHR_external_fence_capabilities, VK_KHR_external_memory_capabilities, VK_KHR_external_semaphore_capabilities, VK_KHR_get_physical_device_properties2, VK_KHR_get_surface_capabilities2, VK_KHR_surface, VK_KHR_win32_surface, VK_EXT_debug_report, VK_EXT_debug_utils, VK_EXT_swapchain_colorspace, VK_KHR_portability_enumeration, VK_LUNARG_direct_driver_loading

WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
ERROR:            loader_validate_layers: Layer 0 does not exist in the list of available layers
Not using validation layers due to ERROR_LAYER_NOT_PRESENT while getting erupt::generated::InstanceLoader in context instance with validation
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.

1: Bus=0x03:00 DevId=0x15D8 API 1.3.262  0x80011B  2GB AMD Radeon(TM) Vega 3 Graphics
2: Bus=0x03:00 DevId=0x15D8 API 1.3.262  0x80011B  2GB AMD Radeon(TM) Vega 3 Graphics
                                                   Override index to test:1
Loading memory info for selected device index 0...
heap size  1.8GB budget  1.7GB usage  0.0GB flags=DEVICE_LOCAL | MULTI_INSTANCE | MULTI_INSTANCE_KHR
heap size  6.7GB budget  6.4GB usage  0.0GB flags=(empty)
heap size  0.2GB budget  0.2GB usage  0.0GB flags=DEVICE_LOCAL | MULTI_INSTANCE | MULTI_INSTANCE_KHR
Spawned child Child { stdin: None, stdout: None, stderr: None, .. } with PID 10264
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
Verbose feature enabled (or 'verbose' found in name). Vulkan instance 1.3.261
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
Available:
VK_LAYER_AMD_switchable_graphics, VK_LAYER_VALVE_steam_overlay, VK_LAYER_VALVE_steam_fossilize, VK_LAYER_RTSS
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
Extensions: VK_KHR_device_group_creation, VK_KHR_external_fence_capabilities, VK_KHR_external_memory_capabilities, VK_KHR_external_semaphore_capabilities, VK_KHR_get_physical_device_properties2, VK_KHR_get_surface_capabilities2, VK_KHR_surface, VK_KHR_win32_surface, VK_EXT_debug_report, VK_EXT_debug_utils, VK_EXT_swapchain_colorspace, VK_KHR_portability_enumeration, VK_LUNARG_direct_driver_loading

WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
ERROR:            loader_validate_layers: Layer 0 does not exist in the list of available layers
Not using validation layers due to ERROR_LAYER_NOT_PRESENT while getting erupt::generated::InstanceLoader in context instance with validation
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
Loading memory info for selected device index 0...
 0 MemoryType { property_flags: DEVICE_LOCAL, heap_index: 0 }
 1 MemoryType { property_flags: HOST_VISIBLE | HOST_COHERENT, heap_index: 1 }
 2 MemoryType { property_flags: DEVICE_LOCAL | HOST_VISIBLE | HOST_COHERENT, heap_index: 2 }
 3 MemoryType { property_flags: HOST_VISIBLE | HOST_COHERENT | HOST_CACHED, heap_index: 1 }
 4 MemoryType { property_flags: DEVICE_LOCAL | DEVICE_COHERENT_AMD | DEVICE_UNCACHED_AMD, heap_index: 0 }
 5 MemoryType { property_flags: HOST_VISIBLE | HOST_COHERENT | DEVICE_COHERENT_AMD | DEVICE_UNCACHED_AMD, heap_index: 1 }
 6 MemoryType { property_flags: DEVICE_LOCAL | HOST_VISIBLE | HOST_COHERENT | DEVICE_COHERENT_AMD | DEVICE_UNCACHED_AMD, heap_index: 2 }
 7 MemoryType { property_flags: HOST_VISIBLE | HOST_COHERENT | HOST_CACHED | DEVICE_COHERENT_AMD | DEVICE_UNCACHED_AMD, heap_index: 1 }
 8 MemoryType { property_flags: DEVICE_LOCAL, heap_index: 0 }
 9 MemoryType { property_flags: HOST_VISIBLE | HOST_COHERENT, heap_index: 1 }
10 MemoryType { property_flags: DEVICE_LOCAL | HOST_VISIBLE | HOST_COHERENT, heap_index: 2 }
11 MemoryType { property_flags: HOST_VISIBLE | HOST_COHERENT | HOST_CACHED, heap_index: 1 }
12 MemoryType { property_flags: DEVICE_LOCAL | DEVICE_COHERENT_AMD | DEVICE_UNCACHED_AMD, heap_index: 0 }
13 MemoryType { property_flags: HOST_VISIBLE | HOST_COHERENT | DEVICE_COHERENT_AMD | DEVICE_UNCACHED_AMD, heap_index: 1 }
14 MemoryType { property_flags: DEVICE_LOCAL | HOST_VISIBLE | HOST_COHERENT | DEVICE_COHERENT_AMD | DEVICE_UNCACHED_AMD, heap_index: 2 }
15 MemoryType { property_flags: HOST_VISIBLE | HOST_COHERENT | HOST_CACHED | DEVICE_COHERENT_AMD | DEVICE_UNCACHED_AMD, heap_index: 1 }
CoherentIO memory          type 2 inside heap MemoryHeap { size: 268435456, flags: DEVICE_LOCAL | MULTI_INSTANCE | MULTI_INSTANCE_KHR }
Trying   1.272GB buffer...
Test memory size   1.3GB   type  0: MemoryType { property_flags: DEVICE_LOCAL, heap_index: 0 } MemoryHeap { size: 1879048192, flags: DEVICE_LOCAL | MULTI_INSTANCE | MULTI_INSTANCE_KHR }
Standard 5-minute test of 1: Bus=0x03:00 DevId=0x15D8 API 1.3.262  0x80011B  2GB AMD Radeon(TM) Vega 3 Graphics
      1 iteration. Passed  0.0893 seconds  written:    0.6GB  29.7GB/sec        checked:    1.2GB  18.3GB/sec
     14 iteration. Passed  1.0686 seconds  written:    8.1GB  32.6GB/sec        checked:   16.2GB  19.8GB/sec
     80 iteration. Passed  5.0307 seconds  written:   41.2GB  36.9GB/sec        checked:   82.5GB  21.1GB/sec
Subprocess status exit code: 65 parent_close_requested true

memtest_vulkan: no any errors, testing PASSed.
  press any key to continue...
  

Vulkaninfo output

 bagusnl_reg  vulkaninfo
WARNING: [Loader Message] Code 0 : Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING: [Loader Message] Code 0 : windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
==========
VULKANINFO
==========

Vulkan Instance Version: 1.3.261

Instance Extensions: count = 13
===============================
        VK_EXT_debug_report                    : extension revision 10
        VK_EXT_debug_utils                     : extension revision 2
        VK_EXT_swapchain_colorspace            : extension revision 4
        VK_KHR_device_group_creation           : extension revision 1
        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_physical_device_properties2 : extension revision 2
        VK_KHR_get_surface_capabilities2       : extension revision 1
        VK_KHR_portability_enumeration         : extension revision 1
        VK_KHR_surface                         : extension revision 25
        VK_KHR_win32_surface                   : extension revision 6
        VK_LUNARG_direct_driver_loading        : extension revision 1

Layers: count = 4
=================
VK_LAYER_AMD_switchable_graphics (AMD switchable graphics layer) Vulkan version 1.3.262, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 2
                GPU id = 0 (AMD Radeon(TM) Vega 3 Graphics )
                Layer-Device Extensions: count = 0

                GPU id = 1 (AMD Radeon(TM) Vega 3 Graphics )
                Layer-Device Extensions: count = 0

VK_LAYER_RTSS (RTSS overlay hook bootstrap) Vulkan version 1.3.224, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 2
                GPU id = 0 (AMD Radeon(TM) Vega 3 Graphics )
                Layer-Device Extensions: count = 0

                GPU id = 1 (AMD Radeon(TM) Vega 3 Graphics )
                Layer-Device Extensions: count = 0

VK_LAYER_VALVE_steam_fossilize (Steam Pipeline Caching Layer) Vulkan version 1.3.207, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 2
                GPU id = 0 (AMD Radeon(TM) Vega 3 Graphics )
                Layer-Device Extensions: count = 0

                GPU id = 1 (AMD Radeon(TM) Vega 3 Graphics )
                Layer-Device Extensions: count = 0

VK_LAYER_VALVE_steam_overlay (Steam Overlay Layer) Vulkan version 1.3.207, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 2
                GPU id = 0 (AMD Radeon(TM) Vega 3 Graphics )
                Layer-Device Extensions: count = 0

                GPU id = 1 (AMD Radeon(TM) Vega 3 Graphics )
                Layer-Device Extensions: count = 0

Presentable Surfaces:
=====================
GPU id : 0 (AMD Radeon(TM) Vega 3 Graphics ):
        Surface type = VK_KHR_win32_surface
        Formats: count = 4
                SurfaceFormat[0]:
                        format = FORMAT_R8G8B8A8_UNORM
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[1]:
                        format = FORMAT_B8G8R8A8_UNORM
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[2]:
                        format = FORMAT_R8G8B8A8_SRGB
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[3]:
                        format = FORMAT_B8G8R8A8_SRGB
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
        Present Modes: count = 3
                PRESENT_MODE_IMMEDIATE_KHR
                PRESENT_MODE_FIFO_KHR
                PRESENT_MODE_FIFO_RELAXED_KHR
        VkSurfaceCapabilitiesKHR:
        -------------------------
                minImageCount = 2
                maxImageCount = 16
                currentExtent:
                        width  = 256
                        height = 256
                minImageExtent:
                        width  = 256
                        height = 256
                maxImageExtent:
                        width  = 256
                        height = 256
                maxImageArrayLayers = 1
                supportedTransforms: count = 1
                        SURFACE_TRANSFORM_IDENTITY_BIT_KHR
                currentTransform = SURFACE_TRANSFORM_IDENTITY_BIT_KHR
                supportedCompositeAlpha: count = 1
                        COMPOSITE_ALPHA_OPAQUE_BIT_KHR
                supportedUsageFlags: count = 6
                        IMAGE_USAGE_TRANSFER_SRC_BIT
                        IMAGE_USAGE_TRANSFER_DST_BIT
                        IMAGE_USAGE_SAMPLED_BIT
                        IMAGE_USAGE_STORAGE_BIT
                        IMAGE_USAGE_COLOR_ATTACHMENT_BIT
                        IMAGE_USAGE_INPUT_ATTACHMENT_BIT
        VkSurfaceCapabilitiesFullScreenExclusiveEXT:
        --------------------------------------------
                fullScreenExclusiveSupported = true

GPU id : 1 (AMD Radeon(TM) Vega 3 Graphics ):
        Surface type = VK_KHR_win32_surface
        Formats: count = 4
                SurfaceFormat[0]:
                        format = FORMAT_R8G8B8A8_UNORM
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[1]:
                        format = FORMAT_B8G8R8A8_UNORM
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[2]:
                        format = FORMAT_R8G8B8A8_SRGB
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[3]:
                        format = FORMAT_B8G8R8A8_SRGB
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
        Present Modes: count = 3
                PRESENT_MODE_IMMEDIATE_KHR
                PRESENT_MODE_FIFO_KHR
                PRESENT_MODE_FIFO_RELAXED_KHR
        VkSurfaceCapabilitiesKHR:
        -------------------------
                minImageCount = 2
                maxImageCount = 16
                currentExtent:
                        width  = 256
                        height = 256
                minImageExtent:
                        width  = 256
                        height = 256
                maxImageExtent:
                        width  = 256
                        height = 256
                maxImageArrayLayers = 1
                supportedTransforms: count = 1
                        SURFACE_TRANSFORM_IDENTITY_BIT_KHR
                currentTransform = SURFACE_TRANSFORM_IDENTITY_BIT_KHR
                supportedCompositeAlpha: count = 1
                        COMPOSITE_ALPHA_OPAQUE_BIT_KHR
                supportedUsageFlags: count = 6
                        IMAGE_USAGE_TRANSFER_SRC_BIT
                        IMAGE_USAGE_TRANSFER_DST_BIT
                        IMAGE_USAGE_SAMPLED_BIT
                        IMAGE_USAGE_STORAGE_BIT
                        IMAGE_USAGE_COLOR_ATTACHMENT_BIT
                        IMAGE_USAGE_INPUT_ATTACHMENT_BIT
        VkSurfaceCapabilitiesFullScreenExclusiveEXT:
        --------------------------------------------
                fullScreenExclusiveSupported = true

Device Properties and Extensions:
=================================
GPU0:
VkPhysicalDeviceProperties:
---------------------------
        apiVersion        = 1.3.262 (4206854)
        driverVersion     = 2.0.283 (8388891)
        vendorID          = 0x1002
        deviceID          = 0x15d8
        deviceType        = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
        deviceName        = AMD Radeon(TM) Vega 3 Graphics
        pipelineCacheUUID = 3a2f3e0f-35b0-5668-b0b9-710855e96c02

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

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

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

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

VkPhysicalDeviceDepthStencilResolveProperties:
----------------------------------------------
        supportedDepthResolveModes: count = 3
                RESOLVE_MODE_SAMPLE_ZERO_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

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

VkPhysicalDeviceDescriptorBufferPropertiesEXT:
----------------------------------------------
        combinedImageSamplerDescriptorSingleArray            = true
        bufferlessPushDescriptors                            = true
        allowSamplerImageViewPostSubmitCreation              = true
        descriptorBufferOffsetAlignment                      = 0x00000010
        maxDescriptorBufferBindings                          = 32
        maxResourceDescriptorBufferBindings                  = 32
        maxSamplerDescriptorBufferBindings                   = 32
        maxEmbeddedImmutableSamplerBindings                  = 32
        maxEmbeddedImmutableSamplers                         = 4294967295
        bufferCaptureReplayDescriptorDataSize                = 4
        imageCaptureReplayDescriptorDataSize                 = 4
        imageViewCaptureReplayDescriptorDataSize             = 4
        samplerCaptureReplayDescriptorDataSize               = 4
        accelerationStructureCaptureReplayDescriptorDataSize = 4
        samplerDescriptorSize                                = 16
        combinedImageSamplerDescriptorSize                   = 48
        sampledImageDescriptorSize                           = 32
        storageImageDescriptorSize                           = 32
        uniformTexelBufferDescriptorSize                     = 16
        robustUniformTexelBufferDescriptorSize               = 16
        storageTexelBufferDescriptorSize                     = 16
        robustStorageTexelBufferDescriptorSize               = 16
        uniformBufferDescriptorSize                          = 16
        robustUniformBufferDescriptorSize                    = 16
        storageBufferDescriptorSize                          = 16
        robustStorageBufferDescriptorSize                    = 16
        inputAttachmentDescriptorSize                        = 32
        accelerationStructureDescriptorSize                  = 16
        maxSamplerDescriptorBufferRange                      = 0xffffffff
        maxResourceDescriptorBufferRange                     = 0xffffffff
        samplerDescriptorBufferAddressSpaceSize              = 0xffffffff
        resourceDescriptorBufferAddressSpaceSize             = 0xffffffff
        descriptorBufferAddressSpaceSize                     = 0xffffffff

VkPhysicalDeviceDescriptorIndexingProperties:
---------------------------------------------
        maxUpdateAfterBindDescriptorsInAllPools              = 4294967295
        shaderUniformBufferArrayNonUniformIndexingNative     = false
        shaderSampledImageArrayNonUniformIndexingNative      = false
        shaderStorageBufferArrayNonUniformIndexingNative     = false
        shaderStorageImageArrayNonUniformIndexingNative      = false
        shaderInputAttachmentArrayNonUniformIndexingNative   = false
        robustBufferAccessUpdateAfterBind                    = true
        quadDivergentImplicitLod                             = false
        maxPerStageDescriptorUpdateAfterBindSamplers         = 4294967295
        maxPerStageDescriptorUpdateAfterBindUniformBuffers   = 4294967295
        maxPerStageDescriptorUpdateAfterBindStorageBuffers   = 4294967295
        maxPerStageDescriptorUpdateAfterBindSampledImages    = 4294967295
        maxPerStageDescriptorUpdateAfterBindStorageImages    = 4294967295
        maxPerStageDescriptorUpdateAfterBindInputAttachments = 4294967295
        maxPerStageUpdateAfterBindResources                  = 4294967295
        maxDescriptorSetUpdateAfterBindSamplers              = 4294967295
        maxDescriptorSetUpdateAfterBindUniformBuffers        = 4294967295
        maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = 8
        maxDescriptorSetUpdateAfterBindStorageBuffers        = 4294967295
        maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = 8
        maxDescriptorSetUpdateAfterBindSampledImages         = 4294967295
        maxDescriptorSetUpdateAfterBindStorageImages         = 4294967295
        maxDescriptorSetUpdateAfterBindInputAttachments      = 4294967295

VkPhysicalDeviceDriverProperties:
---------------------------------
        driverID        = DRIVER_ID_AMD_PROPRIETARY
        driverName      = AMD proprietary driver
        driverInfo      = 23.12.1 (AMD proprietary shader compiler)
        conformanceVersion:
                major    = 1
                minor    = 3
                subminor = 3
                patch    = 1

VkPhysicalDeviceExtendedDynamicState3PropertiesEXT:
---------------------------------------------------
        dynamicPrimitiveTopologyUnrestricted = false

VkPhysicalDeviceExternalMemoryHostPropertiesEXT:
------------------------------------------------
        minImportedHostPointerAlignment = 0x00010000

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

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

VkPhysicalDeviceIDProperties:
-----------------------------
        deviceUUID      = 00000000-0300-0000-0000-000000000000
        driverUUID      = 414d442d-5749-4e2d-4452-560000000000
        deviceLUID      = c6250100-00000000
        deviceNodeMask  = 1
        deviceLUIDValid = true

VkPhysicalDeviceInlineUniformBlockProperties:
---------------------------------------------
        maxInlineUniformBlockSize                               = 65536
        maxPerStageDescriptorInlineUniformBlocks                = 16
        maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = 16
        maxDescriptorSetInlineUniformBlocks                     = 16
        maxDescriptorSetUpdateAfterBindInlineUniformBlocks      = 16

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

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

VkPhysicalDeviceMaintenance4Properties:
---------------------------------------
        maxBufferSize = 0x80000000

VkPhysicalDeviceMultiviewProperties:
------------------------------------
        maxMultiviewViewCount     = 6
        maxMultiviewInstanceIndex = 4294967295

VkPhysicalDevicePointClippingProperties:
----------------------------------------
        pointClippingBehavior = POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES

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

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

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

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

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

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

VkPhysicalDeviceShaderIntegerDotProductProperties:
--------------------------------------------------
        integerDotProduct8BitUnsignedAccelerated                                      = false
        integerDotProduct8BitSignedAccelerated                                        = false
        integerDotProduct8BitMixedSignednessAccelerated                               = false
        integerDotProduct4x8BitPackedUnsignedAccelerated                              = false
        integerDotProduct4x8BitPackedSignedAccelerated                                = false
        integerDotProduct4x8BitPackedMixedSignednessAccelerated                       = false
        integerDotProduct16BitUnsignedAccelerated                                     = true
        integerDotProduct16BitSignedAccelerated                                       = true
        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               = true
        integerDotProductAccumulatingSaturating16BitSignedAccelerated                 = true
        integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated        = false
        integerDotProductAccumulatingSaturating32BitUnsignedAccelerated               = false
        integerDotProductAccumulatingSaturating32BitSignedAccelerated                 = false
        integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated        = false
        integerDotProductAccumulatingSaturating64BitUnsignedAccelerated               = false
        integerDotProductAccumulatingSaturating64BitSignedAccelerated                 = false
        integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated        = false

VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT:
----------------------------------------------------
        shaderModuleIdentifierAlgorithmUUID     = 414d444d-6574-726f-4861-736831323800

VkPhysicalDeviceSubgroupProperties:
-----------------------------------
        subgroupSize              = 64
        supportedStages: count = 6
                SHADER_STAGE_VERTEX_BIT
                SHADER_STAGE_TESSELLATION_CONTROL_BIT
                SHADER_STAGE_TESSELLATION_EVALUATION_BIT
                SHADER_STAGE_GEOMETRY_BIT
                SHADER_STAGE_FRAGMENT_BIT
                SHADER_STAGE_COMPUTE_BIT
        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

VkPhysicalDeviceSubgroupSizeControlProperties:
----------------------------------------------
        minSubgroupSize              = 64
        maxSubgroupSize              = 64
        maxComputeWorkgroupSubgroups = 4294967295
        requiredSubgroupSizeStages: count = 1
                SHADER_STAGE_COMPUTE_BIT

VkPhysicalDeviceTexelBufferAlignmentProperties:
-----------------------------------------------
        storageTexelBufferOffsetAlignmentBytes       = 0x00000004
        storageTexelBufferOffsetSingleTexelAlignment = true
        uniformTexelBufferOffsetAlignmentBytes       = 0x00000004
        uniformTexelBufferOffsetSingleTexelAlignment = true

VkPhysicalDeviceTimelineSemaphoreProperties:
--------------------------------------------
        maxTimelineSemaphoreValueDifference = 4294967295

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

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

VkPhysicalDeviceVulkan11Properties:
-----------------------------------
        deviceUUID                        = 00000000-0300-0000-0000-000000000000
        driverUUID                        = 414d442d-5749-4e2d-4452-560000000000
        deviceLUID                        = c6250100-00000000
        deviceNodeMask                    = 1
        deviceLUIDValid                   = true
        subgroupSize                      = 64
        subgroupSupportedStages: count = 6
                SHADER_STAGE_VERTEX_BIT
                SHADER_STAGE_TESSELLATION_CONTROL_BIT
                SHADER_STAGE_TESSELLATION_EVALUATION_BIT
                SHADER_STAGE_GEOMETRY_BIT
                SHADER_STAGE_FRAGMENT_BIT
                SHADER_STAGE_COMPUTE_BIT
        subgroupSupportedOperations: count = 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_ALL_CLIP_PLANES
        maxMultiviewViewCount             = 6
        maxMultiviewInstanceIndex         = 4294967295
        protectedNoFault                  = false
        maxPerSetDescriptors              = 4294967295
        maxMemoryAllocationSize           = 0x80000000

VkPhysicalDeviceVulkan12Properties:
-----------------------------------
        driverID                                             = DRIVER_ID_AMD_PROPRIETARY
        driverName                                           = AMD proprietary driver
        driverInfo                                           = 23.12.1 (AMD proprietary shader compiler)
        conformanceVersion:
                major    = 1
                minor    = 3
                subminor = 3
                patch    = 1
        denormBehaviorIndependence                           = SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY
        roundingModeIndependence                             = SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY
        shaderSignedZeroInfNanPreserveFloat16                = true
        shaderSignedZeroInfNanPreserveFloat32                = true
        shaderSignedZeroInfNanPreserveFloat64                = true
        shaderDenormPreserveFloat16                          = true
        shaderDenormPreserveFloat32                          = true
        shaderDenormPreserveFloat64                          = true
        shaderDenormFlushToZeroFloat16                       = true
        shaderDenormFlushToZeroFloat32                       = true
        shaderDenormFlushToZeroFloat64                       = true
        shaderRoundingModeRTEFloat16                         = true
        shaderRoundingModeRTEFloat32                         = true
        shaderRoundingModeRTEFloat64                         = true
        shaderRoundingModeRTZFloat16                         = true
        shaderRoundingModeRTZFloat32                         = true
        shaderRoundingModeRTZFloat64                         = true
        maxUpdateAfterBindDescriptorsInAllPools              = 4294967295
        shaderUniformBufferArrayNonUniformIndexingNative     = false
        shaderSampledImageArrayNonUniformIndexingNative      = false
        shaderStorageBufferArrayNonUniformIndexingNative     = false
        shaderStorageImageArrayNonUniformIndexingNative      = false
        shaderInputAttachmentArrayNonUniformIndexingNative   = false
        robustBufferAccessUpdateAfterBind                    = true
        quadDivergentImplicitLod                             = false
        maxPerStageDescriptorUpdateAfterBindSamplers         = 4294967295
        maxPerStageDescriptorUpdateAfterBindUniformBuffers   = 4294967295
        maxPerStageDescriptorUpdateAfterBindStorageBuffers   = 4294967295
        maxPerStageDescriptorUpdateAfterBindSampledImages    = 4294967295
        maxPerStageDescriptorUpdateAfterBindStorageImages    = 4294967295
        maxPerStageDescriptorUpdateAfterBindInputAttachments = 4294967295
        maxPerStageUpdateAfterBindResources                  = 4294967295
        maxDescriptorSetUpdateAfterBindSamplers              = 4294967295
        maxDescriptorSetUpdateAfterBindUniformBuffers        = 4294967295
        maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = 8
        maxDescriptorSetUpdateAfterBindStorageBuffers        = 4294967295
        maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = 8
        maxDescriptorSetUpdateAfterBindSampledImages         = 4294967295
        maxDescriptorSetUpdateAfterBindStorageImages         = 4294967295
        maxDescriptorSetUpdateAfterBindInputAttachments      = 4294967295
        supportedDepthResolveModes: count = 3
                RESOLVE_MODE_SAMPLE_ZERO_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                  = 4294967295
        framebufferIntegerColorSampleCounts: count = 4
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_2_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT

VkPhysicalDeviceVulkan13Properties:
-----------------------------------
        minSubgroupSize                                                               = 64
        maxSubgroupSize                                                               = 64
        maxComputeWorkgroupSubgroups                                                  = 4294967295
        requiredSubgroupSizeStages: count = 1
                SHADER_STAGE_COMPUTE_BIT
        maxInlineUniformBlockSize                                                     = 65536
        maxPerStageDescriptorInlineUniformBlocks                                      = 16
        maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks                       = 16
        maxDescriptorSetInlineUniformBlocks                                           = 16
        maxDescriptorSetUpdateAfterBindInlineUniformBlocks                            = 16
        maxInlineUniformTotalSize                                                     = 4294967295
        integerDotProduct8BitUnsignedAccelerated                                      = false
        integerDotProduct8BitSignedAccelerated                                        = false
        integerDotProduct8BitMixedSignednessAccelerated                               = false
        integerDotProduct4x8BitPackedUnsignedAccelerated                              = false
        integerDotProduct4x8BitPackedSignedAccelerated                                = false
        integerDotProduct4x8BitPackedMixedSignednessAccelerated                       = false
        integerDotProduct16BitUnsignedAccelerated                                     = true
        integerDotProduct16BitSignedAccelerated                                       = true
        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               = true
        integerDotProductAccumulatingSaturating16BitSignedAccelerated                 = true
        integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated        = false
        integerDotProductAccumulatingSaturating32BitUnsignedAccelerated               = false
        integerDotProductAccumulatingSaturating32BitSignedAccelerated                 = false
        integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated        = false
        integerDotProductAccumulatingSaturating64BitUnsignedAccelerated               = false
        integerDotProductAccumulatingSaturating64BitSignedAccelerated                 = false
        integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated        = false
        storageTexelBufferOffsetAlignmentBytes                                        = 0x00000004
        storageTexelBufferOffsetSingleTexelAlignment                                  = true
        uniformTexelBufferOffsetAlignmentBytes                                        = 0x00000004
        uniformTexelBufferOffsetSingleTexelAlignment                                  = true
        maxBufferSize                                                                 = 0x80000000

Device Extensions: count = 148
        VK_AMD_buffer_marker                        : extension revision 1
        VK_AMD_calibrated_timestamps                : extension revision 1
        VK_AMD_device_coherent_memory               : extension revision 1
        VK_AMD_display_native_hdr                   : extension revision 1
        VK_AMD_draw_indirect_count                  : extension revision 2
        VK_AMD_gcn_shader                           : extension revision 1
        VK_AMD_gpa_interface                        : extension revision 1
        VK_AMD_gpu_shader_half_float                : extension revision 2
        VK_AMD_gpu_shader_int16                     : extension revision 2
        VK_AMD_memory_overallocation_behavior       : extension revision 1
        VK_AMD_mixed_attachment_samples             : extension revision 1
        VK_AMD_rasterization_order                  : extension revision 1
        VK_AMD_shader_ballot                        : extension revision 1
        VK_AMD_shader_core_properties               : extension revision 2
        VK_AMD_shader_core_properties2              : extension revision 1
        VK_AMD_shader_early_and_late_fragment_tests : extension revision 1
        VK_AMD_shader_explicit_vertex_parameter     : extension revision 1
        VK_AMD_shader_fragment_mask                 : extension revision 1
        VK_AMD_shader_image_load_store_lod          : extension revision 1
        VK_AMD_shader_info                          : extension revision 1
        VK_AMD_shader_trinary_minmax                : extension revision 1
        VK_AMD_texture_gather_bias_lod              : extension revision 1
        VK_EXT_4444_formats                         : extension revision 1
        VK_EXT_attachment_feedback_loop_layout      : 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_clamp_zero_one                 : extension revision 1
        VK_EXT_depth_clip_control                   : extension revision 1
        VK_EXT_depth_clip_enable                    : extension revision 1
        VK_EXT_depth_range_unrestricted             : extension revision 1
        VK_EXT_descriptor_buffer                    : extension revision 1
        VK_EXT_descriptor_indexing                  : extension revision 2
        VK_EXT_device_address_binding_report        : extension revision 1
        VK_EXT_device_fault                         : extension revision 2
        VK_EXT_dynamic_rendering_unused_attachments : extension revision 1
        VK_EXT_extended_dynamic_state               : extension revision 1
        VK_EXT_extended_dynamic_state2              : extension revision 1
        VK_EXT_extended_dynamic_state3              : extension revision 2
        VK_EXT_external_memory_host                 : extension revision 1
        VK_EXT_full_screen_exclusive                : extension revision 4
        VK_EXT_global_priority                      : extension revision 2
        VK_EXT_global_priority_query                : extension revision 1
        VK_EXT_hdr_metadata                         : extension revision 2
        VK_EXT_host_query_reset                     : extension revision 1
        VK_EXT_image_robustness                     : extension revision 1
        VK_EXT_image_view_min_lod                   : extension revision 1
        VK_EXT_index_type_uint8                     : extension revision 1
        VK_EXT_inline_uniform_block                 : extension revision 1
        VK_EXT_line_rasterization                   : extension revision 1
        VK_EXT_load_store_op_none                   : extension revision 1
        VK_EXT_memory_budget                        : extension revision 1
        VK_EXT_memory_priority                      : extension revision 1
        VK_EXT_mutable_descriptor_type              : extension revision 1
        VK_EXT_non_seamless_cube_map                : extension revision 1
        VK_EXT_pageable_device_local_memory         : extension revision 1
        VK_EXT_pipeline_creation_cache_control      : extension revision 3
        VK_EXT_pipeline_creation_feedback           : extension revision 1
        VK_EXT_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_demote_to_helper_invocation   : extension revision 1
        VK_EXT_shader_image_atomic_int64            : extension revision 1
        VK_EXT_shader_module_identifier             : extension revision 1
        VK_EXT_shader_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_tooling_info                         : extension revision 1
        VK_EXT_transform_feedback                   : extension revision 1
        VK_EXT_vertex_attribute_divisor             : extension revision 3
        VK_EXT_vertex_input_dynamic_state           : extension revision 2
        VK_EXT_ycbcr_image_arrays                   : extension revision 1
        VK_GOOGLE_decorate_string                   : extension revision 1
        VK_GOOGLE_hlsl_functionality1               : extension revision 1
        VK_GOOGLE_user_type                         : extension revision 1
        VK_KHR_16bit_storage                        : extension revision 1
        VK_KHR_8bit_storage                         : extension revision 1
        VK_KHR_bind_memory2                         : extension revision 1
        VK_KHR_buffer_device_address                : extension revision 1
        VK_KHR_copy_commands2                       : extension revision 1
        VK_KHR_create_renderpass2                   : extension revision 1
        VK_KHR_dedicated_allocation                 : extension revision 3
        VK_KHR_depth_stencil_resolve                : extension revision 1
        VK_KHR_descriptor_update_template           : extension revision 1
        VK_KHR_device_group                         : extension revision 4
        VK_KHR_draw_indirect_count                  : extension revision 1
        VK_KHR_driver_properties                    : extension revision 1
        VK_KHR_dynamic_rendering                    : extension revision 1
        VK_KHR_external_fence                       : extension revision 1
        VK_KHR_external_fence_win32                 : extension revision 1
        VK_KHR_external_memory                      : extension revision 1
        VK_KHR_external_memory_win32                : extension revision 1
        VK_KHR_external_semaphore                   : extension revision 1
        VK_KHR_external_semaphore_win32             : extension revision 1
        VK_KHR_format_feature_flags2                : extension revision 2
        VK_KHR_fragment_shader_barycentric          : extension revision 1
        VK_KHR_get_memory_requirements2             : extension revision 1
        VK_KHR_global_priority                      : extension revision 1
        VK_KHR_image_format_list                    : extension revision 1
        VK_KHR_imageless_framebuffer                : extension revision 1
        VK_KHR_maintenance1                         : extension revision 2
        VK_KHR_maintenance2                         : extension revision 1
        VK_KHR_maintenance3                         : extension revision 1
        VK_KHR_maintenance4                         : extension revision 2
        VK_KHR_map_memory2                          : extension revision 1
        VK_KHR_multiview                            : extension revision 1
        VK_KHR_pipeline_executable_properties       : extension revision 1
        VK_KHR_pipeline_library                     : extension revision 1
        VK_KHR_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_win32_keyed_mutex                    : extension revision 1
        VK_KHR_workgroup_memory_explicit_layout     : extension revision 1
        VK_KHR_zero_initialize_workgroup_memory     : extension revision 1
        VK_VALVE_mutable_descriptor_type            : extension revision 1

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

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

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

VkPhysicalDeviceMemoryProperties:
=================================
memoryHeaps: count = 3
        memoryHeaps[0]:
                size   = 1879048192 (0x70000000) (1.75 GiB)
                budget = 1785095808 (0x6a666680) (1.66 GiB)
                usage  = 0 (0x00000000) (0.00 B)
                flags: count = 2
                        MEMORY_HEAP_DEVICE_LOCAL_BIT
                        MEMORY_HEAP_MULTI_INSTANCE_BIT
        memoryHeaps[1]:
                size   = 7215251456 (0x1ae100000) (6.72 GiB)
                budget = 6854488576 (0x1988f3200) (6.38 GiB)
                usage  = 0 (0x00000000) (0.00 B)
                flags:
                        None
        memoryHeaps[2]:
                size   = 268435456 (0x10000000) (256.00 MiB)
                budget = 255013680 (0x0f333330) (243.20 MiB)
                usage  = 0 (0x00000000) (0.00 B)
                flags: count = 2
                        MEMORY_HEAP_DEVICE_LOCAL_BIT
                        MEMORY_HEAP_MULTI_INSTANCE_BIT
memoryTypes: count = 16
        memoryTypes[0]:
                heapIndex     = 0
                propertyFlags = 0x0001: count = 1
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                color images
                                FORMAT_D16_UNORM
                                FORMAT_D32_SFLOAT
                                FORMAT_S8_UINT
                                FORMAT_D16_UNORM_S8_UINT
                                FORMAT_D32_SFLOAT_S8_UINT
                        IMAGE_TILING_LINEAR:
                                color images
        memoryTypes[1]:
                heapIndex     = 1
                propertyFlags = 0x0006: count = 2
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                color images
                                FORMAT_D16_UNORM
                                FORMAT_D32_SFLOAT
                                FORMAT_S8_UINT
                                FORMAT_D16_UNORM_S8_UINT
                                FORMAT_D32_SFLOAT_S8_UINT
                        IMAGE_TILING_LINEAR:
                                color images
        memoryTypes[2]:
                heapIndex     = 2
                propertyFlags = 0x0007: count = 3
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                color images
                                FORMAT_D16_UNORM
                                FORMAT_D32_SFLOAT
                                FORMAT_S8_UINT
                                FORMAT_D16_UNORM_S8_UINT
                                FORMAT_D32_SFLOAT_S8_UINT
                        IMAGE_TILING_LINEAR:
                                color images
        memoryTypes[3]:
                heapIndex     = 1
                propertyFlags = 0x000e: count = 3
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_HOST_CACHED_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                color images
                                FORMAT_D16_UNORM
                                FORMAT_D32_SFLOAT
                                FORMAT_S8_UINT
                                FORMAT_D16_UNORM_S8_UINT
                                FORMAT_D32_SFLOAT_S8_UINT
                        IMAGE_TILING_LINEAR:
                                color images
        memoryTypes[4]:
                heapIndex     = 0
                propertyFlags = 0x00c1: count = 3
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[5]:
                heapIndex     = 1
                propertyFlags = 0x00c6: count = 4
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[6]:
                heapIndex     = 2
                propertyFlags = 0x00c7: count = 5
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[7]:
                heapIndex     = 1
                propertyFlags = 0x00ce: count = 5
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_HOST_CACHED_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[8]:
                heapIndex     = 0
                propertyFlags = 0x0001: count = 1
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[9]:
                heapIndex     = 1
                propertyFlags = 0x0006: count = 2
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[10]:
                heapIndex     = 2
                propertyFlags = 0x0007: count = 3
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[11]:
                heapIndex     = 1
                propertyFlags = 0x000e: count = 3
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_HOST_CACHED_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[12]:
                heapIndex     = 0
                propertyFlags = 0x00c1: count = 3
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[13]:
                heapIndex     = 1
                propertyFlags = 0x00c6: count = 4
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[14]:
                heapIndex     = 2
                propertyFlags = 0x00c7: count = 5
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[15]:
                heapIndex     = 1
                propertyFlags = 0x00ce: count = 5
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_HOST_CACHED_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None

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

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

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

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

VkPhysicalDeviceAddressBindingReportFeaturesEXT:
------------------------------------------------
        reportAddressBinding = true

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

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

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

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

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

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

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

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

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

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

VkPhysicalDeviceDynamicRenderingFeatures:
-----------------------------------------
        dynamicRendering = true

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

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

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

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

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

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

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

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

VkPhysicalDeviceImageRobustnessFeatures:
----------------------------------------
        robustImageAccess = true

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

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

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

VkPhysicalDeviceInlineUniformBlockFeatures:
-------------------------------------------
        inlineUniformBlock                                 = true
        descriptorBindingInlineUniformBlockUpdateAfterBind = true

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

VkPhysicalDeviceMaintenance4Features:
-------------------------------------
        maintenance4 = true

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

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

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

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

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

VkPhysicalDevicePipelineCreationCacheControlFeatures:
-----------------------------------------------------
        pipelineCreationCacheControl = true

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

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

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

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

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

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

VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures:
-------------------------------------------------------
        shaderDemoteToHelperInvocation = true

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

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

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

VkPhysicalDeviceShaderIntegerDotProductFeatures:
------------------------------------------------
        shaderIntegerDotProduct = true

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

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

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

VkPhysicalDeviceShaderTerminateInvocationFeatures:
--------------------------------------------------
        shaderTerminateInvocation = true

VkPhysicalDeviceSubgroupSizeControlFeatures:
--------------------------------------------
        subgroupSizeControl  = true
        computeFullSubgroups = true

VkPhysicalDeviceSynchronization2Features:
-----------------------------------------
        synchronization2 = true

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

VkPhysicalDeviceTextureCompressionASTCHDRFeatures:
--------------------------------------------------
        textureCompressionASTC_HDR = false

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

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

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

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

VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT:
--------------------------------------------------
        vertexAttributeInstanceRateDivisor     = true
        vertexAttributeInstanceRateZeroDivisor = true

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

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

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

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

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

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

VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures:
------------------------------------------------------
        shaderZeroInitializeWorkgroupMemory = true

GPU1:
VkPhysicalDeviceProperties:
---------------------------
        apiVersion        = 1.3.262 (4206854)
        driverVersion     = 2.0.283 (8388891)
        vendorID          = 0x1002
        deviceID          = 0x15d8
        deviceType        = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
        deviceName        = AMD Radeon(TM) Vega 3 Graphics
        pipelineCacheUUID = 3a2f3e0f-35b0-5668-b0b9-710855e96c02

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

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

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

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

VkPhysicalDeviceDepthStencilResolveProperties:
----------------------------------------------
        supportedDepthResolveModes: count = 3
                RESOLVE_MODE_SAMPLE_ZERO_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

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

VkPhysicalDeviceDescriptorBufferPropertiesEXT:
----------------------------------------------
        combinedImageSamplerDescriptorSingleArray            = true
        bufferlessPushDescriptors                            = true
        allowSamplerImageViewPostSubmitCreation              = true
        descriptorBufferOffsetAlignment                      = 0x00000010
        maxDescriptorBufferBindings                          = 32
        maxResourceDescriptorBufferBindings                  = 32
        maxSamplerDescriptorBufferBindings                   = 32
        maxEmbeddedImmutableSamplerBindings                  = 32
        maxEmbeddedImmutableSamplers                         = 4294967295
        bufferCaptureReplayDescriptorDataSize                = 4
        imageCaptureReplayDescriptorDataSize                 = 4
        imageViewCaptureReplayDescriptorDataSize             = 4
        samplerCaptureReplayDescriptorDataSize               = 4
        accelerationStructureCaptureReplayDescriptorDataSize = 4
        samplerDescriptorSize                                = 16
        combinedImageSamplerDescriptorSize                   = 48
        sampledImageDescriptorSize                           = 32
        storageImageDescriptorSize                           = 32
        uniformTexelBufferDescriptorSize                     = 16
        robustUniformTexelBufferDescriptorSize               = 16
        storageTexelBufferDescriptorSize                     = 16
        robustStorageTexelBufferDescriptorSize               = 16
        uniformBufferDescriptorSize                          = 16
        robustUniformBufferDescriptorSize                    = 16
        storageBufferDescriptorSize                          = 16
        robustStorageBufferDescriptorSize                    = 16
        inputAttachmentDescriptorSize                        = 32
        accelerationStructureDescriptorSize                  = 16
        maxSamplerDescriptorBufferRange                      = 0xffffffff
        maxResourceDescriptorBufferRange                     = 0xffffffff
        samplerDescriptorBufferAddressSpaceSize              = 0xffffffff
        resourceDescriptorBufferAddressSpaceSize             = 0xffffffff
        descriptorBufferAddressSpaceSize                     = 0xffffffff

VkPhysicalDeviceDescriptorIndexingProperties:
---------------------------------------------
        maxUpdateAfterBindDescriptorsInAllPools              = 4294967295
        shaderUniformBufferArrayNonUniformIndexingNative     = false
        shaderSampledImageArrayNonUniformIndexingNative      = false
        shaderStorageBufferArrayNonUniformIndexingNative     = false
        shaderStorageImageArrayNonUniformIndexingNative      = false
        shaderInputAttachmentArrayNonUniformIndexingNative   = false
        robustBufferAccessUpdateAfterBind                    = true
        quadDivergentImplicitLod                             = false
        maxPerStageDescriptorUpdateAfterBindSamplers         = 4294967295
        maxPerStageDescriptorUpdateAfterBindUniformBuffers   = 4294967295
        maxPerStageDescriptorUpdateAfterBindStorageBuffers   = 4294967295
        maxPerStageDescriptorUpdateAfterBindSampledImages    = 4294967295
        maxPerStageDescriptorUpdateAfterBindStorageImages    = 4294967295
        maxPerStageDescriptorUpdateAfterBindInputAttachments = 4294967295
        maxPerStageUpdateAfterBindResources                  = 4294967295
        maxDescriptorSetUpdateAfterBindSamplers              = 4294967295
        maxDescriptorSetUpdateAfterBindUniformBuffers        = 4294967295
        maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = 8
        maxDescriptorSetUpdateAfterBindStorageBuffers        = 4294967295
        maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = 8
        maxDescriptorSetUpdateAfterBindSampledImages         = 4294967295
        maxDescriptorSetUpdateAfterBindStorageImages         = 4294967295
        maxDescriptorSetUpdateAfterBindInputAttachments      = 4294967295

VkPhysicalDeviceDriverProperties:
---------------------------------
        driverID        = DRIVER_ID_AMD_PROPRIETARY
        driverName      = AMD proprietary driver
        driverInfo      = 23.12.1 (AMD proprietary shader compiler)
        conformanceVersion:
                major    = 1
                minor    = 3
                subminor = 3
                patch    = 1

VkPhysicalDeviceExtendedDynamicState3PropertiesEXT:
---------------------------------------------------
        dynamicPrimitiveTopologyUnrestricted = false

VkPhysicalDeviceExternalMemoryHostPropertiesEXT:
------------------------------------------------
        minImportedHostPointerAlignment = 0x00010000

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

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

VkPhysicalDeviceIDProperties:
-----------------------------
        deviceUUID      = 00000000-0300-0000-0000-000000000000
        driverUUID      = 414d442d-5749-4e2d-4452-560000000000
        deviceLUID      = c6250100-00000000
        deviceNodeMask  = 1
        deviceLUIDValid = true

VkPhysicalDeviceInlineUniformBlockProperties:
---------------------------------------------
        maxInlineUniformBlockSize                               = 65536
        maxPerStageDescriptorInlineUniformBlocks                = 16
        maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = 16
        maxDescriptorSetInlineUniformBlocks                     = 16
        maxDescriptorSetUpdateAfterBindInlineUniformBlocks      = 16

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

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

VkPhysicalDeviceMaintenance4Properties:
---------------------------------------
        maxBufferSize = 0x80000000

VkPhysicalDeviceMultiviewProperties:
------------------------------------
        maxMultiviewViewCount     = 6
        maxMultiviewInstanceIndex = 4294967295

VkPhysicalDevicePointClippingProperties:
----------------------------------------
        pointClippingBehavior = POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES

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

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

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

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

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

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

VkPhysicalDeviceShaderIntegerDotProductProperties:
--------------------------------------------------
        integerDotProduct8BitUnsignedAccelerated                                      = false
        integerDotProduct8BitSignedAccelerated                                        = false
        integerDotProduct8BitMixedSignednessAccelerated                               = false
        integerDotProduct4x8BitPackedUnsignedAccelerated                              = false
        integerDotProduct4x8BitPackedSignedAccelerated                                = false
        integerDotProduct4x8BitPackedMixedSignednessAccelerated                       = false
        integerDotProduct16BitUnsignedAccelerated                                     = true
        integerDotProduct16BitSignedAccelerated                                       = true
        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               = true
        integerDotProductAccumulatingSaturating16BitSignedAccelerated                 = true
        integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated        = false
        integerDotProductAccumulatingSaturating32BitUnsignedAccelerated               = false
        integerDotProductAccumulatingSaturating32BitSignedAccelerated                 = false
        integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated        = false
        integerDotProductAccumulatingSaturating64BitUnsignedAccelerated               = false
        integerDotProductAccumulatingSaturating64BitSignedAccelerated                 = false
        integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated        = false

VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT:
----------------------------------------------------
        shaderModuleIdentifierAlgorithmUUID     = 414d444d-6574-726f-4861-736831323800

VkPhysicalDeviceSubgroupProperties:
-----------------------------------
        subgroupSize              = 64
        supportedStages: count = 6
                SHADER_STAGE_VERTEX_BIT
                SHADER_STAGE_TESSELLATION_CONTROL_BIT
                SHADER_STAGE_TESSELLATION_EVALUATION_BIT
                SHADER_STAGE_GEOMETRY_BIT
                SHADER_STAGE_FRAGMENT_BIT
                SHADER_STAGE_COMPUTE_BIT
        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

VkPhysicalDeviceSubgroupSizeControlProperties:
----------------------------------------------
        minSubgroupSize              = 64
        maxSubgroupSize              = 64
        maxComputeWorkgroupSubgroups = 4294967295
        requiredSubgroupSizeStages: count = 1
                SHADER_STAGE_COMPUTE_BIT

VkPhysicalDeviceTexelBufferAlignmentProperties:
-----------------------------------------------
        storageTexelBufferOffsetAlignmentBytes       = 0x00000004
        storageTexelBufferOffsetSingleTexelAlignment = true
        uniformTexelBufferOffsetAlignmentBytes       = 0x00000004
        uniformTexelBufferOffsetSingleTexelAlignment = true

VkPhysicalDeviceTimelineSemaphoreProperties:
--------------------------------------------
        maxTimelineSemaphoreValueDifference = 4294967295

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

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

VkPhysicalDeviceVulkan11Properties:
-----------------------------------
        deviceUUID                        = 00000000-0300-0000-0000-000000000000
        driverUUID                        = 414d442d-5749-4e2d-4452-560000000000
        deviceLUID                        = c6250100-00000000
        deviceNodeMask                    = 1
        deviceLUIDValid                   = true
        subgroupSize                      = 64
        subgroupSupportedStages: count = 6
                SHADER_STAGE_VERTEX_BIT
                SHADER_STAGE_TESSELLATION_CONTROL_BIT
                SHADER_STAGE_TESSELLATION_EVALUATION_BIT
                SHADER_STAGE_GEOMETRY_BIT
                SHADER_STAGE_FRAGMENT_BIT
                SHADER_STAGE_COMPUTE_BIT
        subgroupSupportedOperations: count = 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_ALL_CLIP_PLANES
        maxMultiviewViewCount             = 6
        maxMultiviewInstanceIndex         = 4294967295
        protectedNoFault                  = false
        maxPerSetDescriptors              = 4294967295
        maxMemoryAllocationSize           = 0x80000000

VkPhysicalDeviceVulkan12Properties:
-----------------------------------
        driverID                                             = DRIVER_ID_AMD_PROPRIETARY
        driverName                                           = AMD proprietary driver
        driverInfo                                           = 23.12.1 (AMD proprietary shader compiler)
        conformanceVersion:
                major    = 1
                minor    = 3
                subminor = 3
                patch    = 1
        denormBehaviorIndependence                           = SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY
        roundingModeIndependence                             = SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY
        shaderSignedZeroInfNanPreserveFloat16                = true
        shaderSignedZeroInfNanPreserveFloat32                = true
        shaderSignedZeroInfNanPreserveFloat64                = true
        shaderDenormPreserveFloat16                          = true
        shaderDenormPreserveFloat32                          = true
        shaderDenormPreserveFloat64                          = true
        shaderDenormFlushToZeroFloat16                       = true
        shaderDenormFlushToZeroFloat32                       = true
        shaderDenormFlushToZeroFloat64                       = true
        shaderRoundingModeRTEFloat16                         = true
        shaderRoundingModeRTEFloat32                         = true
        shaderRoundingModeRTEFloat64                         = true
        shaderRoundingModeRTZFloat16                         = true
        shaderRoundingModeRTZFloat32                         = true
        shaderRoundingModeRTZFloat64                         = true
        maxUpdateAfterBindDescriptorsInAllPools              = 4294967295
        shaderUniformBufferArrayNonUniformIndexingNative     = false
        shaderSampledImageArrayNonUniformIndexingNative      = false
        shaderStorageBufferArrayNonUniformIndexingNative     = false
        shaderStorageImageArrayNonUniformIndexingNative      = false
        shaderInputAttachmentArrayNonUniformIndexingNative   = false
        robustBufferAccessUpdateAfterBind                    = true
        quadDivergentImplicitLod                             = false
        maxPerStageDescriptorUpdateAfterBindSamplers         = 4294967295
        maxPerStageDescriptorUpdateAfterBindUniformBuffers   = 4294967295
        maxPerStageDescriptorUpdateAfterBindStorageBuffers   = 4294967295
        maxPerStageDescriptorUpdateAfterBindSampledImages    = 4294967295
        maxPerStageDescriptorUpdateAfterBindStorageImages    = 4294967295
        maxPerStageDescriptorUpdateAfterBindInputAttachments = 4294967295
        maxPerStageUpdateAfterBindResources                  = 4294967295
        maxDescriptorSetUpdateAfterBindSamplers              = 4294967295
        maxDescriptorSetUpdateAfterBindUniformBuffers        = 4294967295
        maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = 8
        maxDescriptorSetUpdateAfterBindStorageBuffers        = 4294967295
        maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = 8
        maxDescriptorSetUpdateAfterBindSampledImages         = 4294967295
        maxDescriptorSetUpdateAfterBindStorageImages         = 4294967295
        maxDescriptorSetUpdateAfterBindInputAttachments      = 4294967295
        supportedDepthResolveModes: count = 3
                RESOLVE_MODE_SAMPLE_ZERO_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                  = 4294967295
        framebufferIntegerColorSampleCounts: count = 4
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_2_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT

VkPhysicalDeviceVulkan13Properties:
-----------------------------------
        minSubgroupSize                                                               = 64
        maxSubgroupSize                                                               = 64
        maxComputeWorkgroupSubgroups                                                  = 4294967295
        requiredSubgroupSizeStages: count = 1
                SHADER_STAGE_COMPUTE_BIT
        maxInlineUniformBlockSize                                                     = 65536
        maxPerStageDescriptorInlineUniformBlocks                                      = 16
        maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks                       = 16
        maxDescriptorSetInlineUniformBlocks                                           = 16
        maxDescriptorSetUpdateAfterBindInlineUniformBlocks                            = 16
        maxInlineUniformTotalSize                                                     = 4294967295
        integerDotProduct8BitUnsignedAccelerated                                      = false
        integerDotProduct8BitSignedAccelerated                                        = false
        integerDotProduct8BitMixedSignednessAccelerated                               = false
        integerDotProduct4x8BitPackedUnsignedAccelerated                              = false
        integerDotProduct4x8BitPackedSignedAccelerated                                = false
        integerDotProduct4x8BitPackedMixedSignednessAccelerated                       = false
        integerDotProduct16BitUnsignedAccelerated                                     = true
        integerDotProduct16BitSignedAccelerated                                       = true
        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               = true
        integerDotProductAccumulatingSaturating16BitSignedAccelerated                 = true
        integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated        = false
        integerDotProductAccumulatingSaturating32BitUnsignedAccelerated               = false
        integerDotProductAccumulatingSaturating32BitSignedAccelerated                 = false
        integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated        = false
        integerDotProductAccumulatingSaturating64BitUnsignedAccelerated               = false
        integerDotProductAccumulatingSaturating64BitSignedAccelerated                 = false
        integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated        = false
        storageTexelBufferOffsetAlignmentBytes                                        = 0x00000004
        storageTexelBufferOffsetSingleTexelAlignment                                  = true
        uniformTexelBufferOffsetAlignmentBytes                                        = 0x00000004
        uniformTexelBufferOffsetSingleTexelAlignment                                  = true
        maxBufferSize                                                                 = 0x80000000

Device Extensions: count = 148
        VK_AMD_buffer_marker                        : extension revision 1
        VK_AMD_calibrated_timestamps                : extension revision 1
        VK_AMD_device_coherent_memory               : extension revision 1
        VK_AMD_display_native_hdr                   : extension revision 1
        VK_AMD_draw_indirect_count                  : extension revision 2
        VK_AMD_gcn_shader                           : extension revision 1
        VK_AMD_gpa_interface                        : extension revision 1
        VK_AMD_gpu_shader_half_float                : extension revision 2
        VK_AMD_gpu_shader_int16                     : extension revision 2
        VK_AMD_memory_overallocation_behavior       : extension revision 1
        VK_AMD_mixed_attachment_samples             : extension revision 1
        VK_AMD_rasterization_order                  : extension revision 1
        VK_AMD_shader_ballot                        : extension revision 1
        VK_AMD_shader_core_properties               : extension revision 2
        VK_AMD_shader_core_properties2              : extension revision 1
        VK_AMD_shader_early_and_late_fragment_tests : extension revision 1
        VK_AMD_shader_explicit_vertex_parameter     : extension revision 1
        VK_AMD_shader_fragment_mask                 : extension revision 1
        VK_AMD_shader_image_load_store_lod          : extension revision 1
        VK_AMD_shader_info                          : extension revision 1
        VK_AMD_shader_trinary_minmax                : extension revision 1
        VK_AMD_texture_gather_bias_lod              : extension revision 1
        VK_EXT_4444_formats                         : extension revision 1
        VK_EXT_attachment_feedback_loop_layout      : 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_clamp_zero_one                 : extension revision 1
        VK_EXT_depth_clip_control                   : extension revision 1
        VK_EXT_depth_clip_enable                    : extension revision 1
        VK_EXT_depth_range_unrestricted             : extension revision 1
        VK_EXT_descriptor_buffer                    : extension revision 1
        VK_EXT_descriptor_indexing                  : extension revision 2
        VK_EXT_device_address_binding_report        : extension revision 1
        VK_EXT_device_fault                         : extension revision 2
        VK_EXT_dynamic_rendering_unused_attachments : extension revision 1
        VK_EXT_extended_dynamic_state               : extension revision 1
        VK_EXT_extended_dynamic_state2              : extension revision 1
        VK_EXT_extended_dynamic_state3              : extension revision 2
        VK_EXT_external_memory_host                 : extension revision 1
        VK_EXT_full_screen_exclusive                : extension revision 4
        VK_EXT_global_priority                      : extension revision 2
        VK_EXT_global_priority_query                : extension revision 1
        VK_EXT_hdr_metadata                         : extension revision 2
        VK_EXT_host_query_reset                     : extension revision 1
        VK_EXT_image_robustness                     : extension revision 1
        VK_EXT_image_view_min_lod                   : extension revision 1
        VK_EXT_index_type_uint8                     : extension revision 1
        VK_EXT_inline_uniform_block                 : extension revision 1
        VK_EXT_line_rasterization                   : extension revision 1
        VK_EXT_load_store_op_none                   : extension revision 1
        VK_EXT_memory_budget                        : extension revision 1
        VK_EXT_memory_priority                      : extension revision 1
        VK_EXT_mutable_descriptor_type              : extension revision 1
        VK_EXT_non_seamless_cube_map                : extension revision 1
        VK_EXT_pageable_device_local_memory         : extension revision 1
        VK_EXT_pipeline_creation_cache_control      : extension revision 3
        VK_EXT_pipeline_creation_feedback           : extension revision 1
        VK_EXT_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_demote_to_helper_invocation   : extension revision 1
        VK_EXT_shader_image_atomic_int64            : extension revision 1
        VK_EXT_shader_module_identifier             : extension revision 1
        VK_EXT_shader_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_tooling_info                         : extension revision 1
        VK_EXT_transform_feedback                   : extension revision 1
        VK_EXT_vertex_attribute_divisor             : extension revision 3
        VK_EXT_vertex_input_dynamic_state           : extension revision 2
        VK_EXT_ycbcr_image_arrays                   : extension revision 1
        VK_GOOGLE_decorate_string                   : extension revision 1
        VK_GOOGLE_hlsl_functionality1               : extension revision 1
        VK_GOOGLE_user_type                         : extension revision 1
        VK_KHR_16bit_storage                        : extension revision 1
        VK_KHR_8bit_storage                         : extension revision 1
        VK_KHR_bind_memory2                         : extension revision 1
        VK_KHR_buffer_device_address                : extension revision 1
        VK_KHR_copy_commands2                       : extension revision 1
        VK_KHR_create_renderpass2                   : extension revision 1
        VK_KHR_dedicated_allocation                 : extension revision 3
        VK_KHR_depth_stencil_resolve                : extension revision 1
        VK_KHR_descriptor_update_template           : extension revision 1
        VK_KHR_device_group                         : extension revision 4
        VK_KHR_draw_indirect_count                  : extension revision 1
        VK_KHR_driver_properties                    : extension revision 1
        VK_KHR_dynamic_rendering                    : extension revision 1
        VK_KHR_external_fence                       : extension revision 1
        VK_KHR_external_fence_win32                 : extension revision 1
        VK_KHR_external_memory                      : extension revision 1
        VK_KHR_external_memory_win32                : extension revision 1
        VK_KHR_external_semaphore                   : extension revision 1
        VK_KHR_external_semaphore_win32             : extension revision 1
        VK_KHR_format_feature_flags2                : extension revision 2
        VK_KHR_fragment_shader_barycentric          : extension revision 1
        VK_KHR_get_memory_requirements2             : extension revision 1
        VK_KHR_global_priority                      : extension revision 1
        VK_KHR_image_format_list                    : extension revision 1
        VK_KHR_imageless_framebuffer                : extension revision 1
        VK_KHR_maintenance1                         : extension revision 2
        VK_KHR_maintenance2                         : extension revision 1
        VK_KHR_maintenance3                         : extension revision 1
        VK_KHR_maintenance4                         : extension revision 2
        VK_KHR_map_memory2                          : extension revision 1
        VK_KHR_multiview                            : extension revision 1
        VK_KHR_pipeline_executable_properties       : extension revision 1
        VK_KHR_pipeline_library                     : extension revision 1
        VK_KHR_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_win32_keyed_mutex                    : extension revision 1
        VK_KHR_workgroup_memory_explicit_layout     : extension revision 1
        VK_KHR_zero_initialize_workgroup_memory     : extension revision 1
        VK_VALVE_mutable_descriptor_type            : extension revision 1

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

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

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

VkPhysicalDeviceMemoryProperties:
=================================
memoryHeaps: count = 3
        memoryHeaps[0]:
                size   = 1879048192 (0x70000000) (1.75 GiB)
                budget = 1785095808 (0x6a666680) (1.66 GiB)
                usage  = 0 (0x00000000) (0.00 B)
                flags: count = 2
                        MEMORY_HEAP_DEVICE_LOCAL_BIT
                        MEMORY_HEAP_MULTI_INSTANCE_BIT
        memoryHeaps[1]:
                size   = 7215251456 (0x1ae100000) (6.72 GiB)
                budget = 6854488576 (0x1988f3200) (6.38 GiB)
                usage  = 0 (0x00000000) (0.00 B)
                flags:
                        None
        memoryHeaps[2]:
                size   = 268435456 (0x10000000) (256.00 MiB)
                budget = 255013680 (0x0f333330) (243.20 MiB)
                usage  = 0 (0x00000000) (0.00 B)
                flags: count = 2
                        MEMORY_HEAP_DEVICE_LOCAL_BIT
                        MEMORY_HEAP_MULTI_INSTANCE_BIT
memoryTypes: count = 16
        memoryTypes[0]:
                heapIndex     = 0
                propertyFlags = 0x0001: count = 1
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                color images
                                FORMAT_D16_UNORM
                                FORMAT_D32_SFLOAT
                                FORMAT_S8_UINT
                                FORMAT_D16_UNORM_S8_UINT
                                FORMAT_D32_SFLOAT_S8_UINT
                        IMAGE_TILING_LINEAR:
                                color images
        memoryTypes[1]:
                heapIndex     = 1
                propertyFlags = 0x0006: count = 2
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                color images
                                FORMAT_D16_UNORM
                                FORMAT_D32_SFLOAT
                                FORMAT_S8_UINT
                                FORMAT_D16_UNORM_S8_UINT
                                FORMAT_D32_SFLOAT_S8_UINT
                        IMAGE_TILING_LINEAR:
                                color images
        memoryTypes[2]:
                heapIndex     = 2
                propertyFlags = 0x0007: count = 3
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                color images
                                FORMAT_D16_UNORM
                                FORMAT_D32_SFLOAT
                                FORMAT_S8_UINT
                                FORMAT_D16_UNORM_S8_UINT
                                FORMAT_D32_SFLOAT_S8_UINT
                        IMAGE_TILING_LINEAR:
                                color images
        memoryTypes[3]:
                heapIndex     = 1
                propertyFlags = 0x000e: count = 3
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_HOST_CACHED_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                color images
                                FORMAT_D16_UNORM
                                FORMAT_D32_SFLOAT
                                FORMAT_S8_UINT
                                FORMAT_D16_UNORM_S8_UINT
                                FORMAT_D32_SFLOAT_S8_UINT
                        IMAGE_TILING_LINEAR:
                                color images
        memoryTypes[4]:
                heapIndex     = 0
                propertyFlags = 0x00c1: count = 3
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[5]:
                heapIndex     = 1
                propertyFlags = 0x00c6: count = 4
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[6]:
                heapIndex     = 2
                propertyFlags = 0x00c7: count = 5
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[7]:
                heapIndex     = 1
                propertyFlags = 0x00ce: count = 5
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_HOST_CACHED_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[8]:
                heapIndex     = 0
                propertyFlags = 0x0001: count = 1
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[9]:
                heapIndex     = 1
                propertyFlags = 0x0006: count = 2
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[10]:
                heapIndex     = 2
                propertyFlags = 0x0007: count = 3
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[11]:
                heapIndex     = 1
                propertyFlags = 0x000e: count = 3
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_HOST_CACHED_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[12]:
                heapIndex     = 0
                propertyFlags = 0x00c1: count = 3
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[13]:
                heapIndex     = 1
                propertyFlags = 0x00c6: count = 4
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[14]:
                heapIndex     = 2
                propertyFlags = 0x00c7: count = 5
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None
        memoryTypes[15]:
                heapIndex     = 1
                propertyFlags = 0x00ce: count = 5
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_HOST_CACHED_BIT
                        MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD
                        MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                None

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

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

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

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

VkPhysicalDeviceAddressBindingReportFeaturesEXT:
------------------------------------------------
        reportAddressBinding = true

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

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

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

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

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

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

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

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

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

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

VkPhysicalDeviceDynamicRenderingFeatures:
-----------------------------------------
        dynamicRendering = true

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

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

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

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

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

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

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

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

VkPhysicalDeviceImageRobustnessFeatures:
----------------------------------------
        robustImageAccess = true

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

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

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

VkPhysicalDeviceInlineUniformBlockFeatures:
-------------------------------------------
        inlineUniformBlock                                 = true
        descriptorBindingInlineUniformBlockUpdateAfterBind = true

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

VkPhysicalDeviceMaintenance4Features:
-------------------------------------
        maintenance4 = true

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

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

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

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

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

VkPhysicalDevicePipelineCreationCacheControlFeatures:
-----------------------------------------------------
        pipelineCreationCacheControl = true

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

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

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

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

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

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

VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures:
-------------------------------------------------------
        shaderDemoteToHelperInvocation = true

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

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

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

VkPhysicalDeviceShaderIntegerDotProductFeatures:
------------------------------------------------
        shaderIntegerDotProduct = true

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

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

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

VkPhysicalDeviceShaderTerminateInvocationFeatures:
--------------------------------------------------
        shaderTerminateInvocation = true

VkPhysicalDeviceSubgroupSizeControlFeatures:
--------------------------------------------
        subgroupSizeControl  = true
        computeFullSubgroups = true

VkPhysicalDeviceSynchronization2Features:
-----------------------------------------
        synchronization2 = true

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

VkPhysicalDeviceTextureCompressionASTCHDRFeatures:
--------------------------------------------------
        textureCompressionASTC_HDR = false

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

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

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

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

VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT:
--------------------------------------------------
        vertexAttributeInstanceRateDivisor     = true
        vertexAttributeInstanceRateZeroDivisor = true

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

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

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

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

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

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

VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures:
------------------------------------------------------
        shaderZeroInitializeWorkgroupMemory = true

GPU-z Vulkan Memory screenshot

![image](https://github.com/GpuZelenograd/memtest_vulkan/assets/28079733/d4a7154b-19b2-4905-befc-0051ee6ed233)
  

there seems to always be a 256MB overhead from the usual UMA size set by the "BIOS" and reported by WDDM/DirectX (it outputs 2GB, same as what it set to)

galkinvv commented 10 months ago

Thanks, great investigation. I rechecked my previous experiments - and indeed the smallest DeviceLocal memory I tested was 1 GB, not 512MB. So the 1 GB appears to be the minimum for memtest_vulkan (99.9% descrete GPUs supporting vulkan have at least 1GB of memory, so this requirement seemed ok)

I added a note for integrated GPUs in troubleshooting

There is a data for this GPU in the great open database - https://vulkan.gpuinfo.org/listreports.php?devicename=AMD%20Radeon(TM)%20Vega%203%20Graphics

It has quite structured data representation, more readable than vulkainfo and GPU-Z.

For windows 11 it contains data sample for 2GB and 512MB setups, and it shows 256MB available memory. You can report data sample for 1GB setting there if ypu want (it seems to lack it yet)

(I'm not related in any way with that app/database, it is just very handy to investigate such issues even before getting verbose logs)

bagusnl commented 10 months ago

I see, for Vega-based APU (I can't say much for RDNA based ones) the UMA size option is quite broad. Options goes from 64MB all the way up to 16GB. I'll find a time to submit my reports there. Though in regards of this issue, is there anything can be done about it, like maybe falling back to different memory types specifically for iGPU or something?

Asking this because for AMD APUs we have smartalloc which can use any part of system memory as the UMA and completely abandoning the UMA itself (it goes unused), so most of my friends that uses AMD APU uses really low UMA size

galkinvv commented 10 months ago

I'm not sure if vulkan allows shaders accessing memory types that lacks DEVICE_LOCAL_BIT. I suppose that it is a somewhat strange behaviour of the driver to report such small memory sizes if it has smartalloc mechanism active - so maybe this will be adjusted in the "vulkan side of the drivers". Really, I don't undestand how vulkan-based games checks what amount of memory is available for your case.

So, currently my plan is "add this situation detection and print message suggesting increasing UMA or specifying the size manually in the cmd line." And I should eventually document the extended cmdline in the readme.

You can try it manually - run memtest_vulkan 1 3221225472 to try testing 3GB on GPU 1.

While runing in auto-mode memtest_vulkan carefully limits the amount of used VRAM since "allocating-nearly-all VRAM" behaviour often lead to system UI hangs, and allocating even the amount identical to the numbers reported by vulkan heaps can be very problematic. As a result memtest_vulkan honors the numbers reported by vulkan API and do not try to allocate more than reported size.

Overall memtest_vualkn is tuned towards its main use cases - testing staibility of used or overclocked descrete GPUs. While it can be executed on other GPU types - they are not the main scenario. So while some small adjustements are made to make in runnable, the overall design is kept in line with descrete GPUs scenario.

Also a bit of side question - what is your use case for running memtest_vulkan with integrated gpu? Testing system memory itself is much better done with CPU-based testing, so memtest_vulkan can be used just to check if the iGPU itself is fine.

bagusnl commented 10 months ago

SmartAlloc on

 bagusnl_reg  memtest_vulkan_verbose.exe 1 3221225472
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
Verbose feature enabled (or 'verbose' found in name). Vulkan instance 1.3.261
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
Available:
VK_LAYER_AMD_switchable_graphics, VK_LAYER_RTSS, VK_LAYER_VALVE_steam_overlay, VK_LAYER_VALVE_steam_fossilize
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
Extensions: VK_KHR_device_group_creation, VK_KHR_external_fence_capabilities, VK_KHR_external_memory_capabilities, VK_KHR_external_semaphore_capabilities, VK_KHR_get_physical_device_properties2, VK_KHR_get_surface_capabilities2, VK_KHR_surface, VK_KHR_win32_surface, VK_EXT_debug_report, VK_EXT_debug_utils, VK_EXT_swapchain_colorspace, VK_KHR_portability_enumeration, VK_LUNARG_direct_driver_loading

WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
ERROR:            loader_validate_layers: Layer 0 does not exist in the list of available layers
Not using validation layers due to ERROR_LAYER_NOT_PRESENT while getting erupt::generated::InstanceLoader in context instance with validation
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
Loading memory info for selected device index 0...
 0 MemoryType { property_flags: DEVICE_LOCAL, heap_index: 0 }
 1 MemoryType { property_flags: HOST_VISIBLE | HOST_COHERENT, heap_index: 1 }
 2 MemoryType { property_flags: DEVICE_LOCAL | HOST_VISIBLE | HOST_COHERENT, heap_index: 2 }
 3 MemoryType { property_flags: HOST_VISIBLE | HOST_COHERENT | HOST_CACHED, heap_index: 1 }
 4 MemoryType { property_flags: DEVICE_LOCAL | DEVICE_COHERENT_AMD | DEVICE_UNCACHED_AMD, heap_index: 0 }
 5 MemoryType { property_flags: HOST_VISIBLE | HOST_COHERENT | DEVICE_COHERENT_AMD | DEVICE_UNCACHED_AMD, heap_index: 1 }
 6 MemoryType { property_flags: DEVICE_LOCAL | HOST_VISIBLE | HOST_COHERENT | DEVICE_COHERENT_AMD | DEVICE_UNCACHED_AMD, heap_index: 2 }
 7 MemoryType { property_flags: HOST_VISIBLE | HOST_COHERENT | HOST_CACHED | DEVICE_COHERENT_AMD | DEVICE_UNCACHED_AMD, heap_index: 1 }
 8 MemoryType { property_flags: DEVICE_LOCAL, heap_index: 0 }
 9 MemoryType { property_flags: HOST_VISIBLE | HOST_COHERENT, heap_index: 1 }
10 MemoryType { property_flags: DEVICE_LOCAL | HOST_VISIBLE | HOST_COHERENT, heap_index: 2 }
11 MemoryType { property_flags: HOST_VISIBLE | HOST_COHERENT | HOST_CACHED, heap_index: 1 }
12 MemoryType { property_flags: DEVICE_LOCAL | DEVICE_COHERENT_AMD | DEVICE_UNCACHED_AMD, heap_index: 0 }
13 MemoryType { property_flags: HOST_VISIBLE | HOST_COHERENT | DEVICE_COHERENT_AMD | DEVICE_UNCACHED_AMD, heap_index: 1 }
14 MemoryType { property_flags: DEVICE_LOCAL | HOST_VISIBLE | HOST_COHERENT | DEVICE_COHERENT_AMD | DEVICE_UNCACHED_AMD, heap_index: 2 }
15 MemoryType { property_flags: HOST_VISIBLE | HOST_COHERENT | HOST_CACHED | DEVICE_COHERENT_AMD | DEVICE_UNCACHED_AMD, heap_index: 1 }
CoherentIO memory          type 2 inside heap MemoryHeap { size: 268435456, flags: DEVICE_LOCAL | MULTI_INSTANCE | MULTI_INSTANCE_KHR }
Trying   3.000GB buffer...
Test memory size   3.0GB   type  0: MemoryType { property_flags: DEVICE_LOCAL, heap_index: 0 } MemoryHeap { size: 1879048192, flags: DEVICE_LOCAL | MULTI_INSTANCE | MULTI_INSTANCE_KHR }
Standard 5-minute test of 1: Bus=0x03:00 DevId=0x15D8 API 1.3.262  0x80011B  2GB AMD Radeon(TM) Vega 3 Graphics
      1 iteration. Passed  0.4827 seconds  written:    1.5GB  11.9GB/sec        checked:    3.0GB   8.4GB/sec
      5 iteration. Passed  1.0821 seconds  written:    6.0GB  22.6GB/sec        checked:   12.0GB  14.7GB/sec
     26 iteration. Passed  5.2081 seconds  written:   31.5GB  24.8GB/sec        checked:   63.0GB  16.0GB/sec
    149 iteration. Passed 30.0581 seconds  written:  184.5GB  25.1GB/sec        checked:  369.0GB  16.2GB/sec

image

SmartAlloc off

 bagusnl_reg  memtest_vulkan_verbose.exe 1 3221225472
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
Verbose feature enabled (or 'verbose' found in name). Vulkan instance 1.3.261
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
Available:
VK_LAYER_AMD_switchable_graphics, VK_LAYER_RTSS, VK_LAYER_VALVE_steam_overlay, VK_LAYER_VALVE_steam_fossilize
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
Extensions: VK_KHR_device_group_creation, VK_KHR_external_fence_capabilities, VK_KHR_external_memory_capabilities, VK_KHR_external_semaphore_capabilities, VK_KHR_get_physical_device_properties2, VK_KHR_get_surface_capabilities2, VK_KHR_surface, VK_KHR_win32_surface, VK_EXT_debug_report, VK_EXT_debug_utils, VK_EXT_swapchain_colorspace, VK_KHR_portability_enumeration, VK_LUNARG_direct_driver_loading

WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
ERROR:            loader_validate_layers: Layer 0 does not exist in the list of available layers
Not using validation layers due to ERROR_LAYER_NOT_PRESENT while getting erupt::generated::InstanceLoader in context instance with validation
WARNING:          Didn't find required layer object disable_environment in manifest JSON file, skipping this layer
WARNING | LAYER:  windows_read_data_files_in_registry: Registry lookup failed to get layer manifest files.
Loading memory info for selected device index 0...
 0 MemoryType { property_flags: DEVICE_LOCAL, heap_index: 0 }
 1 MemoryType { property_flags: HOST_VISIBLE | HOST_COHERENT, heap_index: 1 }
 2 MemoryType { property_flags: DEVICE_LOCAL | HOST_VISIBLE | HOST_COHERENT, heap_index: 2 }
 3 MemoryType { property_flags: HOST_VISIBLE | HOST_COHERENT | HOST_CACHED, heap_index: 1 }
 4 MemoryType { property_flags: DEVICE_LOCAL | DEVICE_COHERENT_AMD | DEVICE_UNCACHED_AMD, heap_index: 0 }
 5 MemoryType { property_flags: HOST_VISIBLE | HOST_COHERENT | DEVICE_COHERENT_AMD | DEVICE_UNCACHED_AMD, heap_index: 1 }
 6 MemoryType { property_flags: DEVICE_LOCAL | HOST_VISIBLE | HOST_COHERENT | DEVICE_COHERENT_AMD | DEVICE_UNCACHED_AMD, heap_index: 2 }
 7 MemoryType { property_flags: HOST_VISIBLE | HOST_COHERENT | HOST_CACHED | DEVICE_COHERENT_AMD | DEVICE_UNCACHED_AMD, heap_index: 1 }
 8 MemoryType { property_flags: DEVICE_LOCAL, heap_index: 0 }
 9 MemoryType { property_flags: HOST_VISIBLE | HOST_COHERENT, heap_index: 1 }
10 MemoryType { property_flags: DEVICE_LOCAL | HOST_VISIBLE | HOST_COHERENT, heap_index: 2 }
11 MemoryType { property_flags: HOST_VISIBLE | HOST_COHERENT | HOST_CACHED, heap_index: 1 }
12 MemoryType { property_flags: DEVICE_LOCAL | DEVICE_COHERENT_AMD | DEVICE_UNCACHED_AMD, heap_index: 0 }
13 MemoryType { property_flags: HOST_VISIBLE | HOST_COHERENT | DEVICE_COHERENT_AMD | DEVICE_UNCACHED_AMD, heap_index: 1 }
14 MemoryType { property_flags: DEVICE_LOCAL | HOST_VISIBLE | HOST_COHERENT | DEVICE_COHERENT_AMD | DEVICE_UNCACHED_AMD, heap_index: 2 }
15 MemoryType { property_flags: HOST_VISIBLE | HOST_COHERENT | HOST_CACHED | DEVICE_COHERENT_AMD | DEVICE_UNCACHED_AMD, heap_index: 1 }
CoherentIO memory          type 2 inside heap MemoryHeap { size: 268435456, flags: DEVICE_LOCAL | MULTI_INSTANCE | MULTI_INSTANCE_KHR }
Trying   3.000GB buffer...
Test memory size   3.0GB   type  0: MemoryType { property_flags: DEVICE_LOCAL, heap_index: 0 } MemoryHeap { size: 1879048192, flags: DEVICE_LOCAL | MULTI_INSTANCE | MULTI_INSTANCE_KHR }
Standard 5-minute test of 1: Bus=0x03:00 DevId=0x15D8 API 1.3.262  0x80011B  2GB AMD Radeon(TM) Vega 3 Graphics
      1 iteration. Passed  0.2666 seconds  written:    1.5GB  24.6GB/sec        checked:    3.0GB  14.6GB/sec
      5 iteration. Passed  1.0048 seconds  written:    6.0GB  24.4GB/sec        checked:   12.0GB  15.8GB/sec
     26 iteration. Passed  5.1196 seconds  written:   31.5GB  25.6GB/sec        checked:   63.0GB  16.2GB/sec
    156 iteration. Passed 30.0943 seconds  written:  195.0GB  27.0GB/sec        checked:  390.0GB  17.1GB/sec

image You can notice the dedicated-VRAM is barely used when SmartAlloc is enabled (in this case since I want to save some time, I didn't set the UMA lower on SmartAlloc on, but usually people combine SmartAlloc with low UMA space so they can have higher overall usable RAM for whatever)

Also a bit of side question - what is your use case for running memtest_vulkan with integrated gpu? Testing system memory itself is much better done with CPU-based testing, so memtest_vulkan can be used just to check if the iGPU itself is fine.

I do some testing for modded AMD GPU Windows driver and I sometime got curious on what a parameter does to the system so this tool can be helpful to see if a parameter harm or helpful for the vulkan compute/memory bandwidth aspect.

galkinvv commented 10 months ago

Thanks for detailed reporting. It seems taht both modes allows allocation size greater than heap size reported by vualkn API.

So, I'll try to implement a fix that allows allocating minimal needed memory on integrated Gpu even for smaller heap size. Due to meory sharing some overallocating should be safe for iGPUs.

And based on #30 such minimal memory allocation should be implemented for descrete GPUs too. Maybe with some file locking check on a log file, so memtest_vulkan will not allow running several insaces on the same GPU via some file locking

galkinvv commented 5 months ago

Similar problem with AMD Radeon R7 (device 1002 9874 1043 8719) - device-local is reported as 256MB, but actually up to 4GB works (windows driver U0382934-Radeon-Software-Adrenalin-2020-22.6.1)