Ubuntu で Vulkan を試す (成功編)

ようやく Ubuntu で Vulkan のアプリケーション動作をさせてみることができたので、そこまでの方法をまとめておきます。若干強引な作業をしていたり、そもそもベータドライバだったりするので、試す際には自己責任でお願いします。

ubuntu-vulkan-sample-particle

以降の作業は Ubuntu 14.04.4 AMD64 版で、Geforce GTX 750 Ti が刺さっている環境の話でとなります。
また、Ubuntu はクリーンインストールした直後から始めている想定です。

この状態で nouveau ドライバがロードされているため、まずはこれを無効化します。

追記 (06/12)

16.04 の環境で、もう少し手軽に入れられる方法が確立できましたので、こちらの「Ubuntu 16.04 で Vulkan を使う」記事のほうも参考になるかもしれません。

nouveau ドライバの無効化

“/etc/modprobe.d/blacklist-nouveau.conf” ファイルを開き、以下の内容を記述します。

blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

続いて、”/etc/modprobe.d/nouveau-kms.conf” に以下の内容を追記します。

options nouveau modeset=0

イメージの更新を行い、再起動します。

$ sudo update-initramfs -u
$ sudo reboot

再起動後、 lsmod で nouveau モジュールが存在していないことを確認してください。

NVIDIAドライバのインストール

ドライバが必要なパッケージがあるのでここでインストールしておきます。

sudo apt-get install linux-headers-generic linux-source build-essential

Nvidia Vulkan Driver: https://developer.nvidia.com/vulkan-driver

上記のページからNVIDIAのドライバをダウンロードして、仮想コンソールに画面を切り替えます。
この後 X-Window のセッションは終了されるので注意してください。

仮想コンソールへは Alt+Shift+F1 などで切り替えます。
そしてダウンロードしたディレクトリへ移動して、実行属性をつけておきます。
インストールの直前で、lightdm を停止することも忘れないように。

$ chmod +x NVIDIA-Linux-x86_64-355.00.27.run
$ sudo service lightdm  stop
$ sudo ./NVIDIA-Linux-x86_64-355.00.27.run --kernel-source-path=/usr/src/linux-headers-4.2.0-27-generic

もしかすると、”The distribution-provided pre-install script failed!” というメッセージが表示されるかもしれません。
このときエラーログを確認して重要な情報がなければ、pre-install script を削除してしまいます。このスクリプトが残っているとずっとドライバのインストール時にエラーが出てしまうようです。
この pre-install script は /usr/lib/nvidia にできるようです。

自分の手元では上記のようになりましたが、カーネルのバージョンによってはこれらを適宜合わせてあげることが必要だと思われます。 uname -r などで確認して作業を行ってください。

pre-install script を削除して再びドライバインストールを行うと、うまくいくかと思われます。

なおインストーラー途中で聞かれるメッセージは、システムにインストール済みの各状態によって変わるようです。
たとえば、32bit ライブラリがシステムにインストールされていると 32-bit compatibility libraries をインストールするかと聞かれると思います。このときにはインストールをしておいた方がよいでしょう。
またnvidia-xconfig について聞かれた部分については NO を選択しました。
KMS関連で問われることもあるようです。

ドライバのインストール後は、システムを再起動します。
再起動後に、 NVIDIA X Server Settings を開いてみて、ドライバが 355.00.27 となっているかを確認してください。

Vulkan SDK をインストール

ドライバがインストールできたので Vulkan SDK をインストールします。

Vulkan SDK : https://vulkan.lunarg.com/signin

上記のサイトの下部に各プラットフォーム用のSDKへのリンクがあります。ここから vulkansdk-linux-x86_64-1.0.3.1.run をダウンロードし、実行属性をつけておきます。この SDK のインストールには、必要となるパッケージが別に存在するため、事前にインストールしておきます。

$ sudo apt-get install graphviz

続いて、SDKのインストーラーを実行します。

$ sudo ./vulkansdk-linux-x86_64-1.0.3.1.run

SDKがインストールできれば、vulkanの使用可能状態を見ることができるツールが入るので、実行してみたいと思います。

$ vulkaninfo

もし実行できない場合は SDK のインストールに失敗しています。また情報がとれず失敗するようであれば、ドライバのインストールに失敗しています。Geforce GTX 750 Ti での結果は本記事末尾に載せておきます。

サンプルを動かす

サンプルのビルドに必要なものがあるので、以下のようにインストールしてしまいます。

$ sudo apt-get install libtool autoconf  
$ sudo apt-get install libdrm-dev libwayland-dev libx11-dev
$ sudo apt-get install cmake libassimp-dev
$ sudo apt-get install git

サンプルとして GitHub よりダウンロード(クローン)します。

$ git clone https://github.com/SaschaWillems/Vulkan.git

サンプルのディレクトリでコンパイルを行います。

$ cd Vulkan
$ cmake CMakeLists.txt
$ make

うまくいけば、 bin ディレクトリに各実行体ができあがってくるようなのでそれを実行してみます。実行した結果が冒頭に貼ってあるスクリーンショットの図です。

$ cd bin
$ ./computeparticles

気になった点

