Overv / VulkanTutorial

Tutorial for the Vulkan graphics and compute API
https://vulkan-tutorial.com
Creative Commons Attribution Share Alike 4.0 International
3.12k stars 513 forks source link

Simple example of GLFW and Vulkan on Linux? #141

Closed kershnerd closed 5 years ago

kershnerd commented 5 years ago

This has been one of the most frustrating experiences in my life. I am looking for a simple example of using Vulkan with glfw3.3. I am an experienced C++ developer and experienced OpenGL programmer, but the problems I am running into have to do with just setting up a project with cLion and CMakeLists.txt.

I am able to render a window having to do with the Base Code: https://vulkan-tutorial.com/Drawing_a_triangle/Setup/Base_code

But when trying to do the next tutorial (validation layers), I always get this error: validation layers requested, but not available!

lewa-j commented 5 years ago

Have you installed VulkanSDK with Validation Layers?

kershnerd commented 5 years ago

I downloaded and built the Vulkan SDK examples and was able to see the LunarG spinning cube.

Are the Validate Layers a separate build? How do I know if they are installed?

Here is the output of my vulkaninfo that was in the examples folder of the vulkan sdk:

VULKANINFO
==========

Vulkan Instance Version: 1.1.108

Instance Extensions:
====================
Instance Extensions count = 16
    VK_EXT_acquire_xlib_display         : extension revision  1
    VK_EXT_debug_report                 : extension revision  9
    VK_EXT_debug_utils                  : extension revision  1
    VK_EXT_direct_mode_display          : extension revision  1
    VK_EXT_display_surface_counter      : extension revision  1
    VK_KHR_device_group_creation        : extension revision  1
    VK_KHR_display                      : extension revision 21
    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  1
    VK_KHR_get_surface_capabilities2    : extension revision  1
    VK_KHR_surface                      : extension revision 25
    VK_KHR_xcb_surface                  : extension revision  6
    VK_KHR_xlib_surface                 : extension revision  6
Layers: count = 13
=======
VK_LAYER_GOOGLE_threading (Google Validation Layer) Vulkan version 1.1.108, layer version 1
    Layer Extensions    count = 1
        VK_EXT_debug_report                 : extension revision  6
    Devices     count = 1
        GPU id       : 0 (GeForce RTX 2070 with Max-Q Design)
        Layer-Device Extensions count = 0

VK_LAYER_GOOGLE_unique_objects (Google Validation Layer) Vulkan version 1.1.108, layer version 1
    Layer Extensions    count = 0
    Devices     count = 1
        GPU id       : 0 (GeForce RTX 2070 with Max-Q Design)
        Layer-Device Extensions count = 0

VK_LAYER_KHRONOS_validation (LunarG Validation Layer) Vulkan version 1.1.108, layer version 1
    Layer Extensions    count = 1
        VK_EXT_debug_report                 : extension revision  6
    Devices     count = 1
        GPU id       : 0 (GeForce RTX 2070 with Max-Q Design)
        Layer-Device Extensions count = 2
            VK_EXT_debug_marker                 : extension revision  4
            VK_EXT_validation_cache             : extension revision  1

VK_LAYER_LUNARG_api_dump (LunarG API dump layer) Vulkan version 1.1.108, layer version 2
    Layer Extensions    count = 0
    Devices     count = 1
        GPU id       : 0 (GeForce RTX 2070 with Max-Q Design)
        Layer-Device Extensions count = 0

VK_LAYER_LUNARG_core_validation (LunarG Validation Layer) Vulkan version 1.1.108, layer version 1
    Layer Extensions    count = 1
        VK_EXT_debug_report                 : extension revision  6
    Devices     count = 1
        GPU id       : 0 (GeForce RTX 2070 with Max-Q Design)
        Layer-Device Extensions count = 2
            VK_EXT_debug_marker                 : extension revision  4
            VK_EXT_validation_cache             : extension revision  1

VK_LAYER_LUNARG_device_simulation (LunarG device simulation layer) Vulkan version 1.1.108, layer version 1
    Layer Extensions    count = 0
    Devices     count = 1
        GPU id       : 0 (GeForce RTX 2070 with Max-Q Design)
        Layer-Device Extensions count = 0

VK_LAYER_LUNARG_monitor (Execution Monitoring Layer) Vulkan version 1.1.108, layer version 1
    Layer Extensions    count = 0
    Devices     count = 1
        GPU id       : 0 (GeForce RTX 2070 with Max-Q Design)
        Layer-Device Extensions count = 0

VK_LAYER_LUNARG_object_tracker (LunarG Validation Layer) Vulkan version 1.1.108, layer version 1
    Layer Extensions    count = 1
        VK_EXT_debug_report                 : extension revision  6
    Devices     count = 1
        GPU id       : 0 (GeForce RTX 2070 with Max-Q Design)
        Layer-Device Extensions count = 1
            VK_EXT_debug_marker                 : extension revision  4

VK_LAYER_LUNARG_parameter_validation (LunarG Validation Layer) Vulkan version 1.1.108, layer version 1
    Layer Extensions    count = 1
        VK_EXT_debug_report                 : extension revision  6
    Devices     count = 1
        GPU id       : 0 (GeForce RTX 2070 with Max-Q Design)
        Layer-Device Extensions count = 1
            VK_EXT_debug_marker                 : extension revision  4

VK_LAYER_LUNARG_screenshot (LunarG image capture layer) Vulkan version 1.1.108, layer version 1
    Layer Extensions    count = 0
    Devices     count = 1
        GPU id       : 0 (GeForce RTX 2070 with Max-Q Design)
        Layer-Device Extensions count = 0

