Compute Modules
===

### Install OS / headless installation

#### SoQuartz (RK3566)

[![soquartz-cm.webp](https://bookstack.delmar.bzh/uploads/images/gallery/2024-05/scaled-1680-/qocUKTE93iLdKVDU-soquartz-cm.webp)](https://bookstack.delmar.bzh/uploads/images/gallery/2024-05/qocUKTE93iLdKVDU-soquartz-cm.webp)

##### Specifications

##### <span class="mw-headline" id="bkmrk-cpu-architecture-1">CPU Architecture</span>

- [Quad-core ARM Cortex-A55@1.8GHz](https://developer.arm.com/ip-products/processors/cortex-a/cortex-a55)
- AArch32 for full backwards compatibility with ARMv7
- ARM Neon Advanced SIMD (single instruction, multiple data) support for accelerated media and signal processing computation
- Includes VFP hardware to support single and double-precision operations
- ARMv8 Cryptography Extensions
- Integrated 32KB L1 instruction cache and 32KB L1 data cache per core
- 512KB unified system L3 cache

##### <span class="mw-headline" id="bkmrk-gpu-%28graphics-proces-1">GPU (Graphics Processing Unit) Capabilities</span>

- [Mali-G52 2EE Bifrost GPU@800MHz](https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-g52-gpu)
- 4x Multi-Sampling Anti-Aliasing (MSAA) with minimal performance drop
- 128KB L2 Cache configurations
- Supports OpenGL ES 1.1, 2.0, and 3.2
- Supports Vulkan 1.0 and 1.1
- Supports OpenCL 2.0 Full Profile
- Supports 1600 Mpix/s fill rate when at 800MHz clock frequency
- Supports 38.4 GLOP/s when at 800MHz clock frequency

##### <span class="mw-headline" id="bkmrk-neural-process-unit--1">Neural Process Unit NPU Capability</span>

- Neural network acceleration engine with processing performance of up to 0.8 TOPS
- Supports integer 8 and integer 16 convolution operations
- Supports the following deep learning frameworks: TensorFlow, TF-lite, Pytorch, Caffe, ONNX, MXNet, Keras, Darknet

##### <span class="mw-headline" id="bkmrk-system-memory-1">System Memory</span>

- RAM Memory Variants: 2GB, 4GB, 8GB LPDDR4.
- Storage Memory: optional 128Mb SPI Flash and optional eMMC module from 8GB up to 128GB

##### <span class="mw-headline" id="bkmrk-network-1">Network</span>

- 10/100/1000Mbps Ethernet
- WiFi 802.11 b/g/n/ac with Bluetooth 5.0

##### Setup

1. Flash the Plebian image to a SD card/ EMMC.
2. Boot.
3. ssh as "pleb/pleb" and complete setup

```bash
sudo usermod -aG sudo pleb

echo "pleb ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/pleb
```

```
sudo dpkg-reconfigure locales
sudo timedatectl set-timezone Europe/Paris
```

```bash
sudo apt update && sudo apt install -y curl

curl -O https://overviewer.org/~pillow/up/75bea78e59/devicetrees-plebian-quartz64-20230601130309-arm64.deb

sudo dpkg -i devicetrees-plebian-quartz64-20230601130309-arm64.deb

# sudo sysctl -w net.core.rmem_default=262144
# sudo sysctl -w net.core.rmem_max=262144

#
# W: Possible missing firmware /lib/firmware/rockchip/dptx.bin for module rockchipdrm
#
sudo mkdir -p /lib/firmware/rockchip/
wget https://raw.githubusercontent.com/wkennington/linux-firmware/master/rockchip/dptx.bin
sudo cp /home/pleb/dptx.bin /lib/firmware/rockchip/dptx.bin
```

```bash
sudo apt install -y cowsay fortune

sudo vim /etc/update-motd.d/01-cowsay
```

```bash
#!/bin/bash
/usr/games/fortune | /usr/games/cowsay -f tux
```

```bash
sudo chmod +x /etc/update-motd.d/01-cowsay
```

#### Networking

> [Networking](networking.md)

#### Sensors

```bash
sudo apt install lm-sensors fancontrol read-edid i2c-tools libi2c-dev python3-smbus -y

sudo sensors-detect
```
---

####  Turing RK1 (RK3588)

[![turing-rk1-cm.webp](https://bookstack.delmar.bzh/uploads/images/gallery/2024-05/scaled-1680-/q91BzNH9bujT572b-turing-rk1-cm.webp)](https://bookstack.delmar.bzh/uploads/images/gallery/2024-05/q91BzNH9bujT572b-turing-rk1-cm.webp)

##### Specifications

<table id="bkmrk-instruction-set-armv"><tbody><tr><td>**Instruction Set**</td><td>ARMv8-A (64-bit)</td></tr><tr><td>**OS Support**</td><td>Ubuntu Server 22.04 LTS</td></tr><tr><td>**CPUs**</td><td>8× | 4× ARM Cortex-A76 | 4× ARM Cortex-A55 | DynamIQ</td></tr><tr><td>**GPU**</td><td>G610 GPU  
Support OpenGLES 1.1, 2.0, and 3.2, OpenCL up to 2.2 and Vulkan1.2  
Proprietary 2D hardware acceleration engine</td></tr><tr><td>**NPU**</td><td>6 TOPS</td></tr><tr><td>**RAM**</td><td>LPDDR4 up to 32 GB</td></tr><tr><td>**Storage**</td><td>32 G eMMC 5.1, SD 3.0</td></tr><tr><td>**Ethernet**</td><td>1000Mbps</td></tr><tr><td>**USB**</td><td>2x USB 3.0, 2x USB 2.0</td></tr><tr><td>**PCIe**</td><td>PCIe Gen3</td></tr><tr><td>**MIPI**</td><td>4-Lane MIPI-DSI, 4-Lane MIPI-CSI</td></tr><tr><td>**Digital Audio port**</td><td>2× I2S</td></tr><tr><td>**HDMI**</td><td>HDMI 2.1, 8K@60fps</td></tr><tr><td>**Video input port**</td><td>2× MIPI-CSI RX 4× lanes  
1× MIPI-CSI DPHY RX 4× lanes</td></tr><tr><td>**Display output port**</td><td>1× MIPI-DSI DPHY 2× lanes  
1× HDMI 2.1  
1× DP 1.4</td></tr><tr><td>**VPU**</td><td>VPU 2.0, supporting 8K video</td></tr><tr><td>**Video Encoder**</td><td>H264, 8K@30FPS  
VP9/H265, 8k@60FPS  
AV1/AVS2, 4k@60FPS</td></tr><tr><td>**Video Decoder**</td><td>H265/H264/VP9/AV1/AVS2 up to 8K@60fps</td></tr><tr><td>**Power**</td><td>5V/3A via USB Type-C</td></tr><tr><td>**Operating Temp**</td><td>-20°C to 70°C</td></tr><tr><td>**Storage Temp**</td><td>-40°C to 85°C</td></tr><tr><td>**Weight**</td><td>17g</td></tr><tr><td>**Form Factor**</td><td>69.6mm x 45mm  
260-pin SO-DIMM connector</td></tr></tbody></table>

##### Setup

[https://joshua-riek.github.io/ubuntu-rockchip-download/boards/turing-rk1.html](https://joshua-riek.github.io/ubuntu-rockchip-download/boards/turing-rk1.html)

> gary (192.168.1.13) | sandy (192.168.1.14) | sheldon (192.168.1.16) | pearl (192.168.1.19)
> pleb / transatlantique

```bash
sudo useradd pleb
sudo groupadd sudo
sudo usermod -aG sudo pleb

echo "pleb ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/pleb
```

```bash
sudo hostnamectl set-hostname [hostname]
sudo dpkg-reconfigure tzdata

(. /etc/lsb-release &&
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh |
sudo env os=ubuntu dist="${DISTRIB_CODENAME}" bash)

sudo apt update && sudo apt install -y git-all git-lfs curl wget screenfetch net-tools open-iscsi python3 python3-pip build-essential libssl-dev libffi-dev python3-dev wireguard
```

### GPU Drivers
```bash
cd /usr/lib && sudo wget https://github.com/JeffyCN/mirrors/raw/libmali/lib/aarch64-linux-gnu/libmali-valhall-g610-g6p0-x11-wayland-gbm.so

cd /lib/firmware && sudo wget https://github.com/JeffyCN/mirrors/raw/libmali/firmware/g610/mali_csffw.bin

sudo apt update && sudo apt install -y mesa-opencl-icd
sudo mkdir -p /etc/OpenCL/vendors && echo "/usr/lib/libmali-valhall-g610-g6p0-x11-wayland-gbm.so" | sudo tee /etc/OpenCL/vendors/mali.icd

sudo apt install -y ocl-icd-opencl-dev
sudo apt install -y libxcb-dri2-0 libxcb-dri3-0 libwayland-client0 libwayland-server0 libx11-xcb1
sudo apt install -y clinfo vulkan-tools
```

#### clinfo
```info
Number of platforms                               2
  Platform Name                                   ARM Platform
  Platform Vendor                                 ARM
  Platform Version                                OpenCL 2.1 v1.g6p0-01eac0.2819f9d4dbe0b5a2f89c835d8484f9cd
  Platform Profile                                FULL_PROFILE
  Platform Extensions                             cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_byte_addressable_store cl_khr_3d_image_writes cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_fp16 cl_khr_icd cl_khr_egl_image cl_khr_image2d_from_buffer cl_khr_depth_images cl_khr_subgroups cl_khr_subgroup_extended_types cl_khr_subgroup_non_uniform_vote cl_khr_subgroup_ballot cl_khr_il_program cl_khr_priority_hints cl_khr_create_command_queue cl_khr_spirv_no_integer_wrap_decoration cl_khr_extended_versioning cl_khr_device_uuid cl_arm_core_id cl_arm_printf cl_arm_non_uniform_work_group_size cl_arm_import_memory cl_arm_import_memory_dma_buf cl_arm_import_memory_host cl_arm_integer_dot_product_int8 cl_arm_integer_dot_product_accumulate_int8 cl_arm_integer_dot_product_accumulate_saturate_int8 cl_arm_scheduling_controls cl_arm_controlled_kernel_termination cl_ext_cxx_for_opencl
  Platform Extensions function suffix             ARM
  Platform Host timer resolution                  1ns

Segmentation fault (core dumped)
```

#### vulkaninfo
```info
'DISPLAY' environment variable not set... skipping surface info
==========
VULKANINFO
==========

Vulkan Instance Version: 1.4.321


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

Layers: count = 3
=================
VK_LAYER_INTEL_nullhw (INTEL NULL HW) Vulkan version 1.1.73, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 2
                GPU id = 0 (Mali-G610)
                Layer-Device Extensions: count = 0

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

VK_LAYER_MESA_device_select (Linux device selection layer) Vulkan version 1.4.303, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 2
                GPU id = 0 (Mali-G610)
                Layer-Device Extensions: count = 0

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

VK_LAYER_MESA_overlay (Mesa Overlay layer) Vulkan version 1.4.303, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 2
                GPU id = 0 (Mali-G610)
                Layer-Device Extensions: count = 0

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

Device Properties and Extensions:
=================================
GPU0:
VkPhysicalDeviceProperties:
---------------------------
        apiVersion        = 1.4.318 (4211006)
        driverVersion     = 25.2.8 (104865800)
        vendorID          = 0x13b5
        deviceID          = 0xa8670000
        deviceType        = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
        deviceName        = Mali-G610
        pipelineCacheUUID = 98f63769-0500-7061-6e00-000000000000

VkPhysicalDeviceLimits:
-----------------------
        maxImageDimension1D                             = 65536
        maxImageDimension2D                             = 16383
        maxImageDimension3D                             = 512
        maxImageDimensionCube                           = 16383
        maxImageArrayLayers                             = 65536
        maxTexelBufferElements                          = 65536
        maxUniformBufferRange                           = 1048576
        maxStorageBufferRange                           = 4294967295
        maxPushConstantsSize                            = 256
        maxMemoryAllocationCount                        = 4294967295
        maxSamplerAllocationCount                       = 4294967295
        bufferImageGranularity                          = 0x00000040
        sparseAddressSpaceSize                          = 0x00000000
        maxBoundDescriptorSets                          = 15
        maxPerStageDescriptorSamplers                   = 1048576
        maxPerStageDescriptorUniformBuffers             = 1048576
        maxPerStageDescriptorStorageBuffers             = 1048576
        maxPerStageDescriptorSampledImages              = 1048576
        maxPerStageDescriptorStorageImages              = 1048576
        maxPerStageDescriptorInputAttachments           = 9
        maxPerStageResources                            = 5242889
        maxDescriptorSetSamplers                        = 1048576
        maxDescriptorSetUniformBuffers                  = 1048576
        maxDescriptorSetUniformBuffersDynamic           = 16
        maxDescriptorSetStorageBuffers                  = 1048576
        maxDescriptorSetStorageBuffersDynamic           = 8
        maxDescriptorSetSampledImages                   = 1048576
        maxDescriptorSetStorageImages                   = 1048576
        maxDescriptorSetInputAttachments                = 9
        maxVertexInputAttributes                        = 16
        maxVertexInputBindings                          = 16
        maxVertexInputAttributeOffset                   = 4294967295
        maxVertexInputBindingStride                     = 65535
        maxVertexOutputComponents                       = 128
        maxTessellationGenerationLevel                  = 0
        maxTessellationPatchSize                        = 0
        maxTessellationControlPerVertexInputComponents  = 0
        maxTessellationControlPerVertexOutputComponents = 0
        maxTessellationControlPerPatchOutputComponents  = 0
        maxTessellationControlTotalOutputComponents     = 0
        maxTessellationEvaluationInputComponents        = 0
        maxTessellationEvaluationOutputComponents       = 0
        maxGeometryShaderInvocations                    = 0
        maxGeometryInputComponents                      = 0
        maxGeometryOutputComponents                     = 0
        maxGeometryOutputVertices                       = 0
        maxGeometryTotalOutputComponents                = 0
        maxFragmentInputComponents                      = 128
        maxFragmentOutputAttachments                    = 8
        maxFragmentDualSrcAttachments                   = 8
        maxFragmentCombinedOutputResources              = 4360
        maxComputeSharedMemorySize                      = 32768
        maxComputeWorkGroupCount: count = 3
                65535
                65535
                65535
        maxComputeWorkGroupInvocations                  = 1024
        maxComputeWorkGroupSize: count = 3
                1024
                1024
                1024
        subPixelPrecisionBits                           = 8
        subTexelPrecisionBits                           = 8
        mipmapPrecisionBits                             = 8
        maxDrawIndexedIndexValue                        = 4294967295
        maxDrawIndirectCount                            = 4294967295
        maxSamplerLodBias                               = 127.996
        maxSamplerAnisotropy                            = 16
        maxViewports                                    = 1
        maxViewportDimensions: count = 2
                16384
                16384
        viewportBoundsRange: count = 2
                -32768
                32767
        viewportSubPixelBits                            = 0
        minMemoryMapAlignment                           = 4096
        minTexelBufferOffsetAlignment                   = 0x00000040
        minUniformBufferOffsetAlignment                 = 0x00000010
        minStorageBufferOffsetAlignment                 = 0x00000004
        minTexelOffset                                  = -8
        maxTexelOffset                                  = 7
        minTexelGatherOffset                            = -8
        maxTexelGatherOffset                            = 7
        minInterpolationOffset                          = -0.5
        maxInterpolationOffset                          = 0.5
        subPixelInterpolationOffsetBits                 = 8
        maxFramebufferWidth                             = 16384
        maxFramebufferHeight                            = 16384
        maxFramebufferLayers                            = 256
        framebufferColorSampleCounts: count = 4
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT
                SAMPLE_COUNT_16_BIT
        framebufferDepthSampleCounts: count = 4
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT
                SAMPLE_COUNT_16_BIT
        framebufferStencilSampleCounts: count = 4
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT
                SAMPLE_COUNT_16_BIT
        framebufferNoAttachmentsSampleCounts: count = 4
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT
                SAMPLE_COUNT_16_BIT
        maxColorAttachments                             = 8
        sampledImageColorSampleCounts: count = 4
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT
                SAMPLE_COUNT_16_BIT
        sampledImageIntegerSampleCounts: count = 4
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT
                SAMPLE_COUNT_16_BIT
        sampledImageDepthSampleCounts: count = 4
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT
                SAMPLE_COUNT_16_BIT
        sampledImageStencilSampleCounts: count = 4
                SAMPLE_COUNT_1_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                                 = 0
        maxClipDistances                                = 0
        maxCullDistances                                = 0
        maxCombinedClipAndCullDistances                 = 0
        discreteQueuePriorities                         = 2
        pointSizeRange: count = 2
                0.125
                4095.94
        lineWidthRange: count = 2
                0
                7.99219
        pointSizeGranularity                            = 0.0625
        lineWidthGranularity                            = 0.0078125
        strictLines                                     = true
        standardSampleLocations                         = true
        optimalBufferCopyOffsetAlignment                = 0x00000040
        optimalBufferCopyRowPitchAlignment              = 0x00000040
        nonCoherentAtomSize                             = 0x00000040

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

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

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

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

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

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

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

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

VkPhysicalDeviceVulkan11Properties:
-----------------------------------
        deviceUUID                        = b5130000-0000-67a8-0000-000000000000
        driverUUID                        = 5bce8bad-e09d-def7-e345-13db3db5df77
        deviceNodeMask                    = 0
        deviceLUIDValid                   = false
        subgroupSize                      = 16
        subgroupSupportedStages: count = 2
                SHADER_STAGE_FRAGMENT_BIT
                SHADER_STAGE_COMPUTE_BIT
        subgroupSupportedOperations: count = 10
                SUBGROUP_FEATURE_BASIC_BIT
                SUBGROUP_FEATURE_VOTE_BIT
                SUBGROUP_FEATURE_ARITHMETIC_BIT
                SUBGROUP_FEATURE_BALLOT_BIT
                SUBGROUP_FEATURE_SHUFFLE_BIT
                SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT
                SUBGROUP_FEATURE_CLUSTERED_BIT
                SUBGROUP_FEATURE_QUAD_BIT
                SUBGROUP_FEATURE_ROTATE_BIT
                SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT
        subgroupQuadOperationsInAllStages = false
        pointClippingBehavior             = POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES
        maxMultiviewViewCount             = 8
        maxMultiviewInstanceIndex         = 4294967295
        protectedNoFault                  = false
        maxPerSetDescriptors              = 65535
        maxMemoryAllocationSize           = 0xffffffff

VkPhysicalDeviceVulkan12Properties:
-----------------------------------
        driverID                                             = DRIVER_ID_MESA_PANVK
        driverName                                           = panvk
        driverInfo                                           = Mesa 25.2.8-0ubuntu0.25.10.1
        conformanceVersion:
                major    = 1
                minor    = 4
                subminor = 1
                patch    = 2
        denormBehaviorIndependence                           = SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
        roundingModeIndependence                             = SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL
        shaderSignedZeroInfNanPreserveFloat16                = true
        shaderSignedZeroInfNanPreserveFloat32                = true
        shaderSignedZeroInfNanPreserveFloat64                = false
        shaderDenormPreserveFloat16                          = true
        shaderDenormPreserveFloat32                          = true
        shaderDenormPreserveFloat64                          = true
        shaderDenormFlushToZeroFloat16                       = true
        shaderDenormFlushToZeroFloat32                       = true
        shaderDenormFlushToZeroFloat64                       = true
        shaderRoundingModeRTEFloat16                         = true
        shaderRoundingModeRTEFloat32                         = true
        shaderRoundingModeRTEFloat64                         = false
        shaderRoundingModeRTZFloat16                         = true
        shaderRoundingModeRTZFloat32                         = true
        shaderRoundingModeRTZFloat64                         = false
        maxUpdateAfterBindDescriptorsInAllPools              = 4294967295
        shaderUniformBufferArrayNonUniformIndexingNative     = false
        shaderSampledImageArrayNonUniformIndexingNative      = false
        shaderStorageBufferArrayNonUniformIndexingNative     = false
        shaderStorageImageArrayNonUniformIndexingNative      = false
        shaderInputAttachmentArrayNonUniformIndexingNative   = false
        robustBufferAccessUpdateAfterBind                    = true
        quadDivergentImplicitLod                             = false
        maxPerStageDescriptorUpdateAfterBindSamplers         = 1048576
        maxPerStageDescriptorUpdateAfterBindUniformBuffers   = 1048576
        maxPerStageDescriptorUpdateAfterBindStorageBuffers   = 1048576
        maxPerStageDescriptorUpdateAfterBindSampledImages    = 1048576
        maxPerStageDescriptorUpdateAfterBindStorageImages    = 1048576
        maxPerStageDescriptorUpdateAfterBindInputAttachments = 9
        maxPerStageUpdateAfterBindResources                  = 5242889
        maxDescriptorSetUpdateAfterBindSamplers              = 1048576
        maxDescriptorSetUpdateAfterBindUniformBuffers        = 1048576
        maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = 16
        maxDescriptorSetUpdateAfterBindStorageBuffers        = 1048576
        maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = 8
        maxDescriptorSetUpdateAfterBindSampledImages         = 1048576
        maxDescriptorSetUpdateAfterBindStorageImages         = 1048576
        maxDescriptorSetUpdateAfterBindInputAttachments      = 9
        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                  = 9223372036854775807
        framebufferIntegerColorSampleCounts: count = 4
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT
                SAMPLE_COUNT_16_BIT

VkPhysicalDeviceVulkan13Properties:
-----------------------------------
        minSubgroupSize                                                               = 16
        maxSubgroupSize                                                               = 16
        maxComputeWorkgroupSubgroups                                                  = 64
        requiredSubgroupSizeStages: count = 1
                SHADER_STAGE_COMPUTE_BIT
        maxInlineUniformBlockSize                                                     = 65536
        maxPerStageDescriptorInlineUniformBlocks                                      = 26
        maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks                       = 26
        maxDescriptorSetInlineUniformBlocks                                           = 26
        maxDescriptorSetUpdateAfterBindInlineUniformBlocks                            = 26
        maxInlineUniformTotalSize                                                     = 1703936
        integerDotProduct8BitUnsignedAccelerated                                      = false
        integerDotProduct8BitSignedAccelerated                                        = false
        integerDotProduct8BitMixedSignednessAccelerated                               = false
        integerDotProduct4x8BitPackedUnsignedAccelerated                              = true
        integerDotProduct4x8BitPackedSignedAccelerated                                = true
        integerDotProduct4x8BitPackedMixedSignednessAccelerated                       = false
        integerDotProduct16BitUnsignedAccelerated                                     = false
        integerDotProduct16BitSignedAccelerated                                       = false
        integerDotProduct16BitMixedSignednessAccelerated                              = false
        integerDotProduct32BitUnsignedAccelerated                                     = false
        integerDotProduct32BitSignedAccelerated                                       = false
        integerDotProduct32BitMixedSignednessAccelerated                              = false
        integerDotProduct64BitUnsignedAccelerated                                     = false
        integerDotProduct64BitSignedAccelerated                                       = false
        integerDotProduct64BitMixedSignednessAccelerated                              = false
        integerDotProductAccumulatingSaturating8BitUnsignedAccelerated                = false
        integerDotProductAccumulatingSaturating8BitSignedAccelerated                  = false
        integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated         = false
        integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated        = false
        integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated          = false
        integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = false
        integerDotProductAccumulatingSaturating16BitUnsignedAccelerated               = false
        integerDotProductAccumulatingSaturating16BitSignedAccelerated                 = false
        integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated        = false
        integerDotProductAccumulatingSaturating32BitUnsignedAccelerated               = false
        integerDotProductAccumulatingSaturating32BitSignedAccelerated                 = false
        integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated        = false
        integerDotProductAccumulatingSaturating64BitUnsignedAccelerated               = false
        integerDotProductAccumulatingSaturating64BitSignedAccelerated                 = false
        integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated        = false
        storageTexelBufferOffsetAlignmentBytes                                        = 0x00000040
        storageTexelBufferOffsetSingleTexelAlignment                                  = false
        uniformTexelBufferOffsetAlignmentBytes                                        = 0x00000040
        uniformTexelBufferOffsetSingleTexelAlignment                                  = false
        maxBufferSize                                                                 = 0x40000000

VkPhysicalDeviceVulkan14Properties:
-----------------------------------
        lineSubPixelPrecisionBits                           = 8
        maxVertexAttribDivisor                              = 4294967295
        supportsNonZeroFirstInstance                        = true
        maxPushDescriptors                                  = 32
        dynamicRenderingLocalReadDepthStencilAttachments    = false
        dynamicRenderingLocalReadMultisampledAttachments    = false
        earlyFragmentMultisampleCoverageAfterSampleCounting = true
        earlyFragmentSampleMaskTestBeforeSampleCounting     = true
        depthStencilSwizzleOneSupport                       = false
        polygonModePointSize                                = false
        nonStrictSinglePixelWideLinesUseParallelogram       = false
        nonStrictWideLinesUseParallelogram                  = false
        blockTexelViewCompatibleMultipleLayers              = true
        maxCombinedImageSamplerDescriptorCount              = 1
        fragmentShadingRateClampCombinerInputs              = false
        defaultRobustnessStorageBuffers                     = PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS
        defaultRobustnessUniformBuffers                     = PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS
        defaultRobustnessVertexInputs                       = PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS
        defaultRobustnessImages                             = PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS
        copySrcLayoutCount                                  = 16
        pCopySrcLayouts: count = 16
                IMAGE_LAYOUT_GENERAL
                IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
                IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
                IMAGE_LAYOUT_PREINITIALIZED
                IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_RENDERING_LOCAL_READ
        copyDstLayoutCount                                  = 16
        pCopyDstLayouts: count = 16
                IMAGE_LAYOUT_GENERAL
                IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
                IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
                IMAGE_LAYOUT_PREINITIALIZED
                IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_RENDERING_LOCAL_READ
        optimalTilingLayoutUUID                             = 5bce8bad-e09d-def7-e345-13db3db5df77
        identicalMemoryTypeRequirements                     = true

Device Extensions: count = 131
        VK_ARM_shader_core_properties               : extension revision 1
        VK_EXT_4444_formats                         : extension revision 1
        VK_EXT_border_color_swizzle                 : extension revision 1
        VK_EXT_buffer_device_address                : extension revision 2
        VK_EXT_calibrated_timestamps                : extension revision 2
        VK_EXT_custom_border_color                  : extension revision 12
        VK_EXT_depth_bias_control                   : extension revision 1
        VK_EXT_depth_clamp_zero_one                 : extension revision 1
        VK_EXT_depth_clip_control                   : extension revision 1
        VK_EXT_depth_clip_enable                    : extension revision 1
        VK_EXT_descriptor_indexing                  : extension revision 2
        VK_EXT_display_control                      : extension revision 1
        VK_EXT_extended_dynamic_state               : extension revision 1
        VK_EXT_extended_dynamic_state2              : extension revision 1
        VK_EXT_external_memory_dma_buf              : extension revision 1
        VK_EXT_global_priority                      : extension revision 2
        VK_EXT_global_priority_query                : extension revision 1
        VK_EXT_graphics_pipeline_library            : extension revision 1
        VK_EXT_hdr_metadata                         : extension revision 3
        VK_EXT_host_image_copy                      : extension revision 1
        VK_EXT_host_query_reset                     : extension revision 1
        VK_EXT_image_2d_view_of_3d                  : extension revision 1
        VK_EXT_image_drm_format_modifier            : extension revision 2
        VK_EXT_image_robustness                     : extension revision 1
        VK_EXT_index_type_uint8                     : extension revision 1
        VK_EXT_inline_uniform_block                 : extension revision 1
        VK_EXT_line_rasterization                   : extension revision 1
        VK_EXT_load_store_op_none                   : extension revision 1
        VK_EXT_non_seamless_cube_map                : extension revision 1
        VK_EXT_physical_device_drm                  : extension revision 1
        VK_EXT_pipeline_creation_cache_control      : extension revision 3
        VK_EXT_pipeline_creation_feedback           : extension revision 1
        VK_EXT_pipeline_robustness                  : extension revision 1
        VK_EXT_primitive_topology_list_restart      : extension revision 1
        VK_EXT_private_data                         : extension revision 1
        VK_EXT_provoking_vertex                     : extension revision 1
        VK_EXT_queue_family_foreign                 : extension revision 1
        VK_EXT_robustness2                          : extension revision 1
        VK_EXT_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_demote_to_helper_invocation   : extension revision 1
        VK_EXT_shader_module_identifier             : extension revision 1
        VK_EXT_shader_replicated_composites         : extension revision 1
        VK_EXT_shader_subgroup_ballot               : extension revision 1
        VK_EXT_shader_subgroup_vote                 : extension revision 1
        VK_EXT_subgroup_size_control                : extension revision 2
        VK_EXT_texel_buffer_alignment               : extension revision 1
        VK_EXT_texture_compression_astc_hdr         : extension revision 1
        VK_EXT_tooling_info                         : extension revision 1
        VK_EXT_vertex_attribute_divisor             : extension revision 3
        VK_EXT_vertex_input_dynamic_state           : extension revision 2
        VK_EXT_ycbcr_2plane_444_formats             : extension revision 1
        VK_EXT_ycbcr_image_arrays                   : extension revision 1
        VK_GOOGLE_decorate_string                   : extension revision 1
        VK_GOOGLE_hlsl_functionality1               : extension revision 1
        VK_GOOGLE_user_type                         : extension revision 1
        VK_KHR_16bit_storage                        : extension revision 1
        VK_KHR_8bit_storage                         : extension revision 1
        VK_KHR_bind_memory2                         : extension revision 1
        VK_KHR_buffer_device_address                : extension revision 1
        VK_KHR_calibrated_timestamps                : extension revision 1
        VK_KHR_copy_commands2                       : extension revision 1
        VK_KHR_create_renderpass2                   : extension revision 1
        VK_KHR_dedicated_allocation                 : extension revision 3
        VK_KHR_depth_clamp_zero_one                 : extension revision 1
        VK_KHR_depth_stencil_resolve                : extension revision 1
        VK_KHR_descriptor_update_template           : extension revision 1
        VK_KHR_device_group                         : extension revision 4
        VK_KHR_draw_indirect_count                  : extension revision 1
        VK_KHR_driver_properties                    : extension revision 1
        VK_KHR_dynamic_rendering                    : extension revision 1
        VK_KHR_dynamic_rendering_local_read         : extension revision 1
        VK_KHR_external_fence                       : extension revision 1
        VK_KHR_external_fence_fd                    : extension revision 1
        VK_KHR_external_memory                      : extension revision 1
        VK_KHR_external_memory_fd                   : extension revision 1
        VK_KHR_external_semaphore                   : extension revision 1
        VK_KHR_external_semaphore_fd                : extension revision 1
        VK_KHR_format_feature_flags2                : extension revision 2
        VK_KHR_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_index_type_uint8                     : extension revision 1
        VK_KHR_line_rasterization                   : extension revision 1
        VK_KHR_load_store_op_none                   : extension revision 1
        VK_KHR_maintenance1                         : extension revision 2
        VK_KHR_maintenance2                         : extension revision 1
        VK_KHR_maintenance3                         : extension revision 1
        VK_KHR_maintenance4                         : extension revision 2
        VK_KHR_maintenance5                         : extension revision 1
        VK_KHR_maintenance6                         : extension revision 1
        VK_KHR_map_memory2                          : extension revision 1
        VK_KHR_multiview                            : extension revision 1
        VK_KHR_pipeline_executable_properties       : extension revision 1
        VK_KHR_pipeline_library                     : extension revision 1
        VK_KHR_present_id2                          : extension revision 1
        VK_KHR_present_wait2                        : extension revision 1
        VK_KHR_push_descriptor                      : extension revision 2
        VK_KHR_relaxed_block_layout                 : extension revision 1
        VK_KHR_sampler_mirror_clamp_to_edge         : extension revision 3
        VK_KHR_sampler_ycbcr_conversion             : extension revision 14
        VK_KHR_separate_depth_stencil_layouts       : extension revision 1
        VK_KHR_shader_atomic_int64                  : extension revision 1
        VK_KHR_shader_clock                         : extension revision 1
        VK_KHR_shader_draw_parameters               : extension revision 1
        VK_KHR_shader_expect_assume                 : extension revision 1
        VK_KHR_shader_float16_int8                  : extension revision 1
        VK_KHR_shader_float_controls                : extension revision 4
        VK_KHR_shader_float_controls2               : extension revision 1
        VK_KHR_shader_integer_dot_product           : extension revision 1
        VK_KHR_shader_maximal_reconvergence         : extension revision 1
        VK_KHR_shader_non_semantic_info             : extension revision 1
        VK_KHR_shader_quad_control                  : extension revision 1
        VK_KHR_shader_relaxed_extended_instruction  : extension revision 1
        VK_KHR_shader_subgroup_extended_types       : extension revision 1
        VK_KHR_shader_subgroup_rotate               : extension revision 2
        VK_KHR_shader_subgroup_uniform_control_flow : extension revision 1
        VK_KHR_shader_terminate_invocation          : extension revision 1
        VK_KHR_spirv_1_4                            : extension revision 1
        VK_KHR_storage_buffer_storage_class         : extension revision 1
        VK_KHR_swapchain                            : extension revision 70
        VK_KHR_synchronization2                     : extension revision 1
        VK_KHR_timeline_semaphore                   : extension revision 2
        VK_KHR_unified_image_layouts                : extension revision 1
        VK_KHR_uniform_buffer_standard_layout       : extension revision 1
        VK_KHR_variable_pointers                    : extension revision 1
        VK_KHR_vertex_attribute_divisor             : extension revision 1
        VK_KHR_vulkan_memory_model                  : extension revision 3
        VK_KHR_zero_initialize_workgroup_memory     : extension revision 1

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

VkPhysicalDeviceMemoryProperties:
=================================
memoryHeaps: count = 1
        memoryHeaps[0]:
                size   = 12551374848 (0x2ec1ec800) (11.69 GiB)
                flags: count = 1
                        MEMORY_HEAP_DEVICE_LOCAL_BIT
memoryTypes: count = 1
        memoryTypes[0]:
                heapIndex     = 0
                propertyFlags = 0x0007: count = 3
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                color images
                                FORMAT_D16_UNORM
                                FORMAT_X8_D24_UNORM_PACK32
                                FORMAT_D32_SFLOAT
                                FORMAT_S8_UINT
                                FORMAT_D24_UNORM_S8_UINT
                                FORMAT_D32_SFLOAT_S8_UINT
                                (non-sparse)
                        IMAGE_TILING_LINEAR:
                                color images
                                (non-sparse)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

VkPhysicalDeviceVulkan14Features:
---------------------------------
        globalPriorityQuery                    = true
        shaderSubgroupRotate                   = true
        shaderSubgroupRotateClustered          = true
        shaderFloatControls2                   = true
        shaderExpectAssume                     = true
        rectangularLines                       = true
        bresenhamLines                         = true
        smoothLines                            = false
        stippledRectangularLines               = false
        stippledBresenhamLines                 = false
        stippledSmoothLines                    = false
        vertexAttributeInstanceRateDivisor     = true
        vertexAttributeInstanceRateZeroDivisor = true
        indexTypeUint8                         = true
        dynamicRenderingLocalRead              = true
        maintenance5                           = true
        maintenance6                           = true
        pipelineProtectedAccess                = false
        pipelineRobustness                     = true
        hostImageCopy                          = true
        pushDescriptor                         = true

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

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


GPU1:
VkPhysicalDeviceProperties:
---------------------------
        apiVersion        = 1.4.318 (4211006)
        driverVersion     = 25.2.8 (104865800)
        vendorID          = 0x10005
        deviceID          = 0x0000
        deviceType        = PHYSICAL_DEVICE_TYPE_CPU
        deviceName        = llvmpipe (LLVM 20.1.8, 128 bits)
        pipelineCacheUUID = 32352e32-2e38-2d30-7562-756e7475302e

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

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

VkPhysicalDeviceAccelerationStructurePropertiesKHR:
---------------------------------------------------
        maxGeometryCount                                           = 16777215
        maxInstanceCount                                           = 16777215
        maxPrimitiveCount                                          = 536870911
        maxPerStageDescriptorAccelerationStructures                = 1000000
        maxPerStageDescriptorUpdateAfterBindAccelerationStructures = 1000000
        maxDescriptorSetAccelerationStructures                     = 1000000
        maxDescriptorSetUpdateAfterBindAccelerationStructures      = 1000000
        minAccelerationStructureScratchOffsetAlignment             = 8

VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR:
------------------------------------------------------
        meshAndTaskShaderDerivatives = true

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

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

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

VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT:
-----------------------------------------------------
        maxIndirectPipelineCount                      = 4096
        maxIndirectShaderObjectCount                  = 4096
        maxIndirectSequenceCount                      = 1048576
        maxIndirectCommandsTokenCount                 = 16
        maxIndirectCommandsTokenOffset                = 2047
        maxIndirectCommandsIndirectStride             = 2048
        supportedIndirectCommandsInputModes: count = 2
                INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT
                INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT
        supportedIndirectCommandsShaderStages: count = 16
                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
                SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI
        supportedIndirectCommandsShaderStagesPipelineBinding: count = 16
                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
                SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI
        supportedIndirectCommandsShaderStagesShaderBinding: count = 16
                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
                SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI
        deviceGeneratedCommandsTransformFeedback      = true
        deviceGeneratedCommandsMultiDrawIndirectCount = true

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

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

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

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

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

VkPhysicalDeviceMaintenance7PropertiesKHR:
------------------------------------------
        robustFragmentShadingRateAttachmentAccess                 = false
        separateDepthStencilAttachmentAccess                      = true
        maxDescriptorSetTotalUniformBuffersDynamic                = 1000000
        maxDescriptorSetTotalStorageBuffersDynamic                = 1000000
        maxDescriptorSetTotalBuffersDynamic                       = 1000000
        maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic = 500000
        maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic = 500000
        maxDescriptorSetUpdateAfterBindTotalBuffersDynamic        = 1000000

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

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

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

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

VkPhysicalDeviceRayTracingPipelinePropertiesKHR:
------------------------------------------------
        shaderGroupHandleSize              = 32
        maxRayRecursionDepth               = 31
        maxShaderGroupStride               = 16384
        shaderGroupBaseAlignment           = 32
        shaderGroupHandleCaptureReplaySize = 0
        maxRayDispatchInvocationCount      = 67108864
        shaderGroupHandleAlignment         = 16
        maxRayHitAttributeSize             = 32

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

VkPhysicalDeviceShaderObjectPropertiesEXT:
------------------------------------------
        shaderBinaryUUID     = 32352e32-2e38-2d30-7562-756e7475302e
        shaderBinaryVersion  = 1

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

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

VkPhysicalDeviceVulkan11Properties:
-----------------------------------
        deviceUUID                        = 6d657361-3235-2e32-2e38-2d3075627500
        driverUUID                        = 6c6c766d-7069-7065-5555-494400000000
        deviceNodeMask                    = 0
        deviceLUIDValid                   = false
        subgroupSize                      = 4
        subgroupSupportedStages: count = 4
                SHADER_STAGE_FRAGMENT_BIT
                SHADER_STAGE_COMPUTE_BIT
                SHADER_STAGE_TASK_BIT_EXT
                SHADER_STAGE_MESH_BIT_EXT
        subgroupSupportedOperations: count = 10
                SUBGROUP_FEATURE_BASIC_BIT
                SUBGROUP_FEATURE_VOTE_BIT
                SUBGROUP_FEATURE_ARITHMETIC_BIT
                SUBGROUP_FEATURE_BALLOT_BIT
                SUBGROUP_FEATURE_SHUFFLE_BIT
                SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT
                SUBGROUP_FEATURE_CLUSTERED_BIT
                SUBGROUP_FEATURE_QUAD_BIT
                SUBGROUP_FEATURE_ROTATE_BIT
                SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT
        subgroupQuadOperationsInAllStages = true
        pointClippingBehavior             = POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES
        maxMultiviewViewCount             = 6
        maxMultiviewInstanceIndex         = 2147483647
        protectedNoFault                  = false
        maxPerSetDescriptors              = 1000000
        maxMemoryAllocationSize           = 0x80000000

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

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

VkPhysicalDeviceVulkan14Properties:
-----------------------------------
        lineSubPixelPrecisionBits                           = 8
        maxVertexAttribDivisor                              = 4294967295
        supportsNonZeroFirstInstance                        = false
        maxPushDescriptors                                  = 32
        dynamicRenderingLocalReadDepthStencilAttachments    = false
        dynamicRenderingLocalReadMultisampledAttachments    = false
        earlyFragmentMultisampleCoverageAfterSampleCounting = true
        earlyFragmentSampleMaskTestBeforeSampleCounting     = false
        depthStencilSwizzleOneSupport                       = false
        polygonModePointSize                                = true
        nonStrictSinglePixelWideLinesUseParallelogram       = false
        nonStrictWideLinesUseParallelogram                  = false
        blockTexelViewCompatibleMultipleLayers              = true
        maxCombinedImageSamplerDescriptorCount              = 3
        fragmentShadingRateClampCombinerInputs              = false
        defaultRobustnessStorageBuffers                     = PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2
        defaultRobustnessUniformBuffers                     = PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2
        defaultRobustnessVertexInputs                       = PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2
        defaultRobustnessImages                             = PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2
        copySrcLayoutCount                                  = 23
        pCopySrcLayouts: count = 23
                IMAGE_LAYOUT_GENERAL
                IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
                IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
                IMAGE_LAYOUT_PREINITIALIZED
                IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_PRESENT_SRC_KHR
                IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR
                IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR
                IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR
                IMAGE_LAYOUT_SHARED_PRESENT_KHR
                IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT
                IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR
        copyDstLayoutCount                                  = 23
        pCopyDstLayouts: count = 23
                IMAGE_LAYOUT_GENERAL
                IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
                IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
                IMAGE_LAYOUT_PREINITIALIZED
                IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_READ_ONLY_OPTIMAL
                IMAGE_LAYOUT_ATTACHMENT_OPTIMAL
                IMAGE_LAYOUT_PRESENT_SRC_KHR
                IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR
                IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR
                IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR
                IMAGE_LAYOUT_SHARED_PRESENT_KHR
                IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT
                IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR
        optimalTilingLayoutUUID                             = 32352e32-2e38-2d30-7562-756e7475302e
        identicalMemoryTypeRequirements                     = false

Device Extensions: count = 161
        VK_AMDX_shader_enqueue                             : extension revision 2
        VK_ANDROID_external_memory_android_hardware_buffer : extension revision 5
        VK_ARM_rasterization_order_attachment_access       : extension revision 1
        VK_EXT_4444_formats                                : extension revision 1
        VK_EXT_attachment_feedback_loop_dynamic_state      : extension revision 1
        VK_EXT_attachment_feedback_loop_layout             : extension revision 2
        VK_EXT_border_color_swizzle                        : extension revision 1
        VK_EXT_calibrated_timestamps                       : extension revision 2
        VK_EXT_color_write_enable                          : extension revision 1
        VK_EXT_conditional_rendering                       : extension revision 2
        VK_EXT_custom_border_color                         : extension revision 12
        VK_EXT_depth_bias_control                          : extension revision 1
        VK_EXT_depth_clip_control                          : extension revision 1
        VK_EXT_depth_clip_enable                           : extension revision 1
        VK_EXT_depth_range_unrestricted                    : extension revision 1
        VK_EXT_descriptor_buffer                           : extension revision 1
        VK_EXT_descriptor_indexing                         : extension revision 2
        VK_EXT_device_generated_commands                   : extension revision 1
        VK_EXT_dynamic_rendering_unused_attachments        : extension revision 1
        VK_EXT_extended_dynamic_state                      : extension revision 1
        VK_EXT_extended_dynamic_state2                     : extension revision 1
        VK_EXT_extended_dynamic_state3                     : extension revision 2
        VK_EXT_external_memory_dma_buf                     : extension revision 1
        VK_EXT_external_memory_host                        : extension revision 1
        VK_EXT_fragment_shader_interlock                   : extension revision 1
        VK_EXT_graphics_pipeline_library                   : extension revision 1
        VK_EXT_hdr_metadata                                : extension revision 3
        VK_EXT_host_image_copy                             : extension revision 1
        VK_EXT_host_query_reset                            : extension revision 1
        VK_EXT_image_2d_view_of_3d                         : extension revision 1
        VK_EXT_image_robustness                            : extension revision 1
        VK_EXT_image_sliced_view_of_3d                     : extension revision 1
        VK_EXT_index_type_uint8                            : extension revision 1
        VK_EXT_inline_uniform_block                        : extension revision 1
        VK_EXT_legacy_vertex_attributes                    : extension revision 1
        VK_EXT_line_rasterization                          : extension revision 1
        VK_EXT_load_store_op_none                          : extension revision 1
        VK_EXT_memory_budget                               : extension revision 1
        VK_EXT_memory_priority                             : extension revision 1
        VK_EXT_mesh_shader                                 : extension revision 1
        VK_EXT_multi_draw                                  : extension revision 1
        VK_EXT_multisampled_render_to_single_sampled       : extension revision 1
        VK_EXT_mutable_descriptor_type                     : extension revision 1
        VK_EXT_nested_command_buffer                       : extension revision 1
        VK_EXT_non_seamless_cube_map                       : extension revision 1
        VK_EXT_pageable_device_local_memory                : extension revision 1
        VK_EXT_pipeline_creation_cache_control             : extension revision 3
        VK_EXT_pipeline_creation_feedback                  : extension revision 1
        VK_EXT_pipeline_library_group_handles              : extension revision 1
        VK_EXT_pipeline_protected_access                   : extension revision 1
        VK_EXT_pipeline_robustness                         : extension revision 1
        VK_EXT_post_depth_coverage                         : extension revision 1
        VK_EXT_primitive_topology_list_restart             : extension revision 1
        VK_EXT_primitives_generated_query                  : extension revision 1
        VK_EXT_private_data                                : extension revision 1
        VK_EXT_provoking_vertex                            : extension revision 1
        VK_EXT_queue_family_foreign                        : extension revision 1
        VK_EXT_rasterization_order_attachment_access       : extension revision 1
        VK_EXT_robustness2                                 : extension revision 1
        VK_EXT_sampler_filter_minmax                       : extension revision 2
        VK_EXT_scalar_block_layout                         : extension revision 1
        VK_EXT_separate_stencil_usage                      : extension revision 1
        VK_EXT_shader_atomic_float                         : extension revision 1
        VK_EXT_shader_atomic_float2                        : extension revision 1
        VK_EXT_shader_demote_to_helper_invocation          : extension revision 1
        VK_EXT_shader_image_atomic_int64                   : extension revision 1
        VK_EXT_shader_object                               : extension revision 1
        VK_EXT_shader_replicated_composites                : extension revision 1
        VK_EXT_shader_stencil_export                       : extension revision 1
        VK_EXT_shader_subgroup_ballot                      : extension revision 1
        VK_EXT_shader_subgroup_vote                        : extension revision 1
        VK_EXT_shader_viewport_index_layer                 : extension revision 1
        VK_EXT_subgroup_size_control                       : extension revision 2
        VK_EXT_swapchain_maintenance1                      : extension revision 1
        VK_EXT_texel_buffer_alignment                      : extension revision 1
        VK_EXT_tooling_info                                : extension revision 1
        VK_EXT_transform_feedback                          : extension revision 1
        VK_EXT_vertex_attribute_divisor                    : extension revision 3
        VK_EXT_vertex_input_dynamic_state                  : extension revision 2
        VK_EXT_ycbcr_2plane_444_formats                    : extension revision 1
        VK_EXT_ycbcr_image_arrays                          : extension revision 1
        VK_EXT_zero_initialize_device_memory               : extension revision 1
        VK_GOOGLE_decorate_string                          : extension revision 1
        VK_GOOGLE_hlsl_functionality1                      : extension revision 1
        VK_KHR_16bit_storage                               : extension revision 1
        VK_KHR_8bit_storage                                : extension revision 1
        VK_KHR_acceleration_structure                      : extension revision 13
        VK_KHR_bind_memory2                                : extension revision 1
        VK_KHR_buffer_device_address                       : extension revision 1
        VK_KHR_compute_shader_derivatives                  : extension revision 1
        VK_KHR_copy_commands2                              : extension revision 1
        VK_KHR_create_renderpass2                          : extension revision 1
        VK_KHR_dedicated_allocation                        : extension revision 3
        VK_KHR_deferred_host_operations                    : extension revision 4
        VK_KHR_depth_stencil_resolve                       : extension revision 1
        VK_KHR_descriptor_update_template                  : extension revision 1
        VK_KHR_device_group                                : extension revision 4
        VK_KHR_draw_indirect_count                         : extension revision 1
        VK_KHR_driver_properties                           : extension revision 1
        VK_KHR_dynamic_rendering                           : extension revision 1
        VK_KHR_dynamic_rendering_local_read                : extension revision 1
        VK_KHR_external_fence                              : extension revision 1
        VK_KHR_external_memory                             : extension revision 1
        VK_KHR_external_memory_fd                          : extension revision 1
        VK_KHR_external_semaphore                          : extension revision 1
        VK_KHR_format_feature_flags2                       : extension revision 2
        VK_KHR_get_memory_requirements2                    : extension revision 1
        VK_KHR_global_priority                             : extension revision 1
        VK_KHR_image_format_list                           : extension revision 1
        VK_KHR_imageless_framebuffer                       : extension revision 1
        VK_KHR_incremental_present                         : extension revision 2
        VK_KHR_index_type_uint8                            : extension revision 1
        VK_KHR_line_rasterization                          : extension revision 1
        VK_KHR_load_store_op_none                          : extension revision 1
        VK_KHR_maintenance1                                : extension revision 2
        VK_KHR_maintenance2                                : extension revision 1
        VK_KHR_maintenance3                                : extension revision 1
        VK_KHR_maintenance4                                : extension revision 2
        VK_KHR_maintenance5                                : extension revision 1
        VK_KHR_maintenance6                                : extension revision 1
        VK_KHR_maintenance7                                : extension revision 1
        VK_KHR_maintenance8                                : extension revision 1
        VK_KHR_map_memory2                                 : extension revision 1
        VK_KHR_multiview                                   : extension revision 1
        VK_KHR_pipeline_library                            : extension revision 1
        VK_KHR_push_descriptor                             : extension revision 2
        VK_KHR_ray_query                                   : extension revision 1
        VK_KHR_ray_tracing_maintenance1                    : extension revision 1
        VK_KHR_ray_tracing_pipeline                        : extension revision 1
        VK_KHR_ray_tracing_position_fetch                  : extension revision 1
        VK_KHR_relaxed_block_layout                        : extension revision 1
        VK_KHR_sampler_mirror_clamp_to_edge                : extension revision 3
        VK_KHR_sampler_ycbcr_conversion                    : extension revision 14
        VK_KHR_separate_depth_stencil_layouts              : extension revision 1
        VK_KHR_shader_atomic_int64                         : extension revision 1
        VK_KHR_shader_clock                                : extension revision 1
        VK_KHR_shader_draw_parameters                      : extension revision 1
        VK_KHR_shader_expect_assume                        : extension revision 1
        VK_KHR_shader_float16_int8                         : extension revision 1
        VK_KHR_shader_float_controls                       : extension revision 4
        VK_KHR_shader_float_controls2                      : extension revision 1
        VK_KHR_shader_integer_dot_product                  : extension revision 1
        VK_KHR_shader_maximal_reconvergence                : extension revision 1
        VK_KHR_shader_non_semantic_info                    : extension revision 1
        VK_KHR_shader_quad_control                         : extension revision 1
        VK_KHR_shader_relaxed_extended_instruction         : extension revision 1
        VK_KHR_shader_subgroup_extended_types              : extension revision 1
        VK_KHR_shader_subgroup_rotate                      : extension revision 2
        VK_KHR_shader_terminate_invocation                 : extension revision 1
        VK_KHR_spirv_1_4                                   : extension revision 1
        VK_KHR_storage_buffer_storage_class                : extension revision 1
        VK_KHR_swapchain                                   : extension revision 70
        VK_KHR_swapchain_mutable_format                    : extension revision 1
        VK_KHR_synchronization2                            : extension revision 1
        VK_KHR_timeline_semaphore                          : extension revision 2
        VK_KHR_uniform_buffer_standard_layout              : extension revision 1
        VK_KHR_variable_pointers                           : extension revision 1
        VK_KHR_vertex_attribute_divisor                    : extension revision 1
        VK_KHR_vulkan_memory_model                         : extension revision 3
        VK_KHR_workgroup_memory_explicit_layout            : extension revision 1
        VK_KHR_zero_initialize_workgroup_memory            : extension revision 1

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

VkPhysicalDeviceMemoryProperties:
=================================
memoryHeaps: count = 1
        memoryHeaps[0]:
                size   = 16735166464 (0x3e57e6000) (15.59 GiB)
                budget = 16735166464 (0x3e57e6000) (15.59 GiB)
                usage  = 610754560 (0x24676000) (582.46 MiB)
                flags: count = 1
                        MEMORY_HEAP_DEVICE_LOCAL_BIT
memoryTypes: count = 1
        memoryTypes[0]:
                heapIndex     = 0
                propertyFlags = 0x000f: count = 4
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_HOST_CACHED_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                color images
                                FORMAT_D16_UNORM
                                FORMAT_X8_D24_UNORM_PACK32
                                FORMAT_D32_SFLOAT
                                FORMAT_S8_UINT
                                FORMAT_D24_UNORM_S8_UINT
                                FORMAT_D32_SFLOAT_S8_UINT
                        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                             = false
        wideLines                               = true
        largePoints                             = true
        alphaToOne                              = true
        multiViewport                           = true
        samplerAnisotropy                       = true
        textureCompressionETC2                  = false
        textureCompressionASTC_LDR              = false
        textureCompressionBC                    = true
        occlusionQueryPrecise                   = true
        pipelineStatisticsQuery                 = true
        vertexPipelineStoresAndAtomics          = true
        fragmentStoresAndAtomics                = true
        shaderTessellationAndGeometryPointSize  = true
        shaderImageGatherExtended               = true
        shaderStorageImageExtendedFormats       = true
        shaderStorageImageMultisample           = true
        shaderStorageImageReadWithoutFormat     = true
        shaderStorageImageWriteWithoutFormat    = true
        shaderUniformBufferArrayDynamicIndexing = true
        shaderSampledImageArrayDynamicIndexing  = true
        shaderStorageBufferArrayDynamicIndexing = true
        shaderStorageImageArrayDynamicIndexing  = true
        shaderClipDistance                      = true
        shaderCullDistance                      = true
        shaderFloat64                           = true
        shaderInt64                             = true
        shaderInt16                             = true
        shaderResourceResidency                 = true
        shaderResourceMinLod                    = true
        sparseBinding                           = true
        sparseResidencyBuffer                   = true
        sparseResidencyImage2D                  = true
        sparseResidencyImage3D                  = true
        sparseResidency2Samples                 = false
        sparseResidency4Samples                 = false
        sparseResidency8Samples                 = false
        sparseResidency16Samples                = false
        sparseResidencyAliased                  = true
        variableMultisampleRate                 = false
        inheritedQueries                        = false

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT:
--------------------------------------------------------------
        rasterizationOrderColorAttachmentAccess   = true
        rasterizationOrderDepthAttachmentAccess   = true
        rasterizationOrderStencilAttachmentAccess = true

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

VkPhysicalDeviceVulkan14Features:
---------------------------------
        globalPriorityQuery                    = true
        shaderSubgroupRotate                   = true
        shaderSubgroupRotateClustered          = true
        shaderFloatControls2                   = true
        shaderExpectAssume                     = true
        rectangularLines                       = true
        bresenhamLines                         = true
        smoothLines                            = true
        stippledRectangularLines               = true
        stippledBresenhamLines                 = true
        stippledSmoothLines                    = true
        vertexAttributeInstanceRateDivisor     = true
        vertexAttributeInstanceRateZeroDivisor = true
        indexTypeUint8                         = true
        dynamicRenderingLocalRead              = true
        maintenance5                           = true
        maintenance6                           = true
        pipelineProtectedAccess                = true
        pipelineRobustness                     = true
        hostImageCopy                          = true
        pushDescriptor                         = true

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

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

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

**PS :** [Ubuntu Pro](https://ubuntu.com/pro/tutorial)

---

### Documentation

[https://docs.turingpi.com](https://docs.turingpi.com)

##### help.turingpi.com

jme69@pm.me  
Ln4@iJMNn85h2Xrx

[https://help.turingpi.com/hc/en-us](https://help.turingpi.com/hc/en-us "https://help.turingpi.com/hc/en-us")

##### Server World

[https://www.server-world.info/en/note?os=Debian\_12&amp;p=download&amp;f=1](https://www.server-world.info/en/note?os=Debian_12&p=download&f=1)
