mpv-player / mpv

🎥 Command line video player
https://mpv.io
Other
28.39k stars 2.91k forks source link

Assertion failed in libplacebo/.../gpu_tex.c: `!export` #11074

Open WhoMI7 opened 1 year ago

WhoMI7 commented 1 year ago

Important Information

Provide following Information:

If you're not using git master or the latest release, update. Releases are listed here: https://github.com/mpv-player/mpv/releases

Reproduction steps

While playing a game (Valorant, in my case) I can never play anything with mpv. Multiple bugs:

Expected behavior

Normal playback

Actual behavior

Assertion Failed! Blue/Black Screen no playback

Sample files

Happens with any file

haasn commented 1 year ago

[ 2.283][e][vo/gpu-next/libplacebo] Allocation of size 256K failed: VK_ERROR_OUT_OF_DEVICE_MEMORY!

Valorant is fully exhausting your machine's VRAM. I don't think there's much we can do to gracefully work around the issue.

WhoMI7 commented 1 year ago

Ah, okay. So is it possible to somehow make mpv use any available api (opengl or d3d11) if such situation occurs? If not can it be created as a feature request?

haasn commented 1 year ago

Playback works with --gpu-api=opengl/d3d11?

It might be possible to check available VRAM up-front and exit out early if it's too exhausted.

haasn commented 1 year ago

leaving this reference for myself: VK_EXT_memory_budget can be used to check heap budget.

@BhaturaGuy can you run vulkaninfo while Valorant is open and attach the output please?

WhoMI7 commented 1 year ago

Playback works with --gpu-api=opengl/d3d11?

Error parsing option gpu-api (option parameter could not be parsed)
Setting commandline option --gpu-api=opengl/d3d11 failed.

vulkaninfo:

ERROR: [Loader Message] Code 0 : loader_get_json: Failed to open JSON file C:\Program Files\Rockstar Games\Social Club\SocialClubVulkanLayer.json
==========
VULKANINFO
==========

Vulkan Instance Version: 1.3.224

Instance Extensions: count = 17
===============================
        VK_EXT_debug_report                    : extension revision 10
        VK_EXT_debug_utils                     : extension revision 2
        VK_EXT_direct_mode_display             : 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_win32_surface                   : extension revision 6
        VK_NV_external_memory_capabilities     : extension revision 1

Layers: count = 7
=================
VK_LAYER_EOS_Overlay (Vulkan overlay layer for Epic Online Services) Vulkan version 1.2.136, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 1
                GPU id = 0 (NVIDIA GeForce RTX 3060 Ti)
                Layer-Device Extensions: count = 0

VK_LAYER_EOS_Overlay (Vulkan overlay layer for Epic Online Services) Vulkan version 1.2.136, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 1
                GPU id = 0 (NVIDIA GeForce RTX 3060 Ti)
                Layer-Device Extensions: count = 0

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

VK_LAYER_OBS_HOOK (Open Broadcaster Software hook) Vulkan version 1.3.216, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 1
                GPU id = 0 (NVIDIA GeForce RTX 3060 Ti)
                Layer-Device Extensions: count = 0

VK_LAYER_RTSS (RTSS overlay hook bootstrap) Vulkan version 1.1.73, layer version 1:
        Layer Extensions: count = 0
        Devices: count = 1
                GPU id = 0 (NVIDIA GeForce RTX 3060 Ti)
                Layer-Device Extensions: count = 0

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

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

Presentable Surfaces:
=====================
GPU id : 0 (NVIDIA GeForce RTX 3060 Ti):
        Surface type = VK_KHR_win32_surface
        Formats: count = 5
                SurfaceFormat[0]:
                        format = FORMAT_B8G8R8A8_UNORM
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[1]:
                        format = FORMAT_B8G8R8A8_SRGB
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
                SurfaceFormat[2]:
                        format = FORMAT_R16G16B16A16_SFLOAT
                        colorSpace = COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT
                SurfaceFormat[3]:
                        format = FORMAT_A2B10G10R10_UNORM_PACK32
                        colorSpace = COLOR_SPACE_HDR10_ST2084_EXT
                SurfaceFormat[4]:
                        format = FORMAT_A2B10G10R10_UNORM_PACK32
                        colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
        Present Modes: count = 4
                PRESENT_MODE_FIFO_KHR
                PRESENT_MODE_FIFO_RELAXED_KHR
                PRESENT_MODE_MAILBOX_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
        VkSurfaceCapabilitiesFullScreenExclusiveEXT:
        --------------------------------------------
                fullScreenExclusiveSupported = true

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

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

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