VK_LAYER_LUNARG_standard_validation (LunarG Standard Validation) Vulkan version 1.1.108, layer version 1
    Layer Extensions    count = 1
        VK_EXT_debug_report                 : extension revision  6
    Devices     count = 1
        GPU id       : 0 (GeForce RTX 2070 with Max-Q Design)
        Layer-Device Extensions count = 2
            VK_EXT_debug_marker                 : extension revision  4
            VK_EXT_validation_cache             : extension revision  1

VK_LAYER_LUNARG_starter_layer (LunarG Validation Layer Factory Layer) Vulkan version 1.1.108, layer version 1
    Layer Extensions    count = 1
        VK_EXT_debug_report                 : extension revision  6
    Devices     count = 1
        GPU id       : 0 (GeForce RTX 2070 with Max-Q Design)
        Layer-Device Extensions count = 1
            VK_EXT_debug_marker                 : extension revision  4

VK_LAYER_LUNARG_vktrace (Vktrace tracing library) Vulkan version 1.1.108, layer version 1
    Layer Extensions    count = 0
    Devices     count = 1
        GPU id       : 0 (GeForce RTX 2070 with Max-Q Design)
        Layer-Device Extensions count = 0

Presentable Surfaces:
=====================
GPU id       : 0 (GeForce RTX 2070 with Max-Q Design)
Surface type : VK_KHR_xlib_surface
Formats:        count = 2
    B8G8R8A8_UNORM
    B8G8R8A8_SRGB
Present Modes:      count = 3
    FIFO_KHR
    FIFO_RELAXED_KHR
    IMMEDIATE_KHR
VkSurfaceCapabilitiesKHR:
    minImageCount       = 2
    maxImageCount       = 8
    currentExtent:
        width       = 256
        height      = 256
    minImageExtent:
        width       = 256
        height      = 256
    maxImageExtent:
        width       = 256
        height      = 256
    maxImageArrayLayers = 1
    supportedTransform:
        VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR
    currentTransform:
        VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR
    supportedCompositeAlpha:
        VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR
    supportedUsageFlags:
        VK_IMAGE_USAGE_TRANSFER_SRC_BIT
        VK_IMAGE_USAGE_TRANSFER_DST_BIT
        VK_IMAGE_USAGE_SAMPLED_BIT
        VK_IMAGE_USAGE_STORAGE_BIT
        VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
        VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
VkSurfaceCapabilities2EXT:
    supportedSurfaceCounters:
        None

GPU id       : 0 (GeForce RTX 2070 with Max-Q Design)
Surface type : VK_KHR_xcb_surface
Formats:        count = 2
    B8G8R8A8_UNORM
    B8G8R8A8_SRGB
Present Modes:      count = 3
    FIFO_KHR
    FIFO_RELAXED_KHR
    IMMEDIATE_KHR
VkSurfaceCapabilitiesKHR:
    minImageCount       = 2
    maxImageCount       = 8
    currentExtent:
        width       = 256
        height      = 256
    minImageExtent:
        width       = 256
        height      = 256
    maxImageExtent:
        width       = 256
        height      = 256
    maxImageArrayLayers = 1
    supportedTransform:
        VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR
    currentTransform:
        VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR
    supportedCompositeAlpha:
        VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR
    supportedUsageFlags:
        VK_IMAGE_USAGE_TRANSFER_SRC_BIT
        VK_IMAGE_USAGE_TRANSFER_DST_BIT
        VK_IMAGE_USAGE_SAMPLED_BIT
        VK_IMAGE_USAGE_STORAGE_BIT
        VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT
        VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT
VkSurfaceCapabilities2EXT:
    supportedSurfaceCounters:
        None

Groups :
========
    Device Group Properties (Group 0) :
        physicalDeviceCount = 1

            GeForce RTX 2070 with Max-Q Design (ID: 0)

        subsetAllocation = 0

    Device Group Present Capabilities (Group 0) :

        GeForce RTX 2070 with Max-Q Design (ID: 0)
        Can present images from the following devices:
            GeForce RTX 2070 with Max-Q Design (ID: 0)

        Present modes:
            VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR

Device Properties and Extensions :
==================================
GPU0
VkPhysicalDeviceProperties:
===========================
    apiVersion     = 0x401063  (1.1.99)
    driverVersion  = 1803976704 (0x6b868000)
    vendorID       = 0x10de
    deviceID       = 0x1f10
    deviceType     = DISCRETE_GPU
    deviceName     = GeForce RTX 2070 with Max-Q Design
    VkPhysicalDeviceLimits:
    -----------------------
        maxImageDimension1D                     = 32768
        maxImageDimension2D                     = 32768
        maxImageDimension3D                     = 16384
        maxImageDimensionCube                   = 32768
        maxImageArrayLayers                     = 2048
        maxTexelBufferElements                  = 0x8000000
        maxUniformBufferRange                   = 0x10000
        maxStorageBufferRange                   = 0xffffffff
        maxPushConstantsSize                    = 256
        maxMemoryAllocationCount                = 4294967295
        maxSamplerAllocationCount               = 4000
        bufferImageGranularity                  = 0x400
        sparseAddressSpaceSize                  = 0xffffffffffffffff
        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           = 0x7ff
        maxVertexInputBindingStride             = 0x800
        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      = 16
        maxComputeSharedMemorySize              = 0xc000
        maxComputeWorkGroupCount[0]             = 2147483647
        maxComputeWorkGroupCount[1]             = 65535
        maxComputeWorkGroupCount[2]             = 65535
        maxComputeWorkGroupInvocations          = 1024
        maxComputeWorkGroupSize[0]              = 1024
        maxComputeWorkGroupSize[1]              = 1024
        maxComputeWorkGroupSize[2]              = 64
        subPixelPrecisionBits                   = 8
        subTexelPrecisionBits                   = 8
        mipmapPrecisionBits                     = 8
        maxDrawIndexedIndexValue                = 4294967295
        maxDrawIndirectCount                    = 4294967295
        maxSamplerLodBias                       = 15.000000
        maxSamplerAnisotropy                    = 16.000000
        maxViewports                            = 16
        maxViewportDimensions[0]                = 32768
        maxViewportDimensions[1]                = 32768
        viewportBoundsRange[0]                  = -65536.000000
        viewportBoundsRange[1]                  =  65536.000000
        viewportSubPixelBits                    = 8
        minMemoryMapAlignment                   = 64
        minTexelBufferOffsetAlignment           = 0x10
        minUniformBufferOffsetAlignment         = 0x40
        minStorageBufferOffsetAlignment         = 0x20
        minTexelOffset                          =  -8
        maxTexelOffset                          =   7
        minTexelGatherOffset                    = -32
        maxTexelGatherOffset                    =  31
        minInterpolationOffset                  = -0.500000
        maxInterpolationOffset                  =  0.437500
        subPixelInterpolationOffsetBits         = 4
        maxFramebufferWidth                     = 32768
        maxFramebufferHeight                    = 32768
        maxFramebufferLayers                    = 2048
        framebufferColorSampleCounts            = 15
        framebufferDepthSampleCounts            = 15
        framebufferStencilSampleCounts          = 31
        framebufferNoAttachmentsSampleCounts    = 31
        maxColorAttachments                     = 8
        sampledImageColorSampleCounts           = 15
        sampledImageDepthSampleCounts           = 15
        sampledImageStencilSampleCounts         = 31
        sampledImageIntegerSampleCounts         = 15
        storageImageSampleCounts                = 15
        maxSampleMaskWords                      = 1
        timestampComputeAndGraphics             = 1
        timestampPeriod                         = 1.000000
        maxClipDistances                        = 8
        maxCullDistances                        = 8
        maxCombinedClipAndCullDistances         = 8
        discreteQueuePriorities                 = 2
        pointSizeRange[0]                       = 1.000000
        pointSizeRange[1]                       = 2047.937500
        lineWidthRange[0]                       = 1.000000
        lineWidthRange[1]                       = 64.000000
        pointSizeGranularity                    = 0.062500
        lineWidthGranularity                    = 1.000000
        strictLines                             = 1
        standardSampleLocations                 = 1
        optimalBufferCopyOffsetAlignment        = 0x1
        optimalBufferCopyRowPitchAlignment      = 0x1
        nonCoherentAtomSize                     = 0x40
    VkPhysicalDeviceSparseProperties:
    ---------------------------------
        residencyStandard2DBlockShape            = 1
        residencyStandard2DMultisampleBlockShape = 1
        residencyStandard3DBlockShape            = 1
        residencyAlignedMipSize                  = 0
        residencyNonResidentStrict               = 1

VkPhysicalDeviceBlendOperationAdvancedProperties:
=================================================
    advancedBlendMaxColorAttachments               = 8
    advancedBlendIndependentBlend                  = 0
    advancedBlendNonPremultipliedSrcColor          = 1
    advancedBlendNonPremultipliedDstColor          = 1
    advancedBlendCorrelatedOverlap                 = 1
    advancedBlendAllOperations                     = 1

VkPhysicalDevicePointClippingProperties:
========================================
    pointClippingBehavior               = 1

VkPhysicalDevicePushDescriptorProperties:
=========================================
    maxPushDescriptors               = 32

VkPhysicalDeviceDiscardRectangleProperties:
===========================================
    maxDiscardRectangles               = 8

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

VkPhysicalDeviceMaintenance3Properties:
=======================================
    maxPerSetDescriptors    = 4294967295
    maxMemoryAllocationSize = 4292870144

VkPhysicalDeviceIDProperties:
=========================================
    deviceUUID      = a171d8ab-236a-fe17-56a8-69c1542ffdbf
    driverUUID      = 0824364d-c221-3b4d-93b7-f9428a941201
    deviceLUIDValid = false

VkPhysicalDeviceDriverProperties:
=================================
    driverID   = 4
    driverName = NVIDIA
    driverInfo = 430.26
    conformanceVersion:
        major    = 1
        minor    = 1
        subminor = 3
        patch    = 0

VkPhysicalDeviceFloatControlsProperties:
========================================
    separateDenormSettings       = 1
    separateRoundingModeSettings = 1
    shaderSignedZeroInfNanPreserveFloat16 = 1
    shaderSignedZeroInfNanPreserveFloat32 = 1
    shaderSignedZeroInfNanPreserveFloat64 = 1
    shaderDenormPreserveFloat16          = 1
    shaderDenormPreserveFloat32           = 0
    shaderDenormPreserveFloat64           = 0
    shaderDenormFlushToZeroFloat16        = 0
    shaderDenormFlushToZeroFloat32        = 0
    shaderDenormFlushToZeroFloat64        = 0
    shaderRoundingModeRTEFloat16          = 1
    shaderRoundingModeRTEFloat32          = 1
    shaderRoundingModeRTEFloat64         = 1
    shaderRoundingModeRTZFloat16          = 0
    shaderRoundingModeRTZFloat32          = 1
    shaderRoundingModeRTZFloat64          = 1