今回のサンプルは手元でビルドしてうまく動きました。しかしビルド済みを配布しているものがあったのでそれを試しに実行してみたところ、ディスクリプタのサイズが違う・・・?とかいわれてしまいました。Vulkan使用のアプリはドライバもしくは環境に依存してしまう何かがあったりするんじゃないかと少々気になりました。

最後に、手元での vulkaninfo の結果の一部を以下に貼っておきます。

===========
VULKAN INFO
===========

Vulkan API Version: 1.0.3

INFO: [loader] Code 0 : Found manifest file /etc/vulkan/explicit_layer.d/VkLayer_draw_state.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /etc/vulkan/explicit_layer.d/VkLayer_device_limits.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /etc/vulkan/explicit_layer.d/VkLayer_swapchain.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /etc/vulkan/explicit_layer.d/VkLayer_threading.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /etc/vulkan/explicit_layer.d/VkLayer_api_dump.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /etc/vulkan/explicit_layer.d/VkLayer_image.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /etc/vulkan/explicit_layer.d/VkLayer_vktrace_layer.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /etc/vulkan/explicit_layer.d/VkLayer_mem_tracker.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /etc/vulkan/explicit_layer.d/VkLayer_unique_objects.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /etc/vulkan/explicit_layer.d/VkLayer_object_tracker.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /etc/vulkan/explicit_layer.d/VkLayer_screenshot.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /etc/vulkan/explicit_layer.d/VkLayer_param_checker.json, version "1.0.0"
INFO: [loader] Code 0 : Found manifest file /etc/vulkan/icd.d/nvidia_icd.json, version "1.0.0"
Instance Extensions and layers:
===============================
Instance Extensions	count = 4
	VK_KHR_surface                  : extension revision 25
	VK_KHR_xcb_surface              : extension revision  6
	VK_KHR_xlib_surface             : extension revision  6
	VK_EXT_debug_report             : extension revision  1

Instance Layers	count = 12
	VK_LAYER_LUNARG_draw_state (LunarG Validation Layer) Vulkan version 1.0.3, layer version 1
	VK_LAYER_LUNARG_draw_state Extensions	count = 1
		VK_EXT_debug_report             : extension revision  1

	VK_LAYER_LUNARG_device_limits (LunarG Validation Layer) Vulkan version 1.0.3, layer version 1
	VK_LAYER_LUNARG_device_limits Extensions	count = 1
		VK_EXT_debug_report             : extension revision  1

	VK_LAYER_LUNARG_swapchain (LunarG Validation Layer) Vulkan version 1.0.3, layer version 1
	VK_LAYER_LUNARG_swapchain Extensions	count = 1
		VK_EXT_debug_report             : extension revision  1

	VK_LAYER_LUNARG_threading (LunarG Validation Layer) Vulkan version 1.0.3, layer version 1
	VK_LAYER_LUNARG_threading Extensions	count = 1
		VK_EXT_debug_report             : extension revision  1

	VK_LAYER_LUNARG_api_dump (LunarG debug layer) Vulkan version 1.0.3, layer version 1
	VK_LAYER_LUNARG_api_dump Extensions	count = 0

	VK_LAYER_LUNARG_image (LunarG Validation Layer) Vulkan version 1.0.3, layer version 1
	VK_LAYER_LUNARG_image Extensions	count = 1
		VK_EXT_debug_report             : extension revision  1

	VK_LAYER_LUNARG_vktrace (Vktrace tracing library) Vulkan version 1.0.3, layer version 1
	VK_LAYER_LUNARG_vktrace Extensions	count = 0

	VK_LAYER_LUNARG_mem_tracker (LunarG Validation Layer) Vulkan version 1.0.3, layer version 1
	VK_LAYER_LUNARG_mem_tracker Extensions	count = 1
		VK_EXT_debug_report             : extension revision  1

	VK_LAYER_GOOGLE_unique_objects (Google Validation Layer) Vulkan version 1.0.3, layer version 1
	VK_LAYER_GOOGLE_unique_objects Extensions	count = 0

	VK_LAYER_LUNARG_object_tracker (LunarG Validation Layer) Vulkan version 1.0.3, layer version 1
	VK_LAYER_LUNARG_object_tracker Extensions	count = 1
		VK_EXT_debug_report             : extension revision  1

	VK_LAYER_LUNARG_screenshot (LunarG image capture layer) Vulkan version 1.0.3, layer version 1
	VK_LAYER_LUNARG_screenshot Extensions	count = 0

	VK_LAYER_LUNARG_param_checker (LunarG Validation Layer) Vulkan version 1.0.3, layer version 1
	VK_LAYER_LUNARG_param_checker Extensions	count = 1
		VK_EXT_debug_report             : extension revision  1

