Giter Club home page Giter Club logo

cs_paint's Introduction

CsPaint

Introduction

The CsPaint library is an abstraction of the Vulkan API. This library is intended for software developers who want to use Vulkan to render graphics from their application. Using this library will reduce the amount of code required to render graphics on a GPU. The API of CsPaint provides C++ classes which encapsulates the low level Vulkan API.

A Demo program is provided which contains a few meshes that were modeled in Blender and exported as stl files. All rendering in the demo is accomplished by only using the classes available in CsPaint.

System Requirements

To use CsPaint you will need a C++17 compiler which fully supports the C++17 standard library. You will also need to download and install the Vulkan SDK from LunarG.

www.lunarg.com/vulkan-sdk/

Currently CsPaint is supported on Linux and Windows.

Building

CsPaint must be built using CMake 3.16 or newer.

Documentation

Class level documentation for CsPaint is available on the CopperSpice website:

www.copperspice.com/docs/cs_paint/index.html

Presentations

Our YouTube channel contains videos about modern C++, graphics, build systems, CopperSpice, DoxyPress, and other topics related to software development.

https://www.youtube.com/copperspice

Links to technical presentations recorded at CppNow and CppCon:

www.copperspice.com/presentations.html

Authors / Contributors

  • Ansel Sermersheim
  • Barbara Geller

License

This library is released under the BSD 2-clause license. For more information refer to the LICENSE file provided with this project.

References

cs_paint's People

Contributors

agserm avatar ba7lya avatar bgeller avatar vdeurzen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cs_paint's Issues

Error Incompatible Driver

server glx vendor string: SGI
server glx version string: 1.4
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
OpenGL vendor string: Intel Inc.
OpenGL renderer string: Intel(R) HD Graphics 6000
OpenGL version string: 2.1 INTEL-14.5.22
OpenGL shading language version string: 1.20

my issue is the same vk::createInstance: ErrorIncompatibleDriver, exiting while running bin/CsPaintDemo

Hardware Overview:

  Model Name:	MacBook Air
  Model Identifier:	MacBookAir7,2
  Processor Name:	Dual-Core Intel Core i5
  Processor Speed:	1.8 GHz
  Number of Processors:	1
  Total Number of Cores:	2
  L2 Cache (per Core):	256 KB
  L3 Cache:	3 MB
  Hyper-Threading Technology:	Enabled
  Memory:	8 GB
  Boot ROM Version:	193.0.0.0.0
  SMC Version (system):	2.27f2
  Serial Number (system):	FVFW4FNTJ1WK
  Hardware UUID:	8A722236-598D-502A-AC16-02330DC258F9

Originally posted by @dmitrykolesnikovich on another ticket

cs_paint build fails with latest vulkan-sdk