VkPhysicalDevicePCIBusInfoProperties
====================================
    pciDomain   = 0
    pciBus      = 1
    pciDevice   = 0
    pciFunction = 0

VkPhysicalDeviceTransformFeedbackProperties
===========================================
    maxTransformFeedbackStreams                = 4
    maxTransformFeedbackBuffers                = 4
    maxTransformFeedbackBufferSize             = 18446744073709551615
    maxTransformFeedbackStreamDataSize         = 2048
    maxTransformFeedbackBufferDataSize         = 512
    maxTransformFeedbackBufferDataStride       = 2048
    transformFeedbackQueries                   = 1
    transformFeedbackStreamsLinesTriangles     = 0
    transformFeedbackRasterizationStreamSelect = 1
    transformFeedbackDraw                      = 1

VkPhysicalDeviceDepthStencilResolveProperties
============================================
        supportedDepthResolveModes:
            VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR
            VK_RESOLVE_MODE_AVERAGE_BIT_KHR
            VK_RESOLVE_MODE_MIN_BIT_KHR
            VK_RESOLVE_MODE_MAX_BIT_KHR
        supportedStencilResolveModes:
            VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR
            VK_RESOLVE_MODE_MIN_BIT_KHR
            VK_RESOLVE_MODE_MAX_BIT_KHR
        independentResolveNone = 1
        independentResolve     = 1

Device Extensions   count = 84
    VK_EXT_blend_operation_advanced     : extension revision  2
    VK_EXT_buffer_device_address        : extension revision  2
    VK_EXT_conditional_rendering        : extension revision  1
    VK_EXT_conservative_rasterization   : extension revision  1
    VK_EXT_depth_clip_enable            : extension revision  1
    VK_EXT_depth_range_unrestricted     : extension revision  1
    VK_EXT_descriptor_indexing          : extension revision  2
    VK_EXT_discard_rectangles           : extension revision  1
    VK_EXT_display_control              : extension revision  1
    VK_EXT_global_priority              : extension revision  2
    VK_EXT_host_query_reset             : extension revision  1
    VK_EXT_inline_uniform_block         : extension revision  1
    VK_EXT_memory_budget                : extension revision  1
    VK_EXT_pci_bus_info                 : extension revision  2
    VK_EXT_post_depth_coverage          : extension revision  1
    VK_EXT_sample_locations             : extension revision  1
    VK_EXT_sampler_filter_minmax        : extension revision  1
    VK_EXT_scalar_block_layout          : 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_transform_feedback           : extension revision  1
    VK_EXT_vertex_attribute_divisor     : extension revision  3
    VK_KHR_16bit_storage                : extension revision  1
    VK_KHR_8bit_storage                 : extension revision  1
    VK_KHR_bind_memory2                 : extension revision  1
    VK_KHR_create_renderpass2           : extension revision  1
    VK_KHR_dedicated_allocation         : extension revision  3
    VK_KHR_depth_stencil_resolve        : extension revision  1
    VK_KHR_descriptor_update_template   : extension revision  1
    VK_KHR_device_group                 : extension revision  3
    VK_KHR_draw_indirect_count          : extension revision  1
    VK_KHR_driver_properties            : extension revision  1
    VK_KHR_external_fence               : extension revision  1
    VK_KHR_external_fence_fd            : extension revision  1
    VK_KHR_external_memory              : extension revision  1
    VK_KHR_external_memory_fd           : extension revision  1
    VK_KHR_external_semaphore           : extension revision  1
    VK_KHR_external_semaphore_fd        : extension revision  1
    VK_KHR_get_memory_requirements2     : extension revision  1
    VK_KHR_image_format_list            : extension revision  1
    VK_KHR_maintenance1                 : extension revision  2
    VK_KHR_maintenance2                 : extension revision  1
    VK_KHR_maintenance3                 : extension revision  1
    VK_KHR_multiview                    : extension revision  1
    VK_KHR_push_descriptor              : extension revision  2
    VK_KHR_relaxed_block_layout         : extension revision  1
    VK_KHR_sampler_mirror_clamp_to_edge : extension revision  1
    VK_KHR_sampler_ycbcr_conversion     : extension revision  1
    VK_KHR_shader_atomic_int64          : 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  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_variable_pointers            : extension revision  1
    VK_KHR_vulkan_memory_model          : extension revision  3
    VK_NVX_binary_import                : extension revision  1
    VK_NVX_device_generated_commands    : extension revision  3
    VK_NVX_image_view_handle            : extension revision  1
    VK_NVX_multiview_per_view_attributes: extension revision  1
    VK_NV_clip_space_w_scaling          : extension revision  1
    VK_NV_compute_shader_derivatives    : extension revision  1
    VK_NV_cooperative_matrix            : extension revision  1
    VK_NV_corner_sampled_image          : 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_fill_rectangle                : extension revision  1
    VK_NV_fragment_coverage_to_color    : extension revision  1
    VK_NV_fragment_shader_barycentric   : extension revision  1
    VK_NV_framebuffer_mixed_samples     : extension revision  1
    VK_NV_geometry_shader_passthrough   : extension revision  1
    VK_NV_mesh_shader                   : extension revision  1
    VK_NV_ray_tracing                   : extension revision  3
    VK_NV_representative_fragment_test  : extension revision  1
    VK_NV_sample_mask_override_coverage : extension revision  1
    VK_NV_scissor_exclusive             : extension revision  1
    VK_NV_shader_image_footprint        : extension revision  1
    VK_NV_shader_subgroup_partitioned   : extension revision  1
    VK_NV_shading_rate_image            : extension revision  3
    VK_NV_viewport_array2               : extension revision  1
    VK_NV_viewport_swizzle              : extension revision  1