Device Properties and Extensions:
=================================
GPU0:
VkPhysicalDeviceProperties:
---------------------------
        apiVersion        = 4206816 (1.3.224)
        driverVersion     = 2211315712 (0x83ce0000)
        vendorID          = 0x10de
        deviceID          = 0x2489
        deviceType        = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
        deviceName        = NVIDIA GeForce RTX 3060 Ti
        pipelineCacheUUID = 07f28ca0-e861-6701-59ae-d2f669674151

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

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

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

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

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

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

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

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

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

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

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      = df053f83-25a6-202a-e37e-6d3dab61e421
        driverUUID      = b641a49e-ec80-50b4-b1cf-4c08167f3ffb
        deviceLUID      = c4320100-00000000
        deviceNodeMask  = 1
        deviceLUIDValid = true

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

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

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

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

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

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

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

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

VkPhysicalDeviceSubgroupProperties:
-----------------------------------
        subgroupSize              = 32
        supportedStages: count = 16
                SHADER_STAGE_VERTEX_BIT
                SHADER_STAGE_TESSELLATION_CONTROL_BIT
                SHADER_STAGE_TESSELLATION_EVALUATION_BIT
                SHADER_STAGE_GEOMETRY_BIT
                SHADER_STAGE_FRAGMENT_BIT
                SHADER_STAGE_COMPUTE_BIT
                SHADER_STAGE_ALL_GRAPHICS
                SHADER_STAGE_ALL
                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_NV
                SHADER_STAGE_MESH_BIT_NV
        supportedOperations: count = 9
                SUBGROUP_FEATURE_BASIC_BIT
                SUBGROUP_FEATURE_VOTE_BIT
                SUBGROUP_FEATURE_ARITHMETIC_BIT
                SUBGROUP_FEATURE_BALLOT_BIT
                SUBGROUP_FEATURE_SHUFFLE_BIT
                SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT
                SUBGROUP_FEATURE_CLUSTERED_BIT
                SUBGROUP_FEATURE_QUAD_BIT
                SUBGROUP_FEATURE_PARTITIONED_BIT_NV
        quadOperationsInAllStages = true

VkPhysicalDeviceSubgroupSizeControlProperties:
----------------------------------------------
        minSubgroupSize              = 32
        maxSubgroupSize              = 32
        maxComputeWorkgroupSubgroups = 2097152
        requiredSubgroupSizeStages: count = 16
                SHADER_STAGE_VERTEX_BIT
                SHADER_STAGE_TESSELLATION_CONTROL_BIT
                SHADER_STAGE_TESSELLATION_EVALUATION_BIT
                SHADER_STAGE_GEOMETRY_BIT
                SHADER_STAGE_FRAGMENT_BIT
                SHADER_STAGE_COMPUTE_BIT
                SHADER_STAGE_ALL_GRAPHICS
                SHADER_STAGE_ALL
                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_NV
                SHADER_STAGE_MESH_BIT_NV

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

