You are not logged in.

#1 2023-01-07 08:20:35

apostolos
Member
Registered: 2023-01-07
Posts: 5

[SOLVED]Proton/Steam is using the wrong GPU - two same Nvidia GPUs

Hello everyone,


I have two same GPUs on my system, Nvidia RTX 2060 and when i try to play any game on Steam that uses Proton, the game starts, but while the sound is working fine, the image is corrupted (all i see is weird artifacts of the last frame on my monitor before the game started). Native games seem to work fine.

It turns out that the the load goes on the second GPU, when i try to play games with proton. I can tell by using nvidia-smi. Worth pointing out is, that physically removing the second GPU, gets rid of the problem.

Also, setting in launch options PROTON_USE_WINED3D=1 gets rid of the problem as well. The performance difference though is so big, to call that a fix.
But, that probably means that the problem is related to Vulkan.

So, how do i set Vulkan to use the first GPU?


Thanks in advance, Apostolos

EDIT: Adding to the first post.

I'm kinda going in circles trying to troubleshoot this.
I don't even know what logs are useful for this, since there is no error.

Please feel free to ask for any info that would be helpful.

Also,
-kernel: 6.1.3-zen1-1-zen
tried different kernel, same result
-using X11/bspwm
different wm/de does not help either
-steam-native does not fix
-physically swapping the cards does not fix either
-same results with nvidia and nvidia-open drivers

Last edited by apostolos (2023-01-07 12:40:23)

Offline

#2 2023-01-07 11:19:40

Lone_Wolf
Member
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,868

Re: [SOLVED]Proton/Steam is using the wrong GPU - two same Nvidia GPUs

The only way I know how to do from CLI is through vkdevicechooser .

Unfortunately that was always kinda experimental and upstream doesn't appear to be actively maintaining it.
No idea if it is still usable.

Let's get some info about your hardware first.

Please post the full outputs of

$ lscpi -knn
$ vulkaninfo --summary     #comes-with-vulkantools-package

Welcome to archlinux forums


EDIT1
It seems that should be possible with mesa without needing the separate vkdevicechooser.
Refreshing my knowledge now.

EDIT2

add the output of MESA_VK_DEVICE_SELECT=list vulkaninfo also .

Last edited by Lone_Wolf (2023-01-07 11:33:53)


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#3 2023-01-07 12:00:20

apostolos
Member
Registered: 2023-01-07
Posts: 5

Re: [SOLVED]Proton/Steam is using the wrong GPU - two same Nvidia GPUs

Lone_Wolf wrote:

Welcome to archlinux forums

Thank you. And most importantly, thank you very much for responding to this post. Below you can see the outputs:

$ lspci -knn
00:00.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Root Complex [1022:1450]
	Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:7a34]
00:00.2 IOMMU [0806]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) I/O Memory Management Unit [1022:1451]
	Subsystem: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) I/O Memory Management Unit [1022:1451]
00:01.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge [1022:1452]
00:01.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) PCIe GPP Bridge [1022:1453]
	Subsystem: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) PCIe GPP Bridge [1022:1453]
	Kernel driver in use: pcieport
00:01.3 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) PCIe GPP Bridge [1022:1453]
	Subsystem: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) PCIe GPP Bridge [1022:1453]
	Kernel driver in use: pcieport
00:02.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge [1022:1452]
00:03.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge [1022:1452]
00:03.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) PCIe GPP Bridge [1022:1453]
	Subsystem: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) PCIe GPP Bridge [1022:1453]
	Kernel driver in use: pcieport
00:04.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge [1022:1452]
00:07.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge [1022:1452]
00:07.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Internal PCIe GPP Bridge 0 to Bus B [1022:1454]
	Subsystem: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Internal PCIe GPP Bridge 0 to Bus B [1022:1454]
	Kernel driver in use: pcieport
00:08.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-1fh) PCIe Dummy Host Bridge [1022:1452]
00:08.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Internal PCIe GPP Bridge 0 to Bus B [1022:1454]
	Subsystem: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Internal PCIe GPP Bridge 0 to Bus B [1022:1454]
	Kernel driver in use: pcieport
00:14.0 SMBus [0c05]: Advanced Micro Devices, Inc. [AMD] FCH SMBus Controller [1022:790b] (rev 59)
	Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:7a34]
	Kernel driver in use: piix4_smbus
	Kernel modules: i2c_piix4, sp5100_tco
00:14.3 ISA bridge [0601]: Advanced Micro Devices, Inc. [AMD] FCH LPC Bridge [1022:790e] (rev 51)
	Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:7a34]
00:18.0 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 0 [1022:1460]
00:18.1 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 1 [1022:1461]
00:18.2 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 2 [1022:1462]
00:18.3 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 3 [1022:1463]
	Kernel driver in use: k10temp
	Kernel modules: k10temp
00:18.4 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 4 [1022:1464]
00:18.5 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 5 [1022:1465]
00:18.6 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 6 [1022:1466]
00:18.7 Host bridge [0600]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Data Fabric: Device 18h; Function 7 [1022:1467]
01:00.0 Non-Volatile memory controller [0108]: Phison Electronics Corporation E16 PCIe4 NVMe Controller [1987:5016] (rev 01)
	Subsystem: Phison Electronics Corporation E16 PCIe4 NVMe Controller [1987:5016]
	Kernel driver in use: nvme
	Kernel modules: nvme
03:00.0 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset USB 3.1 xHCI Controller [1022:43bb] (rev 02)
	Subsystem: ASMedia Technology Inc. Device [1b21:1142]
	Kernel driver in use: xhci_hcd
	Kernel modules: xhci_pci
03:00.1 SATA controller [0106]: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset SATA Controller [1022:43b7] (rev 02)
	Subsystem: ASMedia Technology Inc. Device [1b21:1062]
	Kernel driver in use: ahci
03:00.2 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Device [1022:43b2] (rev 02)
	Subsystem: ASMedia Technology Inc. Device [1b21:0201]
	Kernel driver in use: pcieport
16:00.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port [1022:43b4] (rev 02)
	Subsystem: ASMedia Technology Inc. Device [1b21:3306]
	Kernel driver in use: pcieport
16:01.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port [1022:43b4] (rev 02)
	Subsystem: ASMedia Technology Inc. Device [1b21:3306]
	Kernel driver in use: pcieport
16:04.0 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] 300 Series Chipset PCIe Port [1022:43b4] (rev 02)
	Subsystem: ASMedia Technology Inc. Device [1b21:3306]
	Kernel driver in use: pcieport
17:00.0 PCI bridge [0604]: ASMedia Technology Inc. ASM1083/1085 PCIe to PCI Bridge [1b21:1080] (rev 03)
	DeviceName: Broadcom 5762
19:00.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller [10ec:8168] (rev 15)
	Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:7a34]
	Kernel driver in use: r8169
	Kernel modules: r8169
1b:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU104 [GeForce RTX 2060] [10de:1e89] (rev a1)
	Subsystem: Gigabyte Technology Co., Ltd Device [1458:3fc1]
	Kernel driver in use: nvidia
	Kernel modules: nouveau, nvidia_drm, nvidia
1b:00.1 Audio device [0403]: NVIDIA Corporation TU104 HD Audio Controller [10de:10f8] (rev a1)
	Subsystem: Gigabyte Technology Co., Ltd Device [1458:3fc1]
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd_hda_intel
1b:00.2 USB controller [0c03]: NVIDIA Corporation TU104 USB 3.1 Host Controller [10de:1ad8] (rev a1)
	Subsystem: Gigabyte Technology Co., Ltd Device [1458:3fc1]
	Kernel driver in use: xhci_hcd
	Kernel modules: xhci_pci
1b:00.3 Serial bus controller [0c80]: NVIDIA Corporation TU104 USB Type-C UCSI Controller [10de:1ad9] (rev a1)
	Subsystem: Gigabyte Technology Co., Ltd Device [1458:3fc1]
	Kernel driver in use: nvidia-gpu
	Kernel modules: i2c_nvidia_gpu
1c:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU106 [GeForce RTX 2060 Rev. A] [10de:1f08] (rev a1)
	Subsystem: Gigabyte Technology Co., Ltd Device [1458:3fc1]
	Kernel driver in use: nvidia
	Kernel modules: nouveau, nvidia_drm, nvidia
1c:00.1 Audio device [0403]: NVIDIA Corporation TU106 High Definition Audio Controller [10de:10f9] (rev a1)
	Subsystem: Gigabyte Technology Co., Ltd Device [1458:3fc1]
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd_hda_intel
1c:00.2 USB controller [0c03]: NVIDIA Corporation TU106 USB 3.1 Host Controller [10de:1ada] (rev a1)
	Subsystem: Gigabyte Technology Co., Ltd Device [1458:3fc1]
	Kernel driver in use: xhci_hcd
	Kernel modules: xhci_pci
1c:00.3 Serial bus controller [0c80]: NVIDIA Corporation TU106 USB Type-C UCSI Controller [10de:1adb] (rev a1)
	Subsystem: Gigabyte Technology Co., Ltd Device [1458:3fc1]
	Kernel driver in use: nvidia-gpu
	Kernel modules: i2c_nvidia_gpu
1d:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Zeppelin/Raven/Raven2 PCIe Dummy Function [1022:145a]
	Subsystem: Advanced Micro Devices, Inc. [AMD] Zeppelin/Raven/Raven2 PCIe Dummy Function [1022:145a]
1d:00.2 Encryption controller [1080]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Platform Security Processor [1022:1456]
	Subsystem: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) Platform Security Processor [1022:1456]
	Kernel driver in use: ccp
	Kernel modules: ccp
1d:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) USB 3.0 Host Controller [1022:145c]
	Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:7a34]
	Kernel driver in use: xhci_hcd
	Kernel modules: xhci_pci
1e:00.0 Non-Essential Instrumentation [1300]: Advanced Micro Devices, Inc. [AMD] Zeppelin/Renoir PCIe Dummy Function [1022:1455]
	Subsystem: Advanced Micro Devices, Inc. [AMD] Zeppelin/Renoir PCIe Dummy Function [1022:1455]