VkQueueFamilyProperties[0]:
===========================
    queueFlags         = GRAPHICS | COMPUTE | TRANSFER | SPARSE
    queueCount         = 16
    timestampValidBits = 64
    minImageTransferGranularity = (1, 1, 1)
    present support    = true

VkQueueFamilyProperties[1]:
===========================
    queueFlags         = TRANSFER
    queueCount         = 2
    timestampValidBits = 64
    minImageTransferGranularity = (1, 1, 1)
    present support    = false

VkQueueFamilyProperties[2]:
===========================
    queueFlags         = COMPUTE
    queueCount         = 8
    timestampValidBits = 64
    minImageTransferGranularity = (1, 1, 1)
    present support:
        VK_KHR_xlib_surface = true
        VK_KHR_xcb_surface = false

VkPhysicalDeviceMemoryProperties:
=================================
    memoryHeapCount       = 2
    memoryHeaps[0] :
        size          = 8589934592 (0x200000000) (8.00 GiB)
        budget        = 5860163584
        usage         = 0
        flags:
            VK_MEMORY_HEAP_DEVICE_LOCAL_BIT
    memoryHeaps[1] :
        size          = 25217805312 (0x5df192c00) (23.49 GiB)
        budget        = 25217805312
        usage         = 0
        flags:
            None
    memoryTypeCount       = 11
    memoryTypes[0] :
        heapIndex     = 1
        propertyFlags = 0x0:
        usable for:
            OPTIMAL: None
            LINEAR: None
    memoryTypes[1] :
        heapIndex     = 1
        propertyFlags = 0x0:
        usable for:
            OPTIMAL: color images
            LINEAR: None
    memoryTypes[2] :
        heapIndex     = 1
        propertyFlags = 0x0:
        usable for:
            OPTIMAL: D16_UNORM
            LINEAR: None
    memoryTypes[3] :
        heapIndex     = 1
        propertyFlags = 0x0:
        usable for:
            OPTIMAL: X8_D24_UNORM_PACK32, D24_UNORM_S8_UINT
            LINEAR: None
    memoryTypes[4] :
        heapIndex     = 1
        propertyFlags = 0x0:
        usable for:
            OPTIMAL: D32_SFLOAT
            LINEAR: None
    memoryTypes[5] :
        heapIndex     = 1
        propertyFlags = 0x0:
        usable for:
            OPTIMAL: D32_SFLOAT_S8_UINT
            LINEAR: None
    memoryTypes[6] :
        heapIndex     = 1
        propertyFlags = 0x0:
        usable for:
            OPTIMAL: S8_UINT
            LINEAR: None
    memoryTypes[7] :
        heapIndex     = 0
        propertyFlags = 0x1:
            VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
        usable for:
            OPTIMAL: color images, D16_UNORM, X8_D24_UNORM_PACK32, D32_SFLOAT, S8_UINT, D24_UNORM_S8_UINT, D32_SFLOAT_S8_UINT
            LINEAR: None
    memoryTypes[8] :
        heapIndex     = 0
        propertyFlags = 0x1:
            VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
        usable for:
            OPTIMAL: None
            LINEAR: None
    memoryTypes[9] :
        heapIndex     = 1
        propertyFlags = 0x6:
            VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
            VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
        usable for:
            OPTIMAL: None
            LINEAR: None
    memoryTypes[10] :
        heapIndex     = 1
        propertyFlags = 0xe:
            VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
            VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
            VK_MEMORY_PROPERTY_HOST_CACHED_BIT
        usable for:
            OPTIMAL: None
            LINEAR: None

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

VkPhysicalDevice8BitStorageFeatures:
=====================================
    storageBuffer8BitAccess           = 1
    uniformAndStorageBuffer8BitAccess = 1
    storagePushConstant8              = 1

VkPhysicalDevice16BitStorageFeatures:
=====================================
    storageBuffer16BitAccess           = 1
    uniformAndStorageBuffer16BitAccess = 1
    storagePushConstant16              = 1
    storageInputOutput16               = 0

VkPhysicalDeviceSamplerYcbcrConversionFeatures:
===============================================
    samplerYcbcrConversion = 1

VkPhysicalDeviceVariablePointerFeatures:
========================================
    variablePointersStorageBuffer = 1
    variablePointers              = 1

VkPhysicalDeviceBlendOperationAdvancedFeatures:
===============================================
    advancedBlendCoherentOperations = 1

VkPhysicalDeviceMultiviewFeatures:
==================================
    multiview                   = 1
    multiviewGeometryShader     = 1
    multiviewTessellationShader = 1

VkPhysicalDeviceFloat16Int8Features:
====================================
    shaderFloat16 = 1
    shaderInt8    = 1

VkPhysicalDeviceShaderAtomicInt64Features:
==========================================
    shaderBufferInt64Atomics = 1
    shaderSharedInt64Atomics = 1

VkPhysicalDeviceTransformFeedbackFeatures:
==========================================
    transformFeedback = 1
    geometryStreams   = 1