VkPhysicalDeviceTimelineSemaphoreProperties:
--------------------------------------------
        maxTimelineSemaphoreValueDifference = 2147483647

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                        = df053f83-25a6-202a-e37e-6d3dab61e421
        driverUUID                        = b641a49e-ec80-50b4-b1cf-4c08167f3ffb
        deviceLUID                        = c4320100-00000000
        deviceNodeMask                    = 1
        deviceLUIDValid                   = true
        subgroupSize                      = 32
        subgroupSupportedStages: count = 16
                SHADER_STAGE_VERTEX_BIT
                SHADER_STAGE_TESSELLATION_CONTROL_BIT
                SHADER_STAGE_TESSELLATION_EVALUATION_BIT
                SHADER_STAGE_GEOMETRY_BIT
                SHADER_STAGE_FRAGMENT_BIT
                SHADER_STAGE_COMPUTE_BIT
                SHADER_STAGE_ALL_GRAPHICS
                SHADER_STAGE_ALL
                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_NV
                SHADER_STAGE_MESH_BIT_NV
        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                                           = 527.56
        conformanceVersion:
                major    = 1
                minor    = 3
                subminor = 3
                patch    = 1
        denormBehaviorIndependence                           = SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL
        roundingModeIndependence                             = SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL
        shaderSignedZeroInfNanPreserveFloat16                = true
        shaderSignedZeroInfNanPreserveFloat32                = true
        shaderSignedZeroInfNanPreserveFloat64                = true
        shaderDenormPreserveFloat16                          = true
        shaderDenormPreserveFloat32                          = false
        shaderDenormPreserveFloat64                          = false
        shaderDenormFlushToZeroFloat16                       = false
        shaderDenormFlushToZeroFloat32                       = false
        shaderDenormFlushToZeroFloat64                       = false
        shaderRoundingModeRTEFloat16                         = true
        shaderRoundingModeRTEFloat32                         = true
        shaderRoundingModeRTEFloat64                         = true
        shaderRoundingModeRTZFloat16                         = false
        shaderRoundingModeRTZFloat32                         = true
        shaderRoundingModeRTZFloat64                         = true
        maxUpdateAfterBindDescriptorsInAllPools              = 4294967295
        shaderUniformBufferArrayNonUniformIndexingNative     = true
        shaderSampledImageArrayNonUniformIndexingNative      = true
        shaderStorageBufferArrayNonUniformIndexingNative     = true
        shaderStorageImageArrayNonUniformIndexingNative      = true
        shaderInputAttachmentArrayNonUniformIndexingNative   = true
        robustBufferAccessUpdateAfterBind                    = true
        quadDivergentImplicitLod                             = true
        maxPerStageDescriptorUpdateAfterBindSamplers         = 1048576
        maxPerStageDescriptorUpdateAfterBindUniformBuffers   = 1048576
        maxPerStageDescriptorUpdateAfterBindStorageBuffers   = 1048576
        maxPerStageDescriptorUpdateAfterBindSampledImages    = 1048576
        maxPerStageDescriptorUpdateAfterBindStorageImages    = 1048576
        maxPerStageDescriptorUpdateAfterBindInputAttachments = 1048576
        maxPerStageUpdateAfterBindResources                  = 4294967295
        maxDescriptorSetUpdateAfterBindSamplers              = 1048576
        maxDescriptorSetUpdateAfterBindUniformBuffers        = 1048576
        maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = 15
        maxDescriptorSetUpdateAfterBindStorageBuffers        = 1048576
        maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = 16
        maxDescriptorSetUpdateAfterBindSampledImages         = 1048576
        maxDescriptorSetUpdateAfterBindStorageImages         = 1048576
        maxDescriptorSetUpdateAfterBindInputAttachments      = 1048576
        supportedDepthResolveModes: count = 4
                RESOLVE_MODE_SAMPLE_ZERO_BIT
                RESOLVE_MODE_AVERAGE_BIT
                RESOLVE_MODE_MIN_BIT
                RESOLVE_MODE_MAX_BIT
        supportedStencilResolveModes: count = 3
                RESOLVE_MODE_SAMPLE_ZERO_BIT
                RESOLVE_MODE_MIN_BIT
                RESOLVE_MODE_MAX_BIT
        independentResolveNone                               = true
        independentResolve                                   = true
        filterMinmaxSingleComponentFormats                   = true
        filterMinmaxImageComponentMapping                    = true
        maxTimelineSemaphoreValueDifference                  = 2147483647
        framebufferIntegerColorSampleCounts: count = 4
                SAMPLE_COUNT_1_BIT
                SAMPLE_COUNT_2_BIT
                SAMPLE_COUNT_4_BIT
                SAMPLE_COUNT_8_BIT

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