I tried building the cs_paint demo on Ubuntu 18.04 after following the instructions to install the latest version - Edit: I gave the wrong vulkan-sdk version (Version: 1.1.106.0~rc1-1lunarg18.04.1.1)
I missed this later version in the apt-cache show output. Version: 1.1.126.0~rc1-1lunarg18.04.1.1 is installed.
The cmake part was fine. The build failure seems to be related to this issue [(https://github.com/KhronosGroup/Vulkan-Hpp/issues/289)].

The error message (with cs_paint path shortened) was:

In file included from cs_paint/src/cspaint_context.h:30:0, from cs_paint/src/cspaint_context.cpp:19: /usr/include/vulkan/vulkan.hpp: In constructor ‘vk::ObjectDestroy<OwnerType, Dispatch>::ObjectDestroy(OwnerType, vk::Optional<const vk::AllocationCallbacks>, const Dispatch&) [with OwnerType = vk::Instance; Dispatch = vk::DispatchLoaderDynamic]’: /usr/include/vulkan/vulkan.hpp:536:81: error: could not convert ‘vk::DispatchLoaderStatic()’ from ‘vk::DispatchLoaderStatic’ to ‘const vk::DispatchLoaderDynamic&’ explicit UniqueHandle( Type const& value = Type(), Deleter const& deleter = Deleter() ) VULKAN_HPP_NOEXCEPT ^~~~~~~~~ /usr/include/vulkan/vulkan.hpp: In constructor ‘vk::UniqueHandle<Type, Dispatch>::UniqueHandle(const Type&, const Deleter&) [with Type = vk::DebugReportCallbackEXT; Dispatch = vk::DispatchLoaderDynamic; vk::UniqueHandle<Type, Dispatch>::Deleter = vk::ObjectDestroy<vk::Instance, vk::DispatchLoaderDynamic>]’: /usr/include/vulkan/vulkan.hpp:536:81: error: invalid initialization of reference of type ‘const vk::DispatchLoaderDynamic&’ from expression of type ‘vk::DispatchLoaderStatic’ In file included from cs_paint/src/cspaint_context.h:30:0, from cs_paint/src/cspaint_context.cpp:19: /usr/include/vulkan/vulkan.hpp:2588:7: note: in passing argument 3 of ‘vk::ObjectDestroy<OwnerType, Dispatch>::ObjectDestroy(OwnerType, vk::Optional<const vk::AllocationCallbacks>, const Dispatch&) [with OwnerType = vk::Instance; Dispatch = vk::DispatchLoaderDynamic]’ ObjectDestroy( OwnerType owner = OwnerType(), Optional<const AllocationCallbacks> allocationCallbacks = nullptr, Dispatch const &dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT ^~~~~~~~~~~~~ cs_paint/src/cspaint_context.cpp:29:123: note: when instantiating default argument for call to vk::UniqueHandle<Type, Dispatch>::UniqueHandle(const Type&, const Deleter&) [with Type = vk::DebugReportCallbackEXT; Dispatch = vk::DispatchLoaderDynamic; vk::UniqueHandle<Type, Dispatch>::Deleter = vk::ObjectDestroy<vk::Instance, vk::DispatchLoaderDynamic>] CsPaint::context::context(vk::Instance instance) : m_instance(instance), m_dynamicLoader(m_instance, vkGetInstanceProcAddr)

Any advice welcome.

Fails to compile w/ GCC 10.x on Ubuntu 18.04

Hi,

I watched one of your talks about font rendering and I wanted to check this out for one of my projects. It looks fairly nice. But when I tried to compile, I received this error:

[ 55%] Building CXX object CMakeFiles/CsPaint.dir/src/cspaint_shader.cpp.o
/home/ben/Desktop/cs_paint/src/cspaint_pipeline.cpp: In constructor ‘CsPaint::pipeline::pipeline(CsPaint::device_handle, const surface_handle&, CsPaint::renderpass_handle, const vk::PipelineVertexInputStateCreateInfo&, const std::vector<vk::PipelineShaderStageCreateInfo>&, const vk::PipelineLayout&)’:
/home/ben/Desktop/cs_paint/src/cspaint_pipeline.cpp:95:34: error: no match for ‘operator[]’ (operand types are ‘vk::ResultValue<std::vector<vk::UniqueHandle<vk::Pipeline, vk::DispatchLoaderStatic>, std::allocator<vk::UniqueHandle<vk::Pipeline, vk::DispatchLoaderStatic> > > >’ and ‘int’)
   95 |    m_pipeline  = std::move(retval[0]);
      |                                  ^
In file included from /usr/include/c++/10/memory:66,
                 from /home/ben/Desktop/cs_paint/src/cspaint_fwd.h:22,
                 from /home/ben/Desktop/cs_paint/src/cspaint_pipeline.h:22,
                 from /home/ben/Desktop/cs_paint/src/cspaint_pipeline.cpp:19:
/usr/include/c++/10/bits/stl_uninitialized.h: In instantiation of ‘_ForwardIterator std::uninitialized_copy(_InputIterator, _InputIterator, _ForwardIterator) [with _InputIterator = __gnu_cxx::__normal_iterator<const vk::UniqueHandle<vk::Pipeline, vk::DispatchLoaderStatic>*, std::vector<vk::UniqueHandle<vk::Pipeline, vk::DispatchLoaderStatic>, std::allocator<vk::UniqueHandle<vk::Pipeline, vk::DispatchLoaderStatic> > > >; _ForwardIterator = vk::UniqueHandle<vk::Pipeline, vk::DispatchLoaderStatic>*]’:
/usr/include/c++/10/bits/stl_uninitialized.h:325:37:   required from ‘_ForwardIterator std::__uninitialized_copy_a(_InputIterator, _InputIterator, _ForwardIterator, std::allocator<_Tp>&) [with _InputIterator = __gnu_cxx::__normal_iterator<const vk::UniqueHandle<vk::Pipeline, vk::DispatchLoaderStatic>*, std::vector<vk::UniqueHandle<vk::Pipeline, vk::DispatchLoaderStatic>, std::allocator<vk::UniqueHandle<vk::Pipeline, vk::DispatchLoaderStatic> > > >; _ForwardIterator = vk::UniqueHandle<vk::Pipeline, vk::DispatchLoaderStatic>*; _Tp = vk::UniqueHandle<vk::Pipeline, vk::DispatchLoaderStatic>]’
/usr/include/c++/10/bits/stl_vector.h:558:31:   required from ‘std::vector<_Tp, _Alloc>::vector(const std::vector<_Tp, _Alloc>&) [with _Tp = vk::UniqueHandle<vk::Pipeline, vk::DispatchLoaderStatic>; _Alloc = std::allocator<vk::UniqueHandle<vk::Pipeline, vk::DispatchLoaderStatic> >]’
/usr/include/vulkan/vulkan.hpp:13434:18:   required from ‘vk::ResultValue<T>::ResultValue(vk::Result, T&) [with T = std::vector<vk::UniqueHandle<vk::Pipeline, vk::DispatchLoaderStatic>, std::allocator<vk::UniqueHandle<vk::Pipeline, vk::DispatchLoaderStatic> > >]’
/usr/include/vulkan/vulkan.hpp:13579:12:   required from ‘vk::ResultValue<T> vk::createResultValue(vk::Result, T&, const char*, std::initializer_list<vk::Result>) [with T = std::vector<vk::UniqueHandle<vk::Pipeline, vk::DispatchLoaderStatic>, std::allocator<vk::UniqueHandle<vk::Pipeline, vk::DispatchLoaderStatic> > >]’
/usr/include/vulkan/vulkan.hpp:76869:29:   required from ‘vk::ResultValue<std::vector<vk::UniqueHandle<vk::Pipeline, Dispatch>, Allocator> > vk::Device::createGraphicsPipelinesUnique(vk::PipelineCache, vk::ArrayProxy<const vk::GraphicsPipelineCreateInfo>, vk::Optional<const vk::AllocationCallbacks>, const Dispatch&) const [with Allocator = std::allocator<vk::UniqueHandle<vk::Pipeline, vk::DispatchLoaderStatic> >; Dispatch = vk::DispatchLoaderStatic]’
/home/ben/Desktop/cs_paint/src/cspaint_pipeline.cpp:94:106:   required from here
/usr/include/c++/10/bits/stl_uninitialized.h:137:72: error: static assertion failed: result type must be constructible from value type of input range
  137 |       static_assert(is_constructible<_ValueType2, decltype(*__first)>::value,
      |                                                                        ^~~~~
CMakeFiles/CsPaint.dir/build.make:302: recipe for target 'CMakeFiles/CsPaint.dir/src/cspaint_pipeline.cpp.o' failed
make[2]: *** [CMakeFiles/CsPaint.dir/src/cspaint_pipeline.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CMakeFiles/Makefile2:104: recipe for target 'CMakeFiles/CsPaint.dir/all' failed
make[1]: *** [CMakeFiles/CsPaint.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2

I grabbed the latest version of the source. the cmake configuration step went fine.

Segmentation fault on the demo

I just compiled and attempted to run the demo on my Lenovo laptop and it opens a windows and quickly closes back again and exits with a segmentation fault.

By the looks of it the initialization failed to allocate some of the buffers and gave up, but since not all of the initialization had finished the teardown attempts to do more than it can.

bellow are the backtrace :

#0  0x00007ffff7c4d1fc in ?? () from /lib64/libvulkan.so.1
#1  0x00007ffff7f1b194 in vk::Instance::destroy<vk::DispatchLoaderDynamic> (d=..., allocator=..., callback=..., this=0x787770) at /usr/include/vulkan/vulkan.hpp:55855
#2  vk::ObjectDestroy<vk::Instance, vk::DispatchLoaderDynamic>::destroy<vk::DebugReportCallbackEXT> (this=0x787770, t=...) at /usr/include/vulkan/vulkan.hpp:2522
#3  0x00007ffff7f1ab5d in vk::UniqueHandle<vk::DebugReportCallbackEXT, vk::DispatchLoaderDynamic>::~UniqueHandle (this=0x787770, __in_chrg=<optimized out>) at /usr/include/vulkan/vulkan.hpp:529
#4  0x00007ffff7f195d0 in CsPaint::context::~context (this=0x786ce0, __in_chrg=<optimized out>) at ../src/cspaint_context.h:47
#5  0x00007ffff7f1cd98 in __gnu_cxx::new_allocator<CsPaint::context>::destroy<CsPaint::context> (this=0x786ce0, __p=0x786ce0) at /usr/include/c++/9/ext/new_allocator.h:153
#6  0x00007ffff7f1cd6b in std::allocator_traits<std::allocator<CsPaint::context> >::destroy<CsPaint::context> (__a=..., __p=0x786ce0) at /usr/include/c++/9/bits/alloc_traits.h:497
#7  0x00007ffff7f1cc57 in std::_Sp_counted_ptr_inplace<CsPaint::context, std::allocator<CsPaint::context>, (__gnu_cxx::_Lock_policy)2>::_M_dispose (this=0x786cd0) at /usr/include/c++/9/bits/shared_ptr_base.h:557
#8  0x000000000041e032 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x786cd0) at /usr/include/c++/9/bits/shared_ptr_base.h:155
#9  0x000000000041de19 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count (this=0x5fc628, __in_chrg=<optimized out>) at /usr/include/c++/9/bits/shared_ptr_base.h:730
#10 0x000000000041d972 in std::__shared_ptr<CsPaint::context, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr (this=0x5fc620, __in_chrg=<optimized out>) at /usr/include/c++/9/bits/shared_ptr_base.h:1169
#11 0x000000000041d98e in std::shared_ptr<CsPaint::context>::~shared_ptr (this=0x5fc620, __in_chrg=<optimized out>) at /usr/include/c++/9/bits/shared_ptr.h:103
#12 0x00007ffff7f77b9a in CsPaint::device::~device (this=0x5fc610, __in_chrg=<optimized out>) at ../src/cspaint_device.h:35
#13 0x00007ffff7f77bc6 in __gnu_cxx::new_allocator<CsPaint::device>::destroy<CsPaint::device> (this=0x5fc610, __p=0x5fc610) at /usr/include/c++/9/ext/new_allocator.h:153
#14 0x00007ffff7f77a09 in std::allocator_traits<std::allocator<CsPaint::device> >::destroy<CsPaint::device> (__a=..., __p=0x5fc610) at /usr/include/c++/9/bits/alloc_traits.h:497
#15 0x00007ffff7f77835 in std::_Sp_counted_ptr_inplace<CsPaint::device, std::allocator<CsPaint::device>, (__gnu_cxx::_Lock_policy)2>::_M_dispose (this=0x5fc600) at /usr/include/c++/9/bits/shared_ptr_base.h:557
#16 0x000000000041e032 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0x5fc600) at /usr/include/c++/9/bits/shared_ptr_base.h:155
#17 0x000000000041de19 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count (this=0xebf468, __in_chrg=<optimized out>) at /usr/include/c++/9/bits/shared_ptr_base.h:730
#18 0x000000000041dabc in std::__shared_ptr<CsPaint::device, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr (this=0xebf460, __in_chrg=<optimized out>) at /usr/include/c++/9/bits/shared_ptr_base.h:1169
#19 0x000000000041dad8 in std::shared_ptr<CsPaint::device>::~shared_ptr (this=0xebf460, __in_chrg=<optimized out>) at /usr/include/c++/9/bits/shared_ptr.h:103
#20 0x00007ffff7f39db0 in CsPaint::descriptor_pool::~descriptor_pool (this=0xebf450, __in_chrg=<optimized out>) at ../src/cspaint_descriptorpool.h:29
#21 0x00007ffff7f39ddc in __gnu_cxx::new_allocator<CsPaint::descriptor_pool>::destroy<CsPaint::descriptor_pool> (this=0xebf450, __p=0xebf450) at /usr/include/c++/9/ext/new_allocator.h:153
#22 0x00007ffff7f39b5b in std::allocator_traits<std::allocator<CsPaint::descriptor_pool> >::destroy<CsPaint::descriptor_pool> (__a=..., __p=0xebf450) at /usr/include/c++/9/bits/alloc_traits.h:497
#23 0x00007ffff7f3908f in std::_Sp_counted_ptr_inplace<CsPaint::descriptor_pool, std::allocator<CsPaint::descriptor_pool>, (__gnu_cxx::_Lock_policy)2>::_M_dispose (this=0xebf440) at /usr/include/c++/9/bits/shared_ptr_base.h:557
#24 0x000000000041e032 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release (this=0xebf440) at /usr/include/c++/9/bits/shared_ptr_base.h:155
#25 0x000000000041de19 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count (this=0x5726f8 <descriptorPool+8>, __in_chrg=<optimized out>) at /usr/include/c++/9/bits/shared_ptr_base.h:730
#26 0x0000000000427638 in std::__shared_ptr<CsPaint::descriptor_pool, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr (this=0x5726f0 <descriptorPool>, __in_chrg=<optimized out>) at /usr/include/c++/9/bits/shared_ptr_base.h:1169
#27 0x0000000000427654 in std::shared_ptr<CsPaint::descriptor_pool>::~shared_ptr (this=0x5726f0 <descriptorPool>, __in_chrg=<optimized out>) at /usr/include/c++/9/bits/shared_ptr.h:103
#28 0x00007ffff7733680 in __run_exit_handlers () from /lib64/libc.so.6
#29 0x00007ffff77337c0 in exit () from /lib64/libc.so.6
#30 0x00007ffff771cf4a in __libc_start_main () from /lib64/libc.so.6
#31 0x00000000004117ce in _start ()

Here is the vulkantool dump of what is available on my laptop : ```

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

Vulkan Instance Version: 1.1.114





Instance Extensions:
====================
Instance Extensions	count = 18
	VK_EXT_acquire_xlib_display         : extension revision  1
	VK_EXT_debug_report                 : extension revision  8
	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 23
	VK_KHR_external_fence_capabilities  : extension revision  1
	VK_KHR_external_memory_capabilities : extension revision  1
	VK_KHR_external_semaphore_capabilities: extension revision  1
	VK_KHR_get_display_properties2      : extension revision  1
	VK_KHR_get_physical_device_properties2: extension revision  1
	VK_KHR_get_surface_capabilities2    : extension revision  1
	VK_KHR_surface                      : extension revision 25
	VK_KHR_surface_protected_capabilities: extension revision  1
	VK_KHR_wayland_surface              : extension revision  6
	VK_KHR_xcb_surface                  : extension revision  6
	VK_KHR_xlib_surface                 : extension revision  6
Layers: count = 0
=======
Presentable Surfaces:
=====================
GPU id       : 0 (AMD RADV ICELAND (LLVM 8.0.0))
Surface type : VK_KHR_xlib_surface
Formats:		count = 2
	B8G8R8A8_SRGB
	B8G8R8A8_UNORM
Present Modes:		count = 3
	IMMEDIATE_KHR
	MAILBOX_KHR
	FIFO_KHR
VkSurfaceCapabilitiesKHR:
	minImageCount       = 2
	maxImageCount       = 0
	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
		VK_COMPOSITE_ALPHA_INHERIT_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
VkSurfaceCapabilities2EXT:
	supportedSurfaceCounters:
		None

GPU id       : 1 (Intel(R) HD Graphics 620 (Kaby Lake GT2))
Surface type : VK_KHR_xlib_surface
Formats:		count = 2
	B8G8R8A8_SRGB
	B8G8R8A8_UNORM
Present Modes:		count = 3
	IMMEDIATE_KHR
	MAILBOX_KHR
	FIFO_KHR
VkSurfaceCapabilitiesKHR:
	minImageCount       = 2
	maxImageCount       = 0
	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
		VK_COMPOSITE_ALPHA_INHERIT_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
VkSurfaceCapabilities2EXT:
	supportedSurfaceCounters:
		None

GPU id       : 0 (AMD RADV ICELAND (LLVM 8.0.0))
Surface type : VK_KHR_xcb_surface
Formats:		count = 2
	B8G8R8A8_SRGB
	B8G8R8A8_UNORM
Present Modes:		count = 3
	IMMEDIATE_KHR
	MAILBOX_KHR
	FIFO_KHR
VkSurfaceCapabilitiesKHR:
	minImageCount       = 2
	maxImageCount       = 0
	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
		VK_COMPOSITE_ALPHA_INHERIT_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
VkSurfaceCapabilities2EXT:
	supportedSurfaceCounters:
		None

GPU id       : 1 (Intel(R) HD Graphics 620 (Kaby Lake GT2))
Surface type : VK_KHR_xcb_surface
Formats:		count = 2
	B8G8R8A8_SRGB
	B8G8R8A8_UNORM
Present Modes:		count = 3
	IMMEDIATE_KHR
	MAILBOX_KHR
	FIFO_KHR
VkSurfaceCapabilitiesKHR:
	minImageCount       = 2
	maxImageCount       = 0
	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
		VK_COMPOSITE_ALPHA_INHERIT_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
VkSurfaceCapabilities2EXT:
	supportedSurfaceCounters:
		None


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

			AMD RADV ICELAND (LLVM 8.0.0) (ID: 0)

		subsetAllocation = 0

	Device Group Present Capabilities (Group 0) :

		AMD RADV ICELAND (LLVM 8.0.0) (ID: 0)
		Can present images from the following devices:
			AMD RADV ICELAND (LLVM 8.0.0) (ID: 0)

		Present modes:
			VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR


	Device Group Properties (Group 1) :
		physicalDeviceCount = 1

			Intel(R) HD Graphics 620 (Kaby Lake GT2) (ID: 0)

		subsetAllocation = 0

	Device Group Present Capabilities (Group 1) :

		Intel(R) HD Graphics 620 (Kaby Lake GT2) (ID: 0)
		Can present images from the following devices:
			Intel(R) HD Graphics 620 (Kaby Lake GT2) (ID: 0)

		Present modes:
			VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR



Device Properties and Extensions :
==================================
GPU0
VkPhysicalDeviceProperties:
===========================
	apiVersion     = 0x40105a  (1.1.90)
	driverVersion  = 79695879 (0x4c01007)
	vendorID       = 0x1002
	deviceID       = 0x6900
	deviceType     = DISCRETE_GPU
	deviceName     = AMD RADV ICELAND (LLVM 8.0.0)
	VkPhysicalDeviceLimits:
	-----------------------
		maxImageDimension1D                     = 16384
		maxImageDimension2D                     = 16384
		maxImageDimension3D                     = 2048
		maxImageDimensionCube                   = 16384
		maxImageArrayLayers                     = 2048
		maxTexelBufferElements                  = 0x8000000
		maxUniformBufferRange                   = 0xffffffff
		maxStorageBufferRange                   = 0xffffffff
		maxPushConstantsSize                    = 128
		maxMemoryAllocationCount                = 4294967295
		maxSamplerAllocationCount               = 65536
		bufferImageGranularity                  = 0x40
		sparseAddressSpaceSize                  = 0xffffffff
		maxBoundDescriptorSets                  = 32
		maxPerStageDescriptorSamplers           = 9586978
		maxPerStageDescriptorUniformBuffers     = 9586978
		maxPerStageDescriptorStorageBuffers     = 9586978
		maxPerStageDescriptorSampledImages      = 9586978
		maxPerStageDescriptorStorageImages      = 9586978
		maxPerStageDescriptorInputAttachments   = 9586978
		maxPerStageResources                    = 9586978
		maxDescriptorSetSamplers                = 9586978
		maxDescriptorSetUniformBuffers          = 9586978
		maxDescriptorSetUniformBuffersDynamic   = 16
		maxDescriptorSetStorageBuffers          = 9586978
		maxDescriptorSetStorageBuffersDynamic   = 8
		maxDescriptorSetSampledImages           = 9586978
		maxDescriptorSetStorageImages           = 9586978
		maxDescriptorSetInputAttachments        = 9586978
		maxVertexInputAttributes                = 32
		maxVertexInputBindings                  = 32
		maxVertexInputAttributeOffset           = 0x7ff
		maxVertexInputBindingStride             = 0x800
		maxVertexOutputComponents               = 128
		maxTessellationGenerationLevel          = 64
		maxTessellationPatchSize                        = 32
		maxTessellationControlPerVertexInputComponents  = 128
		maxTessellationControlPerVertexOutputComponents = 128
		maxTessellationControlPerPatchOutputComponents  = 120
		maxTessellationControlTotalOutputComponents     = 4096
		maxTessellationEvaluationInputComponents        = 128
		maxTessellationEvaluationOutputComponents       = 128
		maxGeometryShaderInvocations            = 127
		maxGeometryInputComponents              = 64
		maxGeometryOutputComponents             = 128
		maxGeometryOutputVertices               = 256
		maxGeometryTotalOutputComponents        = 1024
		maxFragmentInputComponents              = 128
		maxFragmentOutputAttachments            = 8
		maxFragmentDualSrcAttachments           = 1
		maxFragmentCombinedOutputResources      = 8
		maxComputeSharedMemorySize              = 32768
		maxComputeWorkGroupCount[0]             = 65535
		maxComputeWorkGroupCount[1]             = 65535
		maxComputeWorkGroupCount[2]             = 65535
		maxComputeWorkGroupInvocations          = 2048
		maxComputeWorkGroupSize[0]              = 2048
		maxComputeWorkGroupSize[1]              = 2048
		maxComputeWorkGroupSize[2]              = 2048
		subPixelPrecisionBits                   = 8
		subTexelPrecisionBits                   = 8
		mipmapPrecisionBits                     = 8
		maxDrawIndexedIndexValue                = 4294967295
		maxDrawIndirectCount                    = 4294967295
		maxSamplerLodBias                       = 16.000000
		maxSamplerAnisotropy                    = 16.000000
		maxViewports                            = 16
		maxViewportDimensions[0]                = 16384
		maxViewportDimensions[1]                = 16384
		viewportBoundsRange[0]                  = -32768.000000
		viewportBoundsRange[1]                  =  32767.000000
		viewportSubPixelBits                    = 8
		minMemoryMapAlignment                   = 4096
		minTexelBufferOffsetAlignment           = 0x1
		minUniformBufferOffsetAlignment         = 0x4
		minStorageBufferOffsetAlignment         = 0x4
		minTexelOffset                          = -32
		maxTexelOffset                          =  31
		minTexelGatherOffset                    = -32
		maxTexelGatherOffset                    =  31
		minInterpolationOffset                  = -2.000000
		maxInterpolationOffset                  =  2.000000
		subPixelInterpolationOffsetBits         = 8
		maxFramebufferWidth                     = 16384
		maxFramebufferHeight                    = 16384
		maxFramebufferLayers                    = 1024
		framebufferColorSampleCounts            = 15
		framebufferDepthSampleCounts            = 15
		framebufferStencilSampleCounts          = 15
		framebufferNoAttachmentsSampleCounts    = 15
		maxColorAttachments                     = 8
		sampledImageColorSampleCounts           = 15
		sampledImageDepthSampleCounts           = 15
		sampledImageStencilSampleCounts         = 15
		sampledImageIntegerSampleCounts         = 1
		storageImageSampleCounts                = 15
		maxSampleMaskWords                      = 1
		timestampComputeAndGraphics             = 1
		timestampPeriod                         = 37.037037
		maxClipDistances                        = 8
		maxCullDistances                        = 8
		maxCombinedClipAndCullDistances         = 8
		discreteQueuePriorities                 = 2
		pointSizeRange[0]                       = 0.000000
		pointSizeRange[1]                       = 8192.000000
		lineWidthRange[0]                       = 0.000000
		lineWidthRange[1]                       = 7.992188
		pointSizeGranularity                    = 0.125000
		lineWidthGranularity                    = 0.007812
		strictLines                             = 0
		standardSampleLocations                 = 1
		optimalBufferCopyOffsetAlignment        = 0x80
		optimalBufferCopyRowPitchAlignment      = 0x80
		nonCoherentAtomSize                     = 0x40
	VkPhysicalDeviceSparseProperties:
	---------------------------------
		residencyStandard2DBlockShape            = 0
		residencyStandard2DMultisampleBlockShape = 0
		residencyStandard3DBlockShape            = 0
		residencyAlignedMipSize                  = 0
		residencyNonResidentStrict               = 0

VkPhysicalDevicePointClippingProperties:
========================================
	pointClippingBehavior               = 0

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

VkPhysicalDeviceDiscardRectangleProperties:
===========================================
	maxDiscardRectangles               = 4

VkPhysicalDeviceMultiviewProperties:
====================================
	maxMultiviewViewCount     = 8
	maxMultiviewInstanceIndex = 2147483647

VkPhysicalDeviceMaintenance3Properties:
=======================================
	maxPerSetDescriptors    = 22369621
	maxMemoryAllocationSize = 4294967295

VkPhysicalDeviceIDProperties:
=========================================
	deviceUUID      = 00000000-0100-0000-0000-000000000000
	driverUUID      = 414d442d-4d45-5341-2d44-525600000000
	deviceLUIDValid = false

VkPhysicalDeviceDriverProperties:
=================================
	driverID   = 3
	driverName = radv
	driverInfo = Mesa 19.1.7 (LLVM 8.0.0)
	conformanceVersion:
		major    = 1
		minor    = 1
		subminor = 2
		patch    = 0

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

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

VkPhysicalDeviceDescriptorIndexingProperties
============================================
	maxUpdateAfterBindDescriptorsInAllPools = 67108863
	shaderUniformBufferArrayNonUniformIndexingNative = 0
	shaderSampledImageArrayNonUniformIndexingNative = 0
	shaderStorageBufferArrayNonUniformIndexingNative = 0
	shaderStorageImageArrayNonUniformIndexingNative = 0
	shaderInputAttachmentArrayNonUniformIndexingNative = 0
	robustBufferAccessUpdateAfterBind = 0
	quadDivergentImplicitLod = 0
	maxPerStageDescriptorUpdateAfterBindSamplers = 8388606
	maxPerStageDescriptorUpdateAfterBindUniformBuffers = 8388606
	maxPerStageDescriptorUpdateAfterBindStorageBuffers = 8388606
	maxPerStageDescriptorUpdateAfterBindSampledImages = 8388606
	maxPerStageDescriptorUpdateAfterBindStorageImages = 8388606
	maxPerStageDescriptorUpdateAfterBindInputAttachments = 8388606
	maxPerStageUpdateAfterBindResources = 8388606
	maxDescriptorSetUpdateAfterBindSamplers = 8388606
	maxDescriptorSetUpdateAfterBindUniformBuffers = 8388606
	maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = 16
	maxDescriptorSetUpdateAfterBindStorageBuffer = 8388606
	maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = 8
	maxDescriptorSetUpdateAfterBindSampledImages = 8388606
	maxDescriptorSetUpdateAfterBindStorageImages = 8388606
	maxDescriptorSetUpdateAfterBindInputAttachments = 8388606

Device Extensions	count = 63
	VK_AMD_draw_indirect_count          : extension revision  1
	VK_AMD_gcn_shader                   : extension revision  1
	VK_AMD_shader_core_properties       : extension revision  1
	VK_AMD_shader_info                  : extension revision  1
	VK_AMD_shader_trinary_minmax        : extension revision  1
	VK_EXT_buffer_device_address        : extension revision  1
	VK_EXT_calibrated_timestamps        : extension revision  1
	VK_EXT_conditional_rendering        : 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_external_memory_dma_buf      : extension revision  1
	VK_EXT_external_memory_host         : extension revision  1
	VK_EXT_global_priority              : extension revision  1
	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_memory_priority              : extension revision  1
	VK_EXT_pci_bus_info                 : extension revision  2
	VK_EXT_pipeline_creation_feedback   : extension revision  1
	VK_EXT_sampler_filter_minmax        : extension revision  1
	VK_EXT_scalar_block_layout          : extension revision  1
	VK_EXT_shader_stencil_export        : 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_EXT_ycbcr_image_arrays           : extension revision  1
	VK_GOOGLE_decorate_string           : extension revision  1
	VK_GOOGLE_hlsl_functionality1       : extension revision  1
	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  1
	VK_KHR_descriptor_update_template   : extension revision  1
	VK_KHR_device_group                 : extension revision  1
	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_incremental_present          : extension revision  1
	VK_KHR_maintenance1                 : extension revision  1
	VK_KHR_maintenance2                 : extension revision  1
	VK_KHR_maintenance3                 : extension revision  1
	VK_KHR_multiview                    : extension revision  1
	VK_KHR_push_descriptor              : extension revision  1
	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_draw_parameters       : extension revision  1
	VK_KHR_shader_float16_int8          : extension revision  1
	VK_KHR_storage_buffer_storage_class : extension revision  1
	VK_KHR_swapchain                    : extension revision 68
	VK_KHR_variable_pointers            : extension revision  1
	VK_NV_compute_shader_derivatives    : extension revision  1

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

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

VkPhysicalDeviceMemoryProperties:
=================================
	memoryHeapCount       = 3
	memoryHeaps[0] :
		size          = 1879048192 (0x70000000) (1.75 GiB)
		budget        = 1877393408
		usage         = 0
		flags:
			VK_MEMORY_HEAP_DEVICE_LOCAL_BIT
	memoryHeaps[1] :
		size          = 268435456 (0x10000000) (256.00 MiB)
		budget        = 267042816
		usage         = 0
		flags:
			VK_MEMORY_HEAP_DEVICE_LOCAL_BIT
	memoryHeaps[2] :
		size          = 3221225472 (0xc0000000) (3.00 GiB)
		budget        = 3208556544
		usage         = 0
		flags:
			None
	memoryTypeCount       = 4
	memoryTypes[0] :
		heapIndex     = 0
		propertyFlags = 0x1:
			VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
		usable for:
			OPTIMAL: color images, D16_UNORM, D32_SFLOAT, S8_UINT, D16_UNORM_S8_UINT, D32_SFLOAT_S8_UINT
			LINEAR: color images
	memoryTypes[1] :
		heapIndex     = 2
		propertyFlags = 0x6:
			VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
			VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
		usable for:
			OPTIMAL: color images, D16_UNORM, D32_SFLOAT, S8_UINT, D16_UNORM_S8_UINT, D32_SFLOAT_S8_UINT
			LINEAR: color images
	memoryTypes[2] :
		heapIndex     = 1
		propertyFlags = 0x7:
			VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
			VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
			VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
		usable for:
			OPTIMAL: color images, D16_UNORM, D32_SFLOAT, S8_UINT, D16_UNORM_S8_UINT, D32_SFLOAT_S8_UINT
			LINEAR: color images
	memoryTypes[3] :
		heapIndex     = 2
		propertyFlags = 0xe:
			VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
			VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
			VK_MEMORY_PROPERTY_HOST_CACHED_BIT
		usable for:
			OPTIMAL: color images, D16_UNORM, D32_SFLOAT, S8_UINT, D16_UNORM_S8_UINT, D32_SFLOAT_S8_UINT
			LINEAR: color images

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                             = 0
	shaderResourceResidency                 = 0
	shaderResourceMinLod                    = 0
	sparseBinding                           = 1
	sparseResidencyBuffer                   = 0
	sparseResidencyImage2D                  = 0
	sparseResidencyImage3D                  = 0
	sparseResidency2Samples                 = 0
	sparseResidency4Samples                 = 0
	sparseResidency8Samples                 = 0
	sparseResidency16Samples                = 0
	sparseResidencyAliased                  = 0
	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

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

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

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

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

VkPhysicalDeviceMemoryPriorityFeatures:
======================================
	memoryPriority = 1

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

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

VkPhysicalDeviceYcbcrImageArraysFeatures:
=========================================
	ycbcrImageArrays = 1

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

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

FORMAT_R4G4B4A4_UNORM_PACK16,
FORMAT_R5G6B5_UNORM_PACK16,
FORMAT_B5G6R5_UNORM_PACK16,
FORMAT_R5G5B5A1_UNORM_PACK16,
FORMAT_A1R5G5B5_UNORM_PACK16:
	linearTiling   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

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

FORMAT_B4G4R4A4_UNORM_PACK16,
FORMAT_B5G5R5A1_UNORM_PACK16:
	linearTiling   FormatFeatureFlags:
		VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
		VK_FORMAT_FEATURE_STORAGE_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_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_R8_UNORM,
FORMAT_R8_SNORM,
FORMAT_R16_UNORM,
FORMAT_R16_SNORM,
FORMAT_R16_SFLOAT,
FORMAT_R32_SFLOAT:
	linearTiling   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

	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_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_R16G16B16A16_USCALED,
FORMAT_R16G16B16A16_SSCALED:
	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_B8G8R8A8_UINT,
FORMAT_B8G8R8A8_SINT,
FORMAT_A8B8G8R8_UINT_PACK32,
FORMAT_A8B8G8R8_SINT_PACK32,
FORMAT_A2R10G10B10_UINT_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_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

	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_R8G8B8A8_SRGB,
FORMAT_B8G8R8A8_SRGB,
FORMAT_A8B8G8R8_SRGB_PACK32:
	linearTiling   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

	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_STORAGE_TEXEL_BUFFER_BIT
		VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

FORMAT_R8G8_UNORM,
FORMAT_R8G8_SNORM,
FORMAT_R8G8B8A8_UNORM,
FORMAT_R8G8B8A8_SNORM,
FORMAT_B8G8R8A8_UNORM,
FORMAT_B8G8R8A8_SNORM,
FORMAT_A8B8G8R8_UNORM_PACK32,
FORMAT_A8B8G8R8_SNORM_PACK32,
FORMAT_A2R10G10B10_UNORM_PACK32,
FORMAT_A2B10G10R10_UNORM_PACK32,
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_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

	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_R8G8_SRGB:
	linearTiling   FormatFeatureFlags:
		VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
		VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT
		VK_FORMAT_FEATURE_BLIT_DST_BIT
		VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR
		VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

	optimalTiling  FormatFeatureFlags:
		VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT
		VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_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_R32_UINT,
FORMAT_R32_SINT:
	linearTiling   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

	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_R32G32B32_UINT,
FORMAT_R32G32B32_SINT:
	linearTiling   FormatFeatureFlags:
		VK_FORMAT_FEATURE_SAMPLED_IMAGE_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_STORAGE_TEXEL_BUFFER_BIT
		VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

FORMAT_R32G32B32_SFLOAT:
	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:
		None

	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,
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_D16_UNORM,
FORMAT_D32_SFLOAT:
	linearTiling   FormatFeatureFlags:
		None

	optimalTiling  FormatFeatureFlags:
		VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
		VK_FORMAT_FEATURE_STORAGE_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:
		VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
		VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
		VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

FORMAT_S8_UINT:
	linearTiling   FormatFeatureFlags:
		None

	optimalTiling  FormatFeatureFlags:
		VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
		VK_FORMAT_FEATURE_STORAGE_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:
		VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT
		VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT
		VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT

FORMAT_D16_UNORM_S8_UINT,
FORMAT_D32_SFLOAT_S8_UINT:
	linearTiling   FormatFeatureFlags:
		None

	optimalTiling  FormatFeatureFlags:
		VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
		VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
		VK_FORMAT_FEATURE_BLIT_SRC_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_G8_B8_R8_3PLANE_444_UNORM,
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,
FORMAT_G16_B16_R16_3PLANE_444_UNORM:
	linearTiling   FormatFeatureFlags:
		VK_FORMAT_FEATURE_SAMPLED_IMAGE_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_TRANSFER_SRC_BIT_KHR
		VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR

	bufferFeatures FormatFeatureFlags:
		None

Unsupported formats:
FORMAT_UNDEFINED
FORMAT_R4G4_UNORM_PACK8
FORMAT_R8G8B8_UNORM
FORMAT_R8G8B8_SNORM
FORMAT_R8G8B8_USCALED
FORMAT_R8G8B8_SSCALED
FORMAT_R8G8B8_UINT
FORMAT_R8G8B8_SINT
FORMAT_R8G8B8_SRGB
FORMAT_B8G8R8_UNORM
FORMAT_B8G8R8_SNORM
FORMAT_B8G8R8_USCALED
FORMAT_B8G8R8_SSCALED
FORMAT_B8G8R8_UINT
FORMAT_B8G8R8_SINT
FORMAT_B8G8R8_SRGB
FORMAT_R16G16B16_UNORM
FORMAT_R16G16B16_SNORM
FORMAT_R16G16B16_USCALED
FORMAT_R16G16B16_SSCALED
FORMAT_R16G16B16_UINT
FORMAT_R16G16B16_SINT
FORMAT_R16G16B16_SFLOAT
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
FORMAT_X8_D24_UNORM_PACK32
FORMAT_D24_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
FORMAT_G8B8G8R8_422_UNORM
FORMAT_B8G8R8G8_422_UNORM
FORMAT_R10X6_UNORM_PACK16
FORMAT_R10X6G10X6_UNORM_2PACK16
FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16
FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16
FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16
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_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16
FORMAT_R12X4_UNORM_PACK16
FORMAT_R12X4G12X4_UNORM_2PACK16
FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16
FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16
FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16
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_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16
FORMAT_G16B16G16R16_422_UNORM
FORMAT_B16G16R16G16_422_UNORM


Device Properties and Extensions :
==================================
GPU1
VkPhysicalDeviceProperties:
===========================
	apiVersion     = 0x401066  (1.1.102)
	driverVersion  = 79695879 (0x4c01007)
	vendorID       = 0x8086
	deviceID       = 0x5916
	deviceType     = INTEGRATED_GPU
	deviceName     = Intel(R) HD Graphics 620 (Kaby Lake GT2)
	VkPhysicalDeviceLimits:
	-----------------------
		maxImageDimension1D                     = 16384
		maxImageDimension2D                     = 16384
		maxImageDimension3D                     = 2048
		maxImageDimensionCube                   = 16384
		maxImageArrayLayers                     = 2048
		maxTexelBufferElements                  = 0x8000000
		maxUniformBufferRange                   = 0x8000000
		maxStorageBufferRange                   = 0x40000000
		maxPushConstantsSize                    = 128
		maxMemoryAllocationCount                = 4294967295
		maxSamplerAllocationCount               = 65536
		bufferImageGranularity                  = 0x40
		sparseAddressSpaceSize                  = 0x0
		maxBoundDescriptorSets                  = 8
		maxPerStageDescriptorSamplers           = 65535
		maxPerStageDescriptorUniformBuffers     = 64
		maxPerStageDescriptorStorageBuffers     = 65535
		maxPerStageDescriptorSampledImages      = 65535
		maxPerStageDescriptorStorageImages      = 65535
		maxPerStageDescriptorInputAttachments   = 64
		maxPerStageResources                    = 4294967295
		maxDescriptorSetSamplers                = 393210
		maxDescriptorSetUniformBuffers          = 384
		maxDescriptorSetUniformBuffersDynamic   = 8
		maxDescriptorSetStorageBuffers          = 393210
		maxDescriptorSetStorageBuffersDynamic   = 8
		maxDescriptorSetSampledImages           = 393210
		maxDescriptorSetStorageImages           = 393210
		maxDescriptorSetInputAttachments        = 256
		maxVertexInputAttributes                = 28
		maxVertexInputBindings                  = 28
		maxVertexInputAttributeOffset           = 0x7ff
		maxVertexInputBindingStride             = 0x800
		maxVertexOutputComponents               = 128
		maxTessellationGenerationLevel          = 64
		maxTessellationPatchSize                        = 32
		maxTessellationControlPerVertexInputComponents  = 128
		maxTessellationControlPerVertexOutputComponents = 128
		maxTessellationControlPerPatchOutputComponents  = 128
		maxTessellationControlTotalOutputComponents     = 2048
		maxTessellationEvaluationInputComponents        = 128
		maxTessellationEvaluationOutputComponents       = 128
		maxGeometryShaderInvocations            = 32
		maxGeometryInputComponents              = 64
		maxGeometryOutputComponents             = 128
		maxGeometryOutputVertices               = 256
		maxGeometryTotalOutputComponents        = 1024
		maxFragmentInputComponents              = 116
		maxFragmentOutputAttachments            = 8
		maxFragmentDualSrcAttachments           = 1
		maxFragmentCombinedOutputResources      = 8
		maxComputeSharedMemorySize              = 32768
		maxComputeWorkGroupCount[0]             = 65535
		maxComputeWorkGroupCount[1]             = 65535
		maxComputeWorkGroupCount[2]             = 65535
		maxComputeWorkGroupInvocations          = 1792
		maxComputeWorkGroupSize[0]              = 1792
		maxComputeWorkGroupSize[1]              = 1792
		maxComputeWorkGroupSize[2]              = 1792
		subPixelPrecisionBits                   = 8
		subTexelPrecisionBits                   = 8
		mipmapPrecisionBits                     = 8
		maxDrawIndexedIndexValue                = 4294967295
		maxDrawIndirectCount                    = 4294967295
		maxSamplerLodBias                       = 16.000000
		maxSamplerAnisotropy                    = 16.000000
		maxViewports                            = 16
		maxViewportDimensions[0]                = 16384
		maxViewportDimensions[1]                = 16384
		viewportBoundsRange[0]                  = -32768.000000
		viewportBoundsRange[1]                  =  32767.000000
		viewportSubPixelBits                    = 13
		minMemoryMapAlignment                   = 4096
		minTexelBufferOffsetAlignment           = 0x1
		minUniformBufferOffsetAlignment         = 0x20
		minStorageBufferOffsetAlignment         = 0x4
		minTexelOffset                          =  -8
		maxTexelOffset                          =   7
		minTexelGatherOffset                    = -32
		maxTexelGatherOffset                    =  31
		minInterpolationOffset                  = -0.500000
		maxInterpolationOffset                  =  0.437500
		subPixelInterpolationOffsetBits         = 4
		maxFramebufferWidth                     = 16384
		maxFramebufferHeight                    = 16384
		maxFramebufferLayers                    = 2048
		framebufferColorSampleCounts            = 31
		framebufferDepthSampleCounts            = 31
		framebufferStencilSampleCounts          = 31
		framebufferNoAttachmentsSampleCounts    = 31
		maxColorAttachments                     = 8
		sampledImageColorSampleCounts           = 31
		sampledImageDepthSampleCounts           = 31
		sampledImageStencilSampleCounts         = 31
		sampledImageIntegerSampleCounts         = 1
		storageImageSampleCounts                = 1
		maxSampleMaskWords                      = 1
		timestampComputeAndGraphics             = 1
		timestampPeriod                         = 83.333336
		maxClipDistances                        = 8
		maxCullDistances                        = 8
		maxCombinedClipAndCullDistances         = 8
		discreteQueuePriorities                 = 2
		pointSizeRange[0]                       = 0.125000
		pointSizeRange[1]                       = 255.875000
		lineWidthRange[0]                       = 0.000000
		lineWidthRange[1]                       = 7.992188
		pointSizeGranularity                    = 0.125000
		lineWidthGranularity                    = 0.007812
		strictLines                             = 0
		standardSampleLocations                 = 1
		optimalBufferCopyOffsetAlignment        = 0x80
		optimalBufferCopyRowPitchAlignment      = 0x80
		nonCoherentAtomSize                     = 0x40
	VkPhysicalDeviceSparseProperties:
	---------------------------------
		residencyStandard2DBlockShape            = 0
		residencyStandard2DMultisampleBlockShape = 0
		residencyStandard3DBlockShape            = 0
		residencyAlignedMipSize                  = 0
		residencyNonResidentStrict               = 0

VkPhysicalDevicePointClippingProperties:
========================================
	pointClippingBehavior               = 0

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

VkPhysicalDeviceMultiviewProperties:
====================================
	maxMultiviewViewCount     = 16
	maxMultiviewInstanceIndex = 268435455

VkPhysicalDeviceMaintenance3Properties:
=======================================
	maxPerSetDescriptors    = 1024
	maxMemoryAllocationSize = 2147483648

VkPhysicalDeviceIDProperties:
=========================================
	deviceUUID      = 6588f41d-5ce8-5159-bafd-03c69b748ef9
	driverUUID      = e1c7da10-cb36-2f8a-e362-47d32ecce7de
	deviceLUIDValid = false

VkPhysicalDeviceDriverProperties:
=================================
	driverID   = 6
	driverName = Intel open-source Mesa driver
	driverInfo = Mesa 19.1.7
	conformanceVersion:
		major    = 1
		minor    = 1
		subminor = 2
		patch    = 0

VkPhysicalDevicePCIBusInfoProperties
====================================
	pciDomain   = 0
	pciBus      = 0
	pciDevice   = 2
	pciFunction = 0

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

VkPhysicalDeviceDescriptorIndexingProperties
============================================
	maxUpdateAfterBindDescriptorsInAllPools = 524288
	shaderUniformBufferArrayNonUniformIndexingNative = 0
	shaderSampledImageArrayNonUniformIndexingNative = 0
	shaderStorageBufferArrayNonUniformIndexingNative = 1
	shaderStorageImageArrayNonUniformIndexingNative = 0
	shaderInputAttachmentArrayNonUniformIndexingNative = 0
	robustBufferAccessUpdateAfterBind = 1
	quadDivergentImplicitLod = 0
	maxPerStageDescriptorUpdateAfterBindSamplers = 524288
	maxPerStageDescriptorUpdateAfterBindUniformBuffers = 64
	maxPerStageDescriptorUpdateAfterBindStorageBuffers = 4294967295
	maxPerStageDescriptorUpdateAfterBindSampledImages = 524288
	maxPerStageDescriptorUpdateAfterBindStorageImages = 524288
	maxPerStageDescriptorUpdateAfterBindInputAttachments = 64
	maxPerStageUpdateAfterBindResources = 4294967295
	maxDescriptorSetUpdateAfterBindSamplers = 524288
	maxDescriptorSetUpdateAfterBindUniformBuffers = 384
	maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = 8
	maxDescriptorSetUpdateAfterBindStorageBuffer = 4294967295
	maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = 8
	maxDescriptorSetUpdateAfterBindSampledImages = 524288
	maxDescriptorSetUpdateAfterBindStorageImages = 524288
	maxDescriptorSetUpdateAfterBindInputAttachments = 256

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 = 58
	VK_EXT_buffer_device_address        : extension revision  1
	VK_EXT_calibrated_timestamps        : extension revision  1
	VK_EXT_conditional_rendering        : extension revision  1
	VK_EXT_depth_clip_enable            : extension revision  1
	VK_EXT_descriptor_indexing          : extension revision  2
	VK_EXT_display_control              : extension revision  1
	VK_EXT_external_memory_dma_buf      : extension revision  1
	VK_EXT_external_memory_host         : extension revision  1
	VK_EXT_global_priority              : extension revision  1
	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_pipeline_creation_feedback   : extension revision  1
	VK_EXT_post_depth_coverage          : extension revision  1
	VK_EXT_sampler_filter_minmax        : extension revision  1
	VK_EXT_scalar_block_layout          : extension revision  1
	VK_EXT_shader_stencil_export        : 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_EXT_ycbcr_image_arrays           : extension revision  1
	VK_GOOGLE_decorate_string           : extension revision  1
	VK_GOOGLE_hlsl_functionality1       : extension revision  1
	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  1
	VK_KHR_depth_stencil_resolve        : extension revision  1
	VK_KHR_descriptor_update_template   : extension revision  1
	VK_KHR_device_group                 : extension revision  1
	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_incremental_present          : extension revision  1
	VK_KHR_maintenance1                 : extension revision  1
	VK_KHR_maintenance2                 : extension revision  1
	VK_KHR_maintenance3                 : extension revision  1
	VK_KHR_multiview                    : extension revision  1
	VK_KHR_push_descriptor              : extension revision  1
	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_storage_buffer_storage_class : extension revision  1
	VK_KHR_swapchain                    : extension revision 70
	VK_KHR_variable_pointers            : extension revision  1
	VK_NV_compute_shader_derivatives    : extension revision  1

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

VkPhysicalDeviceMemoryProperties:
=================================
	memoryHeapCount       = 2
	memoryHeaps[0] :
		size          = 11395837952 (0x2a73eb000) (10.61 GiB)
		budget        = 11394875392
		usage         = 0
		flags:
			VK_MEMORY_HEAP_DEVICE_LOCAL_BIT
	memoryHeaps[1] :
		size          = 1073741824 (0x40000000) (1024.00 MiB)
		budget        = 1073741824
		usage         = 0
		flags:
			VK_MEMORY_HEAP_DEVICE_LOCAL_BIT
	memoryTypeCount       = 2
	memoryTypes[0] :
		heapIndex     = 0
		propertyFlags = 0xf:
			VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
			VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
			VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
			VK_MEMORY_PROPERTY_HOST_CACHED_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: color images
	memoryTypes[1] :
		heapIndex     = 1
		propertyFlags = 0xf:
			VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT
			VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT
			VK_MEMORY_PROPERTY_HOST_COHERENT_BIT
			VK_MEMORY_PROPERTY_HOST_CACHED_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: color images

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                             = 0
	wideLines                               = 1
	largePoints                             = 1
	alphaToOne                              = 1
	multiViewport                           = 1
	samplerAnisotropy                       = 1
	textureCompressionETC2                  = 1
	textureCompressionASTC_LDR              = 1
	textureCompressionBC                    = 1
	occlusionQueryPrecise                   = 1
	pipelineStatisticsQuery                 = 1
	vertexPipelineStoresAndAtomics          = 1
	fragmentStoresAndAtomics                = 1
	shaderTessellationAndGeometryPointSize  = 1
	shaderImageGatherExtended               = 1
	shaderStorageImageExtendedFormats       = 1
	shaderStorageImageMultisample           = 0
	shaderStorageImageReadWithoutFormat     = 0
	shaderStorageImageWriteWithoutFormat    = 1
	shaderUniformBufferArrayDynamicIndexing = 1
	shaderSampledImageArrayDynamicIndexing  = 1
	shaderStorageBufferArrayDynamicIndexing = 1
	shaderStorageImageArrayDynamicIndexing  = 1
	shaderClipDistance                      = 1
	shaderCullDistance                      = 1
	shaderFloat64                           = 1
	shaderInt64                             = 1
	shaderInt16                             = 1
	shaderResourceResidency                 = 0
	shaderResourceMinLod                    = 1
	sparseBinding                           = 0
	sparseResidencyBuffer                   = 0
	sparseResidencyImage2D                  = 0
	sparseResidencyImage3D                  = 0
	sparseResidency2Samples                 = 0
	sparseResidency4Samples                 = 0
	sparseResidency8Samples                 = 0
	sparseResidency16Samples                = 0
	sparseResidencyAliased                  = 0
	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

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

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

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

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

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

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

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

VkPhysicalDeviceYcbcrImageArraysFeatures:
=========================================
	ycbcrImageArrays = 1

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

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

FORMAT_R4G4B4A4_UNORM_PACK16,
FORMAT_B4G4R4A4_UNORM_PACK16:
	linearTiling   FormatFeatureFlags:
		VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
		VK_FORMAT_FEATURE_COLOR_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

	optimalTiling  FormatFeatureFlags:
		VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT
		VK_FORMAT_FEATURE_COLOR_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:
		VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT

FORMAT_R5G6B5_UNORM_PACK16,
FORMAT_B5G6R5_UNORM_PACK16,
FORMAT_A1R5G5B5_UNORM_PACK16,
FORMAT_R8G8B8A8_SRGB,
FORMAT_B8G8R8A8_SRGB,
FORMAT_A8B8G8R8_SRGB_PACK32:
	linearTiling   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

	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_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_R32_SFLOAT,
FORMAT_R32G32_SFLOAT,
FORMAT_R32G32B32A32_SFLOAT,
FORMAT_B10G11R11_UFLOAT_PACK32:
	linearTiling   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

	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_USCALED,
FORMAT_R8G8B8_SSCALED,
FORMAT_R8G8B8A8_USCALED,
FORMAT_R8G8B8A8_SSCALED,
FORMAT_A8B8G8R8_USCALED_PACK32,
FORMAT_A8B8G8R8_SSCALED_PACK32,
FORMAT_A2R10G10B10_SNORM_PACK32,
FORMAT_A2R10G10B10_USCALED_PACK32,
FORMAT_A2R10G10B10_SSCALED_PACK32,
FORMAT_A2R10G10B10_UINT_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_USCALED,
FORMAT_R16G16B16_SSCALED,
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_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

	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_R8G8B8_SRGB,
FORMAT_E5B9G9R9_UFLOAT_PACK32:
	linearTiling   FormatFeatureFlags:
		VK_FORMAT_FEATURE_SAMPLED_IMAGE_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

	optimalTiling  FormatFeatureFlags:
		VK_FORMAT_FEATURE_SAMPLED_IMAGE_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_R8G8B8_UNORM,
FORMAT_R16G16B16_UNORM,
FORMAT_R32G32B32_SFLOAT:
	linearTiling   FormatFeatureFlags:
		VK_FORMAT_FEATURE_SAMPLED_IMAGE_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

	optimalTiling  FormatFeatureFlags:
		VK_FORMAT_FEATURE_SAMPLED_IMAGE_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_R8G8B8_SNORM,
FORMAT_R16G16B16_SNORM:
	linearTiling   FormatFeatureFlags:
		VK_FORMAT_FEATURE_SAMPLED_IMAGE_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

	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_R8G8B8_UINT,
FORMAT_R8G8B8_SINT,
FORMAT_R16G16B16_UINT,
FORMAT_R16G16B16_SINT,
FORMAT_R32G32B32_UINT,
FORMAT_R32G32B32_SINT:
	linearTiling   FormatFeatureFlags:
		VK_FORMAT_FEATURE_SAMPLED_IMAGE_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

	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_B8G8R8A8_UNORM,
FORMAT_A2R10G10B10_UNORM_PACK32:
	linearTiling   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

	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_R16G16B16_SFLOAT:
	linearTiling   FormatFeatureFlags:
		VK_FORMAT_FEATURE_SAMPLED_IMAGE_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

	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_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

	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_D16_UNORM,
FORMAT_X8_D24_UNORM_PACK32,
FORMAT_D32_SFLOAT,
FORMAT_D24_UNORM_S8_UINT,
FORMAT_D32_SFLOAT_S8_UINT:
	linearTiling   FormatFeatureFlags:
		None

	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_S8_UINT:
	linearTiling   FormatFeatureFlags:
		None

	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_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,
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:
	linearTiling   FormatFeatureFlags:
		VK_FORMAT_FEATURE_SAMPLED_IMAGE_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

	optimalTiling  FormatFeatureFlags:
		VK_FORMAT_FEATURE_SAMPLED_IMAGE_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_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:
	linearTiling   FormatFeatureFlags:
		None

	optimalTiling  FormatFeatureFlags:
		VK_FORMAT_FEATURE_SAMPLED_IMAGE_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_G8B8G8R8_422_UNORM,
FORMAT_B8G8R8G8_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_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_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

Unsupported formats:
FORMAT_UNDEFINED
FORMAT_R4G4_UNORM_PACK8
FORMAT_R5G5B5A1_UNORM_PACK16
FORMAT_B5G5R5A1_UNORM_PACK16
FORMAT_R8G8_SRGB
FORMAT_B8G8R8_UNORM
FORMAT_B8G8R8_SNORM
FORMAT_B8G8R8_USCALED
FORMAT_B8G8R8_SSCALED
FORMAT_B8G8R8_UINT
FORMAT_B8G8R8_SINT
FORMAT_B8G8R8_SRGB
FORMAT_B8G8R8A8_SNORM
FORMAT_B8G8R8A8_USCALED
FORMAT_B8G8R8A8_SSCALED
FORMAT_B8G8R8A8_UINT
FORMAT_B8G8R8A8_SINT
FORMAT_D16_UNORM_S8_UINT
FORMAT_R10X6_UNORM_PACK16
FORMAT_R10X6G10X6_UNORM_2PACK16
FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16
FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16
FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16
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_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16
FORMAT_R12X4_UNORM_PACK16
FORMAT_R12X4G12X4_UNORM_2PACK16
FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16
FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16
FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16
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_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16
FORMAT_G16B16G16R16_422_UNORM
FORMAT_B16G16R16G16_422_UNORM

SDL2 on Windows

I am unable to get the CMake build to recognize that SDL2 is there.

From www.libsdl.org, I used the Runtime Binaries, the Development Libraries and just the Source Code setting "-Dsdl2_DIR=" to various directories which should have made it happy but to no avail.

cmake version 3.12.18081601-MSVC_2

paint 1.0.0

Current cmake file indicates 1.0.0 but there is no tag on this repository
Do you expect to release a new version of paint at some point ?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.