You are not logged in.

#1 2024-07-29 03:30:17

ImDevinC
Member
Registered: 2016-10-15
Posts: 5

Baldur's Gate 3 hangs at loading screen on optimus nvidia laptop

I've been struggling to get Baldur's Gate 3 to load properly for a few weeks now. The start screen shows up and gets to either 95% if I use Vulkan or 93% if I use DX11, but never past that. I can see a stack overflow in the logs that I believe is related since it's near the end, but not sure how to debug as adding +relay just causes the game to crash before loading.

If I set MANGO_HUD=1 in my steam options, it shows something happening on the GPU/CPU, but I've let it sit for 6 hours overnight with no improvements

I've tried all of the following:

  • Steam-Flatpak/Lutris/AUR-Steam

  • Multiple versions of Proton (including Proton-GE, Experimental, hotfix, as well as 9.x and 8.x)

  • Clean install (multiple times)

  • Using optimus-manager to force nvidia GPU (verified using nvidia-smi)

  • Vulkan/DirectX

  • --skip-launcher

  • Checked the linux-gaming Discord server

Unfortunately none of this has helped. Here's a recent Proton log: https://pastebin.ai/g40tfbamiy

                   -`                    devin@bean 
                  .o+`                   ---------- 
                 `ooo/                   OS: Arch Linux x86_64 
                `+oooo:                  Host: OMEN Transcend Gaming Laptop 14-fb0xxx 
               `+oooooo:                 Kernel: 6.10.1-arch1-1 
               -+oooooo+:                Uptime: 39 mins 
             `/:-:++oooo+:               Packages: 910 (pacman), 27 (flatpak) 
            `/++++/+++++++:              Shell: zsh 5.9 
           `/++++++++++++++:             Resolution: 2880x1800 
          `/+++ooooooooooooo/`           DE: Xfce 4.18 
         ./ooosssso++osssssso+`          WM: Xfwm4 
        .oossssso-'''`/ossssss+`         WM Theme: catppuccin-frappe-dark 
       -osssssso.      :ssssssso.        Theme: catppuccin-frappe-dark [GTK2/3] 
      :osssssss/        osssso+++.       Icons: Tela-circle-dark [GTK2/3] 
     /ossssssss/        +ssssooo/-       Terminal: tmux 
   `/ossssso+/:-        -:/+osssso+-     CPU: Intel Ultra 9 185H (22) @ 4.800GHz
  `+sso+:-`                 `.-/+oso:    GPU: Intel Arc Graphics] 
 `++:.                           `-/+/   GPU: NVIDIA GeForce RTX 4070 Max-Q / Mobile 
 .`                                 `/   Memory: 3833MiB / 31666MiB 

Installed packages for nvidia and vulkan

pacman -Q | grep nvidia 
lib32-nvidia-utils 555.58.02-1
nvidia-dkms 555.58.02-1
nvidia-prime 1.0-5
nvidia-settings 555.58.02-1
nvidia-utils 555.58.02-1

pacman -Q | grep vulkan
lib32-vulkan-icd-loader 1.3.279-1
vulkan-headers 1:1.3.285-1
vulkan-icd-loader 1.3.285-1
vulkan-tools 1.3.269-1

Vulkan info

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

Vulkan Instance Version: 1.3.279


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

Layers: count = 9
=================
VK_LAYER_MANGOAPP_overlay (Mangoapp Layer) Vulkan version 1.3.0, layer version 1:
	Layer Extensions: count = 0
	Devices: count = 1
		GPU id = 0 (NVIDIA GeForce RTX 4070 Laptop GPU)
		Layer-Device Extensions: count = 0

VK_LAYER_MANGOAPP_overlay (Mangoapp Layer) Vulkan version 1.3.0, layer version 1:
	Layer Extensions: count = 0
	Devices: count = 1
		GPU id = 0 (NVIDIA GeForce RTX 4070 Laptop GPU)
		Layer-Device Extensions: count = 0

VK_LAYER_MANGOHUD_overlay_x86 (Vulkan Hud Overlay) Vulkan version 1.3.0, layer version 1:
	Layer Extensions: count = 0
	Devices: count = 1
		GPU id = 0 (NVIDIA GeForce RTX 4070 Laptop GPU)
		Layer-Device Extensions: count = 0

VK_LAYER_MANGOHUD_overlay_x86_64 (Vulkan Hud Overlay) Vulkan version 1.3.0, layer version 1:
	Layer Extensions: count = 0
	Devices: count = 1
		GPU id = 0 (NVIDIA GeForce RTX 4070 Laptop GPU)
		Layer-Device Extensions: count = 0

VK_LAYER_NV_optimus (NVIDIA Optimus layer) Vulkan version 1.3.278, layer version 1:
	Layer Extensions: count = 0
	Devices: count = 1
		GPU id = 0 (NVIDIA GeForce RTX 4070 Laptop GPU)
		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 = 1
		GPU id = 0 (NVIDIA GeForce RTX 4070 Laptop GPU)
		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 = 1
		GPU id = 0 (NVIDIA GeForce RTX 4070 Laptop GPU)
		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 = 1
		GPU id = 0 (NVIDIA GeForce RTX 4070 Laptop GPU)
		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 = 1
		GPU id = 0 (NVIDIA GeForce RTX 4070 Laptop GPU)
		Layer-Device Extensions: count = 0

Presentable Surfaces:
=====================
GPU id : 0 (NVIDIA GeForce RTX 4070 Laptop GPU):
	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 = 2
		PRESENT_MODE_FIFO_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
	VkSharedPresentSurfaceCapabilitiesKHR:
	--------------------------------------
		sharedPresentSupportedUsageFlags: 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

	VkSurfaceProtectedCapabilitiesKHR:
	----------------------------------
		supportsProtected = false

	VK_EXT_surface_maintenance_1:
	-----------------------------
		PRESENT_MODE_FIFO_KHR:
			VkSurfacePresentScalingCapabilitiesEXT:
				supportedPresentScaling: count = 3
					PRESENT_SCALING_ONE_TO_ONE_BIT_EXT
					PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT
					PRESENT_SCALING_STRETCH_BIT_EXT
				supportedPresentGravityX: count = 3
					PRESENT_GRAVITY_MIN_BIT_EXT
					PRESENT_GRAVITY_MAX_BIT_EXT
					PRESENT_GRAVITY_CENTERED_BIT_EXT
				supportedPresentGravityY: count = 3
					PRESENT_GRAVITY_MIN_BIT_EXT
					PRESENT_GRAVITY_MAX_BIT_EXT
					PRESENT_GRAVITY_CENTERED_BIT_EXT
				minScaledImageExtent:
					width  = 1
					height = 1
				maxScaledImageExtent:
					width  = 4294967294
					height = 4294967294
			VkSurfacePresentModeCompatibilityEXT:
				presentModeCount                = 3
				pPresentModes: count = 3
					PRESENT_MODE_FIFO_KHR
					PRESENT_MODE_IMMEDIATE_KHR
					PRESENT_MODE_FIFO_RELAXED_KHR
		PRESENT_MODE_IMMEDIATE_KHR:
			VkSurfacePresentScalingCapabilitiesEXT:
				supportedPresentScaling: count = 3
					PRESENT_SCALING_ONE_TO_ONE_BIT_EXT
					PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT
					PRESENT_SCALING_STRETCH_BIT_EXT
				supportedPresentGravityX: count = 3
					PRESENT_GRAVITY_MIN_BIT_EXT
					PRESENT_GRAVITY_MAX_BIT_EXT
					PRESENT_GRAVITY_CENTERED_BIT_EXT
				supportedPresentGravityY: count = 3
					PRESENT_GRAVITY_MIN_BIT_EXT
					PRESENT_GRAVITY_MAX_BIT_EXT
					PRESENT_GRAVITY_CENTERED_BIT_EXT
				minScaledImageExtent:
					width  = 1
					height = 1
				maxScaledImageExtent:
					width  = 4294967294
					height = 4294967294
			VkSurfacePresentModeCompatibilityEXT:
				presentModeCount                = 3
				pPresentModes: count = 3
					PRESENT_MODE_IMMEDIATE_KHR
					PRESENT_MODE_FIFO_KHR
					PRESENT_MODE_FIFO_RELAXED_KHR


Device Properties and Extensions:
=================================
GPU0:
VkPhysicalDeviceProperties:
---------------------------
	apiVersion        = 1.3.278 (4206870)
	driverVersion     = 555.58.2.0 (2328789120)
	vendorID          = 0x10de
	deviceID          = 0x2820
	deviceType        = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
	deviceName        = NVIDIA GeForce RTX 4070 Laptop GPU
	pipelineCacheUUID = 45b2fe47-2ab1-25ed-7cab-c9570dce0da9

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                          = 0x10000000000
	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

VkPhysicalDeviceCooperativeMatrixPropertiesKHR:
-----------------------------------------------
	cooperativeMatrixSupportedStages: count = 1
		SHADER_STAGE_COMPUTE_BIT

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

VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT:
--------------------------------------------------------
	combinedImageSamplerDensityMapDescriptorSize = 4

VkPhysicalDeviceDescriptorBufferPropertiesEXT:
----------------------------------------------
	combinedImageSamplerDescriptorSingleArray            = true
	bufferlessPushDescriptors                            = true
	allowSamplerImageViewPostSubmitCreation              = false
	descriptorBufferOffsetAlignment                      = 0x00000040
	maxDescriptorBufferBindings                          = 32
	maxResourceDescriptorBufferBindings                  = 32
	maxSamplerDescriptorBufferBindings                   = 32
	maxEmbeddedImmutableSamplerBindings                  = 1048576
	maxEmbeddedImmutableSamplers                         = 4000
	bufferCaptureReplayDescriptorDataSize                = 1
	imageCaptureReplayDescriptorDataSize                 = 1
	imageViewCaptureReplayDescriptorDataSize             = 12
	samplerCaptureReplayDescriptorDataSize               = 4
	accelerationStructureCaptureReplayDescriptorDataSize = 1
	samplerDescriptorSize                                = 4
	combinedImageSamplerDescriptorSize                   = 4
	sampledImageDescriptorSize                           = 4
	storageImageDescriptorSize                           = 4
	uniformTexelBufferDescriptorSize                     = 16
	robustUniformTexelBufferDescriptorSize               = 16
	storageTexelBufferDescriptorSize                     = 16
	robustStorageTexelBufferDescriptorSize               = 16
	uniformBufferDescriptorSize                          = 8
	robustUniformBufferDescriptorSize                    = 8
	storageBufferDescriptorSize                          = 16
	robustStorageBufferDescriptorSize                    = 16
	inputAttachmentDescriptorSize                        = 4
	accelerationStructureDescriptorSize                  = 8
	maxSamplerDescriptorBufferRange                      = 0x10000000000
	maxResourceDescriptorBufferRange                     = 0x10000000000
	samplerDescriptorBufferAddressSpaceSize              = 0x10000000000
	resourceDescriptorBufferAddressSpaceSize             = 0x10000000000
	descriptorBufferAddressSpaceSize                     = 0x10000000000

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      = 555.58.02
	conformanceVersion:
		major    = 1
		minor    = 3
		subminor = 8
		patch    = 0

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

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

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    = true
	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      = 83106b21-c583-af30-f51c-3e4b1caaa22a
	driverUUID      = 33f6bc8a-aa1c-5a5d-8686-ce375a7b4fbd
	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 = 0x10000000000

VkPhysicalDeviceMaintenance5PropertiesKHR:
------------------------------------------
	earlyFragmentMultisampleCoverageAfterSampleCounting = true
	earlyFragmentSampleMaskTestBeforeSampleCounting     = true
	depthStencilSwizzleOneSupport                       = true
	polygonModePointSize                                = true
	nonStrictSinglePixelWideLinesUseParallelogram       = false
	nonStrictWideLinesUseParallelogram                  = false

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

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

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

VkPhysicalDevicePCIBusInfoPropertiesEXT:
----------------------------------------
	pciDomain   = 0
	pciBus      = 1
	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                                      = false
	integerDotProduct8BitSignedAccelerated                                        = false
	integerDotProduct8BitMixedSignednessAccelerated                               = false
	integerDotProduct4x8BitPackedUnsignedAccelerated                              = true
	integerDotProduct4x8BitPackedSignedAccelerated                                = true
	integerDotProduct4x8BitPackedMixedSignednessAccelerated                       = true
	integerDotProduct16BitUnsignedAccelerated                                     = false
	integerDotProduct16BitSignedAccelerated                                       = false
	integerDotProduct16BitMixedSignednessAccelerated                              = false
	integerDotProduct32BitUnsignedAccelerated                                     = false
	integerDotProduct32BitSignedAccelerated                                       = false
	integerDotProduct32BitMixedSignednessAccelerated                              = false
	integerDotProduct64BitUnsignedAccelerated                                     = false
	integerDotProduct64BitSignedAccelerated                                       = false
	integerDotProduct64BitMixedSignednessAccelerated                              = false
	integerDotProductAccumulatingSaturating8BitUnsignedAccelerated                = false
	integerDotProductAccumulatingSaturating8BitSignedAccelerated                  = false
	integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated         = false
	integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated        = true
	integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated          = true
	integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = true
	integerDotProductAccumulatingSaturating16BitUnsignedAccelerated               = false
	integerDotProductAccumulatingSaturating16BitSignedAccelerated                 = false
	integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated        = false
	integerDotProductAccumulatingSaturating32BitUnsignedAccelerated               = false
	integerDotProductAccumulatingSaturating32BitSignedAccelerated                 = false
	integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated        = false
	integerDotProductAccumulatingSaturating64BitUnsignedAccelerated               = false
	integerDotProductAccumulatingSaturating64BitSignedAccelerated                 = false
	integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated        = false

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

VkPhysicalDeviceShaderObjectPropertiesEXT:
------------------------------------------
	shaderBinaryUUID     = 45b2fe47-2ab1-25ed-7cab-c9570dce0da9
	shaderBinaryVersion  = 1

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 = 32
	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                        = 83106b21-c583-af30-f51c-3e4b1caaa22a
	driverUUID                        = 33f6bc8a-aa1c-5a5d-8686-ce375a7b4fbd
	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                                           = 555.58.02
	conformanceVersion:
		major    = 1
		minor    = 3
		subminor = 8
		patch    = 0
	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                                                  = 32
	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                                      = false
	integerDotProduct8BitSignedAccelerated                                        = false
	integerDotProduct8BitMixedSignednessAccelerated                               = false
	integerDotProduct4x8BitPackedUnsignedAccelerated                              = true
	integerDotProduct4x8BitPackedSignedAccelerated                                = true
	integerDotProduct4x8BitPackedMixedSignednessAccelerated                       = true
	integerDotProduct16BitUnsignedAccelerated                                     = false
	integerDotProduct16BitSignedAccelerated                                       = false
	integerDotProduct16BitMixedSignednessAccelerated                              = false
	integerDotProduct32BitUnsignedAccelerated                                     = false
	integerDotProduct32BitSignedAccelerated                                       = false
	integerDotProduct32BitMixedSignednessAccelerated                              = false
	integerDotProduct64BitUnsignedAccelerated                                     = false
	integerDotProduct64BitSignedAccelerated                                       = false
	integerDotProduct64BitMixedSignednessAccelerated                              = false
	integerDotProductAccumulatingSaturating8BitUnsignedAccelerated                = false
	integerDotProductAccumulatingSaturating8BitSignedAccelerated                  = false
	integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated         = false
	integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated        = true
	integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated          = true
	integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated = true
	integerDotProductAccumulatingSaturating16BitUnsignedAccelerated               = false
	integerDotProductAccumulatingSaturating16BitSignedAccelerated                 = false
	integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated        = false
	integerDotProductAccumulatingSaturating32BitUnsignedAccelerated               = false
	integerDotProductAccumulatingSaturating32BitSignedAccelerated                 = false
	integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated        = false
	integerDotProductAccumulatingSaturating64BitUnsignedAccelerated               = false
	integerDotProductAccumulatingSaturating64BitSignedAccelerated                 = false
	integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated        = false
	storageTexelBufferOffsetAlignmentBytes                                        = 0x00000010
	storageTexelBufferOffsetSingleTexelAlignment                                  = true
	uniformTexelBufferOffsetAlignmentBytes                                        = 0x00000010
	uniformTexelBufferOffsetSingleTexelAlignment                                  = true
	maxBufferSize                                                                 = 0x10000000000


VkPhysicalDeviceHostImageCopyPropertiesEXT:
	copySrcLayoutCount                  = 10
	pCopySrcLayouts: count = 10
		IMAGE_LAYOUT_GENERAL
		IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
		IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
		IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
		IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
		IMAGE_LAYOUT_PREINITIALIZED
		IMAGE_LAYOUT_READ_ONLY_OPTIMAL
		IMAGE_LAYOUT_ATTACHMENT_OPTIMAL
		IMAGE_LAYOUT_PRESENT_SRC_KHR
		IMAGE_LAYOUT_SHARED_PRESENT_KHR
	copyDstLayoutCount                  = 10
	pCopyDstLayouts: count = 10
		IMAGE_LAYOUT_GENERAL
		IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
		IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
		IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL
		IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
		IMAGE_LAYOUT_PREINITIALIZED
		IMAGE_LAYOUT_READ_ONLY_OPTIMAL
		IMAGE_LAYOUT_ATTACHMENT_OPTIMAL
		IMAGE_LAYOUT_PRESENT_SRC_KHR
		IMAGE_LAYOUT_SHARED_PRESENT_KHR
	optimalTilingLayoutUUID             = 45b2fe47-2ab1-25ed-7cab-c9570dce0da9
	identicalMemoryTypeRequirements     = false
Device Extensions: count = 222
	VK_AMD_buffer_marker                          : extension revision 1
	VK_EXT_4444_formats                           : extension revision 1
	VK_EXT_attachment_feedback_loop_dynamic_state : extension revision 1
	VK_EXT_attachment_feedback_loop_layout        : extension revision 2
	VK_EXT_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_bias_control                     : extension revision 1
	VK_EXT_depth_clamp_zero_one                   : extension revision 1
	VK_EXT_depth_clip_control                     : extension revision 1
	VK_EXT_depth_clip_enable                      : extension revision 1
	VK_EXT_depth_range_unrestricted               : extension revision 1
	VK_EXT_descriptor_buffer                      : extension revision 1
	VK_EXT_descriptor_indexing                    : extension revision 2
	VK_EXT_discard_rectangles                     : extension revision 2
	VK_EXT_display_control                        : extension revision 1
	VK_EXT_dynamic_rendering_unused_attachments   : extension revision 1
	VK_EXT_extended_dynamic_state                 : extension revision 1
	VK_EXT_extended_dynamic_state2                : extension revision 1
	VK_EXT_extended_dynamic_state3                : extension revision 2
	VK_EXT_external_memory_dma_buf                : extension revision 1
	VK_EXT_external_memory_host                   : extension revision 1
	VK_EXT_fragment_shader_interlock              : extension revision 1
	VK_EXT_global_priority                        : extension revision 2
	VK_EXT_global_priority_query                  : extension revision 1
	VK_EXT_graphics_pipeline_library              : extension revision 1
	VK_EXT_host_image_copy                        : extension revision 1
	VK_EXT_host_query_reset                       : extension revision 1
	VK_EXT_image_2d_view_of_3d                    : extension revision 1
	VK_EXT_image_drm_format_modifier              : extension revision 2
	VK_EXT_image_robustness                       : extension revision 1
	VK_EXT_image_sliced_view_of_3d                : 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_map_memory_placed                      : extension revision 1
	VK_EXT_memory_budget                          : extension revision 1
	VK_EXT_memory_priority                        : extension revision 1
	VK_EXT_mesh_shader                            : extension revision 1
	VK_EXT_multi_draw                             : extension revision 1
	VK_EXT_mutable_descriptor_type                : extension revision 1
	VK_EXT_nested_command_buffer                  : extension revision 1
	VK_EXT_non_seamless_cube_map                  : extension revision 1
	VK_EXT_opacity_micromap                       : extension revision 2
	VK_EXT_pageable_device_local_memory           : extension revision 1
	VK_EXT_pci_bus_info                           : extension revision 2
	VK_EXT_physical_device_drm                    : extension revision 1
	VK_EXT_pipeline_creation_cache_control        : extension revision 3
	VK_EXT_pipeline_creation_feedback             : extension revision 1
	VK_EXT_pipeline_library_group_handles         : 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_object                          : extension revision 1
	VK_EXT_shader_subgroup_ballot                 : extension revision 1
	VK_EXT_shader_subgroup_vote                   : extension revision 1
	VK_EXT_shader_viewport_index_layer            : extension revision 1
	VK_EXT_subgroup_size_control                  : extension revision 2
	VK_EXT_swapchain_maintenance1                 : extension revision 1
	VK_EXT_texel_buffer_alignment                 : extension revision 1
	VK_EXT_tooling_info                           : extension revision 1
	VK_EXT_transform_feedback                     : extension revision 1
	VK_EXT_vertex_attribute_divisor               : extension revision 3
	VK_EXT_vertex_input_dynamic_state             : extension revision 2
	VK_EXT_ycbcr_2plane_444_formats               : extension revision 1
	VK_EXT_ycbcr_image_arrays                     : extension revision 1
	VK_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_calibrated_timestamps                  : extension revision 1
	VK_KHR_cooperative_matrix                     : extension revision 2
	VK_KHR_copy_commands2                         : extension revision 1
	VK_KHR_create_renderpass2                     : extension revision 1
	VK_KHR_dedicated_allocation                   : extension revision 3
	VK_KHR_deferred_host_operations               : extension revision 4
	VK_KHR_depth_stencil_resolve                  : extension revision 1
	VK_KHR_descriptor_update_template             : extension revision 1
	VK_KHR_device_group                           : extension revision 4
	VK_KHR_draw_indirect_count                    : extension revision 1
	VK_KHR_driver_properties                      : extension revision 1
	VK_KHR_dynamic_rendering                      : extension revision 1
	VK_KHR_dynamic_rendering_local_read           : extension revision 1
	VK_KHR_external_fence                         : extension revision 1
	VK_KHR_external_fence_fd                      : extension revision 1
	VK_KHR_external_memory                        : extension revision 1
	VK_KHR_external_memory_fd                     : extension revision 1
	VK_KHR_external_semaphore                     : extension revision 1
	VK_KHR_external_semaphore_fd                  : extension revision 1
	VK_KHR_format_feature_flags2                  : extension revision 2
	VK_KHR_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_index_type_uint8                       : extension revision 1
	VK_KHR_line_rasterization                     : extension revision 1
	VK_KHR_load_store_op_none                     : extension revision 1
	VK_KHR_maintenance1                           : extension revision 2
	VK_KHR_maintenance2                           : extension revision 1
	VK_KHR_maintenance3                           : extension revision 1
	VK_KHR_maintenance4                           : extension revision 2
	VK_KHR_maintenance5                           : extension revision 1
	VK_KHR_maintenance6                           : extension revision 1
	VK_KHR_map_memory2                            : extension revision 1
	VK_KHR_multiview                              : extension revision 1
	VK_KHR_pipeline_executable_properties         : extension revision 1
	VK_KHR_pipeline_library                       : extension revision 1
	VK_KHR_present_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_ray_tracing_position_fetch             : extension revision 1
	VK_KHR_relaxed_block_layout                   : extension revision 1
	VK_KHR_sampler_mirror_clamp_to_edge           : extension revision 3
	VK_KHR_sampler_ycbcr_conversion               : extension revision 14
	VK_KHR_separate_depth_stencil_layouts         : extension revision 1
	VK_KHR_shader_atomic_int64                    : extension revision 1
	VK_KHR_shader_clock                           : extension revision 1
	VK_KHR_shader_draw_parameters                 : extension revision 1
	VK_KHR_shader_expect_assume                   : extension revision 1
	VK_KHR_shader_float16_int8                    : extension revision 1
	VK_KHR_shader_float_controls                  : extension revision 4
	VK_KHR_shader_float_controls2                 : extension revision 1
	VK_KHR_shader_integer_dot_product             : extension revision 1
	VK_KHR_shader_maximal_reconvergence           : extension revision 1
	VK_KHR_shader_non_semantic_info               : extension revision 1
	VK_KHR_shader_quad_control                    : extension revision 1
	VK_KHR_shader_subgroup_extended_types         : extension revision 1
	VK_KHR_shader_subgroup_rotate                 : extension revision 2
	VK_KHR_shader_subgroup_uniform_control_flow   : extension revision 1
	VK_KHR_shader_terminate_invocation            : extension revision 1
	VK_KHR_shared_presentable_image               : extension revision 1
	VK_KHR_spirv_1_4                              : extension revision 1
	VK_KHR_storage_buffer_storage_class           : extension revision 1
	VK_KHR_swapchain                              : extension revision 70
	VK_KHR_swapchain_mutable_format               : extension revision 1
	VK_KHR_synchronization2                       : extension revision 1
	VK_KHR_timeline_semaphore                     : extension revision 2
	VK_KHR_uniform_buffer_standard_layout         : extension revision 1
	VK_KHR_variable_pointers                      : extension revision 1
	VK_KHR_vertex_attribute_divisor               : extension revision 1
	VK_KHR_video_decode_av1                       : extension revision 1
	VK_KHR_video_decode_h264                      : extension revision 9
	VK_KHR_video_decode_h265                      : extension revision 8
	VK_KHR_video_decode_queue                     : extension revision 8
	VK_KHR_video_encode_h264                      : extension revision 14
	VK_KHR_video_encode_h265                      : extension revision 14
	VK_KHR_video_encode_queue                     : extension revision 12
	VK_KHR_video_maintenance1                     : extension revision 1
	VK_KHR_video_queue                            : extension revision 8
	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_descriptor_pool_overallocation          : 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_device_generated_commands_compute       : extension revision 2
	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_low_latency                             : extension revision 1
	VK_NV_low_latency2                            : extension revision 2
	VK_NV_memory_decompression                    : extension revision 1
	VK_NV_mesh_shader                             : extension revision 1
	VK_NV_optical_flow                            : extension revision 1
	VK_NV_raw_access_chains                       : extension revision 1
	VK_NV_ray_tracing                             : extension revision 3
	VK_NV_ray_tracing_invocation_reorder          : extension revision 1
	VK_NV_ray_tracing_motion_blur                 : 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 2
	VK_NV_shader_atomic_float16_vector            : 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_BIT | QUEUE_COMPUTE_BIT | QUEUE_TRANSFER_BIT | QUEUE_SPARSE_BINDING_BIT
		timestampValidBits          = 64
		present support             = true
		VkQueueFamilyGlobalPriorityPropertiesKHR:
		-----------------------------------------
			priorityCount  = 1
			priorities: count = 1
				QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR

		VkQueueFamilyQueryResultStatusPropertiesKHR:
		--------------------------------------------
			queryResultStatusSupport = false

		VkQueueFamilyVideoPropertiesKHR:
		--------------------------------
			videoCodecOperations:
				None


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

		VkQueueFamilyQueryResultStatusPropertiesKHR:
		--------------------------------------------
			queryResultStatusSupport = false

		VkQueueFamilyVideoPropertiesKHR:
		--------------------------------
			videoCodecOperations:
				None


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

		VkQueueFamilyQueryResultStatusPropertiesKHR:
		--------------------------------------------
			queryResultStatusSupport = false

		VkQueueFamilyVideoPropertiesKHR:
		--------------------------------
			videoCodecOperations:
				None


	queueProperties[3]:
	-------------------
		minImageTransferGranularity = (1,1,1)
		queueCount                  = 1
		queueFlags                  = QUEUE_TRANSFER_BIT | QUEUE_SPARSE_BINDING_BIT | QUEUE_VIDEO_DECODE_BIT_KHR
		timestampValidBits          = 32
		present support             = false
		VkQueueFamilyGlobalPriorityPropertiesKHR:
		-----------------------------------------
			priorityCount  = 1
			priorities: count = 1
				QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR

		VkQueueFamilyQueryResultStatusPropertiesKHR:
		--------------------------------------------
			queryResultStatusSupport = true

		VkQueueFamilyVideoPropertiesKHR:
		--------------------------------
			videoCodecOperations: count = 2
				VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR
				VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR


	queueProperties[4]:
	-------------------
		minImageTransferGranularity = (1,1,1)
		queueCount                  = 1
		queueFlags                  = QUEUE_TRANSFER_BIT | QUEUE_SPARSE_BINDING_BIT | QUEUE_VIDEO_ENCODE_BIT_KHR
		timestampValidBits          = 32
		present support             = false
		VkQueueFamilyGlobalPriorityPropertiesKHR:
		-----------------------------------------
			priorityCount  = 1
			priorities: count = 1
				QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR

		VkQueueFamilyQueryResultStatusPropertiesKHR:
		--------------------------------------------
			queryResultStatusSupport = true

		VkQueueFamilyVideoPropertiesKHR:
		--------------------------------
			videoCodecOperations: count = 2
				VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_EXT
				VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_EXT


	queueProperties[5]:
	-------------------
		minImageTransferGranularity = (1,1,1)
		queueCount                  = 1
		queueFlags                  = QUEUE_TRANSFER_BIT | QUEUE_SPARSE_BINDING_BIT | QUEUE_OPTICAL_FLOW_BIT_NV
		timestampValidBits          = 64
		present support             = false
		VkQueueFamilyGlobalPriorityPropertiesKHR:
		-----------------------------------------
			priorityCount  = 1
			priorities: count = 1
				QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR

		VkQueueFamilyQueryResultStatusPropertiesKHR:
		--------------------------------------------
			queryResultStatusSupport = false

		VkQueueFamilyVideoPropertiesKHR:
		--------------------------------
			videoCodecOperations:
				None


VkPhysicalDeviceMemoryProperties:
=================================
memoryHeaps: count = 2
	memoryHeaps[0]:
		size   = 8585740288 (0x1ffc00000) (8.00 GiB)
		budget = 8208449536 (0x1e9430000) (7.64 GiB)
		usage  = 0 (0x00000000) (0.00 B)
		flags: count = 1
			MEMORY_HEAP_DEVICE_LOCAL_BIT
	memoryHeaps[1]:
		size   = 24903453696 (0x5cc5c8c00) (23.19 GiB)
		budget = 24903453696 (0x5cc5c8c00) (23.19 GiB)
		usage  = 0 (0x00000000) (0.00 B)
		flags:
			None
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     = 0
		propertyFlags = 0x0007: count = 3
			MEMORY_PROPERTY_DEVICE_LOCAL_BIT
			MEMORY_PROPERTY_HOST_VISIBLE_BIT
			MEMORY_PROPERTY_HOST_COHERENT_BIT
		usable for:
			IMAGE_TILING_OPTIMAL:
				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

VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT:
--------------------------------------------------------------
	attachmentFeedbackLoopDynamicState = 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

VkPhysicalDeviceCooperativeMatrixFeaturesKHR:
---------------------------------------------
	cooperativeMatrix                   = true
	cooperativeMatrixRobustBufferAccess = false

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

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

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

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

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

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

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

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

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

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

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

VkPhysicalDeviceHostImageCopyFeaturesEXT:
-----------------------------------------
	hostImageCopy = true

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

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

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

VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT:
-----------------------------------------------
	imageSlicedViewOf3D = 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

VkPhysicalDeviceMaintenance5FeaturesKHR:
----------------------------------------
	maintenance5 = true

VkPhysicalDeviceMemoryPriorityFeaturesEXT:
------------------------------------------
	memoryPriority = 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

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

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

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

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

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

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

VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT:
-------------------------------------------------------
	pipelineLibraryGroupHandles = 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

VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR:
---------------------------------------------------
	rayTracingPositionFetch = 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

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

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

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

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

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

VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT:
-------------------------------------------------
	swapchainMaintenance1 = 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

Any help is greatly appreciated!

Offline

#2 2024-08-07 20:33:55

tdtooke
Member
Registered: 2023-04-11
Posts: 163

Re: Baldur's Gate 3 hangs at loading screen on optimus nvidia laptop

Could it be this: https://bugs.winehq.org/show_bug.cgi?id=56653  Because of space restrictions I don't currently have Baldur's Gate 3 on my laptop so I can't really properly test if the fix for that does anything.  If it is that then eventually GE Proton will fix it.  Hopefully someone that's better at this than me can help you.

Edit:  I'm starting to strongly suspect that's it.  If you're especially brave you could build wine-bleeding edge for the fix.  Best bet might be to modify a build script for wine-staging and have a patch that effects these changes: https://gitlab.winehq.org/wine/wine/-/c … 7c2f6cb68b
Bearing in mind I'm just guessing and cannot confirm any of this.

Last edited by tdtooke (2024-08-07 20:45:44)

Offline

#3 2024-09-15 13:37:55

admiral0
Member
Registered: 2009-07-04
Posts: 8

Re: Baldur's Gate 3 hangs at loading screen on optimus nvidia laptop

Not on arch any more, same issue happens on fedora. I've edited and applied the patch suggested by tdtooke on top of proton. Did not work unfortunately - same behaviour continues. I've also noticed that the game loads a little bit further if I turn off internet access. Another thing I noticed - no audio in logo when it goes further.

Posting here patch that applies cleanly if somebody wants to try it out and/or has other ideas.

diff --git a/dlls/ntdll/unix/system.c b/dlls/ntdll/unix/system.c
index 3ca2e88447b..2e16765d037 100644
--- a/dlls/ntdll/unix/system.c
+++ b/dlls/ntdll/unix/system.c
@@ -1263,7 +1263,7 @@ static NTSTATUS create_logical_proc_info(void)
 
             for(j = 0; j < 4; j++)
             {
-                CACHE_DESCRIPTOR cache;
+                CACHE_DESCRIPTOR cache = { .Associativity = 8, .LineSize = 64, .Type = CacheUnified, .Size = 64 * 1024 };
                 ULONG_PTR mask = 0;
 
                 snprintf(name, sizeof(name), cache_info, cpu_id, j, "shared_cpu_map");
@@ -1277,39 +1277,44 @@ static NTSTATUS create_logical_proc_info(void)
                 cache.Level = r;
 
                 snprintf(name, sizeof(name), cache_info, cpu_id, j, "ways_of_associativity");
-                f = fopen(name, "r");
-                if(!f) continue;
-                fscanf(f, "%u", &r);
-                fclose(f);
-                cache.Associativity = r;
+                if ((f = fopen(name, "r")))
+                {
+                    fscanf(f, "%u", &r);
+                    fclose(f);
+                    cache.Associativity = r;
+                }
 
                 snprintf(name, sizeof(name), cache_info, cpu_id, j, "coherency_line_size");
-                f = fopen(name, "r");
-                if(!f) continue;
-                fscanf(f, "%u", &r);
-                fclose(f);
-                cache.LineSize = r;
+                if ((f = fopen(name, "r")))
+                {
+                    fscanf(f, "%u", &r);
+                    fclose(f);
+                    cache.LineSize = r;
+                }
+ 
 
                 snprintf(name, sizeof(name), cache_info, cpu_id, j, "size");
-                f = fopen(name, "r");
-                if(!f) continue;
-                fscanf(f, "%u%c", &r, &op);
-                fclose(f);
-                if(op != 'K')
-                    WARN("unknown cache size %u%c\n", r, op);
-                cache.Size = (op=='K' ? r*1024 : r);
+                if ((f = fopen(name, "r")))
+                {
+                    fscanf(f, "%u%c", &r, &op);
+                    fclose(f);
+                    if(op != 'K')
+                        WARN("unknown cache size %u%c\n", r, op);
+                    cache.Size = (op=='K' ? r*1024 : r);
+                }
 
                 snprintf(name, sizeof(name), cache_info, cpu_id, j, "type");
-                f = fopen(name, "r");
-                if(!f) continue;
-                fscanf(f, "%s", name);
-                fclose(f);
-                if (!memcmp(name, "Data", 5))
-                    cache.Type = CacheData;
-                else if(!memcmp(name, "Instruction", 11))
-                    cache.Type = CacheInstruction;
-                else
-                    cache.Type = CacheUnified;
+                if ((f = fopen(name, "r")))
+                {
+                    fscanf(f, "%s", name);
+                    fclose(f);
+                    if (!memcmp(name, "Data", 5))
+                        cache.Type = CacheData;
+                    else if(!memcmp(name, "Instruction", 11))
+                        cache.Type = CacheInstruction;
+                    else
+                        cache.Type = CacheUnified;
+                }
 
                 if (cpu_override.mapping.cpu_count)
                 {

Last edited by admiral0 (2024-09-15 13:55:11)

Offline

#4 2024-09-30 00:20:56

admiral0
Member
Registered: 2009-07-04
Posts: 8

Re: Baldur's Gate 3 hangs at loading screen on optimus nvidia laptop

Well.... it looks that the patch is not enough for latest intel chips

// somewhere in the function create_logical_proc_info
    static const char cache_info[] = "/sys/devices/system/cpu/cpu%u/cache/index%u/%s";

That patch is not enough - I remember seeing other code paths bailing out if cache info doesn't exist.

[admiral0@thrud:~]$ echo     static const char cache_info[] = "/sys/devices/system/cpu/cpu%u/cache/index%u/%s";
static const char cache_info[] = /sys/devices/system/cpu/cpu%u/cache/index%u/%s

[admiral0@thrud:~]$ ls /sys/devices/system/cpu/cpu0/cache
ls: cannot access '/sys/devices/system/cpu/cpu0/cache': No such file or directory

[admiral0@thrud:~]$ lscpu 
Architecture:             x86_64
  CPU op-mode(s):         32-bit, 64-bit
  Address sizes:          46 bits physical, 48 bits virtual
  Byte Order:             Little Endian
CPU(s):                   22
  On-line CPU(s) list:    0-21
Vendor ID:                GenuineIntel
  Model name:             Intel(R) Core(TM) Ultra 9 185H
    CPU family:           6
    Model:                170
    Thread(s) per core:   2
    Core(s) per socket:   16
    Socket(s):            1
    Stepping:             4
    CPU(s) scaling MHz:   18%
    CPU max MHz:          5100,0000
    CPU min MHz:          400,0000
    BogoMIPS:             6144,00
    Flags:                fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm con
                          stant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf tsc_known_freq pni pclmulqdq dtes64 monitor ds_cpl vmx smx est 
                          tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fa
                          ult epb intel_ppin ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdsee
                          d adx smap clflushopt clwb intel_pt sha_ni xsaveopt xsavec xgetbv1 xsaves split_lock_detect user_shstk avx_vnni dtherm ida arat pln pts hwp hwp_notify h
                          wp_act_window hwp_epp hwp_pkg_req hfi vnmi umip pku ospke waitpkg gfni vaes vpclmulqdq rdpid bus_lock_detect movdiri movdir64b fsrm md_clear serialize p
                          config arch_lbr ibt flush_l1d arch_capabilities
Virtualization features:  
  Virtualization:         VT-x
NUMA:                     
  NUMA node(s):           1
  NUMA node0 CPU(s):      0-21
Vulnerabilities:          
  Gather data sampling:   Not affected
  Itlb multihit:          Not affected
  L1tf:                   Not affected
  Mds:                    Not affected
  Meltdown:               Not affected
  Mmio stale data:        Not affected
  Reg file data sampling: Not affected
  Retbleed:               Not affected
  Spec rstack overflow:   Not affected
  Spec store bypass:      Mitigation; Speculative Store Bypass disabled via prctl
  Spectre v1:             Mitigation; usercopy/swapgs barriers and __user pointer sanitization
  Spectre v2:             Mitigation; Enhanced / Automatic IBRS; IBPB conditional; RSB filling; PBRSB-eIBRS Not affected; BHI BHI_DIS_S
  Srbds:                  Not affected
  Tsx async abort:        Not affected

Gonna do a read of the function and see if that info is in an alternate location. Hope I can get in a rough patch and send it to proton as well. Will post here when done.

Last edited by admiral0 (2024-09-30 00:22:03)

Offline

#5 2024-10-01 23:55:03

admiral0
Member
Registered: 2009-07-04
Posts: 8

Re: Baldur's Gate 3 hangs at loading screen on optimus nvidia laptop

Made it work. I am pretending that we have a single L1 cache for all cores if the cache folder is not found. This patch applies for 9.0 in `wine` folder in proton sources.

diff --git a/dlls/ntdll/unix/system.c b/dlls/ntdll/unix/system.c
index 461922db7b0..1df4e2f3356 100644
--- a/dlls/ntdll/unix/system.c
+++ b/dlls/ntdll/unix/system.c
@@ -35,6 +35,7 @@
 #include <errno.h>
 #include <assert.h>
 #include <sys/time.h>
+#include <sys/stat.h>
 #include <time.h>
 #include <dirent.h>
 #ifdef HAVE_SYS_PARAM_H
@@ -1148,6 +1149,7 @@ static NTSTATUS create_logical_proc_info(void)
 {
     static const char core_info[] = "/sys/devices/system/cpu/cpu%u/topology/%s";
     static const char cache_info[] = "/sys/devices/system/cpu/cpu%u/cache/index%u/%s";
+    static const char cache_info_dir[] = "/sys/devices/system/cpu/cpu%u/cache";
     static const char numa_info[] = "/sys/devices/system/node/node%u/cpumap";
     const char *env_fake_logical_cores = getenv("WINE_LOGICAL_CPUS_AS_CORES");
     BOOL fake_logical_cpus_as_cores = env_fake_logical_cores && atoi(env_fake_logical_cores);
@@ -1156,6 +1158,7 @@ static NTSTATUS create_logical_proc_info(void)
     char op, name[MAX_PATH];
     ULONG_PTR all_cpus_mask = 0;
     unsigned int cpu_id;
+    struct stat cache_dir_stat;
 
     /* On systems with a large number of CPU cores (32 or 64 depending on 32-bit or 64-bit),
      * we have issues parsing processor information:
@@ -1262,6 +1265,18 @@ static NTSTATUS create_logical_proc_info(void)
             }
 
             cpu_id = cpu_override.mapping.cpu_count ? cpu_override.mapping.host_cpu_id[i] : i;
+            
+            snprintf(name, sizeof(name), cache_info_dir, cpu_id);
+            if(stat(name, &cache_dir_stat) != 0){
+                // Adding cache will fail in the next block so we add a fake one
+                CACHE_DESCRIPTOR fake_cache = { .Associativity = 8, .LineSize = 64, .Type = CacheUnified, .Size = 64 * 1024, .Level = 1 };
+                if (!logical_proc_info_add_cache( all_cpus_mask, &fake_cache ))
+                {
+                    fclose(fcpu_list);
+                    return STATUS_NO_MEMORY;
+                }
+            }
+
 
             for(j = 0; j < 4; j++)
             {

Offline

Board footer

Powered by FluxBB