nod-ai / SHARK-Studio

SHARK Studio -- Web UI for SHARK+IREE High Performance Machine Learning Distribution
Apache License 2.0
1.41k stars 170 forks source link

[vulkan] Intel Arc Fails to Compile #1245

Open jarredwalton opened 1 year ago

jarredwalton commented 1 year ago

It seems like Intel Arc support is supposed to be present — it shows up as a Vulkan device at least! But in trying to run this I get compile failures Here's the detailed log from the command prompt on Windows 11:

(base) C:\stable-diffusion\Shark0321.625>shark_sd_20230321_625.exe --clear_all
shark_tank local cache is located at C:\Users\jwalt\.local/shark_tank/ . You may change this by setting the --local_tank_cache= flag
diffusers\models\cross_attention.py:30: FutureWarning: Importing from cross_attention is deprecated. Please import from diffusers.models.attention_processor instead.
vulkan devices are available.
cuda devices are not available.
CLEARING ALL, EXPECT SEVERAL MINUTES TO RECOMPILE
Running on local URL:  http://0.0.0.0:8080

To create a public link, set `share=True` in `launch()`.
Found device Intel(R) Arc(TM) A750 Graphics. Using target triple .
Tuned models are currently not supported for this setting.
Using cached models from C:\Users\jwalt\.local/shark_tank/...
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 640/640 [00:00<00:00, 39.2kB/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 640/640 [00:00<00:00, 54.5kB/s]
No vmfb found. Compiling and saving to C:\stable-diffusion\Shark0321.625\euler_scale_model_input_fp16.vmfb
Optimized kernel for your target device is not added yet.
        Contact SHARK Admin on discord[https://discord.com/invite/RUqY2h2s9u]
        or pull up an issue.
Target : deviceName        = Intel(R) Arc(TM) A750 Graphics
Saved vmfb in C:\stable-diffusion\Shark0321.625\euler_scale_model_input_fp16.vmfb.
WARNING: [Loader Message] Code 0 : Layer name GalaxyOverlayVkLayer does not conform to naming standard (Policy #LLP_LAYER_3)
WARNING: [Loader Message] Code 0 : Layer name GalaxyOverlayVkLayer_VERBOSE does not conform to naming standard (Policy #LLP_LAYER_3)
WARNING: [Loader Message] Code 0 : Layer name GalaxyOverlayVkLayer_DEBUG does not conform to naming standard (Policy #LLP_LAYER_3)
ERROR: [Loader Message] Code 0 : Failed to open dynamic library "C:\WINDOWS\system32\VRFCAT-Plugins\.\VK_LAYER_FCAT_DT_overlay_x64.dll" with error 1114
Using cached models from C:\Users\jwalt\.local/shark_tank/...
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 640/640 [00:00<00:00, 39.4kB/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 640/640 [00:00<00:00, 78.6kB/s]
No vmfb found. Compiling and saving to C:\stable-diffusion\Shark0321.625\euler_step_fp16.vmfb
Optimized kernel for your target device is not added yet.
        Contact SHARK Admin on discord[https://discord.com/invite/RUqY2h2s9u]
        or pull up an issue.
Target : deviceName        = Intel(R) Arc(TM) A750 Graphics
Saved vmfb in C:\stable-diffusion\Shark0321.625\euler_step_fp16.vmfb.
WARNING: [Loader Message] Code 0 : Layer name GalaxyOverlayVkLayer does not conform to naming standard (Policy #LLP_LAYER_3)
WARNING: [Loader Message] Code 0 : Layer name GalaxyOverlayVkLayer_VERBOSE does not conform to naming standard (Policy #LLP_LAYER_3)
WARNING: [Loader Message] Code 0 : Layer name GalaxyOverlayVkLayer_DEBUG does not conform to naming standard (Policy #LLP_LAYER_3)
ERROR: [Loader Message] Code 0 : Failed to open dynamic library "C:\WINDOWS\system32\VRFCAT-Plugins\.\VK_LAYER_FCAT_DT_overlay_x64.dll" with error 1114
Using cached models from C:\Users\jwalt\.local/shark_tank/...
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 640/640 [00:00<00:00, 39.9kB/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 640/640 [00:00<00:00, 38.1kB/s]
No vmfb found. Compiling and saving to C:\stable-diffusion\Shark0321.625\vae77_512_512_fp16_stabilityai_stable_diffusion_2_1_base.vmfb
Optimized kernel for your target device is not added yet.
        Contact SHARK Admin on discord[https://discord.com/invite/RUqY2h2s9u]
        or pull up an issue.
Target : deviceName        = Intel(R) Arc(TM) A750 Graphics
download pipeline failed, falling back to import_mlir
use_tuned? sharkify: False
_1_64_512_512_fp16_stable-diffusion-2-1-base
Inferring base model configuration.
safetensors\torch.py:99: UserWarning: TypedStorage is deprecated. It will be removed in the future and UntypedStorage will be the only storage class. This should only matter to you if you are using storages directly.  To access UntypedStorage directly, use tensor.untyped_storage() instead of tensor.storage()
torch\_utils.py:777: UserWarning: TypedStorage is deprecated. It will be removed in the future and UntypedStorage will be the only storage class. This should only matter to you if you are using storages directly.  To access UntypedStorage directly, use tensor.untyped_storage() instead of tensor.storage()
  return self.fget.__get__(instance, owner)()
torch\storage.py:955: UserWarning: TypedStorage is deprecated. It will be removed in the future and UntypedStorage will be the only storage class. This should only matter to you if you are using storages directly.  To access UntypedStorage directly, use tensor.untyped_storage() instead of tensor.storage()
  storage = cls(wrap_storage=untyped_storage)
Given groups=1, weight of size [320, 4, 3, 3], expected input[4, 7, 512, 512] to have 4 channels, but got 7 channels instead
Retrying with a different base model configuration
No vmfb found. Compiling and saving to C:\stable-diffusion\Shark0321.625\unet_1_64_512_512_fp16_stable-diffusion-2-1-base_vulkan.vmfb
Optimized kernel for your target device is not added yet.
        Contact SHARK Admin on discord[https://discord.com/invite/RUqY2h2s9u]
        or pull up an issue.
Target : deviceName        = Intel(R) Arc(TM) A750 Graphics
Error invoking IREE compiler tool iree-compile.exe
Diagnostics:
<eval_with_key>.3:7:13: error: failed to legalize operation 'arith.sitofp' that was explicitly marked illegal
<eval_with_key>.3:15:12: error: failed to run translation of source executable to target executable for backend #hal.executable.target<"vulkan", "vulkan-spirv-fb", {spirv.target_env = #spirv.target_env<#spirv.vce<v1.3, [Shader, GroupNonUniform], [SPV_KHR_storage_buffer_storage_class, SPV_KHR_variable_pointers]>, api=Vulkan, #spirv.resource_limits<max_compute_workgroup_size = [128, 128, 64], subgroup_size = 64, cooperative_matrix_properties_nv = []>>}>
<eval_with_key>.3:15:12: error: failed to serialize executables
<unknown>:0: error: failed to legalize operation 'vector.bitcast'
<eval_with_key>.3:28:12: error: failed to run translation of source executable to target executable for backend #hal.executable.target<"vulkan", "vulkan-spirv-fb", {spirv.target_env = #spirv.target_env<#spirv.vce<v1.3, [Shader, GroupNonUniform], [SPV_KHR_storage_buffer_storage_class, SPV_KHR_variable_pointers]>, api=Vulkan, #spirv.resource_limits<max_compute_workgroup_size = [128, 128, 64], subgroup_size = 64, cooperative_matrix_properties_nv = []>>}>
<eval_with_key>.3:28:12: error: failed to serialize executables
<unknown>:0: error: failed to legalize operation 'vector.bitcast'
<eval_with_key>.3:33:14: error: failed to run translation of source executable to target executable for backend #hal.executable.target<"vulkan", "vulkan-spirv-fb", {spirv.target_env = #spirv.target_env<#spirv.vce<v1.3, [Shader, GroupNonUniform], [SPV_KHR_storage_buffer_storage_class, SPV_KHR_variable_pointers]>, api=Vulkan, #spirv.resource_limits<max_compute_workgroup_size = [128, 128, 64], subgroup_size = 64, cooperative_matrix_properties_nv = []>>}>
<eval_with_key>.3:33:14: error: failed to serialize executables
<unknown>:0: error: failed to legalize operation 'vector.bitcast'
<eval_with_key>.3:71:14: error: failed to run translation of source executable to target executable for backend #hal.executable.target<"vulkan", "vulkan-spirv-fb", {spirv.target_env = #spirv.target_env<#spirv.vce<v1.3, [Shader, GroupNonUniform], [SPV_KHR_storage_buffer_storage_class, SPV_KHR_variable_pointers]>, api=Vulkan, #spirv.resource_limits<max_compute_workgroup_size = [128, 128, 64], subgroup_size = 64, cooperative_matrix_properties_nv = []>>}>
<eval_with_key>.3:71:14: error: failed to serialize executables

Invoked with:
 iree-compile.exe C:\Users\jwalt\AppData\Local\Temp\_MEI73802\iree\compiler\tools\..\_mlir_libs\iree-compile.exe - --iree-input-type=none --iree-vm-bytecode-module-output-format=flatbuffer-binary --iree-hal-target-backends=vulkan --iree-llvmcpu-embedded-linker-path=C:\Users\jwalt\AppData\Local\Temp\_MEI73802\iree\compiler\tools\..\_mlir_libs\iree-lld.exe --mlir-print-debuginfo --mlir-print-op-on-diagnostic=false --iree-llvmcpu-target-cpu-features=host --iree-stream-resource-index-bits=64 --iree-vm-target-index-bits=64 --iree-util-zero-fill-elided-attrs --iree-preprocessing-pass-pipeline=builtin.module(func.func(iree-flow-detach-elementwise-from-named-ops,iree-flow-convert-1x1-filter-conv2d-to-matmul,iree-preprocessing-convert-conv2d-to-img2col,iree-preprocessing-pad-linalg-ops{pad-size=32}))

Need more information? Set IREE_SAVE_TEMPS=/some/dir in your environment to save all artifacts and reproducers.

Retrying with a different base model configuration
mat1 and mat2 shapes cannot be multiplied (128x768 and 1024x320)
Retrying with a different base model configuration
Given groups=1, weight of size [320, 4, 3, 3], expected input[2, 9, 64, 64] to have 4 channels, but got 9 channels instead
Retrying with a different base model configuration
Given groups=1, weight of size [320, 4, 3, 3], expected input[2, 9, 64, 64] to have 4 channels, but got 9 channels instead
Retrying with a different base model configuration
Traceback (most recent call last):
  File "apps\stable_diffusion\src\pipelines\pipeline_shark_stable_diffusion_utils.py", line 396, in from_pretrained
  File "apps\stable_diffusion\src\models\opt_params.py", line 89, in get_vae
  File "apps\stable_diffusion\src\utils\utils.py", line 85, in get_shark_model
  File "apps\stable_diffusion\src\utils\utils.py", line 56, in _compile_module
  File "shark\shark_inference.py", line 188, in save_module
  File "shark\iree_utils\compile_utils.py", line 345, in export_iree_module_to_vmfb
  File "shark\iree_utils\compile_utils.py", line 281, in compile_module_to_flatbuffer
  File "iree\compiler\tools\core.py", line 280, in compile_str
  File "iree\compiler\tools\binaries.py", line 198, in invoke_immediate
iree.compiler.tools.binaries.CompilerToolError: Error invoking IREE compiler tool iree-compile.exe
Diagnostics:
<unknown>:0: error: failed to legalize operation 'vector.bitcast'
<eval_with_key>.197:8:18: error: failed to run translation of source executable to target executable for backend #hal.executable.target<"vulkan", "vulkan-spirv-fb", {spirv.target_env = #spirv.target_env<#spirv.vce<v1.3, [Shader, GroupNonUniform], [SPV_KHR_storage_buffer_storage_class, SPV_KHR_variable_pointers]>, api=Vulkan, #spirv.resource_limits<max_compute_workgroup_size = [128, 128, 64], subgroup_size = 64, cooperative_matrix_properties_nv = []>>}>
<eval_with_key>.197:8:18: error: failed to serialize executables
<unknown>:0: error: failed to legalize operation 'vector.bitcast'
<eval_with_key>.197:111:12: error: failed to run translation of source executable to target executable for backend #hal.executable.target<"vulkan", "vulkan-spirv-fb", {spirv.target_env = #spirv.target_env<#spirv.vce<v1.3, [Shader, GroupNonUniform], [SPV_KHR_storage_buffer_storage_class, SPV_KHR_variable_pointers]>, api=Vulkan, #spirv.resource_limits<max_compute_workgroup_size = [128, 128, 64], subgroup_size = 64, cooperative_matrix_properties_nv = []>>}>
<eval_with_key>.197:111:12: error: failed to serialize executables
<unknown>:0: error: failed to legalize operation 'vector.bitcast'
<eval_with_key>.197:118:12: error: failed to run translation of source executable to target executable for backend #hal.executable.target<"vulkan", "vulkan-spirv-fb", {spirv.target_env = #spirv.target_env<#spirv.vce<v1.3, [Shader, GroupNonUniform], [SPV_KHR_storage_buffer_storage_class, SPV_KHR_variable_pointers]>, api=Vulkan, #spirv.resource_limits<max_compute_workgroup_size = [128, 128, 64], subgroup_size = 64, cooperative_matrix_properties_nv = []>>}>
<eval_with_key>.197:118:12: error: failed to serialize executables
<unknown>:0: error: failed to legalize operation 'vector.bitcast'
<eval_with_key>.197:144:14: error: failed to run translation of source executable to target executable for backend #hal.executable.target<"vulkan", "vulkan-spirv-fb", {spirv.target_env = #spirv.target_env<#spirv.vce<v1.3, [Shader, GroupNonUniform], [SPV_KHR_storage_buffer_storage_class, SPV_KHR_variable_pointers]>, api=Vulkan, #spirv.resource_limits<max_compute_workgroup_size = [128, 128, 64], subgroup_size = 64, cooperative_matrix_properties_nv = []>>}>
<eval_with_key>.197:144:14: error: failed to serialize executables
<unknown>:0: error: failed to legalize operation 'vector.bitcast'
<eval_with_key>.197:147:12: error: failed to run translation of source executable to target executable for backend #hal.executable.target<"vulkan", "vulkan-spirv-fb", {spirv.target_env = #spirv.target_env<#spirv.vce<v1.3, [Shader, GroupNonUniform], [SPV_KHR_storage_buffer_storage_class, SPV_KHR_variable_pointers]>, api=Vulkan, #spirv.resource_limits<max_compute_workgroup_size = [128, 128, 64], subgroup_size = 64, cooperative_matrix_properties_nv = []>>}>
<eval_with_key>.197:147:12: error: failed to serialize executables
<unknown>:0: error: failed to legalize operation 'vector.bitcast'
<eval_with_key>.197:155:12: error: failed to run translation of source executable to target executable for backend #hal.executable.target<"vulkan", "vulkan-spirv-fb", {spirv.target_env = #spirv.target_env<#spirv.vce<v1.3, [Shader, GroupNonUniform], [SPV_KHR_storage_buffer_storage_class, SPV_KHR_variable_pointers]>, api=Vulkan, #spirv.resource_limits<max_compute_workgroup_size = [128, 128, 64], subgroup_size = 64, cooperative_matrix_properties_nv = []>>}>
<eval_with_key>.197:155:12: error: failed to serialize executables

Invoked with:
 iree-compile.exe C:\Users\jwalt\AppData\Local\Temp\_MEI73802\iree\compiler\tools\..\_mlir_libs\iree-compile.exe - --iree-input-type=none --iree-vm-bytecode-module-output-format=flatbuffer-binary --iree-hal-target-backends=vulkan --iree-llvmcpu-embedded-linker-path=C:\Users\jwalt\AppData\Local\Temp\_MEI73802\iree\compiler\tools\..\_mlir_libs\iree-lld.exe --mlir-print-debuginfo --mlir-print-op-on-diagnostic=false --iree-llvmcpu-target-cpu-features=host --iree-stream-resource-index-bits=64 --iree-vm-target-index-bits=64 --iree-util-zero-fill-elided-attrs --iree-preprocessing-pass-pipeline=builtin.module(func.func(iree-flow-detach-elementwise-from-named-ops,iree-preprocessing-pad-linalg-ops{pad-size=32}))

Need more information? Set IREE_SAVE_TEMPS=/some/dir in your environment to save all artifacts and reproducers.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "gradio\routes.py", line 394, in run_predict
  File "gradio\blocks.py", line 1075, in process_api
  File "gradio\blocks.py", line 898, in call_function
  File "anyio\to_thread.py", line 31, in run_sync
  File "anyio\_backends\_asyncio.py", line 937, in run_sync_in_worker_thread
  File "anyio\_backends\_asyncio.py", line 867, in run
  File "gradio\utils.py", line 549, in async_iteration
  File "apps\stable_diffusion\scripts\txt2img.py", line 125, in txt2img_inf
  File "apps\stable_diffusion\src\pipelines\pipeline_shark_stable_diffusion_utils.py", line 429, in from_pretrained
  File "apps\stable_diffusion\src\models\model_wrappers.py", line 677, in __call__
SystemExit: Cannot compile the model. Please create an issue with the detailed log at https://github.com/nod-ai/SHARK/issues
Keyboard interruption in main thread... closing server.

(base) C:\stable-diffusion\Shark0321.625>
powderluv commented 1 year ago

This is the same issue with some other hardware I filed earlier this week https://github.com/openxla/iree/issues/12708

This is via the ARC vulkan driver. We also have the Level Zero driver for ARC and the code to run on it but it hasn't been tested on Windows yet.

jarredwalton commented 1 year ago

Cheers. I searched for "Intel Arc" and didn't get any hits, so I posted this as a new issue. If you need me to test anything, just let me know.

powderluv commented 1 year ago

@jarredwalton if possible can you please attach your vulkaninfo output. We will need to enable a target triple for it.

jarredwalton commented 1 year ago
C:\>vulkaninfo
WARNING: [Loader Message] Code 0 : Layer name GalaxyOverlayVkLayer does not conform to naming standard (Policy #LLP_LAYER_3)
WARNING: [Loader Message] Code 0 : Layer name GalaxyOverlayVkLayer_VERBOSE does not conform to naming standard (Policy #LLP_LAYER_3)
WARNING: [Loader Message] Code 0 : Layer name GalaxyOverlayVkLayer_DEBUG does not conform to naming standard (Policy #LLP_LAYER_3)
ERROR: [Loader Message] Code 0 : Failed to open dynamic library "C:\WINDOWS\system32\VRFCAT-Plugins\.\VK_LAYER_FCAT_DT_overlay_x64.dll" with error 1114
==========
VULKANINFO
==========

Vulkan Instance Version: 1.3.236

Instance Extensions: count = 12
===============================
        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 5

Layers: count = 7
=================
GalaxyOverlayVkLayer (Galaxy Overlay Vulkan Layer) Vulkan version 1.1.73, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 1
                GPU id = 0 (Intel(R) Arc(TM) A380 Graphics)
                Layer-Device Extensions: count = 0

GalaxyOverlayVkLayer_DEBUG (Galaxy Overlay Vulkan Layer) Vulkan version 1.1.73, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 1
                GPU id = 0 (Intel(R) Arc(TM) A380 Graphics)
                Layer-Device Extensions: count = 0

GalaxyOverlayVkLayer_VERBOSE (Galaxy Overlay Vulkan Layer) Vulkan version 1.1.73, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 1
                GPU id = 0 (Intel(R) Arc(TM) A380 Graphics)
                Layer-Device Extensions: count = 0

VK_LAYER_FrameView_Overlay (FCAT DT Capture Indicator) Vulkan version 1.3.231, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 1
                GPU id = 0 (Intel(R) Arc(TM) A380 Graphics)
                Layer-Device Extensions: count = 0

VK_LAYER_ROCKSTAR_GAMES_social_club (Rockstar Games Social Club Layer) Vulkan version 1.0.70, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 1
                GPU id = 0 (Intel(R) Arc(TM) A380 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 = 1
                GPU id = 0 (Intel(R) Arc(TM) A380 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 = 1
                GPU id = 0 (Intel(R) Arc(TM) A380 Graphics)
                Layer-Device Extensions: count = 0

Presentable Surfaces:
=====================
GPU id : 0 (Intel(R) Arc(TM) A380 Graphics):
        Surface type = VK_KHR_win32_surface
        Formats: count = 6
                SurfaceFormat[0]:
                        format = FORMAT_B8G8R8A8_UNORM
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[1]:
                        format = FORMAT_B8G8R8A8_SRGB
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[2]:
                        format = FORMAT_R8G8B8A8_UNORM
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[3]:
                        format = FORMAT_R8G8B8A8_SRGB
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[4]:
                        format = FORMAT_R16G16B16A16_SFLOAT
                        colorSpace = COLOR_SPACE_HDR10_ST2084_EXT
                SurfaceFormat[5]:
                        format = FORMAT_A2R10G10B10_UNORM_PACK32
                        colorSpace = COLOR_SPACE_HDR10_ST2084_EXT
        Present Modes: count = 2
                PRESENT_MODE_IMMEDIATE_KHR
                PRESENT_MODE_FIFO_KHR
        VkSurfaceCapabilitiesKHR:
        -------------------------
                minImageCount = 2
                maxImageCount = 64
                currentExtent:
                        width  = 256
                        height = 256
                minImageExtent:
                        width  = 256
                        height = 256
                maxImageExtent:
                        width  = 256
                        height = 256
                maxImageArrayLayers = 2048
                supportedTransforms: count = 1
                        SURFACE_TRANSFORM_IDENTITY_BIT_KHR
                currentTransform = SURFACE_TRANSFORM_IDENTITY_BIT_KHR
                supportedCompositeAlpha: count = 2
                        COMPOSITE_ALPHA_OPAQUE_BIT_KHR
                        COMPOSITE_ALPHA_INHERIT_BIT_KHR
                supportedUsageFlags: count = 5
                        IMAGE_USAGE_TRANSFER_SRC_BIT
                        IMAGE_USAGE_TRANSFER_DST_BIT
                        IMAGE_USAGE_SAMPLED_BIT
                        IMAGE_USAGE_STORAGE_BIT
                        IMAGE_USAGE_COLOR_ATTACHMENT_BIT
        VkSurfaceCapabilitiesFullScreenExclusiveEXT:
        --------------------------------------------
                fullScreenExclusiveSupported = true

Device Groups:
==============
Group 0:
        Properties:
                physicalDevices: count = 1
                        Intel(R) Arc(TM) A380 Graphics (ID: 0)
                subsetAllocation = 0

        Present Capabilities:
                Intel(R) Arc(TM) A380 Graphics (ID: 0):
                        Can present images from the following devices: count = 1
                                Intel(R) Arc(TM) A380 Graphics (ID: 0)
                Present modes: count = 1
                        DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR

Device Properties and Extensions:
=================================
GPU0:
VkPhysicalDeviceProperties:
---------------------------
        apiVersion        = 1.3.238 (4206830)
        driverVersion     = 101.4148 (1658932)
        vendorID          = 0x8086
        deviceID          = 0x56a5
        deviceType        = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
        deviceName        = Intel(R) Arc(TM) A380 Graphics
        pipelineCacheUUID = 05260623-002d-322a-0d27-0e29092d0b1c

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

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

VkPhysicalDeviceAccelerationStructurePropertiesKHR:
---------------------------------------------------
        maxGeometryCount                                           = 4294967295
        maxInstanceCount                                           = 16777215
        maxPrimitiveCount                                          = 4294967295
        maxPerStageDescriptorAccelerationStructures                = 16
        maxPerStageDescriptorUpdateAfterBindAccelerationStructures = 16
        maxDescriptorSetAccelerationStructures                     = 16
        maxDescriptorSetUpdateAfterBindAccelerationStructures      = 16
        minAccelerationStructureScratchOffsetAlignment             = 128

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

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

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

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

VkPhysicalDeviceDriverProperties:
---------------------------------
        driverID        = DRIVER_ID_INTEL_PROPRIETARY_WINDOWS
        driverName      = Intel Corporation
        driverInfo      = Intel driver
        conformanceVersion:
                major    = 1
                minor    = 3
                subminor = 4
                patch    = 1

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

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

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

VkPhysicalDeviceIDProperties:
-----------------------------
        deviceUUID      = 8680a556-0500-0000-0300-000000000000
        driverUUID      = 33312e30-2e31-3031-2e34-313438000000
        deviceLUID      = b6132000-00000000
        deviceNodeMask  = 1
        deviceLUIDValid = true

VkPhysicalDeviceInlineUniformBlockProperties:
---------------------------------------------
        maxInlineUniformBlockSize                               = 256
        maxPerStageDescriptorInlineUniformBlocks                = 4
        maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = 4
        maxDescriptorSetInlineUniformBlocks                     = 4
        maxDescriptorSetUpdateAfterBindInlineUniformBlocks      = 4

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

VkPhysicalDeviceMaintenance3Properties:
---------------------------------------
        maxPerSetDescriptors    = 335539239
        maxMemoryAllocationSize = 0x3f9201800

VkPhysicalDeviceMaintenance4Properties:
---------------------------------------
        maxBufferSize = 0x100000000

VkPhysicalDeviceMeshShaderPropertiesEXT:
----------------------------------------
        maxTaskWorkGroupTotalCount            = 4194304
        maxTaskWorkGroupCount: count = 3
                65535
                65535
                65535
        maxTaskWorkGroupInvocations           = 1024
        maxTaskWorkGroupSize: count = 3
                1024
                1024
                1024
        maxTaskPayloadSize                    = 65504
        maxTaskSharedMemorySize               = 65536
        maxTaskPayloadAndSharedMemorySize     = 65536
        maxMeshWorkGroupTotalCount            = 4194304
        maxMeshWorkGroupCount: count = 3
                65535
                65535
                65535
        maxMeshWorkGroupInvocations           = 1024
        maxMeshWorkGroupSize: count = 3
                1024
                1024
                1024
        maxMeshSharedMemorySize               = 65536
        maxMeshPayloadAndSharedMemorySize     = 65536
        maxMeshOutputMemorySize               = 524288
        maxMeshPayloadAndOutputMemorySize     = 589792
        maxMeshOutputComponents               = 128
        maxMeshOutputVertices                 = 1024
        maxMeshOutputPrimitives               = 1024
        maxMeshOutputLayers                   = 2048
        maxMeshMultiviewViewCount             = 1
        meshOutputPerVertexGranularity        = 32
        meshOutputPerPrimitiveGranularity     = 32
        maxPreferredTaskWorkGroupInvocations  = 16
        maxPreferredMeshWorkGroupInvocations  = 16
        prefersLocalInvocationVertexOutput    = true
        prefersLocalInvocationPrimitiveOutput = true
        prefersCompactVertexOutput            = false
        prefersCompactPrimitiveOutput         = false

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

VkPhysicalDeviceMultiviewProperties:
------------------------------------
        maxMultiviewViewCount     = 16
        maxMultiviewInstanceIndex = 268435454

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

VkPhysicalDevicePipelineRobustnessPropertiesEXT:
------------------------------------------------
        defaultRobustnessStorageBuffers = PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT
        defaultRobustnessUniformBuffers = PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT
        defaultRobustnessVertexInputs = PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT
        defaultRobustnessImages = PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT

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

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

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

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

VkPhysicalDeviceRayTracingPipelinePropertiesKHR:
------------------------------------------------
        shaderGroupHandleSize              = 32
        maxRayRecursionDepth               = 256
        maxShaderGroupStride               = 4294967295
        shaderGroupBaseAlignment           = 32
        shaderGroupHandleCaptureReplaySize = 8
        maxRayDispatchInvocationCount      = 4294967295
        shaderGroupHandleAlignment         = 32
        maxRayHitAttributeSize             = 32

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

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

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

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

VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT:
----------------------------------------------------
        shaderModuleIdentifierAlgorithmUUID     = 09ac223f-2717-26c9-90ca-22f37271629c

VkPhysicalDeviceSubgroupProperties:
-----------------------------------
        subgroupSize              = 32
        supportedStages: count = 15
                SHADER_STAGE_VERTEX_BIT
                SHADER_STAGE_TESSELLATION_CONTROL_BIT
                SHADER_STAGE_TESSELLATION_EVALUATION_BIT
                SHADER_STAGE_GEOMETRY_BIT
                SHADER_STAGE_FRAGMENT_BIT
                SHADER_STAGE_COMPUTE_BIT
                SHADER_STAGE_RAYGEN_BIT_KHR
                SHADER_STAGE_ANY_HIT_BIT_KHR
                SHADER_STAGE_CLOSEST_HIT_BIT_KHR
                SHADER_STAGE_MISS_BIT_KHR
                SHADER_STAGE_INTERSECTION_BIT_KHR
                SHADER_STAGE_CALLABLE_BIT_KHR
                SHADER_STAGE_TASK_BIT_EXT
                SHADER_STAGE_MESH_BIT_EXT
                SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI
        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              = 8
        maxSubgroupSize              = 32
        maxComputeWorkgroupSubgroups = 64
        requiredSubgroupSizeStages: count = 3
                SHADER_STAGE_COMPUTE_BIT
                SHADER_STAGE_TASK_BIT_EXT
                SHADER_STAGE_MESH_BIT_EXT

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

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

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

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

VkPhysicalDeviceVulkan11Properties:
-----------------------------------
        deviceUUID                        = 8680a556-0500-0000-0300-000000000000
        driverUUID                        = 33312e30-2e31-3031-2e34-313438000000
        deviceLUID                        = b6132000-00000000
        deviceNodeMask                    = 1
        deviceLUIDValid                   = true
        subgroupSize                      = 32
        subgroupSupportedStages: count = 15
                SHADER_STAGE_VERTEX_BIT
                SHADER_STAGE_TESSELLATION_CONTROL_BIT
                SHADER_STAGE_TESSELLATION_EVALUATION_BIT
                SHADER_STAGE_GEOMETRY_BIT
                SHADER_STAGE_FRAGMENT_BIT
                SHADER_STAGE_COMPUTE_BIT
                SHADER_STAGE_RAYGEN_BIT_KHR
                SHADER_STAGE_ANY_HIT_BIT_KHR
                SHADER_STAGE_CLOSEST_HIT_BIT_KHR
                SHADER_STAGE_MISS_BIT_KHR
                SHADER_STAGE_INTERSECTION_BIT_KHR
                SHADER_STAGE_CALLABLE_BIT_KHR
                SHADER_STAGE_TASK_BIT_EXT
                SHADER_STAGE_MESH_BIT_EXT
                SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI
        subgroupSupportedOperations: count = 8
                SUBGROUP_FEATURE_BASIC_BIT
                SUBGROUP_FEATURE_VOTE_BIT
                SUBGROUP_FEATURE_ARITHMETIC_BIT
                SUBGROUP_FEATURE_BALLOT_BIT
                SUBGROUP_FEATURE_SHUFFLE_BIT
                SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT
                SUBGROUP_FEATURE_CLUSTERED_BIT
                SUBGROUP_FEATURE_QUAD_BIT
        subgroupQuadOperationsInAllStages = true
        pointClippingBehavior             = POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY
        maxMultiviewViewCount             = 16
        maxMultiviewInstanceIndex         = 268435454
        protectedNoFault                  = false
        maxPerSetDescriptors              = 335539239
        maxMemoryAllocationSize           = 0x3f9201800

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

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

Device Extensions: count = 125
        VK_EXT_4444_formats                         : extension revision 1
        VK_EXT_attachment_feedback_loop_layout      : extension revision 1
        VK_EXT_buffer_device_address                : extension revision 2
        VK_EXT_calibrated_timestamps                : extension revision 1
        VK_EXT_color_write_enable                   : extension revision 1
        VK_EXT_conditional_rendering                : extension revision 2
        VK_EXT_conservative_rasterization           : extension revision 1
        VK_EXT_custom_border_color                  : extension revision 12
        VK_EXT_depth_clip_control                   : extension revision 1
        VK_EXT_depth_clip_enable                    : extension revision 1
        VK_EXT_descriptor_indexing                  : extension revision 2
        VK_EXT_device_address_binding_report        : extension revision 1
        VK_EXT_extended_dynamic_state               : extension revision 1
        VK_EXT_extended_dynamic_state2              : extension revision 1
        VK_EXT_external_memory_host                 : extension revision 1
        VK_EXT_fragment_shader_interlock            : 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_2d_view_of_3d                  : 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_memory_budget                        : extension revision 1
        VK_EXT_memory_priority                      : extension revision 1
        VK_EXT_mesh_shader                          : extension revision 1
        VK_EXT_multi_draw                           : extension revision 1
        VK_EXT_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_pipeline_robustness                  : extension revision 1
        VK_EXT_post_depth_coverage                  : extension revision 1
        VK_EXT_primitive_topology_list_restart      : extension revision 1
        VK_EXT_primitives_generated_query           : extension revision 1
        VK_EXT_private_data                         : extension revision 1
        VK_EXT_provoking_vertex                     : extension revision 1
        VK_EXT_robustness2                          : extension revision 1
        VK_EXT_sample_locations                     : extension revision 1
        VK_EXT_sampler_filter_minmax                : extension revision 2
        VK_EXT_scalar_block_layout                  : extension revision 1
        VK_EXT_separate_stencil_usage               : extension revision 1
        VK_EXT_shader_atomic_float                  : extension revision 1
        VK_EXT_shader_atomic_float2                 : extension revision 1
        VK_EXT_shader_demote_to_helper_invocation   : extension revision 1
        VK_EXT_shader_module_identifier             : extension revision 1
        VK_EXT_shader_stencil_export                : extension revision 1
        VK_EXT_shader_subgroup_ballot               : extension revision 1
        VK_EXT_shader_subgroup_vote                 : extension revision 1
        VK_EXT_shader_viewport_index_layer          : extension revision 1
        VK_EXT_subgroup_size_control                : extension revision 2
        VK_EXT_texel_buffer_alignment               : extension revision 1
        VK_EXT_transform_feedback                   : extension revision 1
        VK_EXT_vertex_attribute_divisor             : extension revision 3
        VK_EXT_vertex_input_dynamic_state           : extension revision 2
        VK_EXT_ycbcr_2plane_444_formats             : extension revision 1
        VK_INTEL_performance_query                  : extension revision 2
        VK_KHR_16bit_storage                        : extension revision 1
        VK_KHR_8bit_storage                         : extension revision 1
        VK_KHR_acceleration_structure               : extension revision 13
        VK_KHR_bind_memory2                         : extension revision 1
        VK_KHR_buffer_device_address                : extension revision 1
        VK_KHR_copy_commands2                       : extension revision 1
        VK_KHR_create_renderpass2                   : extension revision 1
        VK_KHR_dedicated_allocation                 : extension revision 1
        VK_KHR_deferred_host_operations             : extension revision 4
        VK_KHR_depth_stencil_resolve                : extension revision 1
        VK_KHR_descriptor_update_template           : extension revision 1
        VK_KHR_device_group                         : extension revision 4
        VK_KHR_draw_indirect_count                  : extension revision 1
        VK_KHR_driver_properties                    : extension revision 1
        VK_KHR_dynamic_rendering                    : extension revision 1
        VK_KHR_external_fence                       : extension revision 1
        VK_KHR_external_fence_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 1
        VK_KHR_fragment_shading_rate                : extension revision 2
        VK_KHR_get_memory_requirements2             : extension revision 1
        VK_KHR_global_priority                      : extension revision 1
        VK_KHR_image_format_list                    : extension revision 1
        VK_KHR_imageless_framebuffer                : extension revision 1
        VK_KHR_maintenance1                         : extension revision 1
        VK_KHR_maintenance2                         : extension revision 1
        VK_KHR_maintenance3                         : extension revision 1
        VK_KHR_maintenance4                         : extension revision 2
        VK_KHR_multiview                            : extension revision 1
        VK_KHR_performance_query                    : extension revision 1
        VK_KHR_pipeline_executable_properties       : extension revision 1
        VK_KHR_pipeline_library                     : extension revision 1
        VK_KHR_push_descriptor                      : extension revision 1
        VK_KHR_ray_query                            : extension revision 1
        VK_KHR_ray_tracing_pipeline                 : extension revision 1
        VK_KHR_relaxed_block_layout                 : extension revision 1
        VK_KHR_sampler_mirror_clamp_to_edge         : extension revision 3
        VK_KHR_sampler_ycbcr_conversion             : extension revision 14
        VK_KHR_separate_depth_stencil_layouts       : extension revision 1
        VK_KHR_shader_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_NV_compute_shader_derivatives            : extension revision 1
        VK_NV_device_diagnostic_checkpoints         : extension revision 2

VkQueueFamilyProperties:
========================
        queueProperties[0]:
        -------------------
                minImageTransferGranularity = (1,1,1)
                queueCount                  = 1
                queueFlags                  = QUEUE_GRAPHICS | QUEUE_COMPUTE | QUEUE_TRANSFER | QUEUE_SPARSE_BINDING
                timestampValidBits          = 36
                present support             = true
                VkQueueFamilyGlobalPriorityPropertiesKHR:
                -----------------------------------------
                        priorityCount  = 4
                        priorities: count = 4
                                QUEUE_GLOBAL_PRIORITY_LOW_KHR
                                QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR
                                QUEUE_GLOBAL_PRIORITY_HIGH_KHR
                                QUEUE_GLOBAL_PRIORITY_REALTIME_KHR

        queueProperties[1]:
        -------------------
                minImageTransferGranularity = (1,1,1)
                queueCount                  = 1
                queueFlags                  = QUEUE_COMPUTE
                timestampValidBits          = 36
                present support             = true
                VkQueueFamilyGlobalPriorityPropertiesKHR:
                -----------------------------------------
                        priorityCount  = 4
                        priorities: count = 4
                                QUEUE_GLOBAL_PRIORITY_LOW_KHR
                                QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR
                                QUEUE_GLOBAL_PRIORITY_HIGH_KHR
                                QUEUE_GLOBAL_PRIORITY_REALTIME_KHR

        queueProperties[2]:
        -------------------
                minImageTransferGranularity = (1,1,1)
                queueCount                  = 1
                queueFlags                  = QUEUE_TRANSFER
                timestampValidBits          = 36
                present support             = true
                VkQueueFamilyGlobalPriorityPropertiesKHR:
                -----------------------------------------
                        priorityCount  = 4
                        priorities: count = 4
                                QUEUE_GLOBAL_PRIORITY_LOW_KHR
                                QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR
                                QUEUE_GLOBAL_PRIORITY_HIGH_KHR
                                QUEUE_GLOBAL_PRIORITY_REALTIME_KHR

VkPhysicalDeviceMemoryProperties:
=================================
memoryHeaps: count = 3
        memoryHeaps[0]:
                size   = 6081740800 (0x16a800000) (5.66 GiB)
                budget = 5543821312 (0x14a700000) (5.16 GiB)
                usage  = 0 (0x00000000) (0.00 B)
                flags: count = 1
                        MEMORY_HEAP_DEVICE_LOCAL_BIT
        memoryHeaps[1]:
                size   = 17064531968 (0x3f9201800) (15.89 GiB)
                budget = 16259225600 (0x3c9201800) (15.14 GiB)
                usage  = 0 (0x00000000) (0.00 B)
                flags:
                        None
        memoryHeaps[2]:
                size   = 268435456 (0x10000000) (256.00 MiB)
                budget = 268435456 (0x10000000) (256.00 MiB)
                usage  = 0 (0x00000000) (0.00 B)
                flags: count = 1
                        MEMORY_HEAP_DEVICE_LOCAL_BIT
memoryTypes: count = 4
        memoryTypes[0]:
                heapIndex     = 0
                propertyFlags = 0x0001: count = 1
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                color images
                                FORMAT_D16_UNORM
                                FORMAT_X8_D24_UNORM_PACK32
                                FORMAT_D32_SFLOAT
                                FORMAT_D24_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_X8_D24_UNORM_PACK32
                                FORMAT_D32_SFLOAT
                                FORMAT_D24_UNORM_S8_UINT
                                FORMAT_D32_SFLOAT_S8_UINT
                        IMAGE_TILING_LINEAR:
                                color images
        memoryTypes[2]:
                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_X8_D24_UNORM_PACK32
                                FORMAT_D32_SFLOAT
                                FORMAT_D24_UNORM_S8_UINT
                                FORMAT_D32_SFLOAT_S8_UINT
                        IMAGE_TILING_LINEAR:
                                color images
        memoryTypes[3]:
                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_X8_D24_UNORM_PACK32
                                FORMAT_D32_SFLOAT
                                FORMAT_D24_UNORM_S8_UINT
                                FORMAT_D32_SFLOAT_S8_UINT
                        IMAGE_TILING_LINEAR:
                                color images

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

VkPhysicalDeviceImage2DViewOf3DFeaturesEXT:
-------------------------------------------
        image2DViewOf3D   = true
        sampler2DViewOf3D = 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

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

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

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

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

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

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

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

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

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

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

VkPhysicalDevicePrivateDataFeatures:
------------------------------------
        privateData = true

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures:
------------------------------------------------------
        shaderZeroInitializeWorkgroupMemory = true
jarredwalton commented 1 year ago

Oh... I swapped GPUs from the A750 (used for the earlier report) to an A380. I'm not sure if they give identical vulkaninfo reports, though.

powderluv commented 1 year ago

I tried it on my A770 with base configs for a SIMT pipeline (like rdna2) and it failed with a black image. Will need to expose the Arc more cleanly to make sure it isn't a codegen problem and then follow up on the vulkan driver side of things.