Device Extensions: count = 179
        VK_EXT_4444_formats                         : extension revision 1
        VK_EXT_attachment_feedback_loop_layout      : extension revision 2
        VK_EXT_blend_operation_advanced             : extension revision 2
        VK_EXT_border_color_swizzle                 : extension revision 1
        VK_EXT_buffer_device_address                : extension revision 2
        VK_EXT_calibrated_timestamps                : extension revision 2
        VK_EXT_color_write_enable                   : extension revision 1
        VK_EXT_conditional_rendering                : extension revision 2
        VK_EXT_conservative_rasterization           : extension revision 1
        VK_EXT_custom_border_color                  : extension revision 12
        VK_EXT_depth_clip_control                   : extension revision 1
        VK_EXT_depth_clip_enable                    : extension revision 1
        VK_EXT_depth_range_unrestricted             : extension revision 1
        VK_EXT_descriptor_indexing                  : extension revision 2
        VK_EXT_discard_rectangles                   : extension revision 1
        VK_EXT_extended_dynamic_state               : extension revision 1
        VK_EXT_extended_dynamic_state2              : extension revision 1
        VK_EXT_external_memory_host                 : extension revision 1
        VK_EXT_fragment_shader_interlock            : extension revision 1
        VK_EXT_full_screen_exclusive                : extension revision 4
        VK_EXT_global_priority                      : extension revision 2
        VK_EXT_global_priority_query                : extension revision 1
        VK_EXT_graphics_pipeline_library            : extension revision 1
        VK_EXT_hdr_metadata                         : extension revision 2
        VK_EXT_host_query_reset                     : extension revision 1
        VK_EXT_image_2d_view_of_3d                  : extension revision 1
        VK_EXT_image_robustness                     : extension revision 1
        VK_EXT_image_view_min_lod                   : extension revision 1
        VK_EXT_index_type_uint8                     : extension revision 1
        VK_EXT_inline_uniform_block                 : extension revision 1
        VK_EXT_line_rasterization                   : extension revision 1
        VK_EXT_load_store_op_none                   : extension revision 1
        VK_EXT_memory_budget                        : extension revision 1
        VK_EXT_memory_priority                      : extension revision 1
        VK_EXT_mesh_shader                          : extension revision 1
        VK_EXT_multi_draw                           : extension revision 1
        VK_EXT_mutable_descriptor_type              : 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_pipeline_creation_cache_control      : extension revision 3
        VK_EXT_pipeline_creation_feedback           : extension revision 1
        VK_EXT_pipeline_robustness                  : extension revision 1
        VK_EXT_post_depth_coverage                  : extension revision 1
        VK_EXT_primitive_topology_list_restart      : extension revision 1
        VK_EXT_primitives_generated_query           : extension revision 1
        VK_EXT_private_data                         : extension revision 1
        VK_EXT_provoking_vertex                     : extension revision 1
        VK_EXT_queue_family_foreign                 : extension revision 1
        VK_EXT_robustness2                          : extension revision 1
        VK_EXT_sample_locations                     : extension revision 1
        VK_EXT_sampler_filter_minmax                : extension revision 2
        VK_EXT_scalar_block_layout                  : extension revision 1
        VK_EXT_separate_stencil_usage               : extension revision 1
        VK_EXT_shader_atomic_float                  : extension revision 1
        VK_EXT_shader_demote_to_helper_invocation   : extension revision 1
        VK_EXT_shader_image_atomic_int64            : extension revision 1
        VK_EXT_shader_module_identifier             : extension revision 1
        VK_EXT_shader_subgroup_ballot               : extension revision 1
        VK_EXT_shader_subgroup_vote                 : extension revision 1
        VK_EXT_shader_viewport_index_layer          : extension revision 1
        VK_EXT_subgroup_size_control                : extension revision 2
        VK_EXT_texel_buffer_alignment               : extension revision 1
        VK_EXT_tooling_info                         : extension revision 1
        VK_EXT_transform_feedback                   : extension revision 1
        VK_EXT_vertex_attribute_divisor             : extension revision 3
        VK_EXT_vertex_input_dynamic_state           : extension revision 2
        VK_EXT_ycbcr_2plane_444_formats             : extension revision 1
        VK_EXT_ycbcr_image_arrays                   : extension revision 1
        VK_KHR_16bit_storage                        : extension revision 1
        VK_KHR_8bit_storage                         : extension revision 1
        VK_KHR_acceleration_structure               : extension revision 13
        VK_KHR_bind_memory2                         : extension revision 1
        VK_KHR_buffer_device_address                : extension revision 1
        VK_KHR_copy_commands2                       : extension revision 1
        VK_KHR_create_renderpass2                   : extension revision 1
        VK_KHR_dedicated_allocation                 : extension revision 3
        VK_KHR_deferred_host_operations             : extension revision 4
        VK_KHR_depth_stencil_resolve                : extension revision 1
        VK_KHR_descriptor_update_template           : extension revision 1
        VK_KHR_device_group                         : extension revision 4
        VK_KHR_draw_indirect_count                  : extension revision 1
        VK_KHR_driver_properties                    : extension revision 1
        VK_KHR_dynamic_rendering                    : extension revision 1
        VK_KHR_external_fence                       : extension revision 1
        VK_KHR_external_fence_win32                 : extension revision 1
        VK_KHR_external_memory                      : extension revision 1
        VK_KHR_external_memory_win32                : extension revision 1
        VK_KHR_external_semaphore                   : extension revision 1
        VK_KHR_external_semaphore_win32             : extension revision 1
        VK_KHR_format_feature_flags2                : extension revision 1
        VK_KHR_fragment_shader_barycentric          : extension revision 1
        VK_KHR_fragment_shading_rate                : extension revision 2
        VK_KHR_get_memory_requirements2             : extension revision 1
        VK_KHR_global_priority                      : extension revision 1
        VK_KHR_image_format_list                    : extension revision 1
        VK_KHR_imageless_framebuffer                : extension revision 1
        VK_KHR_maintenance1                         : extension revision 2
        VK_KHR_maintenance2                         : extension revision 1
        VK_KHR_maintenance3                         : extension revision 1
        VK_KHR_maintenance4                         : extension revision 2
        VK_KHR_multiview                            : extension revision 1
        VK_KHR_pipeline_executable_properties       : extension revision 1
        VK_KHR_pipeline_library                     : extension revision 1
        VK_KHR_present_id                           : extension revision 1
        VK_KHR_present_wait                         : extension revision 1
        VK_KHR_push_descriptor                      : extension revision 2
        VK_KHR_ray_query                            : extension revision 1
        VK_KHR_ray_tracing_maintenance1             : extension revision 1
        VK_KHR_ray_tracing_pipeline                 : extension revision 1
        VK_KHR_relaxed_block_layout                 : extension revision 1
        VK_KHR_sampler_mirror_clamp_to_edge         : extension revision 3
        VK_KHR_sampler_ycbcr_conversion             : extension revision 14
        VK_KHR_separate_depth_stencil_layouts       : extension revision 1
        VK_KHR_shader_atomic_int64                  : extension revision 1
        VK_KHR_shader_clock                         : extension revision 1
        VK_KHR_shader_draw_parameters               : extension revision 1
        VK_KHR_shader_float16_int8                  : extension revision 1
        VK_KHR_shader_float_controls                : extension revision 4
        VK_KHR_shader_integer_dot_product           : extension revision 1
        VK_KHR_shader_non_semantic_info             : extension revision 1
        VK_KHR_shader_subgroup_extended_types       : extension revision 1
        VK_KHR_shader_subgroup_uniform_control_flow : extension revision 1
        VK_KHR_shader_terminate_invocation          : extension revision 1
        VK_KHR_spirv_1_4                            : extension revision 1
        VK_KHR_storage_buffer_storage_class         : extension revision 1
        VK_KHR_swapchain                            : extension revision 70
        VK_KHR_swapchain_mutable_format             : extension revision 1
        VK_KHR_synchronization2                     : extension revision 1
        VK_KHR_timeline_semaphore                   : extension revision 2
        VK_KHR_uniform_buffer_standard_layout       : extension revision 1
        VK_KHR_variable_pointers                    : extension revision 1
        VK_KHR_vulkan_memory_model                  : extension revision 3
        VK_KHR_win32_keyed_mutex                    : extension revision 1
        VK_KHR_workgroup_memory_explicit_layout     : extension revision 1
        VK_KHR_zero_initialize_workgroup_memory     : extension revision 1
        VK_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_acquire_winrt_display                 : extension revision 1
        VK_NV_clip_space_w_scaling                  : extension revision 1
        VK_NV_compute_shader_derivatives            : extension revision 1
        VK_NV_cooperative_matrix                    : extension revision 1
        VK_NV_copy_memory_indirect                  : extension revision 1
        VK_NV_corner_sampled_image                  : extension revision 2
        VK_NV_coverage_reduction_mode               : extension revision 1
        VK_NV_cuda_kernel_launch                    : extension revision 2
        VK_NV_dedicated_allocation                  : extension revision 1
        VK_NV_dedicated_allocation_image_aliasing   : extension revision 1
        VK_NV_device_diagnostic_checkpoints         : extension revision 2
        VK_NV_device_diagnostics_config             : extension revision 2
        VK_NV_device_generated_commands             : extension revision 3
        VK_NV_external_memory                       : extension revision 1
        VK_NV_external_memory_win32                 : extension revision 1
        VK_NV_fill_rectangle                        : extension revision 1
        VK_NV_fragment_coverage_to_color            : extension revision 1
        VK_NV_fragment_shader_barycentric           : extension revision 1
        VK_NV_fragment_shading_rate_enums           : extension revision 1
        VK_NV_framebuffer_mixed_samples             : extension revision 1
        VK_NV_geometry_shader_passthrough           : extension revision 1
        VK_NV_inherited_viewport_scissor            : extension revision 1
        VK_NV_linear_color_attachment               : extension revision 1
        VK_NV_memory_decompression                  : extension revision 1
        VK_NV_mesh_shader                           : extension revision 1
        VK_NV_optical_flow                          : 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 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
        VK_NV_win32_keyed_mutex                     : extension revision 2

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

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

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

        queueProperties[3]:
        -------------------
                minImageTransferGranularity = (1,1,1)
                queueCount                  = 1
                queueFlags                  = QUEUE_TRANSFER | QUEUE_SPARSE_BINDING
                timestampValidBits          = 32
                present support             = false
                VkQueueFamilyGlobalPriorityPropertiesKHR:
                -----------------------------------------
                        priorityCount  = 4
                        priorities: count = 4
                                QUEUE_GLOBAL_PRIORITY_LOW_KHR
                                QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR
                                QUEUE_GLOBAL_PRIORITY_HIGH_KHR
                                QUEUE_GLOBAL_PRIORITY_REALTIME_KHR