1e:00.2 SATA controller [0106]: Advanced Micro Devices, Inc. [AMD] FCH SATA Controller [AHCI mode] [1022:7901] (rev 51)
	Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:7a34]
	Kernel driver in use: ahci
1e:00.3 Audio device [0403]: Advanced Micro Devices, Inc. [AMD] Family 17h (Models 00h-0fh) HD Audio Controller [1022:1457]
	DeviceName: Realtek ALC898
	Subsystem: Micro-Star International Co., Ltd. [MSI] Device [1462:da34]
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd_hda_intel
$ vulkaninfo --summary
==========
VULKANINFO
==========

Vulkan Instance Version: 1.3.235


Instance Extensions: count = 19
-------------------------------
VK_EXT_acquire_xlib_display            : extension revision 1
VK_EXT_debug_report                    : extension revision 10
VK_EXT_debug_utils                     : extension revision 2
VK_EXT_direct_mode_display             : extension revision 1
VK_EXT_display_surface_counter         : extension revision 1
VK_KHR_device_group_creation           : extension revision 1
VK_KHR_display                         : extension revision 23
VK_KHR_external_fence_capabilities     : extension revision 1
VK_KHR_external_memory_capabilities    : extension revision 1
VK_KHR_external_semaphore_capabilities : extension revision 1
VK_KHR_get_display_properties2         : extension revision 1
VK_KHR_get_physical_device_properties2 : extension revision 2
VK_KHR_get_surface_capabilities2       : extension revision 1
VK_KHR_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

Instance Layers: count = 10
---------------------------
VK_LAYER_FROG_gamescope_wsi       Gamescope WSI (XWayland Bypass) Layer 1.3.221  version 1
VK_LAYER_KHRONOS_validation       Khronos Validation Layer              1.3.231  version 1
VK_LAYER_LUNARG_api_dump          LunarG API dump layer                 1.3.231  version 2
VK_LAYER_LUNARG_monitor           Execution Monitoring Layer            1.3.231  version 1
VK_LAYER_LUNARG_screenshot        LunarG image capture layer            1.3.231  version 1
VK_LAYER_NV_optimus               NVIDIA Optimus layer                  1.3.224  version 1
VK_LAYER_VALVE_steam_fossilize_32 Steam Pipeline Caching Layer          1.3.207  version 1
VK_LAYER_VALVE_steam_fossilize_64 Steam Pipeline Caching Layer          1.3.207  version 1
VK_LAYER_VALVE_steam_overlay_32   Steam Overlay Layer                   1.3.207  version 1
VK_LAYER_VALVE_steam_overlay_64   Steam Overlay Layer                   1.3.207  version 1

Devices:
========
GPU0:
	apiVersion         = 1.3.224
	driverVersion      = 525.78.1.64
	vendorID           = 0x10de
	deviceID           = 0x1e89
	deviceType         = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
	deviceName         = NVIDIA GeForce RTX 2060
	driverID           = DRIVER_ID_NVIDIA_PROPRIETARY
	driverName         = NVIDIA
	driverInfo         = 525.78.01
	conformanceVersion = 1.3.3.1
	deviceUUID         = bcfcc130-13ae-0812-13dd-a7465b55a23f
	driverUUID         = e8cd25bf-baf8-533b-8704-4517298cec2f
GPU1:
	apiVersion         = 1.3.224
	driverVersion      = 525.78.1.64
	vendorID           = 0x10de
	deviceID           = 0x1f08
	deviceType         = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
	deviceName         = NVIDIA GeForce RTX 2060
	driverID           = DRIVER_ID_NVIDIA_PROPRIETARY
	driverName         = NVIDIA
	driverInfo         = 525.78.01
	conformanceVersion = 1.3.3.1
	deviceUUID         = 21478dd8-f6c7-4035-2447-1b623a9f738b
	driverUUID         = e8cd25bf-baf8-533b-8704-4517298cec2f
$ MESA_VK_DEVICE_SELECT=list vulkaninfo
==========
VULKANINFO
==========

Vulkan Instance Version: 1.3.235


Instance Extensions: count = 19
===============================
	VK_EXT_acquire_xlib_display            : extension revision 1
	VK_EXT_debug_report                    : extension revision 10
	VK_EXT_debug_utils                     : extension revision 2
	VK_EXT_direct_mode_display             : extension revision 1
	VK_EXT_display_surface_counter         : extension revision 1
	VK_KHR_device_group_creation           : extension revision 1
	VK_KHR_display                         : extension revision 23
	VK_KHR_external_fence_capabilities     : extension revision 1
	VK_KHR_external_memory_capabilities    : extension revision 1
	VK_KHR_external_semaphore_capabilities : extension revision 1
	VK_KHR_get_display_properties2         : extension revision 1
	VK_KHR_get_physical_device_properties2 : extension revision 2
	VK_KHR_get_surface_capabilities2       : extension revision 1
	VK_KHR_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

Layers: count = 10
==================
VK_LAYER_FROG_gamescope_wsi (Gamescope WSI (XWayland Bypass) Layer) Vulkan version 1.3.221, layer version 1:
	Layer Extensions: count = 0
	Devices: count = 2
		GPU id = 0 (NVIDIA GeForce RTX 2060)
		Layer-Device Extensions: count = 0

		GPU id = 1 (NVIDIA GeForce RTX 2060)
		Layer-Device Extensions: count = 0

VK_LAYER_KHRONOS_validation (Khronos Validation Layer) Vulkan version 1.3.231, layer version 1:
	Layer Extensions: count = 3
		VK_EXT_debug_report        : extension revision 9
		VK_EXT_debug_utils         : extension revision 1
		VK_EXT_validation_features : extension revision 2
	Devices: count = 2
		GPU id = 0 (NVIDIA GeForce RTX 2060)
		Layer-Device Extensions: count = 3
			VK_EXT_debug_marker     : extension revision 4
			VK_EXT_tooling_info     : extension revision 1
			VK_EXT_validation_cache : extension revision 1

		GPU id = 1 (NVIDIA GeForce RTX 2060)
		Layer-Device Extensions: count = 3
			VK_EXT_debug_marker     : extension revision 4
			VK_EXT_tooling_info     : extension revision 1
			VK_EXT_validation_cache : extension revision 1

VK_LAYER_LUNARG_api_dump (LunarG API dump layer) Vulkan version 1.3.231, layer version 2:
	Layer Extensions: count = 0
	Devices: count = 2
		GPU id = 0 (NVIDIA GeForce RTX 2060)
		Layer-Device Extensions: count = 1
			VK_EXT_tooling_info : extension revision 1

		GPU id = 1 (NVIDIA GeForce RTX 2060)
		Layer-Device Extensions: count = 1
			VK_EXT_tooling_info : extension revision 1

VK_LAYER_LUNARG_monitor (Execution Monitoring Layer) Vulkan version 1.3.231, layer version 1:
	Layer Extensions: count = 0
	Devices: count = 2
		GPU id = 0 (NVIDIA GeForce RTX 2060)
		Layer-Device Extensions: count = 1
			VK_EXT_tooling_info : extension revision 1

		GPU id = 1 (NVIDIA GeForce RTX 2060)
		Layer-Device Extensions: count = 1
			VK_EXT_tooling_info : extension revision 1

VK_LAYER_LUNARG_screenshot (LunarG image capture layer) Vulkan version 1.3.231, layer version 1:
	Layer Extensions: count = 0
	Devices: count = 2
		GPU id = 0 (NVIDIA GeForce RTX 2060)
		Layer-Device Extensions: count = 1
			VK_EXT_tooling_info : extension revision 1

		GPU id = 1 (NVIDIA GeForce RTX 2060)
		Layer-Device Extensions: count = 1
			VK_EXT_tooling_info : extension revision 1

VK_LAYER_NV_optimus (NVIDIA Optimus layer) Vulkan version 1.3.224, layer version 1:
	Layer Extensions: count = 0
	Devices: count = 2
		GPU id = 0 (NVIDIA GeForce RTX 2060)
		Layer-Device Extensions: count = 0

		GPU id = 1 (NVIDIA GeForce RTX 2060)
		Layer-Device Extensions: count = 0

VK_LAYER_VALVE_steam_fossilize_32 (Steam Pipeline Caching Layer) Vulkan version 1.3.207, layer version 1:
	Layer Extensions: count = 0
	Devices: count = 2
		GPU id = 0 (NVIDIA GeForce RTX 2060)
		Layer-Device Extensions: count = 0

		GPU id = 1 (NVIDIA GeForce RTX 2060)
		Layer-Device Extensions: count = 0

VK_LAYER_VALVE_steam_fossilize_64 (Steam Pipeline Caching Layer) Vulkan version 1.3.207, layer version 1:
	Layer Extensions: count = 0
	Devices: count = 2
		GPU id = 0 (NVIDIA GeForce RTX 2060)
		Layer-Device Extensions: count = 0

		GPU id = 1 (NVIDIA GeForce RTX 2060)
		Layer-Device Extensions: count = 0

VK_LAYER_VALVE_steam_overlay_32 (Steam Overlay Layer) Vulkan version 1.3.207, layer version 1:
	Layer Extensions: count = 0
	Devices: count = 2
		GPU id = 0 (NVIDIA GeForce RTX 2060)
		Layer-Device Extensions: count = 0

		GPU id = 1 (NVIDIA GeForce RTX 2060)
		Layer-Device Extensions: count = 0

VK_LAYER_VALVE_steam_overlay_64 (Steam Overlay Layer) Vulkan version 1.3.207, layer version 1:
	Layer Extensions: count = 0
	Devices: count = 2
		GPU id = 0 (NVIDIA GeForce RTX 2060)
		Layer-Device Extensions: count = 0

		GPU id = 1 (NVIDIA GeForce RTX 2060)
		Layer-Device Extensions: count = 0