Device Extensions and layers:
=============================
GPU0
VkPhysicalDeviceProperties:
===========================
	apiVersion     = 4194307
	driverVersion  = 1488979648
	vendorID       = 0x10de
	deviceID       = 0x1380
	deviceType     = DISCRETE_GPU
	deviceName     = GTX 750 Ti
	VkPhysicalDeviceLimits:
	-----------------------
		maxImageDimension1D                     = 0x4000
		maxImageDimension2D                     = 0x4000
		maxImageDimension3D                     = 0x800
		maxImageDimensionCube                   = 0x4000
		maxImageArrayLayers                     = 0x800
		maxTexelBufferElements                  = 0x8000000
		maxUniformBufferRange                   = 0x10000
		maxStorageBufferRange                   = 0x7fffffff
		maxPushConstantsSize                    = 0x100
		maxMemoryAllocationCount                = 0xffffffff
		maxSamplerAllocationCount               = 0xfa0
		bufferImageGranularity                  = 0x10000
		sparseAddressSpaceSize                  = 0xffffffffffffffff
		maxBoundDescriptorSets                  = 0x4
		maxPerStageDescriptorSamplers           = 0xfa0
		maxPerStageDescriptorUniformBuffers     = 0xc
		maxPerStageDescriptorStorageBuffers     = 0x10
		maxPerStageDescriptorSampledImages      = 0x2000
		maxPerStageDescriptorStorageImages      = 0x2000
		maxPerStageDescriptorInputAttachments   = 0x8
		maxPerStageResources                    = 0x6024
		maxDescriptorSetSamplers                = 0xfa0
		maxDescriptorSetUniformBuffers          = 0x48
		maxDescriptorSetUniformBuffersDynamic   = 0x48
		maxDescriptorSetStorageBuffers          = 0x60
		maxDescriptorSetStorageBuffersDynamic   = 0x60
		maxDescriptorSetSampledImages           = 0xc000
		maxDescriptorSetStorageImages           = 0xc000
		maxDescriptorSetInputAttachments        = 0x8
		maxVertexInputAttributes                = 0x10
		maxVertexInputBindings                  = 0x10
		maxVertexInputAttributeOffset           = 0x7ff
		maxVertexInputBindingStride             = 0x800
		maxVertexOutputComponents               = 0x80
		maxTessellationGenerationLevel          = 0x40
		maxTessellationPatchSize                        = 0x20
		maxTessellationControlPerVertexInputComponents  = 0x80
		maxTessellationControlPerVertexOutputComponents = 0x80
		maxTessellationControlPerPatchOutputComponents  = 0x78
		maxTessellationControlTotalOutputComponents     = 0x1078
		maxTessellationEvaluationInputComponents        = 0x80
		maxTessellationEvaluationOutputComponents       = 0x80
		maxGeometryShaderInvocations            = 0x20
		maxGeometryInputComponents              = 0x80
		maxGeometryOutputComponents             = 0x80
		maxGeometryOutputVertices               = 0x400
		maxGeometryTotalOutputComponents        = 0x400
		maxFragmentInputComponents              = 0x80
		maxFragmentOutputAttachments            = 0x8
		maxFragmentDualSrcAttachments           = 0x1
		maxFragmentCombinedOutputResources      = 0x10
		maxComputeSharedMemorySize              = 0xc000
		maxComputeWorkGroupCount[0]             = 0x7fffffff
		maxComputeWorkGroupCount[1]             = 0xffff
		maxComputeWorkGroupCount[2]             = 0xffff
		maxComputeWorkGroupInvocations          = 0x600
		maxComputeWorkGroupSize[0]              = 0x600
		maxComputeWorkGroupSize[1]              = 0x400
		maxComputeWorkGroupSize[2]              = 0x40
		subPixelPrecisionBits                   = 0x8
		subTexelPrecisionBits                   = 0x8
		mipmapPrecisionBits                     = 0x8
		maxDrawIndexedIndexValue                = 0xffffffff
		maxDrawIndirectCount                    = 0xffffffff
		maxSamplerLodBias                       = 15.000000
		maxSamplerAnisotropy                    = 16.000000
		maxViewports                            = 0x10
		maxViewportDimensions[0]                = 0x4000
		maxViewportDimensions[1]                = 0x4000
		viewportBoundsRange[0]                  = -32768.000000
		viewportBoundsRange[1]                  = 32768.000000
		viewportSubPixelBits                    = 0x8
		minMemoryMapAlignment                   = 64
		minTexelBufferOffsetAlignment           = 0x10
		minUniformBufferOffsetAlignment         = 0x100
		minStorageBufferOffsetAlignment         = 0x20
		minTexelOffset                          = 0xfffffff8
		maxTexelOffset                          = 0x7
		minTexelGatherOffset                    = 0xffffffe0
		maxTexelGatherOffset                    = 0x1f
		minInterpolationOffset                  = -0.500000
		maxInterpolationOffset                  = 0.437500
		subPixelInterpolationOffsetBits         = 0x4
		maxFramebufferWidth                     = 0x4000
		maxFramebufferHeight                    = 0x4000
		maxFramebufferLayers                    = 0x800
		framebufferColorSampleCounts            = 0xf
		framebufferDepthSampleCounts            = 0xf
		framebufferStencilSampleCounts          = 0xf
		maxColorAttachments                     = 0x8
		sampledImageColorSampleCounts           = 0xf
		sampledImageDepthSampleCounts           = 0xf
		sampledImageStencilSampleCounts         = 0xf
		sampledImageIntegerSampleCounts         = 0xf
		storageImageSampleCounts                = 0xf
		maxSampleMaskWords                      = 0x1
		timestampComputeAndGraphics             = 1
		timestampPeriod                         = 0x1.000000
		maxClipDistances                        = 0x8
		maxCullDistances                        = 0x8
		maxCombinedClipAndCullDistances         = 0x8
		pointSizeRange[0]                       = 1.000000
		pointSizeRange[1]                       = 189.875000
		lineWidthRange[0]                       = 0.500000
		lineWidthRange[1]                       = 10.000000
		pointSizeGranularity                    = 0.125000
		lineWidthGranularity                    = 0.125000
		strictLines                             = 1
		standardSampleLocations                 = 1
		optimalBufferCopyOffsetAlignment        = 0x1
		optimalBufferCopyRowPitchAlignment      = 0x1
		nonCoherentAtomSize                     = 0x40
	VkPhysicalDeviceSparseProperties:
	---------------------------------
		residencyStandard2DBlockShape            = 1
		residencyStandard2DMultisampleBlockShape = 1
		residencyStandard3DBlockShape            = 1
		residencyAlignedMipSize                  = 1
		residencyNonResidentStrict               = 0