VkPhysicalDeviceMemoryProperties:
=================================
memoryHeaps: count = 3
        memoryHeaps[0]:
                size   = 8428453888 (0x1f6600000) (7.85 GiB)
                budget = 7623147520 (0x1c6600000) (7.10 GiB)
                usage  = 0 (0x00000000) (0.00 B)
                flags: count = 1
                        MEMORY_HEAP_DEVICE_LOCAL_BIT
        memoryHeaps[1]:
                size   = 17096929280 (0x3fb0e7000) (15.92 GiB)
                budget = 16291622912 (0x3cb0e7000) (15.17 GiB)
                usage  = 278528 (0x00044000) (272.00 KiB)
                flags:
                        None
        memoryHeaps[2]:
                size   = 224395264 (0x0d600000) (214.00 MiB)
                budget = 217776128 (0x0cfb0000) (207.69 MiB)
                usage  = 6619136 (0x00650000) (6.31 MiB)
                flags: count = 1
                        MEMORY_HEAP_DEVICE_LOCAL_BIT
memoryTypes: count = 5
        memoryTypes[0]:
                heapIndex     = 1
                propertyFlags = 0x0000:
                        None
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                color images
                                FORMAT_D16_UNORM
                                FORMAT_X8_D24_UNORM_PACK32
                                FORMAT_D32_SFLOAT
                                FORMAT_S8_UINT
                                FORMAT_D24_UNORM_S8_UINT
                                FORMAT_D32_SFLOAT_S8_UINT
                                (non-sparse)
                        IMAGE_TILING_LINEAR:
                                color images
                                (non-sparse, non-transient)
        memoryTypes[1]:
                heapIndex     = 0
                propertyFlags = 0x0001: count = 1
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                color images
                                FORMAT_D16_UNORM
                                FORMAT_X8_D24_UNORM_PACK32
                                FORMAT_D32_SFLOAT
                                FORMAT_S8_UINT
                                FORMAT_D24_UNORM_S8_UINT
                                FORMAT_D32_SFLOAT_S8_UINT
                        IMAGE_TILING_LINEAR:
                                color images
                                (non-sparse, non-transient)
        memoryTypes[2]:
                heapIndex     = 1
                propertyFlags = 0x0006: count = 2
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                color images
                                (non-sparse, non-transient)
        memoryTypes[3]:
                heapIndex     = 1
                propertyFlags = 0x000e: count = 3
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                        MEMORY_PROPERTY_HOST_CACHED_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                color images
                                (non-sparse, non-transient)
        memoryTypes[4]:
                heapIndex     = 2
                propertyFlags = 0x0007: count = 3
                        MEMORY_PROPERTY_DEVICE_LOCAL_BIT
                        MEMORY_PROPERTY_HOST_VISIBLE_BIT
                        MEMORY_PROPERTY_HOST_COHERENT_BIT
                usable for:
                        IMAGE_TILING_OPTIMAL:
                                None
                        IMAGE_TILING_LINEAR:
                                color images
                                (non-sparse, non-transient)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