Presentable Surfaces:
=====================
GPU id : 1 (NVIDIA GeForce RTX 2060):
	Surface types: count = 2
		VK_KHR_xcb_surface
		VK_KHR_xlib_surface
	Formats: count = 2
		SurfaceFormat[0]:
			format = FORMAT_B8G8R8A8_UNORM
			colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
		SurfaceFormat[1]:
			format = FORMAT_B8G8R8A8_SRGB
			colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
	Present Modes: count = 3
		PRESENT_MODE_FIFO_KHR
		PRESENT_MODE_FIFO_RELAXED_KHR
		PRESENT_MODE_IMMEDIATE_KHR
	VkSurfaceCapabilitiesKHR:
	-------------------------
		minImageCount = 2
		maxImageCount = 8
		currentExtent:
			width  = 256
			height = 256
		minImageExtent:
			width  = 256
			height = 256
		maxImageExtent:
			width  = 256
			height = 256
		maxImageArrayLayers = 1
		supportedTransforms: count = 1
			SURFACE_TRANSFORM_IDENTITY_BIT_KHR
		currentTransform = SURFACE_TRANSFORM_IDENTITY_BIT_KHR
		supportedCompositeAlpha: count = 1
			COMPOSITE_ALPHA_OPAQUE_BIT_KHR
		supportedUsageFlags: count = 6
			IMAGE_USAGE_TRANSFER_SRC_BIT
			IMAGE_USAGE_TRANSFER_DST_BIT
			IMAGE_USAGE_SAMPLED_BIT
			IMAGE_USAGE_STORAGE_BIT
			IMAGE_USAGE_COLOR_ATTACHMENT_BIT
			IMAGE_USAGE_INPUT_ATTACHMENT_BIT
	VkSurfaceCapabilities2EXT:
	--------------------------
		supportedSurfaceCounters:
			None
	VkSurfaceProtectedCapabilitiesKHR:
	----------------------------------
		supportsProtected = false



Device Groups:
==============
Group 0:
	Properties:
		physicalDevices: count = 1
			NVIDIA GeForce RTX 2060 (ID: 0)
		subsetAllocation = 0

	Present Capabilities:
		NVIDIA GeForce RTX 2060 (ID: 0):
			Can present images from the following devices: count = 1
				NVIDIA GeForce RTX 2060 (ID: 0)
		Present modes: count = 1
			DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR

Group 1:
	Properties:
		physicalDevices: count = 1
			NVIDIA GeForce RTX 2060 (ID: 0)
		subsetAllocation = 0

	Present Capabilities:
		NVIDIA GeForce RTX 2060 (ID: 0):
			Can present images from the following devices: count = 1
				NVIDIA GeForce RTX 2060 (ID: 0)
		Present modes: count = 1
			DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR


Device Properties and Extensions:
=================================
GPU0:
VkPhysicalDeviceProperties:
---------------------------
	apiVersion        = 1.3.224 (4206816)
	driverVersion     = 525.78.1.64 (2203287616)
	vendorID          = 0x10de
	deviceID          = 0x1e89
	deviceType        = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
	deviceName        = NVIDIA GeForce RTX 2060
	pipelineCacheUUID = d0d70ac9-e91d-e009-a2b7-37fd81324f6d

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

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

VkPhysicalDeviceAccelerationStructurePropertiesKHR:
---------------------------------------------------
	maxGeometryCount                                           = 16777215
	maxInstanceCount                                           = 16777215
	maxPrimitiveCount                                          = 536870911
	maxPerStageDescriptorAccelerationStructures                = 1048576
	maxPerStageDescriptorUpdateAfterBindAccelerationStructures = 1048576
	maxDescriptorSetAccelerationStructures                     = 1048576
	maxDescriptorSetUpdateAfterBindAccelerationStructures      = 1048576
	minAccelerationStructureScratchOffsetAlignment             = 128

VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT:
----------------------------------------------------
	advancedBlendMaxColorAttachments      = 8
	advancedBlendIndependentBlend         = false
	advancedBlendNonPremultipliedSrcColor = true
	advancedBlendNonPremultipliedDstColor = true
	advancedBlendCorrelatedOverlap        = true
	advancedBlendAllOperations            = true

VkPhysicalDeviceConservativeRasterizationPropertiesEXT:
-------------------------------------------------------
	primitiveOverestimationSize                 = 0.00195312
	maxExtraPrimitiveOverestimationSize         = 0.75
	extraPrimitiveOverestimationSizeGranularity = 0.25
	primitiveUnderestimation                    = true
	conservativePointAndLineRasterization       = true
	degenerateTrianglesRasterized               = true
	degenerateLinesRasterized                   = true
	fullyCoveredFragmentShaderInputVariable     = true
	conservativeRasterizationPostDepthCoverage  = true

VkPhysicalDeviceCustomBorderColorPropertiesEXT:
-----------------------------------------------
	maxCustomBorderColorSamplers = 4000

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

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

VkPhysicalDeviceDiscardRectanglePropertiesEXT:
----------------------------------------------
	maxDiscardRectangles = 8

VkPhysicalDeviceDriverProperties:
---------------------------------
	driverID        = DRIVER_ID_NVIDIA_PROPRIETARY
	driverName      = NVIDIA
	driverInfo      = 525.78.01
	conformanceVersion:
		major    = 1
		minor    = 3
		subminor = 3
		patch    = 1

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

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

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

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

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

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

VkPhysicalDeviceIDProperties:
-----------------------------
	deviceUUID      = bcfcc130-13ae-0812-13dd-a7465b55a23f
	driverUUID      = e8cd25bf-baf8-533b-8704-4517298cec2f
	deviceNodeMask  = 1
	deviceLUIDValid = false

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

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

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

VkPhysicalDeviceMaintenance4Properties:
---------------------------------------
	maxBufferSize = 0xffffffffffff0000

VkPhysicalDeviceMeshShaderPropertiesEXT:
----------------------------------------
	maxTaskWorkGroupTotalCount            = 4194304
	maxTaskWorkGroupCount: count = 3
		4194304
		65535
		65535
	maxTaskWorkGroupInvocations           = 128
	maxTaskWorkGroupSize: count = 3
		128
		128
		128
	maxTaskPayloadSize                    = 16384
	maxTaskSharedMemorySize               = 32768
	maxTaskPayloadAndSharedMemorySize     = 32768
	maxMeshWorkGroupTotalCount            = 4194304
	maxMeshWorkGroupCount: count = 3
		4194304
		65535
		65535
	maxMeshWorkGroupInvocations           = 128
	maxMeshWorkGroupSize: count = 3
		128
		128
		128
	maxMeshSharedMemorySize               = 28672
	maxMeshPayloadAndSharedMemorySize     = 28672
	maxMeshOutputMemorySize               = 32768
	maxMeshPayloadAndOutputMemorySize     = 48128
	maxMeshOutputComponents               = 128
	maxMeshOutputVertices                 = 256
	maxMeshOutputPrimitives               = 256
	maxMeshOutputLayers                   = 2048
	maxMeshMultiviewViewCount             = 4
	meshOutputPerVertexGranularity        = 32
	meshOutputPerPrimitiveGranularity     = 32
	maxPreferredTaskWorkGroupInvocations  = 32
	maxPreferredMeshWorkGroupInvocations  = 32
	prefersLocalInvocationVertexOutput    = false
	prefersLocalInvocationPrimitiveOutput = false
	prefersCompactVertexOutput            = false
	prefersCompactPrimitiveOutput         = true

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

VkPhysicalDeviceMultiviewProperties:
------------------------------------
	maxMultiviewViewCount     = 32
	maxMultiviewInstanceIndex = 134217727

VkPhysicalDeviceOpacityMicromapPropertiesEXT:
---------------------------------------------
	maxOpacity2StateSubdivisionLevel = 12
	maxOpacity4StateSubdivisionLevel = 12

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

VkPhysicalDevicePipelineRobustnessPropertiesEXT:
------------------------------------------------
	defaultRobustnessStorageBuffers = PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT
	defaultRobustnessUniformBuffers = PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT
	defaultRobustnessVertexInputs = PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT
	defaultRobustnessImages = PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT

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

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

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

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

VkPhysicalDeviceRayTracingPipelinePropertiesKHR:
------------------------------------------------
	shaderGroupHandleSize              = 32
	maxRayRecursionDepth               = 31
	maxShaderGroupStride               = 4096
	shaderGroupBaseAlignment           = 64
	shaderGroupHandleCaptureReplaySize = 32
	maxRayDispatchInvocationCount      = 1073741824
	shaderGroupHandleAlignment         = 32
	maxRayHitAttributeSize             = 32

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

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

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

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

VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT:
----------------------------------------------------
	shaderModuleIdentifierAlgorithmUUID     = 1f4517a6-c1c4-11ec-9d64-0242ac120005

VkPhysicalDeviceSubgroupProperties:
-----------------------------------
	subgroupSize              = 32
	supportedStages: count = 14
		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
	supportedOperations: count = 9
		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_PARTITIONED_BIT_NV
	quadOperationsInAllStages = true

VkPhysicalDeviceSubgroupSizeControlProperties:
----------------------------------------------
	minSubgroupSize              = 32
	maxSubgroupSize              = 32
	maxComputeWorkgroupSubgroups = 2097152
	requiredSubgroupSizeStages: count = 14
		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

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

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

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

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

VkPhysicalDeviceVulkan11Properties:
-----------------------------------
	deviceUUID                        = bcfcc130-13ae-0812-13dd-a7465b55a23f
	driverUUID                        = e8cd25bf-baf8-533b-8704-4517298cec2f
	deviceNodeMask                    = 1
	deviceLUIDValid                   = false
	subgroupSize                      = 32
	subgroupSupportedStages: count = 14
		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
	subgroupSupportedOperations: count = 9
		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_PARTITIONED_BIT_NV
	subgroupQuadOperationsInAllStages = true
	pointClippingBehavior             = POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY
	maxMultiviewViewCount             = 32
	maxMultiviewInstanceIndex         = 134217727
	protectedNoFault                  = false
	maxPerSetDescriptors              = 4294967295
	maxMemoryAllocationSize           = 0xffe00000

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