VkPhysicalDeviceScalarBlockLayoutFeatures:
==========================================
    scalarBlockLayout = 1

VkPhysicalDeviceBufferAddressFeatures:
======================================
    bufferDeviceAddress = 1
    bufferDeviceAddressCaptureReplay = 0
    bufferDeviceAddressMultiDevice = 1

VkPhysicalDeviceHostQueryResetFeatures:
=======================================
    hostQueryReset = 1

Format Properties:
==================

FORMAT_R4G4_UNORM_PACK8,
FORMAT_R4G4B4A4_UNORM_PACK16,
FORMAT_B4G4R4A4_UNORM_PACK16,
FORMAT_B5G6R5_UNORM_PACK16,
FORMAT_R5G5B5A1_UNORM_PACK16,
FORMAT_B5G5R5A1_UNORM_PACK16,
FORMAT_E5B9G9R9_UFLOAT_PACK32:
    linearTiling   FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_BLIT_SRC_BIT
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    optimalTiling  FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_BLIT_SRC_BIT
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    bufferFeatures FormatFeatureFlags:
        VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT

FORMAT_R5G6B5_UNORM_PACK16,
FORMAT_A1R5G5B5_UNORM_PACK16:
    linearTiling   FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_BLIT_SRC_BIT
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    optimalTiling  FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
        VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
        VK_FORMAT_FEATURE_BLIT_SRC_BIT
        VK_FORMAT_FEATURE_BLIT_DST_BIT
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    bufferFeatures FormatFeatureFlags:
        VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT

FORMAT_R8_UNORM,
FORMAT_R8_SNORM,
FORMAT_R8G8_UNORM,
FORMAT_R8G8_SNORM,
FORMAT_R8G8B8A8_UNORM,
FORMAT_R8G8B8A8_SNORM,
FORMAT_B8G8R8A8_UNORM,
FORMAT_A8B8G8R8_UNORM_PACK32,
FORMAT_A8B8G8R8_SNORM_PACK32,
FORMAT_A2B10G10R10_UNORM_PACK32,
FORMAT_R16_UNORM,
FORMAT_R16_SNORM,
FORMAT_R16_SFLOAT,
FORMAT_R16G16_UNORM,
FORMAT_R16G16_SNORM,
FORMAT_R16G16_SFLOAT,
FORMAT_R16G16B16A16_UNORM,
FORMAT_R16G16B16A16_SNORM,
FORMAT_R16G16B16A16_SFLOAT,
FORMAT_R32G32_SFLOAT,
FORMAT_R32G32B32A32_SFLOAT,
FORMAT_B10G11R11_UFLOAT_PACK32:
    linearTiling   FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_BLIT_SRC_BIT
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    optimalTiling  FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
        VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
        VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
        VK_FORMAT_FEATURE_BLIT_SRC_BIT
        VK_FORMAT_FEATURE_BLIT_DST_BIT
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    bufferFeatures FormatFeatureFlags:
        VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
        VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
        VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

FORMAT_R8_USCALED,
FORMAT_R8_SSCALED,
FORMAT_R8G8_USCALED,
FORMAT_R8G8_SSCALED,
FORMAT_R8G8B8_UNORM,
FORMAT_R8G8B8_SNORM,
FORMAT_R8G8B8_USCALED,
FORMAT_R8G8B8_SSCALED,
FORMAT_R8G8B8_UINT,
FORMAT_R8G8B8_SINT,
FORMAT_B8G8R8_UNORM,
FORMAT_B8G8R8_SNORM,
FORMAT_B8G8R8_USCALED,
FORMAT_B8G8R8_SSCALED,
FORMAT_B8G8R8_UINT,
FORMAT_B8G8R8_SINT,
FORMAT_R8G8B8A8_USCALED,
FORMAT_R8G8B8A8_SSCALED,
FORMAT_B8G8R8A8_USCALED,
FORMAT_B8G8R8A8_SSCALED,
FORMAT_A8B8G8R8_USCALED_PACK32,
FORMAT_A8B8G8R8_SSCALED_PACK32,
FORMAT_A2R10G10B10_SNORM_PACK32,
FORMAT_A2R10G10B10_USCALED_PACK32,
FORMAT_A2R10G10B10_SSCALED_PACK32,
FORMAT_A2R10G10B10_SINT_PACK32,
FORMAT_A2B10G10R10_SNORM_PACK32,
FORMAT_A2B10G10R10_USCALED_PACK32,
FORMAT_A2B10G10R10_SSCALED_PACK32,
FORMAT_A2B10G10R10_SINT_PACK32,
FORMAT_R16_USCALED,
FORMAT_R16_SSCALED,
FORMAT_R16G16_USCALED,
FORMAT_R16G16_SSCALED,
FORMAT_R16G16B16_UNORM,
FORMAT_R16G16B16_SNORM,
FORMAT_R16G16B16_USCALED,
FORMAT_R16G16B16_SSCALED,
FORMAT_R16G16B16_UINT,
FORMAT_R16G16B16_SINT,
FORMAT_R16G16B16_SFLOAT,
FORMAT_R16G16B16A16_USCALED,
FORMAT_R16G16B16A16_SSCALED,
FORMAT_R64_UINT,
FORMAT_R64_SINT,
FORMAT_R64_SFLOAT,
FORMAT_R64G64_UINT,
FORMAT_R64G64_SINT,
FORMAT_R64G64_SFLOAT,
FORMAT_R64G64B64_UINT,
FORMAT_R64G64B64_SINT,
FORMAT_R64G64B64_SFLOAT,
FORMAT_R64G64B64A64_UINT,
FORMAT_R64G64B64A64_SINT,
FORMAT_R64G64B64A64_SFLOAT:
    linearTiling   FormatFeatureFlags:
        None

    optimalTiling  FormatFeatureFlags:
        None

    bufferFeatures FormatFeatureFlags:
        VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