@BhaturaGuy

Your vulkaninfo makes it seem like a driver bug. It says there is budget = 217776128 (0x0cfb0000) (207.69 MiB) of VRAM available in heap 2, but an allocation of 256 KiB by libplacebo (for the vertex buffer) fails with VK_ERROR_OUT_OF_DEVICE_MEMORY.

Short of actually attempting to allocate memory from each heap upon initialization to check for failures, I'm not sure what we should be doing here.

Setting commandline option --gpu-api=opengl/d3d11 failed.

Sorry, I meant --gpu-api=opengl and --gpu-api=d3d11, respectively.

WhoMI7 commented 1 year ago

Sorry, I meant --gpu-api=opengl and --gpu-api=d3d11, respectively.

like this? image

monarc99 commented 1 year ago

Same problem on

linux (Distro: Manjaro Linux Desktop: KDE Plasma v: 5.26.4 tk: Qt v: 5.15.7 wm: kwin_x11 vt: 1 dm: SDDM)
nvidia GPU (NVIDIA GP106 [GeForce GTX 1060 6GB] driver: nvidia v: 525.60.11).

No problem with mpv+opengl. But mpv -no-config -gpu-api=vulkan and a running game (Guild Wars 2), mpv stops with:

[vo/gpu/libplacebo] Allocation of size  256K failed: VK_ERROR_OUT_OF_DEVICE_MEMORY!
[vo/gpu/libplacebo] Memory heaps supported by device:
[vo/gpu/libplacebo]     0: flags 0x1 size 6144M
[vo/gpu/libplacebo]     1: flags 0x0 size 5873M
[vo/gpu/libplacebo]     2: flags 0x1 size  246M
[vo/gpu/libplacebo] Memory pool 0:
[vo/gpu/libplacebo]     Compatible types: 0x82
[vo/gpu/libplacebo]     Optimal flags: 0x1
[vo/gpu/libplacebo]     Slab  0: ffffffffffffffff x  4096:     0 used     0 res  256K alloc from heap 0, efficiency 100.00%
[vo/gpu/libplacebo]     Slab  1:        8 x 2160K: 3360K used 6480K res 8640K alloc from heap 0, efficiency 51.85%
[vo/gpu/libplacebo]     Pool summary: 3360K used 6480K res 8896K alloc, efficiency 51.85%, utilization 72.84%
[vo/gpu/libplacebo] Memory pool 1:
[vo/gpu/libplacebo]     Compatible types: 0xffffffff
[vo/gpu/libplacebo]     Required flags: 0xa
[vo/gpu/libplacebo]     Optimal flags: 0x1
[vo/gpu/libplacebo]     Buffer flags: 0x3
[vo/gpu/libplacebo]     Slab  0:        0 x 3066K:   11M used   11M res   11M alloc from heap 1, efficiency 99.90%
[vo/gpu/libplacebo]     Slab  1:       f8 x 3066K: 9189K used 9198K res   23M alloc from heap 1, efficiency 99.90%
[vo/gpu/libplacebo]     Pool summary:   20M used   20M res   35M alloc, efficiency 99.90%, utilization 58.33%
[vo/gpu/libplacebo] Memory pool 2:
[vo/gpu/libplacebo]     Compatible types: 0xffffffff
[vo/gpu/libplacebo]     Required flags: 0x1
[vo/gpu/libplacebo]     Optimal flags: 0x2
[vo/gpu/libplacebo]     Buffer flags: 0x13
[vo/gpu/libplacebo]     Pool summary:     0 used     0 res     0 alloc, efficiency 100.00%, utilization 100.00%
[vo/gpu/libplacebo] Memory summary:   24M used   27M res   44M alloc, efficiency 88.76%, utilization 61.16%
[vo/gpu/libplacebo]   Backtrace:
[vo/gpu/libplacebo]     #0  0x000055851c90d265 in pl_vulkan_wrap+0x1755 at mpv+0x593265
[vo/gpu/libplacebo]     #1  0x000055851c90e19c in pl_vulkan_wrap+0x268c at mpv+0x59419c
[vo/gpu/libplacebo]     #2  0x000055851c90035a in pl_vulkan_get+0x129a at mpv+0x58635a
[vo/gpu/libplacebo]     #3  0x000055851c8aa4ec in pl_buf_create+0x21c at mpv+0x5304ec
[vo/gpu/libplacebo]     #4  0x000055851c8609e7 in mppl_wrap_tex+0x3687 at mpv+0x4e69e7
[vo/gpu/libplacebo]     #5  0x000055851c7fde5e in gl_sc_paddf+0x1d9e at mpv+0x483e5e
[vo/gpu/libplacebo]     #6  0x000055851c7fe128 in gl_sc_dispatch_draw+0x58 at mpv+0x484128
[vo/gpu/libplacebo]     #7  0x000055851c7feddf in mpgl_osd_draw_finish+0xb0f at mpv+0x484ddf
[vo/gpu/libplacebo]     #8  0x000055851c80e2e4 in gl_video_render_frame+0x764 at mpv+0x4942e4
[vo/gpu/libplacebo]     #9  0x000055851c819c46 in mpv_render_context_render+0x616 at mpv+0x49fc46
[vo/gpu/libplacebo]     #10 0x000055851c81896a in vo_get_current_vo_frame+0xa9a at mpv+0x49e96a
[vo/gpu/libplacebo]     #11 0x00007ff0393108fd in pthread_condattr_setpshared+0x4ed at /usr/lib/libc.so.6+0x868fd
[vo/gpu/libplacebo]     #12 0x00007ff039392a60 in __xmknodat+0x250 at /usr/lib/libc.so.6+0x108a60
[vo/gpu/libplacebo] No slab to serve request for   144 bytes (with alignment 0xc00) in pool 2!
[vo/gpu] Failed creating uniform buffer!