Device Extensions	count = 2
	VK_KHR_swapchain                : extension revision 67
	VK_NV_glsl_shader               : extension revision  1


Layers	count = 13
	VK_LAYER_LUNARG_draw_state (LunarG Validation Layer) Vulkan version 1.0.3, layer version 1
	VK_LAYER_LUNARG_draw_state Extensions	count = 1
		VK_LUNARG_DEBUG_MARKER          : extension revision  0

	VK_LAYER_LUNARG_device_limits (LunarG Validation Layer) Vulkan version 1.0.3, layer version 1
	VK_LAYER_LUNARG_device_limits Extensions	count = 0

	VK_LAYER_LUNARG_swapchain (LunarG Validation Layer) Vulkan version 1.0.3, layer version 1
	VK_LAYER_LUNARG_swapchain Extensions	count = 0

	VK_LAYER_LUNARG_threading (LunarG Validation Layer) Vulkan version 1.0.3, layer version 1
	VK_LAYER_LUNARG_threading Extensions	count = 0

	VK_LAYER_LUNARG_api_dump (LunarG debug layer) Vulkan version 1.0.3, layer version 1
	VK_LAYER_LUNARG_api_dump Extensions	count = 0

	VK_LAYER_LUNARG_image (LunarG Validation Layer) Vulkan version 1.0.3, layer version 1
	VK_LAYER_LUNARG_image Extensions	count = 0

	VK_LAYER_LUNARG_vktrace (Vktrace tracing library) Vulkan version 1.0.3, layer version 1
	VK_LAYER_LUNARG_vktrace Extensions	count = 0

	VK_LAYER_LUNARG_mem_tracker (LunarG Validation Layer) Vulkan version 1.0.3, layer version 1
	VK_LAYER_LUNARG_mem_tracker Extensions	count = 0

	VK_LAYER_GOOGLE_unique_objects (Google Validation Layer) Vulkan version 1.0.3, layer version 1
	VK_LAYER_GOOGLE_unique_objects Extensions	count = 0

	VK_LAYER_LUNARG_object_tracker (LunarG Validation Layer) Vulkan version 1.0.3, layer version 1
	VK_LAYER_LUNARG_object_tracker Extensions	count = 0

	VK_LAYER_LUNARG_screenshot (LunarG image capture layer) Vulkan version 1.0.3, layer version 1
	VK_LAYER_LUNARG_screenshot Extensions	count = 0

	VK_LAYER_LUNARG_param_checker (LunarG Validation Layer) Vulkan version 1.0.3, layer version 1
	VK_LAYER_LUNARG_param_checker Extensions	count = 0

	VK_LAYER_LUNARG_standard_validation (LunarG Standard Validation Layer) Vulkan version 1.0.3, layer version 1
	VK_LAYER_LUNARG_standard_validation Extensions	count = 0


VkQueueFamilyProperties[0]:
============================
	queueFlags         = GCD
	queueCount         = 16
	timestampValidBits = 64
	minImageTransferGranularity = (1, 1, 1)

VkPhysicalDeviceMemoryProperties:
=================================
	memoryTypeCount       = 4
	memoryTypes[0] : 
		propertyFlags = 0
		heapIndex     = 1
	memoryTypes[1] : 
		propertyFlags = 1
		heapIndex     = 0
	memoryTypes[2] : 
		propertyFlags = 6
		heapIndex     = 1
	memoryTypes[3] : 
		propertyFlags = 14
		heapIndex     = 1
	memoryHeapCount       = 2
	memoryHeaps[0] : 
		size          = 2147483648
	memoryHeaps[1] : 
		size          = 1572569088

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
	textureCompressionETC2                  = 0
	textureCompressionASTC_LDR              = 0
	textureCompressionBC                    = 1
	occlusionQueryPrecise                   = 1
	pipelineStatisticsQuery                 = 1
	vertexSideEffects                       = 1
	tessellationSideEffects                 = 1
	geometrySideEffects                     = 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                             = 0
	shaderResourceResidency                 = 0
	shaderResourceMinLod                    = 0
	alphaToOne                              = 1
	sparseBinding                           = 1
	sparseResidencyBuffer                   = 1
	sparseResidencyImage2D                  = 1
	sparseResidencyImage3D                  = 1
	sparseResidency2Samples                 = 1
	sparseResidency4Samples                 = 1
	sparseResidency8Samples                 = 1
	sparseResidency16Samples                = 0
	sparseResidencyAliased                  = 1
	variableMultisampleRate                 = 1
	iheritedQueries                         = 1