FORMAT_R8_UINT,
FORMAT_R8_SINT,
FORMAT_R8G8_UINT,
FORMAT_R8G8_SINT,
FORMAT_R8G8B8A8_UINT,
FORMAT_R8G8B8A8_SINT,
FORMAT_A8B8G8R8_UINT_PACK32,
FORMAT_A8B8G8R8_SINT_PACK32,
FORMAT_A2B10G10R10_UINT_PACK32,
FORMAT_R16_UINT,
FORMAT_R16_SINT,
FORMAT_R16G16_UINT,
FORMAT_R16G16_SINT,
FORMAT_R16G16B16A16_UINT,
FORMAT_R16G16B16A16_SINT,
FORMAT_R32G32_UINT,
FORMAT_R32G32_SINT,
FORMAT_R32G32B32A32_UINT,
FORMAT_R32G32B32A32_SINT:
    linearTiling   FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_BLIT_SRC_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    optimalTiling  FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
        VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
        VK_FORMAT_FEATURE_BLIT_SRC_BIT
        VK_FORMAT_FEATURE_BLIT_DST_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    bufferFeatures FormatFeatureFlags:
        VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
        VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
        VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

FORMAT_R8_SRGB,
FORMAT_BC1_RGB_UNORM_BLOCK,
FORMAT_BC1_RGB_SRGB_BLOCK,
FORMAT_BC1_RGBA_UNORM_BLOCK,
FORMAT_BC1_RGBA_SRGB_BLOCK,
FORMAT_BC2_UNORM_BLOCK,
FORMAT_BC2_SRGB_BLOCK,
FORMAT_BC3_UNORM_BLOCK,
FORMAT_BC3_SRGB_BLOCK,
FORMAT_BC4_UNORM_BLOCK,
FORMAT_BC4_SNORM_BLOCK,
FORMAT_BC5_UNORM_BLOCK,
FORMAT_BC5_SNORM_BLOCK,
FORMAT_BC6H_UFLOAT_BLOCK,
FORMAT_BC6H_SFLOAT_BLOCK,
FORMAT_BC7_UNORM_BLOCK,
FORMAT_BC7_SRGB_BLOCK:
    linearTiling   FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_BLIT_SRC_BIT
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    optimalTiling  FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_BLIT_SRC_BIT
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    bufferFeatures FormatFeatureFlags:
        None

FORMAT_R8G8B8A8_SRGB,
FORMAT_B8G8R8A8_SRGB,
FORMAT_A8B8G8R8_SRGB_PACK32:
    linearTiling   FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_BLIT_SRC_BIT
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    optimalTiling  FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
        VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
        VK_FORMAT_FEATURE_BLIT_SRC_BIT
        VK_FORMAT_FEATURE_BLIT_DST_BIT
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    bufferFeatures FormatFeatureFlags:
        None

FORMAT_B8G8R8A8_SNORM:
    linearTiling   FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_BLIT_SRC_BIT
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    optimalTiling  FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_BLIT_SRC_BIT
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    bufferFeatures FormatFeatureFlags:
        VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
        VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

FORMAT_B8G8R8A8_UINT,
FORMAT_B8G8R8A8_SINT,
FORMAT_A2R10G10B10_UINT_PACK32:
    linearTiling   FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_BLIT_SRC_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    optimalTiling  FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_BLIT_SRC_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    bufferFeatures FormatFeatureFlags:
        VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
        VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

FORMAT_A2R10G10B10_UNORM_PACK32:
    linearTiling   FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_BLIT_SRC_BIT
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    optimalTiling  FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
        VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
        VK_FORMAT_FEATURE_BLIT_SRC_BIT
        VK_FORMAT_FEATURE_BLIT_DST_BIT
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    bufferFeatures FormatFeatureFlags:
        VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
        VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

FORMAT_R32_UINT,
FORMAT_R32_SINT:
    linearTiling   FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_BLIT_SRC_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    optimalTiling  FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
        VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
        VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
        VK_FORMAT_FEATURE_BLIT_SRC_BIT
        VK_FORMAT_FEATURE_BLIT_DST_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    bufferFeatures FormatFeatureFlags:
        VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
        VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
        VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
        VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

FORMAT_R32_SFLOAT:
    linearTiling   FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_BLIT_SRC_BIT
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    optimalTiling  FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT
        VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT
        VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
        VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
        VK_FORMAT_FEATURE_BLIT_SRC_BIT
        VK_FORMAT_FEATURE_BLIT_DST_BIT
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    bufferFeatures FormatFeatureFlags:
        VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
        VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
        VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT
        VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

FORMAT_R32G32B32_UINT,
FORMAT_R32G32B32_SINT:
    linearTiling   FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_BLIT_SRC_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    optimalTiling  FormatFeatureFlags:
        None

    bufferFeatures FormatFeatureFlags:
        VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
        VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

FORMAT_R32G32B32_SFLOAT:
    linearTiling   FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_BLIT_SRC_BIT
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    optimalTiling  FormatFeatureFlags:
        None

    bufferFeatures FormatFeatureFlags:
        VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
        VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