vulkaninfo at that moment: http://ix.io/4klx

VkPhysicalDeviceMemoryProperties:
=================================
memoryHeaps: count = 3
    memoryHeaps[0]:
        size   = 6442450944 (0x180000000) (6.00 GiB)
        budget = 4090101760 (0xf3ca0000) (3.81 GiB)
        usage  = 0 (0x00000000) (0.00 B)
        flags: count = 1
            MEMORY_HEAP_DEVICE_LOCAL_BIT
    memoryHeaps[1]:
        size   = 6158905344 (0x16f197000) (5.74 GiB)
        budget = 6158905344 (0x16f197000) (5.74 GiB)
        usage  = 0 (0x00000000) (0.00 B)
        flags:
            None
    memoryHeaps[2]:
        size   = 257949696 (0x0f600000) (246.00 MiB)
        budget = 196608 (0x00030000) (192.00 KiB)
        usage  = 257753088 (0x0f5d0000) (245.81 MiB)
        flags: count = 1
            MEMORY_HEAP_DEVICE_LOCAL_BIT

if i close chrome, i get:

vulkaninfo: http://ix.io/4klG

VkPhysicalDeviceMemoryProperties:
=================================
memoryHeaps: count = 3
    memoryHeaps[0]:
        size   = 6442450944 (0x180000000) (6.00 GiB)
        budget = 4398579712 (0x1062d0000) (4.10 GiB)
        usage  = 0 (0x00000000) (0.00 B)
        flags: count = 1
            MEMORY_HEAP_DEVICE_LOCAL_BIT
    memoryHeaps[1]:
        size   = 6158905344 (0x16f197000) (5.74 GiB)
        budget = 6158905344 (0x16f197000) (5.74 GiB)
        usage  = 0 (0x00000000) (0.00 B)
        flags:
            None
    memoryHeaps[2]:
        size   = 257949696 (0x0f600000) (246.00 MiB)
        budget = 851968 (0x000d0000) (832.00 KiB)
        usage  = 257097728 (0x0f530000) (245.19 MiB)
        flags: count = 1
            MEMORY_HEAP_DEVICE_LOCAL_BIT

even with a budget=832.00 KiB on heap 2, i get the same error:

[vo/gpu/libplacebo] Allocation of size  256K failed: VK_ERROR_OUT_OF_DEVICE_MEMORY!
[vo/gpu/libplacebo] Memory heaps supported by device:
[vo/gpu/libplacebo]     0: flags 0x1 size 6144M
[vo/gpu/libplacebo]     1: flags 0x0 size 5873M
[vo/gpu/libplacebo]     2: flags 0x1 size  246M
[vo/gpu/libplacebo] Memory pool 0:
[vo/gpu/libplacebo]     Compatible types: 0x82
[vo/gpu/libplacebo]     Optimal flags: 0x1
[vo/gpu/libplacebo]     Slab  0: ffffffffffffffff x  4096:     0 used     0 res  256K alloc from heap 0, efficiency 100.00%
[vo/gpu/libplacebo]     Slab  1:        8 x 2160K: 3360K used 6480K res 8640K alloc from heap 0, efficiency 51.85%
[vo/gpu/libplacebo]     Pool summary: 3360K used 6480K res 8896K alloc, efficiency 51.85%, utilization 72.84%
[vo/gpu/libplacebo] Memory pool 1:
[vo/gpu/libplacebo]     Compatible types: 0xffffffff
[vo/gpu/libplacebo]     Required flags: 0x2
[vo/gpu/libplacebo]     Optimal flags: 0x9
[vo/gpu/libplacebo]     Buffer flags: 0x3
[vo/gpu/libplacebo]     Slab  0:        0 x 3066K:   11M used   11M res   11M alloc from heap 1, efficiency 99.90%
[vo/gpu/libplacebo]     Slab  1:       f8 x 3066K: 9189K used 9198K res   23M alloc from heap 1, efficiency 99.90%
[vo/gpu/libplacebo]     Pool summary:   20M used   20M res   35M alloc, efficiency 99.90%, utilization 58.33%
[vo/gpu/libplacebo] Memory pool 2:
[vo/gpu/libplacebo]     Compatible types: 0xffffffff
[vo/gpu/libplacebo]     Required flags: 0x1
[vo/gpu/libplacebo]     Optimal flags: 0x2
[vo/gpu/libplacebo]     Buffer flags: 0x13
[vo/gpu/libplacebo]     Pool summary:     0 used     0 res     0 alloc, efficiency 100.00%, utilization 100.00%
[vo/gpu/libplacebo] Memory summary:   24M used   27M res   44M alloc, efficiency 88.76%, utilization 61.16%
[vo/gpu/libplacebo]   Backtrace:
[vo/gpu/libplacebo]     #0  0x000055e10c8819e4 in pl_vulkan_wrap+0x1744 at mpv+0x58d9e4
[vo/gpu/libplacebo]     #1  0x000055e10c882903 in pl_vulkan_wrap+0x2663 at mpv+0x58e903
[vo/gpu/libplacebo]     #2  0x000055e10c8748e3 in pl_vulkan_get+0x1053 at mpv+0x5808e3
[vo/gpu/libplacebo]     #3  0x000055e10c81f3f4 in pl_buf_create+0x214 at mpv+0x52b3f4
[vo/gpu/libplacebo]     #4  0x000055e10c7d64a3 in mppl_wrap_tex+0x3573 at mpv+0x4e24a3
[vo/gpu/libplacebo]     #5  0x000055e10c7751d6 in gl_sc_paddf+0x1d86 at mpv+0x4811d6
[vo/gpu/libplacebo]     #6  0x000055e10c775494 in gl_sc_dispatch_draw+0x54 at mpv+0x481494
[vo/gpu/libplacebo]     #7  0x000055e10c77612d in mpgl_osd_draw_finish+0xafd at mpv+0x48212d
[vo/gpu/libplacebo]     #8  0x000055e10c785503 in gl_video_render_frame+0x753 at mpv+0x491503
[vo/gpu/libplacebo]     #9  0x000055e10c790bd6 in mpv_render_context_render+0x606 at mpv+0x49cbd6
[vo/gpu/libplacebo]     #10 0x000055e10c78f919 in vo_get_current_vo_frame+0xa69 at mpv+0x49b919
[vo/gpu/libplacebo]     #11 0x00007f37e3ab18fd in pthread_condattr_setpshared+0x4ed at /usr/lib/libc.so.6+0x868fd
[vo/gpu/libplacebo]     #12 0x00007f37e3b33a60 in __xmknodat+0x250 at /usr/lib/libc.so.6+0x108a60
[vo/gpu/libplacebo] No slab to serve request for   144 bytes (with alignment 0xc00) in pool 2!
[vo/gpu] Failed creating uniform buffer!

Guild Wars 2 started, but only at the login screen, mpv plays fine.

                size   = 257949696 (0x0f600000) (246.00 MiB)
                budget = 3473408 (0x00350000) (3.31 MiB)
                usage  = 254476288 (0x0f2b0000) (242.69 MiB)
                flags: count = 1
                        MEMORY_HEAP_DEVICE_LOCAL_BIT