VkPhysicalDeviceVulkan13Properties:
-----------------------------------
	minSubgroupSize                                                               = 32
	maxSubgroupSize                                                               = 32
	maxComputeWorkgroupSubgroups                                                  = 2097152
	requiredSubgroupSizeStages: count = 14
		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
	maxInlineUniformBlockSize                                                     = 256
	maxPerStageDescriptorInlineUniformBlocks                                      = 32
	maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks                       = 32
	maxDescriptorSetInlineUniformBlocks                                           = 32
	maxDescriptorSetUpdateAfterBindInlineUniformBlocks                            = 32
	maxInlineUniformTotalSize                                                     = 3584
	integerDotProduct8BitUnsignedAccelerated                                      = true
	integerDotProduct8BitSignedAccelerated                                        = true
	integerDotProduct8BitMixedSignednessAccelerated                               = true
	integerDotProduct4x8BitPackedUnsignedAccelerated                              = true
	integerDotProduct4x8BitPackedSignedAccelerated                                = true
	integerDotProduct4x8BitPackedMixedSignednessAccelerated                       = true
	integerDotProduct16BitUnsignedAccelerated                                     = false
	integerDotProduct16BitSignedAccelerated                                       = false
	integerDotProduct16BitMixedSignednessAccelerated                              = false
	integerDotProduct32BitUnsignedAccelerated                                     = false
	integerDotProduct32BitSignedAccelerated                                       = false
	integerDotProduct32BitMixedSignednessAccelerated                              = false
	integerDotProduct64BitUnsignedAccelerated                                     = false
	integerDotProduct64BitSignedAccelerated                                       = false
	integerDotProduct64BitMixedSignednessAccelerated                              = false
	integerDotProductAccumulatingSaturating8BitUnsignedAccelerated                = true
	integerDotProductAccumulatingSaturating8BitSignedAccelerated                  = true
	integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated         = true
	integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated        = true
	integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated          = true
	integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = true
	integerDotProductAccumulatingSaturating16BitUnsignedAccelerated               = true
	integerDotProductAccumulatingSaturating16BitSignedAccelerated                 = true
	integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated        = true
	integerDotProductAccumulatingSaturating32BitUnsignedAccelerated               = true
	integerDotProductAccumulatingSaturating32BitSignedAccelerated                 = true
	integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated        = true
	integerDotProductAccumulatingSaturating64BitUnsignedAccelerated               = true
	integerDotProductAccumulatingSaturating64BitSignedAccelerated                 = true
	integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated        = true
	storageTexelBufferOffsetAlignmentBytes                                        = 0x00000010
	storageTexelBufferOffsetSingleTexelAlignment                                  = true
	uniformTexelBufferOffsetAlignmentBytes                                        = 0x00000010
	uniformTexelBufferOffsetSingleTexelAlignment                                  = true
	maxBufferSize                                                                 = 0xffffffffffff0000


Device Extensions: count = 172
	VK_EXT_4444_formats                         : extension revision 1
	VK_EXT_attachment_feedback_loop_layout      : extension revision 2
	VK_EXT_blend_operation_advanced             : extension revision 2
	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_color_write_enable                   : extension revision 1
	VK_EXT_conditional_rendering                : extension revision 2
	VK_EXT_conservative_rasterization           : extension revision 1
	VK_EXT_custom_border_color                  : extension revision 12
	VK_EXT_depth_clip_control                   : extension revision 1
	VK_EXT_depth_clip_enable                    : extension revision 1
	VK_EXT_depth_range_unrestricted             : extension revision 1
	VK_EXT_descriptor_indexing                  : extension revision 2
	VK_EXT_discard_rectangles                   : extension revision 1
	VK_EXT_display_control                      : extension revision 1
	VK_EXT_extended_dynamic_state               : extension revision 1
	VK_EXT_extended_dynamic_state2              : extension revision 1
	VK_EXT_external_memory_dma_buf              : extension revision 1
	VK_EXT_external_memory_host                 : extension revision 1
	VK_EXT_fragment_shader_interlock            : 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_host_query_reset                     : extension revision 1
	VK_EXT_image_2d_view_of_3d                  : extension revision 1
	VK_EXT_image_drm_format_modifier            : extension revision 2
	VK_EXT_image_robustness                     : extension revision 1
	VK_EXT_image_view_min_lod                   : extension revision 1
	VK_EXT_index_type_uint8                     : extension revision 1
	VK_EXT_inline_uniform_block                 : extension revision 1
	VK_EXT_line_rasterization                   : extension revision 1
	VK_EXT_load_store_op_none                   : extension revision 1
	VK_EXT_memory_budget                        : extension revision 1
	VK_EXT_mesh_shader                          : extension revision 1
	VK_EXT_multi_draw                           : extension revision 1
	VK_EXT_mutable_descriptor_type              : extension revision 1
	VK_EXT_non_seamless_cube_map                : extension revision 1
	VK_EXT_opacity_micromap                     : extension revision 2
	VK_EXT_pci_bus_info                         : extension revision 2
	VK_EXT_physical_device_drm                  : extension revision 1
	VK_EXT_pipeline_creation_cache_control      : extension revision 3
	VK_EXT_pipeline_creation_feedback           : extension revision 1
	VK_EXT_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_robustness2                          : extension revision 1
	VK_EXT_sample_locations                     : extension revision 1
	VK_EXT_sampler_filter_minmax                : extension revision 2
	VK_EXT_scalar_block_layout                  : extension revision 1
	VK_EXT_separate_stencil_usage               : extension revision 1
	VK_EXT_shader_atomic_float                  : extension revision 1
	VK_EXT_shader_demote_to_helper_invocation   : extension revision 1
	VK_EXT_shader_image_atomic_int64            : extension revision 1
	VK_EXT_shader_module_identifier             : extension revision 1
	VK_EXT_shader_subgroup_ballot               : extension revision 1
	VK_EXT_shader_subgroup_vote                 : extension revision 1
	VK_EXT_shader_viewport_index_layer          : extension revision 1
	VK_EXT_subgroup_size_control                : extension revision 2
	VK_EXT_texel_buffer_alignment               : extension revision 1
	VK_EXT_tooling_info                         : extension revision 1
	VK_EXT_transform_feedback                   : extension revision 1
	VK_EXT_vertex_attribute_divisor             : extension revision 3
	VK_EXT_vertex_input_dynamic_state           : extension revision 2
	VK_EXT_ycbcr_2plane_444_formats             : extension revision 1
	VK_EXT_ycbcr_image_arrays                   : 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_copy_commands2                       : extension revision 1
	VK_KHR_create_renderpass2                   : extension revision 1
	VK_KHR_dedicated_allocation                 : extension revision 3
	VK_KHR_deferred_host_operations             : extension revision 4
	VK_KHR_depth_stencil_resolve                : extension revision 1
	VK_KHR_descriptor_update_template           : extension revision 1
	VK_KHR_device_group                         : extension revision 4
	VK_KHR_draw_indirect_count                  : extension revision 1
	VK_KHR_driver_properties                    : extension revision 1
	VK_KHR_dynamic_rendering                    : extension revision 1
	VK_KHR_external_fence                       : extension revision 1
	VK_KHR_external_fence_fd                    : extension revision 1
	VK_KHR_external_memory                      : extension revision 1
	VK_KHR_external_memory_fd                   : extension revision 1
	VK_KHR_external_semaphore                   : extension revision 1
	VK_KHR_external_semaphore_fd                : extension revision 1
	VK_KHR_format_feature_flags2                : extension revision 1
	VK_KHR_fragment_shader_barycentric          : extension revision 1
	VK_KHR_fragment_shading_rate                : extension revision 2
	VK_KHR_get_memory_requirements2             : extension revision 1
	VK_KHR_global_priority                      : extension revision 1
	VK_KHR_image_format_list                    : extension revision 1
	VK_KHR_imageless_framebuffer                : extension revision 1
	VK_KHR_maintenance1                         : extension revision 2
	VK_KHR_maintenance2                         : extension revision 1
	VK_KHR_maintenance3                         : extension revision 1
	VK_KHR_maintenance4                         : extension revision 2
	VK_KHR_multiview                            : extension revision 1
	VK_KHR_pipeline_executable_properties       : extension revision 1
	VK_KHR_pipeline_library                     : extension revision 1
	VK_KHR_present_id                           : extension revision 1
	VK_KHR_present_wait                         : 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_relaxed_block_layout                 : extension revision 1
	VK_KHR_sampler_mirror_clamp_to_edge         : extension revision 3
	VK_KHR_sampler_ycbcr_conversion             : extension revision 14
	VK_KHR_separate_depth_stencil_layouts       : extension revision 1
	VK_KHR_shader_atomic_int64                  : extension revision 1
	VK_KHR_shader_clock                         : extension revision 1
	VK_KHR_shader_draw_parameters               : extension revision 1
	VK_KHR_shader_float16_int8                  : extension revision 1
	VK_KHR_shader_float_controls                : extension revision 4
	VK_KHR_shader_integer_dot_product           : extension revision 1
	VK_KHR_shader_non_semantic_info             : extension revision 1
	VK_KHR_shader_subgroup_extended_types       : extension revision 1
	VK_KHR_shader_subgroup_uniform_control_flow : extension revision 1
	VK_KHR_shader_terminate_invocation          : extension revision 1
	VK_KHR_spirv_1_4                            : extension revision 1
	VK_KHR_storage_buffer_storage_class         : extension revision 1
	VK_KHR_swapchain                            : extension revision 70
	VK_KHR_swapchain_mutable_format             : extension revision 1
	VK_KHR_synchronization2                     : extension revision 1
	VK_KHR_timeline_semaphore                   : extension revision 2
	VK_KHR_uniform_buffer_standard_layout       : extension revision 1
	VK_KHR_variable_pointers                    : extension revision 1
	VK_KHR_vulkan_memory_model                  : extension revision 3
	VK_KHR_workgroup_memory_explicit_layout     : extension revision 1
	VK_KHR_zero_initialize_workgroup_memory     : extension revision 1
	VK_NVX_binary_import                        : extension revision 1
	VK_NVX_image_view_handle                    : extension revision 2
	VK_NVX_multiview_per_view_attributes        : extension revision 1
	VK_NV_clip_space_w_scaling                  : extension revision 1
	VK_NV_compute_shader_derivatives            : extension revision 1
	VK_NV_cooperative_matrix                    : extension revision 1
	VK_NV_copy_memory_indirect                  : extension revision 1
	VK_NV_corner_sampled_image                  : extension revision 2
	VK_NV_coverage_reduction_mode               : extension revision 1
	VK_NV_cuda_kernel_launch                    : extension revision 2
	VK_NV_dedicated_allocation                  : extension revision 1
	VK_NV_dedicated_allocation_image_aliasing   : extension revision 1
	VK_NV_device_diagnostic_checkpoints         : extension revision 2
	VK_NV_device_diagnostics_config             : extension revision 2
	VK_NV_device_generated_commands             : extension revision 3
	VK_NV_fill_rectangle                        : extension revision 1
	VK_NV_fragment_coverage_to_color            : extension revision 1
	VK_NV_fragment_shader_barycentric           : extension revision 1
	VK_NV_fragment_shading_rate_enums           : extension revision 1
	VK_NV_framebuffer_mixed_samples             : extension revision 1
	VK_NV_geometry_shader_passthrough           : extension revision 1
	VK_NV_inherited_viewport_scissor            : extension revision 1
	VK_NV_linear_color_attachment               : extension revision 1
	VK_NV_memory_decompression                  : extension revision 1
	VK_NV_mesh_shader                           : extension revision 1
	VK_NV_ray_tracing                           : extension revision 3
	VK_NV_ray_tracing_invocation_reorder        : extension revision 1
	VK_NV_representative_fragment_test          : extension revision 2
	VK_NV_sample_mask_override_coverage         : extension revision 1
	VK_NV_scissor_exclusive                     : extension revision 1
	VK_NV_shader_image_footprint                : extension revision 2
	VK_NV_shader_sm_builtins                    : extension revision 1
	VK_NV_shader_subgroup_partitioned           : extension revision 1
	VK_NV_shading_rate_image                    : extension revision 3
	VK_NV_viewport_array2                       : extension revision 1
	VK_NV_viewport_swizzle                      : extension revision 1