Vulkan
すらりんをフォローする
すらりん日記

コメント

  1. 匿名 キボウ より:

    すらりん様、ありがとうございます。
    ご紹介の記事を参考に、Ubuntu16.04 amd64版 Geforce GTX 750 TiにてVulkanDriverのインストールが出来ました。
    VulkanSDKでは少し躓きましたが、強引にパス(/opt/VulkanSDK/)を通すことにて解決しました。

    以下、私の環境での vulkaninfoの結果です。

    ===========
    VULKAN INFO
    ===========

    Vulkan API Version: 1.0.13

    INFO: [loader] Code 0 : Found manifest file /opt/VulkanSDK/1.0.13.0/x86_64/etc/explicit_layer.d/VkLayer_unique_objects.json, version "1.0.0"
    INFO: [loader] Code 0 : Found manifest file /opt/VulkanSDK/1.0.13.0/x86_64/etc/explicit_layer.d/VkLayer_parameter_validation.json, version "1.0.0"
    INFO: [loader] Code 0 : Found manifest file /opt/VulkanSDK/1.0.13.0/x86_64/etc/explicit_layer.d/VkLayer_swapchain.json, version "1.0.0"
    INFO: [loader] Code 0 : Found manifest file /opt/VulkanSDK/1.0.13.0/x86_64/etc/explicit_layer.d/VkLayer_threading.json, version "1.0.0"
    INFO: [loader] Code 0 : Found manifest file /opt/VulkanSDK/1.0.13.0/x86_64/etc/explicit_layer.d/VkLayer_object_tracker.json, version "1.0.0"
    INFO: [loader] Code 0 : Found manifest file /opt/VulkanSDK/1.0.13.0/x86_64/etc/explicit_layer.d/VkLayer_api_dump.json, version "1.0.0"
    INFO: [loader] Code 0 : Found manifest file /opt/VulkanSDK/1.0.13.0/x86_64/etc/explicit_layer.d/VkLayer_core_validation.json, version "1.0.0"
    INFO: [loader] Code 0 : Found manifest file /opt/VulkanSDK/1.0.13.0/x86_64/etc/explicit_layer.d/VkLayer_device_limits.json, version "1.0.0"
    INFO: [loader] Code 0 : Found manifest file /opt/VulkanSDK/1.0.13.0/x86_64/etc/explicit_layer.d/VkLayer_image.json, version "1.0.0"
    INFO: [loader] Code 0 : Found manifest file /opt/VulkanSDK/1.0.13.0/x86_64/etc/explicit_layer.d/VkLayer_screenshot.json, version "1.0.0"
    INFO: [loader] Code 0 : Found manifest file /opt/VulkanSDK/1.0.13.0/x86_64/etc/explicit_layer.d/VkLayer_vktrace_layer.json, version "1.0.0"
    INFO: [loader] Code 0 : Found manifest file /etc/vulkan/icd.d/nvidia_icd.json, version "1.0.0"
    Instance Extensions and layers:
    ===============================
    Instance Extensions count = 4
    VK_KHR_surface : extension revision 25
    VK_KHR_xcb_surface : extension revision 6
    VK_KHR_xlib_surface : extension revision 6
    VK_EXT_debug_report : extension revision 2

    Instance Layers count = 12
    VK_LAYER_GOOGLE_unique_objects (Google Validation Layer) Vulkan version 1.0.13, layer version 1
    VK_LAYER_GOOGLE_unique_objects Extensions count = 0

    VK_LAYER_LUNARG_parameter_validation (LunarG Validation Layer) Vulkan version 1.0.13, layer version 1
    VK_LAYER_LUNARG_parameter_validation Extensions count = 1
    VK_EXT_debug_report : extension revision 2

    VK_LAYER_LUNARG_swapchain (LunarG Validation Layer) Vulkan version 1.0.13, layer version 1
    VK_LAYER_LUNARG_swapchain Extensions count = 1
    VK_EXT_debug_report : extension revision 2

    VK_LAYER_GOOGLE_threading (Google Validation Layer) Vulkan version 1.0.13, layer version 1
    VK_LAYER_GOOGLE_threading Extensions count = 1
    VK_EXT_debug_report : extension revision 2

    VK_LAYER_LUNARG_object_tracker (LunarG Validation Layer) Vulkan version 1.0.13, layer version 1
    VK_LAYER_LUNARG_object_tracker Extensions count = 1
    VK_EXT_debug_report : extension revision 2

    VK_LAYER_LUNARG_api_dump (LunarG debug layer) Vulkan version 1.0.13, layer version 1
    VK_LAYER_LUNARG_api_dump Extensions count = 0

    VK_LAYER_LUNARG_core_validation (LunarG Validation Layer) Vulkan version 1.0.13, layer version 1
    VK_LAYER_LUNARG_core_validation Extensions count = 1
    VK_EXT_debug_report : extension revision 2

    VK_LAYER_LUNARG_device_limits (LunarG Validation Layer) Vulkan version 1.0.13, layer version 1
    VK_LAYER_LUNARG_device_limits Extensions count = 1
    VK_EXT_debug_report : extension revision 2

    VK_LAYER_LUNARG_image (LunarG Validation Layer) Vulkan version 1.0.13, layer version 1
    VK_LAYER_LUNARG_image Extensions count = 1
    VK_EXT_debug_report : extension revision 2

    VK_LAYER_LUNARG_screenshot (LunarG image capture layer) Vulkan version 1.0.13, layer version 1
    VK_LAYER_LUNARG_screenshot Extensions count = 0

    VK_LAYER_LUNARG_vktrace (Vktrace tracing library) Vulkan version 1.0.13, layer version 1
    VK_LAYER_LUNARG_vktrace Extensions count = 0

    VK_LAYER_LUNARG_standard_validation (LunarG Standard Validation Layer) Vulkan version 1.0.13, layer version 1
    VK_LAYER_LUNARG_standard_validation Extensions count = 1
    VK_EXT_debug_report : extension revision 2

    Device Extensions and layers:
    =============================
    GPU0
    VkPhysicalDeviceProperties:
    ===========================
    apiVersion = 4194312
    driverVersion = 1539604480
    vendorID = 0x10de
    deviceID = 0x1380
    deviceType = DISCRETE_GPU
    deviceName = GTX 750 Ti
    VkPhysicalDeviceLimits:
    -----------------------
    maxImageDimension1D = 0x4000
    maxImageDimension2D = 0x4000
    maxImageDimension3D = 0x800
    maxImageDimensionCube = 0x4000
    maxImageArrayLayers = 0x800
    maxTexelBufferElements = 0x8000000
    maxUniformBufferRange = 0x10000
    maxStorageBufferRange = 0x7fffffff
    maxPushConstantsSize = 0x100
    maxMemoryAllocationCount = 0xffffffff
    maxSamplerAllocationCount = 0xfa0
    bufferImageGranularity = 0x10000
    sparseAddressSpaceSize = 0xffffffffffffffff
    maxBoundDescriptorSets = 0x8
    maxPerStageDescriptorSamplers = 0xfa0
    maxPerStageDescriptorUniformBuffers = 0xc
    maxPerStageDescriptorStorageBuffers = 0x10
    maxPerStageDescriptorSampledImages = 0x2000
    maxPerStageDescriptorStorageImages = 0x2000
    maxPerStageDescriptorInputAttachments = 0x8
    maxPerStageResources = 0x6024
    maxDescriptorSetSamplers = 0xfa0
    maxDescriptorSetUniformBuffers = 0x48
    maxDescriptorSetUniformBuffersDynamic = 0x48
    maxDescriptorSetStorageBuffers = 0x60
    maxDescriptorSetStorageBuffersDynamic = 0x60
    maxDescriptorSetSampledImages = 0xc000
    maxDescriptorSetStorageImages = 0xc000
    maxDescriptorSetInputAttachments = 0x8
    maxVertexInputAttributes = 0x10
    maxVertexInputBindings = 0x20
    maxVertexInputAttributeOffset = 0x7ff
    maxVertexInputBindingStride = 0x800
    maxVertexOutputComponents = 0x80
    maxTessellationGenerationLevel = 0x40
    maxTessellationPatchSize = 0x20
    maxTessellationControlPerVertexInputComponents = 0x80
    maxTessellationControlPerVertexOutputComponents = 0x80
    maxTessellationControlPerPatchOutputComponents = 0x78
    maxTessellationControlTotalOutputComponents = 0x1078
    maxTessellationEvaluationInputComponents = 0x80
    maxTessellationEvaluationOutputComponents = 0x80
    maxGeometryShaderInvocations = 0x20
    maxGeometryInputComponents = 0x80
    maxGeometryOutputComponents = 0x80
    maxGeometryOutputVertices = 0x400
    maxGeometryTotalOutputComponents = 0x400
    maxFragmentInputComponents = 0x80
    maxFragmentOutputAttachments = 0x8
    maxFragmentDualSrcAttachments = 0x1
    maxFragmentCombinedOutputResources = 0x10
    maxComputeSharedMemorySize = 0xc000
    maxComputeWorkGroupCount[0] = 0x7fffffff
    maxComputeWorkGroupCount[1] = 0xffff
    maxComputeWorkGroupCount[2] = 0xffff
    maxComputeWorkGroupInvocations = 0x600
    maxComputeWorkGroupSize[0] = 0x600
    maxComputeWorkGroupSize[1] = 0x400
    maxComputeWorkGroupSize[2] = 0x40
    subPixelPrecisionBits = 0x8
    subTexelPrecisionBits = 0x8
    mipmapPrecisionBits = 0x8
    maxDrawIndexedIndexValue = 0xffffffff
    maxDrawIndirectCount = 0xffffffff
    maxSamplerLodBias = 15.000000
    maxSamplerAnisotropy = 16.000000
    maxViewports = 0x10
    maxViewportDimensions[0] = 0x4000
    maxViewportDimensions[1] = 0x4000
    viewportBoundsRange[0] = -32768.000000
    viewportBoundsRange[1] = 32768.000000
    viewportSubPixelBits = 0x8
    minMemoryMapAlignment = 64
    minTexelBufferOffsetAlignment = 0x10
    minUniformBufferOffsetAlignment = 0x100
    minStorageBufferOffsetAlignment = 0x20
    minTexelOffset = 0xfffffff8
    maxTexelOffset = 0x7
    minTexelGatherOffset = 0xffffffe0
    maxTexelGatherOffset = 0x1f
    minInterpolationOffset = -0.500000
    maxInterpolationOffset = 0.437500
    subPixelInterpolationOffsetBits = 0x4
    maxFramebufferWidth = 0x4000
    maxFramebufferHeight = 0x4000
    maxFramebufferLayers = 0x800
    framebufferColorSampleCounts = 0xf
    framebufferDepthSampleCounts = 0xf
    framebufferStencilSampleCounts = 0xf
    maxColorAttachments = 0x8
    sampledImageColorSampleCounts = 0xf
    sampledImageDepthSampleCounts = 0xf
    sampledImageStencilSampleCounts = 0xf
    sampledImageIntegerSampleCounts = 0xf
    storageImageSampleCounts = 0xf
    maxSampleMaskWords = 0x1
    timestampComputeAndGraphics = 1
    timestampPeriod = 0x1.000000
    maxClipDistances = 0x8
    maxCullDistances = 0x8
    maxCombinedClipAndCullDistances = 0x8
    pointSizeRange[0] = 1.000000
    pointSizeRange[1] = 189.875000
    lineWidthRange[0] = 0.500000
    lineWidthRange[1] = 10.000000
    pointSizeGranularity = 0.125000
    lineWidthGranularity = 0.125000
    strictLines = 1
    standardSampleLocations = 1
    optimalBufferCopyOffsetAlignment = 0x1
    optimalBufferCopyRowPitchAlignment = 0x1
    nonCoherentAtomSize = 0x40
    VkPhysicalDeviceSparseProperties:
    ---------------------------------
    residencyStandard2DBlockShape = 1
    residencyStandard2DMultisampleBlockShape = 1
    residencyStandard3DBlockShape = 1
    residencyAlignedMipSize = 1
    residencyNonResidentStrict = 0

    Device Extensions count = 3
    VK_KHR_swapchain : extension revision 67
    VK_NV_glsl_shader : extension revision 1
    VK_KHR_sampler_mirror_clamp_to_edge: extension revision 1

    Layers count = 0

    VkQueueFamilyProperties[0]:
    ============================
    queueFlags = GCD
    queueCount = 16
    timestampValidBits = 64
    minImageTransferGranularity = (1, 1, 1)

    VkQueueFamilyProperties[1]:
    ============================
    queueFlags = ..D
    queueCount = 1
    timestampValidBits = 64
    minImageTransferGranularity = (1, 1, 1)

    VkPhysicalDeviceMemoryProperties:
    =================================
    memoryTypeCount = 5
    memoryTypes[0] :
    propertyFlags = 0
    heapIndex = 1
    memoryTypes[1] :
    propertyFlags = 0
    heapIndex = 1
    memoryTypes[2] :
    propertyFlags = 1
    heapIndex = 0
    memoryTypes[3] :
    propertyFlags = 6
    heapIndex = 1
    memoryTypes[4] :
    propertyFlags = 14
    heapIndex = 1
    memoryHeapCount = 2
    memoryHeaps[0] :
    size = 2146435072
    memoryHeaps[1] :
    size = 18929347584

    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
    textureCompressionETC2 = 0
    textureCompressionASTC_LDR = 0
    textureCompressionBC = 1
    occlusionQueryPrecise = 1
    pipelineStatisticsQuery = 1
    vertexSideEffects = 1
    tessellationSideEffects = 1
    geometrySideEffects = 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 = 0
    shaderResourceResidency = 0
    shaderResourceMinLod = 0
    alphaToOne = 1
    sparseBinding = 1
    sparseResidencyBuffer = 1
    sparseResidencyImage2D = 1
    sparseResidencyImage3D = 1
    sparseResidency2Samples = 1
    sparseResidency4Samples = 1
    sparseResidency8Samples = 1
    sparseResidency16Samples = 0
    sparseResidencyAliased = 1
    variableMultisampleRate = 1
    iheritedQueries = 1

    FORMAT_UNDEFINED:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    None

    FORMAT_R4G4_UNORM_PACK8:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    optimalTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT

    FORMAT_R4G4B4A4_UNORM_PACK16:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    optimalTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT

    FORMAT_B4G4R4A4_UNORM_PACK16:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    optimalTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT

    FORMAT_R5G6B5_UNORM_PACK16:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT

    FORMAT_B5G6R5_UNORM_PACK16:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    optimalTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT

    FORMAT_R5G5B5A1_UNORM_PACK16:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    optimalTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT

    FORMAT_B5G5R5A1_UNORM_PACK16:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    optimalTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT

    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
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT

    FORMAT_R8_UNORM:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R8_SNORM:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    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
    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:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R8_SSCALED:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R8_UINT:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R8_SINT:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    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
    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:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    optimalTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    bufferFeatures FormatFeatureFlags:
    None

    FORMAT_R8G8_UNORM:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R8G8_SNORM:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R8G8_USCALED:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R8G8_SSCALED:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R8G8_UINT:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R8G8_SINT:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R8G8_SRGB:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    None

    FORMAT_R8G8B8_UNORM:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R8G8B8_SNORM:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R8G8B8_USCALED:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R8G8B8_SSCALED:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R8G8B8_UINT:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R8G8B8_SINT:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R8G8B8_SRGB:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    None

    FORMAT_B8G8R8_UNORM:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_B8G8R8_SNORM:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_B8G8R8_USCALED:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_B8G8R8_SSCALED:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_B8G8R8_UINT:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_B8G8R8_SINT:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_B8G8R8_SRGB:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    None

    FORMAT_R8G8B8A8_UNORM:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R8G8B8A8_SNORM:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R8G8B8A8_USCALED:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R8G8B8A8_SSCALED:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R8G8B8A8_UINT:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R8G8B8A8_SINT:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R8G8B8A8_SRGB:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    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
    bufferFeatures FormatFeatureFlags:
    None

    FORMAT_B8G8R8A8_UNORM:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    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
    optimalTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_B8G8R8A8_USCALED:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_B8G8R8A8_SSCALED:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_B8G8R8A8_UINT:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    optimalTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_B8G8R8A8_SINT:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    optimalTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_B8G8R8A8_SRGB:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    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
    bufferFeatures FormatFeatureFlags:
    None

    FORMAT_A8B8G8R8_UNORM_PACK32:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_A8B8G8R8_SNORM_PACK32:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_A8B8G8R8_USCALED_PACK32:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_A8B8G8R8_SSCALED_PACK32:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_A8B8G8R8_UINT_PACK32:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_A8B8G8R8_SINT_PACK32:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    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
    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
    bufferFeatures FormatFeatureFlags:
    None

    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
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_A2R10G10B10_SNORM_PACK32:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_A2R10G10B10_USCALED_PACK32:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_A2R10G10B10_SSCALED_PACK32:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_A2R10G10B10_UINT_PACK32:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    optimalTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_A2R10G10B10_SINT_PACK32:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_A2B10G10R10_UNORM_PACK32:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_A2B10G10R10_SNORM_PACK32:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_A2B10G10R10_USCALED_PACK32:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_A2B10G10R10_SSCALED_PACK32:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_A2B10G10R10_UINT_PACK32:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_A2B10G10R10_SINT_PACK32:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R16_UNORM:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R16_SNORM:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R16_USCALED:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R16_SSCALED:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R16_UINT:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R16_SINT:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R16_SFLOAT:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R16G16_UNORM:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R16G16_SNORM:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R16G16_USCALED:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R16G16_SSCALED:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R16G16_UINT:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R16G16_SINT:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R16G16_SFLOAT:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R16G16B16_UNORM:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R16G16B16_SNORM:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R16G16B16_USCALED:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R16G16B16_SSCALED:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R16G16B16_UINT:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R16G16B16_SINT:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R16G16B16_SFLOAT:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R16G16B16A16_UNORM:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R16G16B16A16_SNORM:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R16G16B16A16_USCALED:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R16G16B16A16_SSCALED:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R16G16B16A16_UINT:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R16G16B16A16_SINT:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R16G16B16A16_SFLOAT:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R32_UINT:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    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
    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_SINT:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    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
    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
    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
    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_R32G32_UINT:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R32G32_SINT:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R32G32_SFLOAT:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R32G32B32_UINT:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    optimalTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R32G32B32_SINT:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    optimalTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    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
    optimalTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R32G32B32A32_UINT:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R32G32B32A32_SINT:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R32G32B32A32_SFLOAT:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R64_UINT:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R64_SINT:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R64_SFLOAT:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R64G64_UINT:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R64G64_SINT:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R64G64_SFLOAT:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R64G64B64_UINT:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R64G64B64_SINT:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R64G64B64_SFLOAT:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R64G64B64A64_UINT:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R64G64B64A64_SINT:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    FORMAT_R64G64B64A64_SFLOAT:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    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
    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
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

    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
    optimalTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    bufferFeatures FormatFeatureFlags:
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT

    FORMAT_D16_UNORM:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    optimalTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    bufferFeatures FormatFeatureFlags:
    None

    FORMAT_X8_D24_UNORM_PACK32:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    optimalTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    bufferFeatures FormatFeatureFlags:
    None

    FORMAT_D32_SFLOAT:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    optimalTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    bufferFeatures FormatFeatureFlags:
    None

    FORMAT_S8_UINT:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    None

    FORMAT_D16_UNORM_S8_UINT:
    linearTiling FormatFeatureFlags:
    None
    optimalTiling FormatFeatureFlags:
    None
    bufferFeatures FormatFeatureFlags:
    None

    FORMAT_D24_UNORM_S8_UINT:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    optimalTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    bufferFeatures FormatFeatureFlags:
    None

    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
    optimalTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    bufferFeatures FormatFeatureFlags:
    None

    FORMAT_BC1_RGB_UNORM_BLOCK:
    linearTiling FormatFeatureFlags:
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
    VK_FORMAT_FEATURE_BLIT_SRC_BIT
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT
    optimalT

    • すらりん より:

      おめでとうございます。 Windows に比べると Vulkan 対応ドライバのインストールから苦労しますね。
      またこちらも Ubuntu 16.04 でもっと楽にインストールする手順を確立できつつあり、
      近日中にそちらの情報を公開できるかと思っています。
      すでに使用可能な状態になっているかと思いますが、そちらの記事の方も公開の暁には参考にしていただければと思います。

タイトルとURLをコピーしました