FORMAT_D16_UNORM,
FORMAT_X8_D24_UNORM_PACK32,
FORMAT_D32_SFLOAT,
FORMAT_D24_UNORM_S8_UINT,
FORMAT_D32_SFLOAT_S8_UINT:
    linearTiling   FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_BLIT_SRC_BIT
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    optimalTiling  FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
        VK_FORMAT_FEATURE_BLIT_SRC_BIT
        VK_FORMAT_FEATURE_BLIT_DST_BIT
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    bufferFeatures FormatFeatureFlags:
        None

FORMAT_S8_UINT:
    linearTiling   FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_BLIT_SRC_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    optimalTiling  FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
        VK_FORMAT_FEATURE_BLIT_SRC_BIT
        VK_FORMAT_FEATURE_BLIT_DST_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    bufferFeatures FormatFeatureFlags:
        None

FORMAT_G8B8G8R8_422_UNORM,
FORMAT_B8G8R8G8_422_UNORM,
FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
FORMAT_G16B16G16R16_422_UNORM,
FORMAT_B16G16R16G16_422_UNORM:
    linearTiling   FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    optimalTiling  FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    bufferFeatures FormatFeatureFlags:
        None

FORMAT_G8_B8_R8_3PLANE_420_UNORM,
FORMAT_G8_B8R8_2PLANE_420_UNORM,
FORMAT_G8_B8_R8_3PLANE_422_UNORM,
FORMAT_G8_B8R8_2PLANE_422_UNORM,
FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
FORMAT_G16_B16_R16_3PLANE_420_UNORM,
FORMAT_G16_B16R16_2PLANE_420_UNORM,
FORMAT_G16_B16_R16_3PLANE_422_UNORM,
FORMAT_G16_B16R16_2PLANE_422_UNORM:
    linearTiling   FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    optimalTiling  FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    bufferFeatures FormatFeatureFlags:
        None

FORMAT_G8_B8_R8_3PLANE_444_UNORM,
FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
FORMAT_G16_B16_R16_3PLANE_444_UNORM:
    linearTiling   FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    optimalTiling  FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    bufferFeatures FormatFeatureFlags:
        None

FORMAT_R10X6_UNORM_PACK16,
FORMAT_R10X6G10X6_UNORM_2PACK16,
FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
FORMAT_R12X4_UNORM_PACK16,
FORMAT_R12X4G12X4_UNORM_2PACK16,
FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:
    linearTiling   FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    optimalTiling  FormatFeatureFlags:
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
        VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
        VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
        VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

    bufferFeatures FormatFeatureFlags:
        None

Unsupported formats:
FORMAT_UNDEFINED
FORMAT_R8G8_SRGB
FORMAT_R8G8B8_SRGB
FORMAT_B8G8R8_SRGB
FORMAT_D16_UNORM_S8_UINT
FORMAT_ETC2_R8G8B8_UNORM_BLOCK
FORMAT_ETC2_R8G8B8_SRGB_BLOCK
FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK
FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK
FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK
FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK
FORMAT_EAC_R11_UNORM_BLOCK
FORMAT_EAC_R11_SNORM_BLOCK
FORMAT_EAC_R11G11_UNORM_BLOCK
FORMAT_EAC_R11G11_SNORM_BLOCK
FORMAT_ASTC_4x4_UNORM_BLOCK
FORMAT_ASTC_4x4_SRGB_BLOCK
FORMAT_ASTC_5x4_UNORM_BLOCK
FORMAT_ASTC_5x4_SRGB_BLOCK
FORMAT_ASTC_5x5_UNORM_BLOCK
FORMAT_ASTC_5x5_SRGB_BLOCK
FORMAT_ASTC_6x5_UNORM_BLOCK
FORMAT_ASTC_6x5_SRGB_BLOCK
FORMAT_ASTC_6x6_UNORM_BLOCK
FORMAT_ASTC_6x6_SRGB_BLOCK
FORMAT_ASTC_8x5_UNORM_BLOCK
FORMAT_ASTC_8x5_SRGB_BLOCK
FORMAT_ASTC_8x6_UNORM_BLOCK
FORMAT_ASTC_8x6_SRGB_BLOCK
FORMAT_ASTC_8x8_UNORM_BLOCK
FORMAT_ASTC_8x8_SRGB_BLOCK
FORMAT_ASTC_10x5_UNORM_BLOCK
FORMAT_ASTC_10x5_SRGB_BLOCK
FORMAT_ASTC_10x6_UNORM_BLOCK
FORMAT_ASTC_10x6_SRGB_BLOCK
FORMAT_ASTC_10x8_UNORM_BLOCK
FORMAT_ASTC_10x8_SRGB_BLOCK
FORMAT_ASTC_10x10_UNORM_BLOCK
FORMAT_ASTC_10x10_SRGB_BLOCK
FORMAT_ASTC_12x10_UNORM_BLOCK
FORMAT_ASTC_12x10_SRGB_BLOCK
FORMAT_ASTC_12x12_UNORM_BLOCK
FORMAT_ASTC_12x12_SRGB_BLOCK
Overv commented 5 years ago

Have a look at the instructions for Linux listed here: https://vulkan.lunarg.com/doc/sdk/latest/linux/getting_started.html

kershnerd commented 5 years ago

I guess I don't fully understand. For some reason, I have to run: ./vkconfig ... to launch the vulkan configuration tool in order to use validation layers?

Overv commented 5 years ago

No, that's only for when applications don't enable the layers themselves.

kershnerd commented 5 years ago

OK... thanks!