VkQueueFamilyProperties:
========================
	queueProperties[0]:
	-------------------
		minImageTransferGranularity = (1,1,1)
		queueCount                  = 16
		queueFlags                  = QUEUE_GRAPHICS | QUEUE_COMPUTE | QUEUE_TRANSFER | QUEUE_SPARSE_BINDING
		timestampValidBits          = 64
		present support             = false
		VkQueueFamilyGlobalPriorityPropertiesKHR:
		-----------------------------------------
			priorityCount  = 1
			priorities: count = 1
				QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR


	queueProperties[1]:
	-------------------
		minImageTransferGranularity = (1,1,1)
		queueCount                  = 2
		queueFlags                  = QUEUE_TRANSFER | QUEUE_SPARSE_BINDING
		timestampValidBits          = 64
		present support             = false
		VkQueueFamilyGlobalPriorityPropertiesKHR:
		-----------------------------------------
			priorityCount  = 1
			priorities: count = 1
				QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR


	queueProperties[2]:
	-------------------
		minImageTransferGranularity = (1,1,1)
		queueCount                  = 8
		queueFlags                  = QUEUE_COMPUTE | QUEUE_TRANSFER | QUEUE_SPARSE_BINDING
		timestampValidBits          = 64
		present support             = false
		VkQueueFamilyGlobalPriorityPropertiesKHR:
		-----------------------------------------
			priorityCount  = 1
			priorities: count = 1
				QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR


VkPhysicalDeviceMemoryProperties:
=================================
memoryHeaps: count = 3
	memoryHeaps[0]:
		size   = 6442450944 (0x180000000) (6.00 GiB)
		budget = 6208028672 (0x172070000) (5.78 GiB)
		usage  = 0 (0x00000000) (0.00 B)
		flags: count = 1
			MEMORY_HEAP_DEVICE_LOCAL_BIT
	memoryHeaps[1]:
		size   = 12537194496 (0x2eb466800) (11.68 GiB)
		budget = 12537194496 (0x2eb466800) (11.68 GiB)
		usage  = 0 (0x00000000) (0.00 B)
		flags:
			None
	memoryHeaps[2]:
		size   = 257949696 (0x0f600000) (246.00 MiB)
		budget = 253689856 (0x0f1f0000) (241.94 MiB)
		usage  = 4259840 (0x00410000) (4.06 MiB)
		flags: count = 1
			MEMORY_HEAP_DEVICE_LOCAL_BIT
memoryTypes: count = 5
	memoryTypes[0]:
		heapIndex     = 1
		propertyFlags = 0x0000:
			None
		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
				(non-sparse, non-transient)
	memoryTypes[1]:
		heapIndex     = 0
		propertyFlags = 0x0001: count = 1
			MEMORY_PROPERTY_DEVICE_LOCAL_BIT
		usable for:
			IMAGE_TILING_OPTIMAL:
				color images
				FORMAT_D16_UNORM
				FORMAT_X8_D24_UNORM_PACK32
				FORMAT_D32_SFLOAT
				FORMAT_S8_UINT
				FORMAT_D24_UNORM_S8_UINT
				FORMAT_D32_SFLOAT_S8_UINT
			IMAGE_TILING_LINEAR:
				color images
				(non-sparse, non-transient)
	memoryTypes[2]:
		heapIndex     = 1
		propertyFlags = 0x0006: count = 2
			MEMORY_PROPERTY_HOST_VISIBLE_BIT
			MEMORY_PROPERTY_HOST_COHERENT_BIT
		usable for:
			IMAGE_TILING_OPTIMAL:
				None
			IMAGE_TILING_LINEAR:
				color images
				(non-sparse, non-transient)
	memoryTypes[3]:
		heapIndex     = 1
		propertyFlags = 0x000e: count = 3
			MEMORY_PROPERTY_HOST_VISIBLE_BIT
			MEMORY_PROPERTY_HOST_COHERENT_BIT
			MEMORY_PROPERTY_HOST_CACHED_BIT
		usable for:
			IMAGE_TILING_OPTIMAL:
				None
			IMAGE_TILING_LINEAR:
				color images
				(non-sparse, non-transient)
	memoryTypes[4]:
		heapIndex     = 2
		propertyFlags = 0x0007: count = 3
			MEMORY_PROPERTY_DEVICE_LOCAL_BIT
			MEMORY_PROPERTY_HOST_VISIBLE_BIT
			MEMORY_PROPERTY_HOST_COHERENT_BIT
		usable for:
			IMAGE_TILING_OPTIMAL:
				None
			IMAGE_TILING_LINEAR:
				color images
				(non-sparse, non-transient)

VkPhysicalDeviceFeatures:
=========================
	robustBufferAccess                      = true
	fullDrawIndexUint32                     = true
	imageCubeArray                          = true
	independentBlend                        = true
	geometryShader                          = true
	tessellationShader                      = true
	sampleRateShading                       = true
	dualSrcBlend                            = true
	logicOp                                 = true
	multiDrawIndirect                       = true
	drawIndirectFirstInstance               = true
	depthClamp                              = true
	depthBiasClamp                          = true
	fillModeNonSolid                        = true
	depthBounds                             = true
	wideLines                               = true
	largePoints                             = true
	alphaToOne                              = true
	multiViewport                           = true
	samplerAnisotropy                       = true
	textureCompressionETC2                  = 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                 = true
	sparseResidency4Samples                 = true
	sparseResidency8Samples                 = true
	sparseResidency16Samples                = true
	sparseResidencyAliased                  = true
	variableMultisampleRate                 = true
	inheritedQueries                        = true

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

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

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

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

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

VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT:
--------------------------------------------------
	advancedBlendCoherentOperations = true

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

VkPhysicalDeviceOpacityMicromapFeaturesEXT:
-------------------------------------------
	micromap              = true
	micromapCaptureReplay = false
	micromapHostCommands  = false

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

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

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

VkPhysicalDevicePresentIdFeaturesKHR:
-------------------------------------
	presentId = true

VkPhysicalDevicePresentWaitFeaturesKHR:
---------------------------------------
	presentWait = true

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

VkPhysicalDeviceVulkan11Features:
---------------------------------
	storageBuffer16BitAccess           = true
	uniformAndStorageBuffer16BitAccess = true
	storagePushConstant16              = 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                   = true
	bufferDeviceAddressMultiDevice                     = true
	vulkanMemoryModel                                  = true
	vulkanMemoryModelDeviceScope                       = true
	vulkanMemoryModelAvailabilityVisibilityChains      = true
	shaderOutputViewportIndex                          = true
	shaderOutputLayer                                  = true
	subgroupBroadcastDynamicId                         = true

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

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

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

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

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

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


GPU1:
VkPhysicalDeviceProperties:
---------------------------
	apiVersion        = 1.3.224 (4206816)
	driverVersion     = 525.78.1.64 (2203287616)
	vendorID          = 0x10de
	deviceID          = 0x1f08
	deviceType        = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
	deviceName        = NVIDIA GeForce RTX 2060
	pipelineCacheUUID = d0d70ac9-e91d-e009-a2b7-37fd81324f6d

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

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

VkPhysicalDeviceAccelerationStructurePropertiesKHR:
---------------------------------------------------
	maxGeometryCount                                           = 16777215
	maxInstanceCount                                           = 16777215
	maxPrimitiveCount                                          = 536870911
	maxPerStageDescriptorAccelerationStructures                = 1048576
	maxPerStageDescriptorUpdateAfterBindAccelerationStructures = 1048576
	maxDescriptorSetAccelerationStructures                     = 1048576
	maxDescriptorSetUpdateAfterBindAccelerationStructures      = 1048576
	minAccelerationStructureScratchOffsetAlignment             = 128

VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT:
----------------------------------------------------
	advancedBlendMaxColorAttachments      = 8
	advancedBlendIndependentBlend         = false
	advancedBlendNonPremultipliedSrcColor = true
	advancedBlendNonPremultipliedDstColor = true
	advancedBlendCorrelatedOverlap        = true
	advancedBlendAllOperations            = true

VkPhysicalDeviceConservativeRasterizationPropertiesEXT:
-------------------------------------------------------
	primitiveOverestimationSize                 = 0.00195312
	maxExtraPrimitiveOverestimationSize         = 0.75
	extraPrimitiveOverestimationSizeGranularity = 0.25
	primitiveUnderestimation                    = true
	conservativePointAndLineRasterization       = true
	degenerateTrianglesRasterized               = true
	degenerateLinesRasterized                   = true
	fullyCoveredFragmentShaderInputVariable     = true
	conservativeRasterizationPostDepthCoverage  = true

VkPhysicalDeviceCustomBorderColorPropertiesEXT:
-----------------------------------------------
	maxCustomBorderColorSamplers = 4000

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

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

VkPhysicalDeviceDiscardRectanglePropertiesEXT:
----------------------------------------------
	maxDiscardRectangles = 8

VkPhysicalDeviceDriverProperties:
---------------------------------
	driverID        = DRIVER_ID_NVIDIA_PROPRIETARY
	driverName      = NVIDIA
	driverInfo      = 525.78.01
	conformanceVersion:
		major    = 1
		minor    = 3
		subminor = 3
		patch    = 1

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

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

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

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

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

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

VkPhysicalDeviceIDProperties:
-----------------------------
	deviceUUID      = 21478dd8-f6c7-4035-2447-1b623a9f738b
	driverUUID      = e8cd25bf-baf8-533b-8704-4517298cec2f
	deviceNodeMask  = 1
	deviceLUIDValid = false

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

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

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

VkPhysicalDeviceMaintenance4Properties:
---------------------------------------
	maxBufferSize = 0xffffffffffff0000

VkPhysicalDeviceMeshShaderPropertiesEXT:
----------------------------------------
	maxTaskWorkGroupTotalCount            = 4194304
	maxTaskWorkGroupCount: count = 3
		4194304
		65535
		65535
	maxTaskWorkGroupInvocations           = 128
	maxTaskWorkGroupSize: count = 3
		128
		128
		128
	maxTaskPayloadSize                    = 16384
	maxTaskSharedMemorySize               = 32768
	maxTaskPayloadAndSharedMemorySize     = 32768
	maxMeshWorkGroupTotalCount            = 4194304
	maxMeshWorkGroupCount: count = 3
		4194304
		65535
		65535
	maxMeshWorkGroupInvocations           = 128
	maxMeshWorkGroupSize: count = 3
		128
		128
		128
	maxMeshSharedMemorySize               = 28672
	maxMeshPayloadAndSharedMemorySize     = 28672
	maxMeshOutputMemorySize               = 32768
	maxMeshPayloadAndOutputMemorySize     = 48128
	maxMeshOutputComponents               = 128
	maxMeshOutputVertices                 = 256
	maxMeshOutputPrimitives               = 256
	maxMeshOutputLayers                   = 2048
	maxMeshMultiviewViewCount             = 4
	meshOutputPerVertexGranularity        = 32
	meshOutputPerPrimitiveGranularity     = 32
	maxPreferredTaskWorkGroupInvocations  = 32
	maxPreferredMeshWorkGroupInvocations  = 32
	prefersLocalInvocationVertexOutput    = false
	prefersLocalInvocationPrimitiveOutput = false
	prefersCompactVertexOutput            = false
	prefersCompactPrimitiveOutput         = true

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

VkPhysicalDeviceMultiviewProperties:
------------------------------------
	maxMultiviewViewCount     = 32
	maxMultiviewInstanceIndex = 134217727

VkPhysicalDeviceOpacityMicromapPropertiesEXT:
---------------------------------------------
	maxOpacity2StateSubdivisionLevel = 12
	maxOpacity4StateSubdivisionLevel = 12

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

VkPhysicalDevicePipelineRobustnessPropertiesEXT:
------------------------------------------------
	defaultRobustnessStorageBuffers = PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT
	defaultRobustnessUniformBuffers = PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT
	defaultRobustnessVertexInputs = PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT
	defaultRobustnessImages = PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT

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

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

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

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

VkPhysicalDeviceRayTracingPipelinePropertiesKHR:
------------------------------------------------
	shaderGroupHandleSize              = 32
	maxRayRecursionDepth               = 31
	maxShaderGroupStride               = 4096
	shaderGroupBaseAlignment           = 64
	shaderGroupHandleCaptureReplaySize = 32
	maxRayDispatchInvocationCount      = 1073741824
	shaderGroupHandleAlignment         = 32
	maxRayHitAttributeSize             = 32

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

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

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

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

VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT:
----------------------------------------------------
	shaderModuleIdentifierAlgorithmUUID     = 1f4517a6-c1c4-11ec-9d64-0242ac120005

VkPhysicalDeviceSubgroupProperties:
-----------------------------------
	subgroupSize              = 32
	supportedStages: count = 14
		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
	supportedOperations: count = 9
		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_PARTITIONED_BIT_NV
	quadOperationsInAllStages = true

VkPhysicalDeviceSubgroupSizeControlProperties:
----------------------------------------------
	minSubgroupSize              = 32
	maxSubgroupSize              = 32
	maxComputeWorkgroupSubgroups = 2097152
	requiredSubgroupSizeStages: count = 14
		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

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

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

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

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

VkPhysicalDeviceVulkan11Properties:
-----------------------------------
	deviceUUID                        = 21478dd8-f6c7-4035-2447-1b623a9f738b
	driverUUID                        = e8cd25bf-baf8-533b-8704-4517298cec2f
	deviceNodeMask                    = 1
	deviceLUIDValid                   = false
	subgroupSize                      = 32
	subgroupSupportedStages: count = 14
		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
	subgroupSupportedOperations: count = 9
		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_PARTITIONED_BIT_NV
	subgroupQuadOperationsInAllStages = true
	pointClippingBehavior             = POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY
	maxMultiviewViewCount             = 32
	maxMultiviewInstanceIndex         = 134217727
	protectedNoFault                  = false
	maxPerSetDescriptors              = 4294967295
	maxMemoryAllocationSize           = 0xffe00000

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

VkPhysicalDeviceVulkan13Properties:
-----------------------------------
	minSubgroupSize                                                               = 32
	maxSubgroupSize                                                               = 32
	maxComputeWorkgroupSubgroups                                                  = 2097152
	requiredSubgroupSizeStages: count = 14
		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
	maxInlineUniformBlockSize                                                     = 256
	maxPerStageDescriptorInlineUniformBlocks                                      = 32
	maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks                       = 32
	maxDescriptorSetInlineUniformBlocks                                           = 32
	maxDescriptorSetUpdateAfterBindInlineUniformBlocks                            = 32
	maxInlineUniformTotalSize                                                     = 3584
	integerDotProduct8BitUnsignedAccelerated                                      = true
	integerDotProduct8BitSignedAccelerated                                        = true
	integerDotProduct8BitMixedSignednessAccelerated                               = true
	integerDotProduct4x8BitPackedUnsignedAccelerated                              = true
	integerDotProduct4x8BitPackedSignedAccelerated                                = true
	integerDotProduct4x8BitPackedMixedSignednessAccelerated                       = true
	integerDotProduct16BitUnsignedAccelerated                                     = false
	integerDotProduct16BitSignedAccelerated                                       = false
	integerDotProduct16BitMixedSignednessAccelerated                              = false
	integerDotProduct32BitUnsignedAccelerated                                     = false
	integerDotProduct32BitSignedAccelerated                                       = false
	integerDotProduct32BitMixedSignednessAccelerated                              = false
	integerDotProduct64BitUnsignedAccelerated                                     = false
	integerDotProduct64BitSignedAccelerated                                       = false
	integerDotProduct64BitMixedSignednessAccelerated                              = false
	integerDotProductAccumulatingSaturating8BitUnsignedAccelerated                = true
	integerDotProductAccumulatingSaturating8BitSignedAccelerated                  = true
	integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated         = true
	integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated        = true
	integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated          = true
	integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = true
	integerDotProductAccumulatingSaturating16BitUnsignedAccelerated               = true
	integerDotProductAccumulatingSaturating16BitSignedAccelerated                 = true
	integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated        = true
	integerDotProductAccumulatingSaturating32BitUnsignedAccelerated               = true
	integerDotProductAccumulatingSaturating32BitSignedAccelerated                 = true
	integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated        = true
	integerDotProductAccumulatingSaturating64BitUnsignedAccelerated               = true
	integerDotProductAccumulatingSaturating64BitSignedAccelerated                 = true
	integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated        = true
	storageTexelBufferOffsetAlignmentBytes                                        = 0x00000010
	storageTexelBufferOffsetSingleTexelAlignment                                  = true
	uniformTexelBufferOffsetAlignmentBytes                                        = 0x00000010
	uniformTexelBufferOffsetSingleTexelAlignment                                  = true
	maxBufferSize                                                                 = 0xffffffffffff0000


Device Extensions: count = 172
	VK_EXT_4444_formats                         : extension revision 1
	VK_EXT_attachment_feedback_loop_layout      : extension revision 2
	VK_EXT_blend_operation_advanced             : extension revision 2
	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_color_write_enable                   : extension revision 1
	VK_EXT_conditional_rendering                : extension revision 2
	VK_EXT_conservative_rasterization           : extension revision 1
	VK_EXT_custom_border_color                  : extension revision 12
	VK_EXT_depth_clip_control                   : extension revision 1
	VK_EXT_depth_clip_enable                    : extension revision 1
	VK_EXT_depth_range_unrestricted             : extension revision 1
	VK_EXT_descriptor_indexing                  : extension revision 2
	VK_EXT_discard_rectangles                   : extension revision 1
	VK_EXT_display_control                      : extension revision 1
	VK_EXT_extended_dynamic_state               : extension revision 1
	VK_EXT_extended_dynamic_state2              : extension revision 1
	VK_EXT_external_memory_dma_buf              : extension revision 1
	VK_EXT_external_memory_host                 : extension revision 1
	VK_EXT_fragment_shader_interlock            : 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_host_query_reset                     : extension revision 1
	VK_EXT_image_2d_view_of_3d                  : extension revision 1
	VK_EXT_image_drm_format_modifier            : extension revision 2
	VK_EXT_image_robustness                     : extension revision 1
	VK_EXT_image_view_min_lod                   : extension revision 1
	VK_EXT_index_type_uint8                     : extension revision 1
	VK_EXT_inline_uniform_block                 : extension revision 1
	VK_EXT_line_rasterization                   : extension revision 1
	VK_EXT_load_store_op_none                   : extension revision 1
	VK_EXT_memory_budget                        : extension revision 1
	VK_EXT_mesh_shader                          : extension revision 1
	VK_EXT_multi_draw                           : extension revision 1
	VK_EXT_mutable_descriptor_type              : extension revision 1
	VK_EXT_non_seamless_cube_map                : extension revision 1
	VK_EXT_opacity_micromap                     : extension revision 2
	VK_EXT_pci_bus_info                         : extension revision 2
	VK_EXT_physical_device_drm                  : extension revision 1
	VK_EXT_pipeline_creation_cache_control      : extension revision 3
	VK_EXT_pipeline_creation_feedback           : extension revision 1
	VK_EXT_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_robustness2                          : extension revision 1
	VK_EXT_sample_locations                     : extension revision 1
	VK_EXT_sampler_filter_minmax                : extension revision 2
	VK_EXT_scalar_block_layout                  : extension revision 1
	VK_EXT_separate_stencil_usage               : extension revision 1
	VK_EXT_shader_atomic_float                  : extension revision 1
	VK_EXT_shader_demote_to_helper_invocation   : extension revision 1
	VK_EXT_shader_image_atomic_int64            : extension revision 1
	VK_EXT_shader_module_identifier             : extension revision 1
	VK_EXT_shader_subgroup_ballot               : extension revision 1
	VK_EXT_shader_subgroup_vote                 : extension revision 1
	VK_EXT_shader_viewport_index_layer          : extension revision 1
	VK_EXT_subgroup_size_control                : extension revision 2
	VK_EXT_texel_buffer_alignment               : extension revision 1
	VK_EXT_tooling_info                         : extension revision 1
	VK_EXT_transform_feedback                   : extension revision 1
	VK_EXT_vertex_attribute_divisor             : extension revision 3
	VK_EXT_vertex_input_dynamic_state           : extension revision 2
	VK_EXT_ycbcr_2plane_444_formats             : extension revision 1
	VK_EXT_ycbcr_image_arrays                   : 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_copy_commands2                       : extension revision 1
	VK_KHR_create_renderpass2                   : extension revision 1
	VK_KHR_dedicated_allocation                 : extension revision 3
	VK_KHR_deferred_host_operations             : extension revision 4
	VK_KHR_depth_stencil_resolve                : extension revision 1
	VK_KHR_descriptor_update_template           : extension revision 1
	VK_KHR_device_group                         : extension revision 4
	VK_KHR_draw_indirect_count                  : extension revision 1
	VK_KHR_driver_properties                    : extension revision 1
	VK_KHR_dynamic_rendering                    : extension revision 1
	VK_KHR_external_fence                       : extension revision 1
	VK_KHR_external_fence_fd                    : extension revision 1
	VK_KHR_external_memory                      : extension revision 1
	VK_KHR_external_memory_fd                   : extension revision 1
	VK_KHR_external_semaphore                   : extension revision 1
	VK_KHR_external_semaphore_fd                : extension revision 1
	VK_KHR_format_feature_flags2                : extension revision 1
	VK_KHR_fragment_shader_barycentric          : extension revision 1
	VK_KHR_fragment_shading_rate                : extension revision 2
	VK_KHR_get_memory_requirements2             : extension revision 1
	VK_KHR_global_priority                      : extension revision 1
	VK_KHR_image_format_list                    : extension revision 1
	VK_KHR_imageless_framebuffer                : extension revision 1
	VK_KHR_maintenance1                         : extension revision 2
	VK_KHR_maintenance2                         : extension revision 1
	VK_KHR_maintenance3                         : extension revision 1
	VK_KHR_maintenance4                         : extension revision 2
	VK_KHR_multiview                            : extension revision 1
	VK_KHR_pipeline_executable_properties       : extension revision 1
	VK_KHR_pipeline_library                     : extension revision 1
	VK_KHR_present_id                           : extension revision 1
	VK_KHR_present_wait                         : 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_relaxed_block_layout                 : extension revision 1
	VK_KHR_sampler_mirror_clamp_to_edge         : extension revision 3
	VK_KHR_sampler_ycbcr_conversion             : extension revision 14
	VK_KHR_separate_depth_stencil_layouts       : extension revision 1
	VK_KHR_shader_atomic_int64                  : extension revision 1
	VK_KHR_shader_clock                         : extension revision 1
	VK_KHR_shader_draw_parameters               : extension revision 1
	VK_KHR_shader_float16_int8                  : extension revision 1
	VK_KHR_shader_float_controls                : extension revision 4
	VK_KHR_shader_integer_dot_product           : extension revision 1
	VK_KHR_shader_non_semantic_info             : extension revision 1
	VK_KHR_shader_subgroup_extended_types       : extension revision 1
	VK_KHR_shader_subgroup_uniform_control_flow : extension revision 1
	VK_KHR_shader_terminate_invocation          : extension revision 1
	VK_KHR_spirv_1_4                            : extension revision 1
	VK_KHR_storage_buffer_storage_class         : extension revision 1
	VK_KHR_swapchain                            : extension revision 70
	VK_KHR_swapchain_mutable_format             : extension revision 1
	VK_KHR_synchronization2                     : extension revision 1
	VK_KHR_timeline_semaphore                   : extension revision 2
	VK_KHR_uniform_buffer_standard_layout       : extension revision 1
	VK_KHR_variable_pointers                    : extension revision 1
	VK_KHR_vulkan_memory_model                  : extension revision 3
	VK_KHR_workgroup_memory_explicit_layout     : extension revision 1
	VK_KHR_zero_initialize_workgroup_memory     : extension revision 1
	VK_NVX_binary_import                        : extension revision 1
	VK_NVX_image_view_handle                    : extension revision 2
	VK_NVX_multiview_per_view_attributes        : extension revision 1
	VK_NV_clip_space_w_scaling                  : extension revision 1
	VK_NV_compute_shader_derivatives            : extension revision 1
	VK_NV_cooperative_matrix                    : extension revision 1
	VK_NV_copy_memory_indirect                  : extension revision 1
	VK_NV_corner_sampled_image                  : extension revision 2
	VK_NV_coverage_reduction_mode               : extension revision 1
	VK_NV_cuda_kernel_launch                    : extension revision 2
	VK_NV_dedicated_allocation                  : extension revision 1
	VK_NV_dedicated_allocation_image_aliasing   : extension revision 1
	VK_NV_device_diagnostic_checkpoints         : extension revision 2
	VK_NV_device_diagnostics_config             : extension revision 2
	VK_NV_device_generated_commands             : extension revision 3
	VK_NV_fill_rectangle                        : extension revision 1
	VK_NV_fragment_coverage_to_color            : extension revision 1
	VK_NV_fragment_shader_barycentric           : extension revision 1
	VK_NV_fragment_shading_rate_enums           : extension revision 1
	VK_NV_framebuffer_mixed_samples             : extension revision 1
	VK_NV_geometry_shader_passthrough           : extension revision 1
	VK_NV_inherited_viewport_scissor            : extension revision 1
	VK_NV_linear_color_attachment               : extension revision 1
	VK_NV_memory_decompression                  : extension revision 1
	VK_NV_mesh_shader                           : extension revision 1
	VK_NV_ray_tracing                           : extension revision 3
	VK_NV_ray_tracing_invocation_reorder        : extension revision 1
	VK_NV_representative_fragment_test          : extension revision 2
	VK_NV_sample_mask_override_coverage         : extension revision 1
	VK_NV_scissor_exclusive                     : extension revision 1
	VK_NV_shader_image_footprint                : extension revision 2
	VK_NV_shader_sm_builtins                    : extension revision 1
	VK_NV_shader_subgroup_partitioned           : extension revision 1
	VK_NV_shading_rate_image                    : extension revision 3
	VK_NV_viewport_array2                       : extension revision 1
	VK_NV_viewport_swizzle                      : extension revision 1

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


	queueProperties[1]:
	-------------------
		minImageTransferGranularity = (1,1,1)
		queueCount                  = 2
		queueFlags                  = QUEUE_TRANSFER | QUEUE_SPARSE_BINDING
		timestampValidBits          = 64
		present support             = false
		VkQueueFamilyGlobalPriorityPropertiesKHR:
		-----------------------------------------
			priorityCount  = 1
			priorities: count = 1
				QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR


	queueProperties[2]:
	-------------------
		minImageTransferGranularity = (1,1,1)
		queueCount                  = 8
		queueFlags                  = QUEUE_COMPUTE | QUEUE_TRANSFER | QUEUE_SPARSE_BINDING
		timestampValidBits          = 64
		present support             = true
		VkQueueFamilyGlobalPriorityPropertiesKHR:
		-----------------------------------------
			priorityCount  = 1
			priorities: count = 1
				QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR


VkPhysicalDeviceMemoryProperties:
=================================
memoryHeaps: count = 3
	memoryHeaps[0]:
		size   = 6442450944 (0x180000000) (6.00 GiB)
		budget = 5862195200 (0x15d6a0000) (5.46 GiB)
		usage  = 0 (0x00000000) (0.00 B)
		flags: count = 1
			MEMORY_HEAP_DEVICE_LOCAL_BIT
	memoryHeaps[1]:
		size   = 12537194496 (0x2eb466800) (11.68 GiB)
		budget = 12537194496 (0x2eb466800) (11.68 GiB)
		usage  = 0 (0x00000000) (0.00 B)
		flags:
			None
	memoryHeaps[2]:
		size   = 257949696 (0x0f600000) (246.00 MiB)
		budget = 250609664 (0x0ef00000) (239.00 MiB)
		usage  = 7340032 (0x00700000) (7.00 MiB)
		flags: count = 1
			MEMORY_HEAP_DEVICE_LOCAL_BIT
memoryTypes: count = 5
	memoryTypes[0]:
		heapIndex     = 1
		propertyFlags = 0x0000:
			None
		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
				(non-sparse, non-transient)
	memoryTypes[1]:
		heapIndex     = 0
		propertyFlags = 0x0001: count = 1
			MEMORY_PROPERTY_DEVICE_LOCAL_BIT
		usable for:
			IMAGE_TILING_OPTIMAL:
				color images
				FORMAT_D16_UNORM
				FORMAT_X8_D24_UNORM_PACK32
				FORMAT_D32_SFLOAT
				FORMAT_S8_UINT
				FORMAT_D24_UNORM_S8_UINT
				FORMAT_D32_SFLOAT_S8_UINT
			IMAGE_TILING_LINEAR:
				color images
				(non-sparse, non-transient)
	memoryTypes[2]:
		heapIndex     = 1
		propertyFlags = 0x0006: count = 2
			MEMORY_PROPERTY_HOST_VISIBLE_BIT
			MEMORY_PROPERTY_HOST_COHERENT_BIT
		usable for:
			IMAGE_TILING_OPTIMAL:
				None
			IMAGE_TILING_LINEAR:
				color images
				(non-sparse, non-transient)
	memoryTypes[3]:
		heapIndex     = 1
		propertyFlags = 0x000e: count = 3
			MEMORY_PROPERTY_HOST_VISIBLE_BIT
			MEMORY_PROPERTY_HOST_COHERENT_BIT
			MEMORY_PROPERTY_HOST_CACHED_BIT
		usable for:
			IMAGE_TILING_OPTIMAL:
				None
			IMAGE_TILING_LINEAR:
				color images
				(non-sparse, non-transient)
	memoryTypes[4]:
		heapIndex     = 2
		propertyFlags = 0x0007: count = 3
			MEMORY_PROPERTY_DEVICE_LOCAL_BIT
			MEMORY_PROPERTY_HOST_VISIBLE_BIT
			MEMORY_PROPERTY_HOST_COHERENT_BIT
		usable for:
			IMAGE_TILING_OPTIMAL:
				None
			IMAGE_TILING_LINEAR:
				color images
				(non-sparse, non-transient)

VkPhysicalDeviceFeatures:
=========================
	robustBufferAccess                      = true
	fullDrawIndexUint32                     = true
	imageCubeArray                          = true
	independentBlend                        = true
	geometryShader                          = true
	tessellationShader                      = true
	sampleRateShading                       = true
	dualSrcBlend                            = true
	logicOp                                 = true
	multiDrawIndirect                       = true
	drawIndirectFirstInstance               = true
	depthClamp                              = true
	depthBiasClamp                          = true
	fillModeNonSolid                        = true
	depthBounds                             = true
	wideLines                               = true
	largePoints                             = true
	alphaToOne                              = true
	multiViewport                           = true
	samplerAnisotropy                       = true
	textureCompressionETC2                  = 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                 = true
	sparseResidency4Samples                 = true
	sparseResidency8Samples                 = true
	sparseResidency16Samples                = true
	sparseResidencyAliased                  = true
	variableMultisampleRate                 = true
	inheritedQueries                        = true

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

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

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

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

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

VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT:
--------------------------------------------------
	advancedBlendCoherentOperations = true

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

VkPhysicalDeviceOpacityMicromapFeaturesEXT:
-------------------------------------------
	micromap              = true
	micromapCaptureReplay = false
	micromapHostCommands  = false

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

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

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

VkPhysicalDevicePresentIdFeaturesKHR:
-------------------------------------
	presentId = true

VkPhysicalDevicePresentWaitFeaturesKHR:
---------------------------------------
	presentWait = true

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

VkPhysicalDeviceVulkan11Features:
---------------------------------
	storageBuffer16BitAccess           = true
	uniformAndStorageBuffer16BitAccess = true
	storagePushConstant16              = 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                   = true
	bufferDeviceAddressMultiDevice                     = true
	vulkanMemoryModel                                  = true
	vulkanMemoryModelDeviceScope                       = true
	vulkanMemoryModelAvailabilityVisibilityChains      = true
	shaderOutputViewportIndex                          = true
	shaderOutputLayer                                  = true
	subgroupBroadcastDynamicId                         = true

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

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

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

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

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

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

Offline

#4 2023-01-07 12:02:07

apostolos
Member
Registered: 2023-01-07
Posts: 5

Re: [SOLVED]Proton/Steam is using the wrong GPU - two same Nvidia GPUs

You might also find useful:

$ vkcube
Selected GPU 0: NVIDIA GeForce RTX 2060, type: DiscreteGpu
Could not find both graphics and present queues

same as when i try to run games, if i disconnect the second GPU from the system, vkcube works fine

EDIT
by the way, is MESA supposed to work with Nvidia proprietary, or am i getting confused?

Last edited by apostolos (2023-01-07 12:08:45)

Offline

#5 2023-01-07 12:17:46

Lone_Wolf
Member
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,868

Re: [SOLVED]Proton/Steam is using the wrong GPU - two same Nvidia GPUs

Your system has 2 discrete videocards, and while they are the same model they are not identical .

1b:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU104 [GeForce RTX 2060] [10de:1e89] (rev a1)
	Subsystem: Gigabyte Technology Co., Ltd Device [1458:3fc1]

1c:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU106 [GeForce RTX 2060 Rev. A] [10de:1f08] (rev a1)
	Subsystem: Gigabyte Technology Co., Ltd Device [1458:3fc1]

The vulkaninfo --summary shows both your cards are recognized as vulkan devices and also you are missing the layer needed for MESA_VK_DEVICE_SELECT to work .
That is also the reason why the output of the 2nd vulkaninfo command is so large and probably also what vkcube chokes on.

install vulkan-mesa-layers & lib32-vulkan-mesa-layers .
Post output of  fresh

$ MESA_VK_DEVICE_SELECT=list vulkaninfo

(it should look very different now) .

Last edited by Lone_Wolf (2023-01-07 12:19:04)


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#6 2023-01-07 12:31:33

apostolos
Member
Registered: 2023-01-07
Posts: 5

Re: [SOLVED]Proton/Steam is using the wrong GPU - two same Nvidia GPUs

Bro... You are godsent!

Everything works like charm after installing vulkan-mesa-layers & lib32-vulkan-mesa-layers .

Thank you very much!

$ MESA_VK_DEVICE_SELECT=list vulkaninfo
selectable devices:
  GPU 0: 10de:1e89 "NVIDIA GeForce RTX 2060" discrete GPU 0000:1b:00.0
  GPU 1: 10de:1f08 "NVIDIA GeForce RTX 2060" discrete GPU 0000:1c:00.0

and btw

Your system has 2 discrete videocards, and while they are the same model they are not identical .

you are right about this. it seems that TU104 was supposed to be on RTX 2070 super or above but probably could not qualify for these cards and got used on 2060s

Last edited by apostolos (2023-01-07 12:37:09)

Offline

#7 2023-01-07 13:12:24

Lone_Wolf
Member
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,868

Re: [SOLVED]Proton/Steam is using the wrong GPU - two same Nvidia GPUs

Glad to help.

Some finishing comments :

The first device shown in MESA_VK_DEVICE_SELECT=list vulkaninfo output is the default vulkan device.
If desired / needed the default can be changed.

https://docs.mesa3d.org/envvars.html#vu … -variables has more details.

by the way, is MESA supposed to work with Nvidia proprietary, or am i getting confused?

Yes and 'can happen easily'

Over time (albeit very slowly) Nvidia appears to have realised treating opensource projects as partners instead of competition does have advantages.
An example is GLVND which was designed specifically to allow multiple OpenGL implementations to coexist and be able to switch between them.


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#8 2023-01-07 14:20:01

apostolos
Member
Registered: 2023-01-07
Posts: 5

Re: [SOLVED]Proton/Steam is using the wrong GPU - two same Nvidia GPUs

The first device shown in MESA_VK_DEVICE_SELECT=list vulkaninfo output is the default vulkan device.
If desired / needed the default can be changed.

https://docs.mesa3d.org/envvars.html#vu … -variables has more details.

That's also good to know. ^^

by the way, is MESA supposed to work with Nvidia proprietary, or am i getting confused?

Yes and 'can happen easily'

Over time (albeit very slowly) Nvidia appears to have realised treating opensource projects as partners instead of competition does have advantages.
An example is GLVND which was designed specifically to allow multiple OpenGL implementations to coexist and be able to switch between them.

You got a point there. I guess i did get confused thinking that mesa is the opensource driver used in amd cards and not a graphics library.

Anyway, thanks again for your help, Lone_Wolf! I really appreciate it!,
Apostolos

Offline

#9 2023-10-24 15:36:42

CyberBob
Member
Registered: 2023-10-24
Posts: 1

Re: [SOLVED]Proton/Steam is using the wrong GPU - two same Nvidia GPUs

@Lone_Wolf, Thanks!  You're super knowledgeable! The info shared here helped me with a similar issue.  Appreciated!

Offline

Board footer

Powered by FluxBB