diff --git a/README.md b/README.md index 90d0e83..7862fc5 100644 --- a/README.md +++ b/README.md @@ -39,10 +39,12 @@ to avoid incorrect or missing initializations and introduces type-safety with s errors into compile errors. Following is a list of features and conventions introduced by our Vulkan C++ layer: * works along the official C version of the API -* defines all symbols within the 'vk' namespace and to avoid redundancy the vk/Vk/VK_ prefixes have been removed from all symbols, i.e. vk::commandBindPipeline for vkCommandBindPipeline. +* defines all symbols within the 'vk' namespace and to avoid redundancy the vk/Vk/VK_ prefixes have been removed from all symbols, i.e. vk::ImageCreateInfo for VkImageCreateInfo. * camel case syntax with an 'e' prefix has been introduced for all enums, i.e. vk::ImageType::e2D (the prefix was a compromise, more about that later) removes the 'BIT' suffix from all flag related enums, i.e. vk::ImageUsage::eColorAttachment. * introduces constructors for all structs, which by default set the appropriate sType and all other values to zero. * encapsulates member variables of the structs with getter and setter functions, i.e. ci.imageType() to get a value and ci.imageType(vk::ImageType::e2D) to set a value. +* introduces wrapper classes around the vulkan handles, i.e. vk::CommandBuffer for VkCommandBuffer +* introduces member functions of those wrapper classes, that map to vulkan functions getting the corresponding vulkan handle as its first argument. The type of that handle is stripped from the function name, i.e. vk::Device::getProcAddr> for vkGetDeviceProcAddr. Note the special handling for the class CommandBuffer, where most of the vulkan functions would just include "Cmd", instead of "CommandBuffer", i.e. vk::CommandBuffer::bindPipeline for vkCmdBindPipeline. With those changes applied, the updated code snippet looks like this: @@ -62,7 +64,7 @@ ci.sharingMode(vk::SharingMode::eExclusive); // ci.queueFamilyIndexCount(0) // no need to set, already initialized // ci.pQueueFamilyIndices(0) // no need to set, already initialized ci.initialLayout(vk::ImageLayout::eUndefined); -vk::createImage(device, &ci, allocator, &image)); +device.createImage(&ci, allocator, &image); @@ -137,7 +139,7 @@ vk::ImageCreateInfo ci = vk::ImageCreateInfo() // .queueFamilyIndexCount(0) // no need to set, already initialized // .pQueueFamilyIndices(0) // no need to set, already initialized .initialLayout(vk::ImageLayout::eUndefined); -vk::createImage(device, &ci, allocator, &image)); +device.createImage(&ci, allocator, &image); @@ -165,7 +167,7 @@ Here are a few code examples: // Get VkInstance from vk::Instance nativeInstance = i; - // Get an std::vector as result of an enumeration call. + // Get a std::vector as result of an enumeration call. std::vector physicalDevices = i.enumeratePhysicalDevices(); vk::FormatProperties formatProperties = physicalDevices[0].getFormatProperties(vk::Format::eR8G8B8A8Unorm); @@ -194,7 +196,7 @@ To build the header for a given vk.xml specification continue with the following * Build VkCppGenerator * Grab your favourite version vk.xml from Khronos -* Version 1.0 of the API has a tiny bug. The section of the VK_KHR_display extension is missing one symbol which +* Up to Version 1.0.3 of the API there is a tiny bug in vk.xml. The section of the VK_KHR_display extension is missing one symbol which can easily be fixed by adding the following line
                 <type name="VkDisplayPlaneAlphaFlagsKHR"/>
diff --git a/VkCppGenerator.cpp b/VkCppGenerator.cpp
index 8e47986..d21fc08 100644
--- a/VkCppGenerator.cpp
+++ b/VkCppGenerator.cpp
@@ -345,12 +345,12 @@ void writeStructConstructor( std::ofstream & ofs, std::string const& name, std::
 void writeStructGetter( std::ofstream & ofs, MemberData const& memberData, std::string const& memberName, std::set const& vkTypes, bool constVersion );
 void writeStructSetter( std::ofstream & ofs, std::string const& name, MemberData const& memberData, std::string const& memberName, std::set const& vkTypes, std::map const& structs );
 void writeTypeCommand( std::ofstream & ofs, DependencyData const& dependencyData, CommandData const& commandData, std::set const& vkTypes );
-void writeTypeCommandEnhanced(std::ofstream & ofs, std::string const& indentation, std::string const& className, DependencyData const& dependencyData, CommandData const& commandData, std::set const& vkTypes);
+void writeTypeCommandEnhanced(std::ofstream & ofs, std::string const& indentation, std::string const& className, std::string const& functionName, DependencyData const& dependencyData, CommandData const& commandData, std::set const& vkTypes);
 void writeTypeCommandEnhanced(std::ofstream & ofs, std::string const& indentation, std::string const& className, std::string const& functionName, size_t templateIndex, DependencyData const& dependencyData, CommandData const& commandData, std::set const& vkTypes, std::map const& vectorParameters);
 void writeTypeCommandEnhancedSingleStep(std::ofstream & ofs, std::string const& indentation, std::string const& className, std::string const& functionName, std::string const& returnType, DependencyData const& dependencyData, CommandData const& commandData, std::set const& vkTypes, size_t returnIndex, size_t templateIndex, std::map const& vectorParameters);
 void writeTypeCommandEnhancedTwoStep(std::ofstream & ofs, std::string const& indentation, std::string const& className, std::string const& functionName, std::string const& returnType, size_t templateIndex, DependencyData const& dependencyData, CommandData const& commandData, std::set const& vkTypes, std::map const& vectorParameters);
 void writeTypeCommandEnhancedReplaceReturn(std::ofstream & ofs, std::string const& indentation, std::string const& className, std::string const& functionName, std::string const& returnType, size_t templateIndex, DependencyData const& dependencyData, CommandData const& commandData, std::set const& vkTypes, size_t returnIndex, std::map const& vectorParameters);
-void writeTypeCommandStandard(std::ofstream & ofs, DependencyData const& dependencyData, CommandData const& commandData, std::set const& vkTypes);
+void writeTypeCommandStandard(std::ofstream & ofs, std::string const& indentation, std::string const& functionName, DependencyData const& dependencyData, CommandData const& commandData, std::set const& vkTypes);
 void writeTypeCommandComplexBody(std::ofstream & ofs, DependencyData const& dependencyData, CommandData const& commandData, std::map const& nameMap, std::map const& vectorParameters, std::set const& argIndices, size_t complexIndex, size_t returnIndex);
 void writeTypeCommandSimpleBody(std::ofstream & ofs, DependencyData const& dependencyData, CommandData const& commandData, std::map const& nameMap, std::map const& vectorParameters, std::set const& argIndices, std::map> const& sizeIndices, size_t returnIndex);
 void writeTypeEnum(std::ofstream & ofs, DependencyData const& dependencyData, EnumData const& enumData);
@@ -1947,19 +1947,19 @@ void writeStructSetter( std::ofstream & ofs, std::string const& name, MemberData
 
 void writeTypeCommand( std::ofstream & ofs, DependencyData const& dependencyData, CommandData const& commandData, std::set const& vkTypes )
 {
-  enterProtect(ofs, commandData.protect);
-  writeTypeCommandStandard(ofs, dependencyData, commandData, vkTypes);
-  leaveProtect(ofs, commandData.protect);
   if (!commandData.handleCommand)
   {
-    ofs << "#ifdef VKCPP_ENHANCED_MODE" << std::endl;
-    writeTypeCommandEnhanced(ofs, "  ", "", dependencyData, commandData, vkTypes);
-    ofs << "#endif /*VKCPP_ENHANCED_MODE*/" << std::endl;
+    writeTypeCommandStandard(ofs, "  ", dependencyData.name, dependencyData, commandData, vkTypes);
+
+    ofs << std::endl
+        << "#ifdef VKCPP_ENHANCED_MODE" << std::endl;
+    writeTypeCommandEnhanced(ofs, "  ", "", dependencyData.name, dependencyData, commandData, vkTypes);
+    ofs << "#endif /*VKCPP_ENHANCED_MODE*/" << std::endl
+        << std::endl;
   }
-  ofs << std::endl;
 }
 
-void writeTypeCommandEnhanced(std::ofstream & ofs, std::string const& indentation, std::string const& className, DependencyData const& dependencyData, CommandData const& commandData, std::set const& vkTypes)
+void writeTypeCommandEnhanced(std::ofstream & ofs, std::string const& indentation, std::string const& className, std::string const& functionName, DependencyData const& dependencyData, CommandData const& commandData, std::set const& vkTypes)
 {
   enterProtect(ofs, commandData.protect);
   std::map vectorParameters = getVectorParameters(commandData);
@@ -1967,7 +1967,6 @@ void writeTypeCommandEnhanced(std::ofstream & ofs, std::string const& indentatio
   size_t templateIndex = findTemplateIndex(commandData, vectorParameters);
   std::map::const_iterator returnVector = vectorParameters.find(returnIndex);
   std::string returnType = determineReturnType(commandData, returnIndex, returnVector != vectorParameters.end());
-  std::string functionName = determineFunctionName(dependencyData.name, commandData);
 
   writeFunctionHeader(ofs, indentation, returnType, functionName, commandData, returnIndex, templateIndex, vectorParameters);
 
@@ -2183,12 +2182,19 @@ void writeTypeCommandEnhancedReplaceReturn(std::ofstream & ofs, std::string cons
       << indentation << "}" << std::endl;
 }
 
-void writeTypeCommandStandard(std::ofstream & ofs, DependencyData const& dependencyData, CommandData const& commandData, std::set const& vkTypes)
+void writeTypeCommandStandard(std::ofstream & ofs, std::string const& indentation, std::string const& functionName, DependencyData const& dependencyData, CommandData const& commandData, std::set const& vkTypes)
 {
-  ofs << "  inline " << commandData.returnType << " " << dependencyData.name << "( ";
-  for (size_t i = 0; i const& nameMap, std::map const& vectorParameters, std::set const& argIndices, size_t complexIndex, size_t returnIndex)
@@ -2517,9 +2530,9 @@ void writeTypeHandle(std::ofstream & ofs, DependencyData const& dependencyData,
       << "    }" << std::endl
       << "#endif\n"
       << std::endl;
+
   if (!handle.commands.empty())
   {
-    ofs << "#ifdef VKCPP_ENHANCED_MODE" << std::endl;
     for (size_t i = 0; i < handle.commands.size(); i++)
     {
       std::string commandName = handle.commands[i];
@@ -2527,14 +2540,22 @@ void writeTypeHandle(std::ofstream & ofs, DependencyData const& dependencyData,
       assert((cit != commands.end()) && cit->second.handleCommand);
       std::vector::const_iterator dep = std::find_if(dependencies.begin(), dependencies.end(), [commandName](DependencyData const& dd) { return dd.name == commandName; });
       assert(dep != dependencies.end());
-      writeTypeCommandEnhanced(ofs, "    ", dependencyData.name, *dep, cit->second, vkTypes);
+      std::string className = dependencyData.name;
+      std::string functionName = determineFunctionName(dep->name, cit->second);
+
+      writeTypeCommandStandard(ofs, "    ", functionName, *dep, cit->second, vkTypes);
+
+      ofs << std::endl
+          << "#ifdef VKCPP_ENHANCED_MODE" << std::endl;
+      writeTypeCommandEnhanced(ofs, "    ", className, functionName, *dep, cit->second, vkTypes);
+      ofs << "#endif /*VKCPP_ENHANCED_MODE*/" << std::endl;
+
       if (i < handle.commands.size() - 1)
       {
         ofs << std::endl;
       }
     }
-    ofs << "#endif /*VKCPP_ENHANCED_MODE*/" << std::endl
-        << std::endl;
+    ofs << std::endl;
   }
   ofs << "#if !defined(VK_CPP_TYPESAFE_CONVERSION)" << std::endl
       << "    explicit" << std::endl
diff --git a/vulkan/vk_cpp.h b/vulkan/vk_cpp.h
index a47e337..997bf5a 100644
--- a/vulkan/vk_cpp.h
+++ b/vulkan/vk_cpp.h
@@ -18125,6 +18125,11 @@ namespace vk
     }
 #endif
 
+    Result begin( const CommandBufferBeginInfo* pBeginInfo )
+    {
+      return static_cast( vkBeginCommandBuffer( m_commandBuffer, reinterpret_cast( pBeginInfo ) ) );
+    }
+
 #ifdef VKCPP_ENHANCED_MODE
     void begin( const CommandBufferBeginInfo& beginInfo ) const
     {
@@ -18134,7 +18139,14 @@ namespace vk
         throw Exception( result, "vk::CommandBuffer::begin" );
       }
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result end(  )
+    {
+      return static_cast( vkEndCommandBuffer( m_commandBuffer ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void end(  ) const
     {
       Result result = static_cast( vkEndCommandBuffer( m_commandBuffer ) );
@@ -18143,7 +18155,14 @@ namespace vk
         throw Exception( result, "vk::CommandBuffer::end" );
       }
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result reset( CommandBufferResetFlags flags )
+    {
+      return static_cast( vkResetCommandBuffer( m_commandBuffer, static_cast( flags ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void reset( CommandBufferResetFlags flags ) const
     {
       Result result = static_cast( vkResetCommandBuffer( m_commandBuffer, static_cast( flags ) ) );
@@ -18152,67 +18171,158 @@ namespace vk
         throw Exception( result, "vk::CommandBuffer::reset" );
       }
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
-    void bindPipeline( PipelineBindPoint pipelineBindPoint, Pipeline pipeline ) const
+    void bindPipeline( PipelineBindPoint pipelineBindPoint, Pipeline pipeline )
     {
       vkCmdBindPipeline( m_commandBuffer, static_cast( pipelineBindPoint ), static_cast( pipeline ) );
     }
 
+#ifdef VKCPP_ENHANCED_MODE
+    void bindPipeline( PipelineBindPoint pipelineBindPoint, Pipeline pipeline ) const
+    {
+      vkCmdBindPipeline( m_commandBuffer, static_cast( pipelineBindPoint ), static_cast( pipeline ) );
+    }
+#endif /*VKCPP_ENHANCED_MODE*/
+
+    void setViewport( uint32_t firstViewport, uint32_t viewportCount, const Viewport* pViewports )
+    {
+      vkCmdSetViewport( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast( pViewports ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void setViewport( uint32_t firstViewport, std::vector const& viewports ) const
     {
       vkCmdSetViewport( m_commandBuffer, firstViewport, static_cast( viewports.size() ), reinterpret_cast( viewports.data() ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void setScissor( uint32_t firstScissor, uint32_t scissorCount, const Rect2D* pScissors )
+    {
+      vkCmdSetScissor( m_commandBuffer, firstScissor, scissorCount, reinterpret_cast( pScissors ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void setScissor( uint32_t firstScissor, std::vector const& scissors ) const
     {
       vkCmdSetScissor( m_commandBuffer, firstScissor, static_cast( scissors.size() ), reinterpret_cast( scissors.data() ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
-    void setLineWidth( float lineWidth ) const
+    void setLineWidth( float lineWidth )
     {
       vkCmdSetLineWidth( m_commandBuffer, lineWidth );
     }
 
-    void setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor ) const
+#ifdef VKCPP_ENHANCED_MODE
+    void setLineWidth( float lineWidth ) const
+    {
+      vkCmdSetLineWidth( m_commandBuffer, lineWidth );
+    }
+#endif /*VKCPP_ENHANCED_MODE*/
+
+    void setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor )
     {
       vkCmdSetDepthBias( m_commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor );
     }
 
-    void setBlendConstants( const float blendConstants[4] ) const
+#ifdef VKCPP_ENHANCED_MODE
+    void setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor ) const
+    {
+      vkCmdSetDepthBias( m_commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor );
+    }
+#endif /*VKCPP_ENHANCED_MODE*/
+
+    void setBlendConstants( const float blendConstants[4] )
     {
       vkCmdSetBlendConstants( m_commandBuffer, blendConstants );
     }
 
-    void setDepthBounds( float minDepthBounds, float maxDepthBounds ) const
+#ifdef VKCPP_ENHANCED_MODE
+    void setBlendConstants( const float blendConstants[4] ) const
+    {
+      vkCmdSetBlendConstants( m_commandBuffer, blendConstants );
+    }
+#endif /*VKCPP_ENHANCED_MODE*/
+
+    void setDepthBounds( float minDepthBounds, float maxDepthBounds )
     {
       vkCmdSetDepthBounds( m_commandBuffer, minDepthBounds, maxDepthBounds );
     }
 
-    void setStencilCompareMask( StencilFaceFlags faceMask, uint32_t compareMask ) const
+#ifdef VKCPP_ENHANCED_MODE
+    void setDepthBounds( float minDepthBounds, float maxDepthBounds ) const
+    {
+      vkCmdSetDepthBounds( m_commandBuffer, minDepthBounds, maxDepthBounds );
+    }
+#endif /*VKCPP_ENHANCED_MODE*/
+
+    void setStencilCompareMask( StencilFaceFlags faceMask, uint32_t compareMask )
     {
       vkCmdSetStencilCompareMask( m_commandBuffer, static_cast( faceMask ), compareMask );
     }
 
-    void setStencilWriteMask( StencilFaceFlags faceMask, uint32_t writeMask ) const
+#ifdef VKCPP_ENHANCED_MODE
+    void setStencilCompareMask( StencilFaceFlags faceMask, uint32_t compareMask ) const
+    {
+      vkCmdSetStencilCompareMask( m_commandBuffer, static_cast( faceMask ), compareMask );
+    }
+#endif /*VKCPP_ENHANCED_MODE*/
+
+    void setStencilWriteMask( StencilFaceFlags faceMask, uint32_t writeMask )
     {
       vkCmdSetStencilWriteMask( m_commandBuffer, static_cast( faceMask ), writeMask );
     }
 
-    void setStencilReference( StencilFaceFlags faceMask, uint32_t reference ) const
+#ifdef VKCPP_ENHANCED_MODE
+    void setStencilWriteMask( StencilFaceFlags faceMask, uint32_t writeMask ) const
+    {
+      vkCmdSetStencilWriteMask( m_commandBuffer, static_cast( faceMask ), writeMask );
+    }
+#endif /*VKCPP_ENHANCED_MODE*/
+
+    void setStencilReference( StencilFaceFlags faceMask, uint32_t reference )
     {
       vkCmdSetStencilReference( m_commandBuffer, static_cast( faceMask ), reference );
     }
 
+#ifdef VKCPP_ENHANCED_MODE
+    void setStencilReference( StencilFaceFlags faceMask, uint32_t reference ) const
+    {
+      vkCmdSetStencilReference( m_commandBuffer, static_cast( faceMask ), reference );
+    }
+#endif /*VKCPP_ENHANCED_MODE*/
+
+    void bindDescriptorSets( PipelineBindPoint pipelineBindPoint, PipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const DescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets )
+    {
+      vkCmdBindDescriptorSets( m_commandBuffer, static_cast( pipelineBindPoint ), static_cast( layout ), firstSet, descriptorSetCount, reinterpret_cast( pDescriptorSets ), dynamicOffsetCount, pDynamicOffsets );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void bindDescriptorSets( PipelineBindPoint pipelineBindPoint, PipelineLayout layout, uint32_t firstSet, std::vector const& descriptorSets, std::vector const& dynamicOffsets ) const
     {
       vkCmdBindDescriptorSets( m_commandBuffer, static_cast( pipelineBindPoint ), static_cast( layout ), firstSet, static_cast( descriptorSets.size() ), reinterpret_cast( descriptorSets.data() ), static_cast( dynamicOffsets.size() ), dynamicOffsets.data() );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
-    void bindIndexBuffer( Buffer buffer, DeviceSize offset, IndexType indexType ) const
+    void bindIndexBuffer( Buffer buffer, DeviceSize offset, IndexType indexType )
     {
       vkCmdBindIndexBuffer( m_commandBuffer, static_cast( buffer ), offset, static_cast( indexType ) );
     }
 
+#ifdef VKCPP_ENHANCED_MODE
+    void bindIndexBuffer( Buffer buffer, DeviceSize offset, IndexType indexType ) const
+    {
+      vkCmdBindIndexBuffer( m_commandBuffer, static_cast( buffer ), offset, static_cast( indexType ) );
+    }
+#endif /*VKCPP_ENHANCED_MODE*/
+
+    void bindVertexBuffers( uint32_t firstBinding, uint32_t bindingCount, const Buffer* pBuffers, const DeviceSize* pOffsets )
+    {
+      vkCmdBindVertexBuffers( m_commandBuffer, firstBinding, bindingCount, reinterpret_cast( pBuffers ), pOffsets );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void bindVertexBuffers( uint32_t firstBinding, std::vector const& buffers, std::vector const& offsets ) const
     {
       if ( buffers.size() != offsets.size() )
@@ -18221,159 +18331,376 @@ namespace vk
       }
       vkCmdBindVertexBuffers( m_commandBuffer, firstBinding, static_cast( buffers.size() ), reinterpret_cast( buffers.data() ), offsets.data() );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
-    void draw( uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance ) const
+    void draw( uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance )
     {
       vkCmdDraw( m_commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance );
     }
 
-    void drawIndexed( uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance ) const
+#ifdef VKCPP_ENHANCED_MODE
+    void draw( uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance ) const
+    {
+      vkCmdDraw( m_commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance );
+    }
+#endif /*VKCPP_ENHANCED_MODE*/
+
+    void drawIndexed( uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance )
     {
       vkCmdDrawIndexed( m_commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance );
     }
 
-    void drawIndirect( Buffer buffer, DeviceSize offset, uint32_t drawCount, uint32_t stride ) const
+#ifdef VKCPP_ENHANCED_MODE
+    void drawIndexed( uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance ) const
+    {
+      vkCmdDrawIndexed( m_commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance );
+    }
+#endif /*VKCPP_ENHANCED_MODE*/
+
+    void drawIndirect( Buffer buffer, DeviceSize offset, uint32_t drawCount, uint32_t stride )
     {
       vkCmdDrawIndirect( m_commandBuffer, static_cast( buffer ), offset, drawCount, stride );
     }
 
-    void drawIndexedIndirect( Buffer buffer, DeviceSize offset, uint32_t drawCount, uint32_t stride ) const
+#ifdef VKCPP_ENHANCED_MODE
+    void drawIndirect( Buffer buffer, DeviceSize offset, uint32_t drawCount, uint32_t stride ) const
+    {
+      vkCmdDrawIndirect( m_commandBuffer, static_cast( buffer ), offset, drawCount, stride );
+    }
+#endif /*VKCPP_ENHANCED_MODE*/
+
+    void drawIndexedIndirect( Buffer buffer, DeviceSize offset, uint32_t drawCount, uint32_t stride )
     {
       vkCmdDrawIndexedIndirect( m_commandBuffer, static_cast( buffer ), offset, drawCount, stride );
     }
 
-    void dispatch( uint32_t x, uint32_t y, uint32_t z ) const
+#ifdef VKCPP_ENHANCED_MODE
+    void drawIndexedIndirect( Buffer buffer, DeviceSize offset, uint32_t drawCount, uint32_t stride ) const
+    {
+      vkCmdDrawIndexedIndirect( m_commandBuffer, static_cast( buffer ), offset, drawCount, stride );
+    }
+#endif /*VKCPP_ENHANCED_MODE*/
+
+    void dispatch( uint32_t x, uint32_t y, uint32_t z )
     {
       vkCmdDispatch( m_commandBuffer, x, y, z );
     }
 
-    void dispatchIndirect( Buffer buffer, DeviceSize offset ) const
+#ifdef VKCPP_ENHANCED_MODE
+    void dispatch( uint32_t x, uint32_t y, uint32_t z ) const
+    {
+      vkCmdDispatch( m_commandBuffer, x, y, z );
+    }
+#endif /*VKCPP_ENHANCED_MODE*/
+
+    void dispatchIndirect( Buffer buffer, DeviceSize offset )
     {
       vkCmdDispatchIndirect( m_commandBuffer, static_cast( buffer ), offset );
     }
 
+#ifdef VKCPP_ENHANCED_MODE
+    void dispatchIndirect( Buffer buffer, DeviceSize offset ) const
+    {
+      vkCmdDispatchIndirect( m_commandBuffer, static_cast( buffer ), offset );
+    }
+#endif /*VKCPP_ENHANCED_MODE*/
+
+    void copyBuffer( Buffer srcBuffer, Buffer dstBuffer, uint32_t regionCount, const BufferCopy* pRegions )
+    {
+      vkCmdCopyBuffer( m_commandBuffer, static_cast( srcBuffer ), static_cast( dstBuffer ), regionCount, reinterpret_cast( pRegions ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void copyBuffer( Buffer srcBuffer, Buffer dstBuffer, std::vector const& regions ) const
     {
       vkCmdCopyBuffer( m_commandBuffer, static_cast( srcBuffer ), static_cast( dstBuffer ), static_cast( regions.size() ), reinterpret_cast( regions.data() ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void copyImage( Image srcImage, ImageLayout srcImageLayout, Image dstImage, ImageLayout dstImageLayout, uint32_t regionCount, const ImageCopy* pRegions )
+    {
+      vkCmdCopyImage( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstImage ), static_cast( dstImageLayout ), regionCount, reinterpret_cast( pRegions ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void copyImage( Image srcImage, ImageLayout srcImageLayout, Image dstImage, ImageLayout dstImageLayout, std::vector const& regions ) const
     {
       vkCmdCopyImage( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstImage ), static_cast( dstImageLayout ), static_cast( regions.size() ), reinterpret_cast( regions.data() ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void blitImage( Image srcImage, ImageLayout srcImageLayout, Image dstImage, ImageLayout dstImageLayout, uint32_t regionCount, const ImageBlit* pRegions, Filter filter )
+    {
+      vkCmdBlitImage( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstImage ), static_cast( dstImageLayout ), regionCount, reinterpret_cast( pRegions ), static_cast( filter ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void blitImage( Image srcImage, ImageLayout srcImageLayout, Image dstImage, ImageLayout dstImageLayout, std::vector const& regions, Filter filter ) const
     {
       vkCmdBlitImage( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstImage ), static_cast( dstImageLayout ), static_cast( regions.size() ), reinterpret_cast( regions.data() ), static_cast( filter ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void copyBufferToImage( Buffer srcBuffer, Image dstImage, ImageLayout dstImageLayout, uint32_t regionCount, const BufferImageCopy* pRegions )
+    {
+      vkCmdCopyBufferToImage( m_commandBuffer, static_cast( srcBuffer ), static_cast( dstImage ), static_cast( dstImageLayout ), regionCount, reinterpret_cast( pRegions ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void copyBufferToImage( Buffer srcBuffer, Image dstImage, ImageLayout dstImageLayout, std::vector const& regions ) const
     {
       vkCmdCopyBufferToImage( m_commandBuffer, static_cast( srcBuffer ), static_cast( dstImage ), static_cast( dstImageLayout ), static_cast( regions.size() ), reinterpret_cast( regions.data() ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void copyImageToBuffer( Image srcImage, ImageLayout srcImageLayout, Buffer dstBuffer, uint32_t regionCount, const BufferImageCopy* pRegions )
+    {
+      vkCmdCopyImageToBuffer( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstBuffer ), regionCount, reinterpret_cast( pRegions ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void copyImageToBuffer( Image srcImage, ImageLayout srcImageLayout, Buffer dstBuffer, std::vector const& regions ) const
     {
       vkCmdCopyImageToBuffer( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstBuffer ), static_cast( regions.size() ), reinterpret_cast( regions.data() ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void updateBuffer( Buffer dstBuffer, DeviceSize dstOffset, DeviceSize dataSize, const uint32_t* pData )
+    {
+      vkCmdUpdateBuffer( m_commandBuffer, static_cast( dstBuffer ), dstOffset, dataSize, pData );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     template 
     void updateBuffer( Buffer dstBuffer, DeviceSize dstOffset, std::vector const& data ) const
     {
       static_assert( sizeof( T ) % sizeof( uint32_t ) == 0, "wrong size of template type T" );
       vkCmdUpdateBuffer( m_commandBuffer, static_cast( dstBuffer ), dstOffset, static_cast( data.size() * sizeof( T ) ), reinterpret_cast( data.data() ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
-    void fillBuffer( Buffer dstBuffer, DeviceSize dstOffset, DeviceSize size, uint32_t data ) const
+    void fillBuffer( Buffer dstBuffer, DeviceSize dstOffset, DeviceSize size, uint32_t data )
     {
       vkCmdFillBuffer( m_commandBuffer, static_cast( dstBuffer ), dstOffset, size, data );
     }
 
+#ifdef VKCPP_ENHANCED_MODE
+    void fillBuffer( Buffer dstBuffer, DeviceSize dstOffset, DeviceSize size, uint32_t data ) const
+    {
+      vkCmdFillBuffer( m_commandBuffer, static_cast( dstBuffer ), dstOffset, size, data );
+    }
+#endif /*VKCPP_ENHANCED_MODE*/
+
+    void clearColorImage( Image image, ImageLayout imageLayout, const ClearColorValue* pColor, uint32_t rangeCount, const ImageSubresourceRange* pRanges )
+    {
+      vkCmdClearColorImage( m_commandBuffer, static_cast( image ), static_cast( imageLayout ), reinterpret_cast( pColor ), rangeCount, reinterpret_cast( pRanges ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void clearColorImage( Image image, ImageLayout imageLayout, const ClearColorValue& color, std::vector const& ranges ) const
     {
       vkCmdClearColorImage( m_commandBuffer, static_cast( image ), static_cast( imageLayout ), reinterpret_cast( &color ), static_cast( ranges.size() ), reinterpret_cast( ranges.data() ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void clearDepthStencilImage( Image image, ImageLayout imageLayout, const ClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const ImageSubresourceRange* pRanges )
+    {
+      vkCmdClearDepthStencilImage( m_commandBuffer, static_cast( image ), static_cast( imageLayout ), reinterpret_cast( pDepthStencil ), rangeCount, reinterpret_cast( pRanges ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void clearDepthStencilImage( Image image, ImageLayout imageLayout, const ClearDepthStencilValue& depthStencil, std::vector const& ranges ) const
     {
       vkCmdClearDepthStencilImage( m_commandBuffer, static_cast( image ), static_cast( imageLayout ), reinterpret_cast( &depthStencil ), static_cast( ranges.size() ), reinterpret_cast( ranges.data() ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void clearAttachments( uint32_t attachmentCount, const ClearAttachment* pAttachments, uint32_t rectCount, const ClearRect* pRects )
+    {
+      vkCmdClearAttachments( m_commandBuffer, attachmentCount, reinterpret_cast( pAttachments ), rectCount, reinterpret_cast( pRects ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void clearAttachments( std::vector const& attachments, std::vector const& rects ) const
     {
       vkCmdClearAttachments( m_commandBuffer, static_cast( attachments.size() ), reinterpret_cast( attachments.data() ), static_cast( rects.size() ), reinterpret_cast( rects.data() ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void resolveImage( Image srcImage, ImageLayout srcImageLayout, Image dstImage, ImageLayout dstImageLayout, uint32_t regionCount, const ImageResolve* pRegions )
+    {
+      vkCmdResolveImage( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstImage ), static_cast( dstImageLayout ), regionCount, reinterpret_cast( pRegions ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void resolveImage( Image srcImage, ImageLayout srcImageLayout, Image dstImage, ImageLayout dstImageLayout, std::vector const& regions ) const
     {
       vkCmdResolveImage( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstImage ), static_cast( dstImageLayout ), static_cast( regions.size() ), reinterpret_cast( regions.data() ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
-    void setEvent( Event event, PipelineStageFlags stageMask ) const
+    void setEvent( Event event, PipelineStageFlags stageMask )
     {
       vkCmdSetEvent( m_commandBuffer, static_cast( event ), static_cast( stageMask ) );
     }
 
-    void resetEvent( Event event, PipelineStageFlags stageMask ) const
+#ifdef VKCPP_ENHANCED_MODE
+    void setEvent( Event event, PipelineStageFlags stageMask ) const
+    {
+      vkCmdSetEvent( m_commandBuffer, static_cast( event ), static_cast( stageMask ) );
+    }
+#endif /*VKCPP_ENHANCED_MODE*/
+
+    void resetEvent( Event event, PipelineStageFlags stageMask )
     {
       vkCmdResetEvent( m_commandBuffer, static_cast( event ), static_cast( stageMask ) );
     }
 
+#ifdef VKCPP_ENHANCED_MODE
+    void resetEvent( Event event, PipelineStageFlags stageMask ) const
+    {
+      vkCmdResetEvent( m_commandBuffer, static_cast( event ), static_cast( stageMask ) );
+    }
+#endif /*VKCPP_ENHANCED_MODE*/
+
+    void waitEvents( uint32_t eventCount, const Event* pEvents, PipelineStageFlags srcStageMask, PipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const MemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const BufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const ImageMemoryBarrier* pImageMemoryBarriers )
+    {
+      vkCmdWaitEvents( m_commandBuffer, eventCount, reinterpret_cast( pEvents ), static_cast( srcStageMask ), static_cast( dstStageMask ), memoryBarrierCount, reinterpret_cast( pMemoryBarriers ), bufferMemoryBarrierCount, reinterpret_cast( pBufferMemoryBarriers ), imageMemoryBarrierCount, reinterpret_cast( pImageMemoryBarriers ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void waitEvents( std::vector const& events, PipelineStageFlags srcStageMask, PipelineStageFlags dstStageMask, std::vector const& memoryBarriers, std::vector const& bufferMemoryBarriers, std::vector const& imageMemoryBarriers ) const
     {
       vkCmdWaitEvents( m_commandBuffer, static_cast( events.size() ), reinterpret_cast( events.data() ), static_cast( srcStageMask ), static_cast( dstStageMask ), static_cast( memoryBarriers.size() ), reinterpret_cast( memoryBarriers.data() ), static_cast( bufferMemoryBarriers.size() ), reinterpret_cast( bufferMemoryBarriers.data() ), static_cast( imageMemoryBarriers.size() ), reinterpret_cast( imageMemoryBarriers.data() ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void pipelineBarrier( PipelineStageFlags srcStageMask, PipelineStageFlags dstStageMask, DependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const MemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const BufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const ImageMemoryBarrier* pImageMemoryBarriers )
+    {
+      vkCmdPipelineBarrier( m_commandBuffer, static_cast( srcStageMask ), static_cast( dstStageMask ), static_cast( dependencyFlags ), memoryBarrierCount, reinterpret_cast( pMemoryBarriers ), bufferMemoryBarrierCount, reinterpret_cast( pBufferMemoryBarriers ), imageMemoryBarrierCount, reinterpret_cast( pImageMemoryBarriers ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void pipelineBarrier( PipelineStageFlags srcStageMask, PipelineStageFlags dstStageMask, DependencyFlags dependencyFlags, std::vector const& memoryBarriers, std::vector const& bufferMemoryBarriers, std::vector const& imageMemoryBarriers ) const
     {
       vkCmdPipelineBarrier( m_commandBuffer, static_cast( srcStageMask ), static_cast( dstStageMask ), static_cast( dependencyFlags ), static_cast( memoryBarriers.size() ), reinterpret_cast( memoryBarriers.data() ), static_cast( bufferMemoryBarriers.size() ), reinterpret_cast( bufferMemoryBarriers.data() ), static_cast( imageMemoryBarriers.size() ), reinterpret_cast( imageMemoryBarriers.data() ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
-    void beginQuery( QueryPool queryPool, uint32_t query, QueryControlFlags flags ) const
+    void beginQuery( QueryPool queryPool, uint32_t query, QueryControlFlags flags )
     {
       vkCmdBeginQuery( m_commandBuffer, static_cast( queryPool ), query, static_cast( flags ) );
     }
 
-    void endQuery( QueryPool queryPool, uint32_t query ) const
+#ifdef VKCPP_ENHANCED_MODE
+    void beginQuery( QueryPool queryPool, uint32_t query, QueryControlFlags flags ) const
+    {
+      vkCmdBeginQuery( m_commandBuffer, static_cast( queryPool ), query, static_cast( flags ) );
+    }
+#endif /*VKCPP_ENHANCED_MODE*/
+
+    void endQuery( QueryPool queryPool, uint32_t query )
     {
       vkCmdEndQuery( m_commandBuffer, static_cast( queryPool ), query );
     }
 
-    void resetQueryPool( QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const
+#ifdef VKCPP_ENHANCED_MODE
+    void endQuery( QueryPool queryPool, uint32_t query ) const
+    {
+      vkCmdEndQuery( m_commandBuffer, static_cast( queryPool ), query );
+    }
+#endif /*VKCPP_ENHANCED_MODE*/
+
+    void resetQueryPool( QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount )
     {
       vkCmdResetQueryPool( m_commandBuffer, static_cast( queryPool ), firstQuery, queryCount );
     }
 
-    void writeTimestamp( PipelineStageFlagBits pipelineStage, QueryPool queryPool, uint32_t query ) const
+#ifdef VKCPP_ENHANCED_MODE
+    void resetQueryPool( QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const
+    {
+      vkCmdResetQueryPool( m_commandBuffer, static_cast( queryPool ), firstQuery, queryCount );
+    }
+#endif /*VKCPP_ENHANCED_MODE*/
+
+    void writeTimestamp( PipelineStageFlagBits pipelineStage, QueryPool queryPool, uint32_t query )
     {
       vkCmdWriteTimestamp( m_commandBuffer, static_cast( pipelineStage ), static_cast( queryPool ), query );
     }
 
-    void copyQueryPoolResults( QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Buffer dstBuffer, DeviceSize dstOffset, DeviceSize stride, QueryResultFlags flags ) const
+#ifdef VKCPP_ENHANCED_MODE
+    void writeTimestamp( PipelineStageFlagBits pipelineStage, QueryPool queryPool, uint32_t query ) const
+    {
+      vkCmdWriteTimestamp( m_commandBuffer, static_cast( pipelineStage ), static_cast( queryPool ), query );
+    }
+#endif /*VKCPP_ENHANCED_MODE*/
+
+    void copyQueryPoolResults( QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Buffer dstBuffer, DeviceSize dstOffset, DeviceSize stride, QueryResultFlags flags )
     {
       vkCmdCopyQueryPoolResults( m_commandBuffer, static_cast( queryPool ), firstQuery, queryCount, static_cast( dstBuffer ), dstOffset, stride, static_cast( flags ) );
     }
 
+#ifdef VKCPP_ENHANCED_MODE
+    void copyQueryPoolResults( QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Buffer dstBuffer, DeviceSize dstOffset, DeviceSize stride, QueryResultFlags flags ) const
+    {
+      vkCmdCopyQueryPoolResults( m_commandBuffer, static_cast( queryPool ), firstQuery, queryCount, static_cast( dstBuffer ), dstOffset, stride, static_cast( flags ) );
+    }
+#endif /*VKCPP_ENHANCED_MODE*/
+
+    void pushConstants( PipelineLayout layout, ShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues )
+    {
+      vkCmdPushConstants( m_commandBuffer, static_cast( layout ), static_cast( stageFlags ), offset, size, pValues );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void pushConstants( PipelineLayout layout, ShaderStageFlags stageFlags, uint32_t offset, std::vector const& values ) const
     {
       vkCmdPushConstants( m_commandBuffer, static_cast( layout ), static_cast( stageFlags ), offset, static_cast( values.size() ), values.data() );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void beginRenderPass( const RenderPassBeginInfo* pRenderPassBegin, SubpassContents contents )
+    {
+      vkCmdBeginRenderPass( m_commandBuffer, reinterpret_cast( pRenderPassBegin ), static_cast( contents ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void beginRenderPass( const RenderPassBeginInfo& renderPassBegin, SubpassContents contents ) const
     {
       vkCmdBeginRenderPass( m_commandBuffer, reinterpret_cast( &renderPassBegin ), static_cast( contents ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
-    void nextSubpass( SubpassContents contents ) const
+    void nextSubpass( SubpassContents contents )
     {
       vkCmdNextSubpass( m_commandBuffer, static_cast( contents ) );
     }
 
-    void endRenderPass(  ) const
+#ifdef VKCPP_ENHANCED_MODE
+    void nextSubpass( SubpassContents contents ) const
+    {
+      vkCmdNextSubpass( m_commandBuffer, static_cast( contents ) );
+    }
+#endif /*VKCPP_ENHANCED_MODE*/
+
+    void endRenderPass(  )
     {
       vkCmdEndRenderPass( m_commandBuffer );
     }
 
+#ifdef VKCPP_ENHANCED_MODE
+    void endRenderPass(  ) const
+    {
+      vkCmdEndRenderPass( m_commandBuffer );
+    }
+#endif /*VKCPP_ENHANCED_MODE*/
+
+    void executeCommands( uint32_t commandBufferCount, const CommandBuffer* pCommandBuffers )
+    {
+      vkCmdExecuteCommands( m_commandBuffer, commandBufferCount, reinterpret_cast( pCommandBuffers ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void executeCommands( std::vector const& commandBuffers ) const
     {
       vkCmdExecuteCommands( m_commandBuffer, static_cast( commandBuffers.size() ), reinterpret_cast( commandBuffers.data() ) );
@@ -18958,6 +19285,11 @@ namespace vk
     }
 #endif
 
+    Result submit( uint32_t submitCount, const SubmitInfo* pSubmits, Fence fence )
+    {
+      return static_cast( vkQueueSubmit( m_queue, submitCount, reinterpret_cast( pSubmits ), static_cast( fence ) ) );
+    }
+
 #ifdef VKCPP_ENHANCED_MODE
     void submit( std::vector const& submits, Fence fence ) const
     {
@@ -18967,7 +19299,14 @@ namespace vk
         throw Exception( result, "vk::Queue::submit" );
       }
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result waitIdle(  )
+    {
+      return static_cast( vkQueueWaitIdle( m_queue ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void waitIdle(  ) const
     {
       Result result = static_cast( vkQueueWaitIdle( m_queue ) );
@@ -18976,7 +19315,14 @@ namespace vk
         throw Exception( result, "vk::Queue::waitIdle" );
       }
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result bindSparse( uint32_t bindInfoCount, const BindSparseInfo* pBindInfo, Fence fence )
+    {
+      return static_cast( vkQueueBindSparse( m_queue, bindInfoCount, reinterpret_cast( pBindInfo ), static_cast( fence ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void bindSparse( std::vector const& bindInfo, Fence fence ) const
     {
       Result result = static_cast( vkQueueBindSparse( m_queue, static_cast( bindInfo.size() ), reinterpret_cast( bindInfo.data() ), static_cast( fence ) ) );
@@ -18985,7 +19331,14 @@ namespace vk
         throw Exception( result, "vk::Queue::bindSparse" );
       }
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result presentKHR( const PresentInfoKHR* pPresentInfo )
+    {
+      return static_cast( vkQueuePresentKHR( m_queue, reinterpret_cast( pPresentInfo ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     Result presentKHR( const PresentInfoKHR& presentInfo ) const
     {
       Result result = static_cast( vkQueuePresentKHR( m_queue, reinterpret_cast( &presentInfo ) ) );
@@ -20276,24 +20629,50 @@ namespace vk
     }
 #endif
 
+    PFN_vkVoidFunction getProcAddr( const char* pName )
+    {
+      return vkGetDeviceProcAddr( m_device, pName );
+    }
+
 #ifdef VKCPP_ENHANCED_MODE
     PFN_vkVoidFunction getProcAddr( std::string const& name ) const
     {
       return vkGetDeviceProcAddr( m_device, name.c_str() );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void destroy( const AllocationCallbacks* pAllocator )
+    {
+      vkDestroyDevice( m_device, reinterpret_cast( pAllocator ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void destroy( const AllocationCallbacks& allocator ) const
     {
       vkDestroyDevice( m_device, reinterpret_cast( &allocator ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, Queue* pQueue )
+    {
+      vkGetDeviceQueue( m_device, queueFamilyIndex, queueIndex, reinterpret_cast( pQueue ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     Queue getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex ) const
     {
       Queue queue;
       vkGetDeviceQueue( m_device, queueFamilyIndex, queueIndex, reinterpret_cast( &queue ) );
       return queue;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result waitIdle(  )
+    {
+      return static_cast( vkDeviceWaitIdle( m_device ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void waitIdle(  ) const
     {
       Result result = static_cast( vkDeviceWaitIdle( m_device ) );
@@ -20302,7 +20681,14 @@ namespace vk
         throw Exception( result, "vk::Device::waitIdle" );
       }
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result allocateMemory( const MemoryAllocateInfo* pAllocateInfo, const AllocationCallbacks* pAllocator, DeviceMemory* pMemory )
+    {
+      return static_cast( vkAllocateMemory( m_device, reinterpret_cast( pAllocateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pMemory ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     DeviceMemory allocateMemory( const MemoryAllocateInfo& allocateInfo, const AllocationCallbacks& allocator ) const
     {
       DeviceMemory memory;
@@ -20313,12 +20699,26 @@ namespace vk
       }
       return memory;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void freeMemory( DeviceMemory memory, const AllocationCallbacks* pAllocator )
+    {
+      vkFreeMemory( m_device, static_cast( memory ), reinterpret_cast( pAllocator ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void freeMemory( DeviceMemory memory, const AllocationCallbacks& allocator ) const
     {
       vkFreeMemory( m_device, static_cast( memory ), reinterpret_cast( &allocator ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result mapMemory( DeviceMemory memory, DeviceSize offset, DeviceSize size, MemoryMapFlags flags, void** ppData )
+    {
+      return static_cast( vkMapMemory( m_device, static_cast( memory ), offset, size, static_cast( flags ), ppData ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void* mapMemory( DeviceMemory memory, DeviceSize offset, DeviceSize size, MemoryMapFlags flags ) const
     {
       void* pData;
@@ -20329,12 +20729,26 @@ namespace vk
       }
       return pData;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
-    void unmapMemory( DeviceMemory memory ) const
+    void unmapMemory( DeviceMemory memory )
     {
       vkUnmapMemory( m_device, static_cast( memory ) );
     }
 
+#ifdef VKCPP_ENHANCED_MODE
+    void unmapMemory( DeviceMemory memory ) const
+    {
+      vkUnmapMemory( m_device, static_cast( memory ) );
+    }
+#endif /*VKCPP_ENHANCED_MODE*/
+
+    Result flushMappedMemoryRanges( uint32_t memoryRangeCount, const MappedMemoryRange* pMemoryRanges )
+    {
+      return static_cast( vkFlushMappedMemoryRanges( m_device, memoryRangeCount, reinterpret_cast( pMemoryRanges ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void flushMappedMemoryRanges( std::vector const& memoryRanges ) const
     {
       Result result = static_cast( vkFlushMappedMemoryRanges( m_device, static_cast( memoryRanges.size() ), reinterpret_cast( memoryRanges.data() ) ) );
@@ -20343,7 +20757,14 @@ namespace vk
         throw Exception( result, "vk::Device::flushMappedMemoryRanges" );
       }
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result invalidateMappedMemoryRanges( uint32_t memoryRangeCount, const MappedMemoryRange* pMemoryRanges )
+    {
+      return static_cast( vkInvalidateMappedMemoryRanges( m_device, memoryRangeCount, reinterpret_cast( pMemoryRanges ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void invalidateMappedMemoryRanges( std::vector const& memoryRanges ) const
     {
       Result result = static_cast( vkInvalidateMappedMemoryRanges( m_device, static_cast( memoryRanges.size() ), reinterpret_cast( memoryRanges.data() ) ) );
@@ -20352,21 +20773,42 @@ namespace vk
         throw Exception( result, "vk::Device::invalidateMappedMemoryRanges" );
       }
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void getMemoryCommitment( DeviceMemory memory, DeviceSize* pCommittedMemoryInBytes )
+    {
+      vkGetDeviceMemoryCommitment( m_device, static_cast( memory ), pCommittedMemoryInBytes );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     DeviceSize getMemoryCommitment( DeviceMemory memory ) const
     {
       DeviceSize committedMemoryInBytes;
       vkGetDeviceMemoryCommitment( m_device, static_cast( memory ), &committedMemoryInBytes );
       return committedMemoryInBytes;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void getBufferMemoryRequirements( Buffer buffer, MemoryRequirements* pMemoryRequirements )
+    {
+      vkGetBufferMemoryRequirements( m_device, static_cast( buffer ), reinterpret_cast( pMemoryRequirements ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     MemoryRequirements getBufferMemoryRequirements( Buffer buffer ) const
     {
       MemoryRequirements memoryRequirements;
       vkGetBufferMemoryRequirements( m_device, static_cast( buffer ), reinterpret_cast( &memoryRequirements ) );
       return memoryRequirements;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result bindBufferMemory( Buffer buffer, DeviceMemory memory, DeviceSize memoryOffset )
+    {
+      return static_cast( vkBindBufferMemory( m_device, static_cast( buffer ), static_cast( memory ), memoryOffset ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void bindBufferMemory( Buffer buffer, DeviceMemory memory, DeviceSize memoryOffset ) const
     {
       Result result = static_cast( vkBindBufferMemory( m_device, static_cast( buffer ), static_cast( memory ), memoryOffset ) );
@@ -20375,14 +20817,28 @@ namespace vk
         throw Exception( result, "vk::Device::bindBufferMemory" );
       }
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void getImageMemoryRequirements( Image image, MemoryRequirements* pMemoryRequirements )
+    {
+      vkGetImageMemoryRequirements( m_device, static_cast( image ), reinterpret_cast( pMemoryRequirements ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     MemoryRequirements getImageMemoryRequirements( Image image ) const
     {
       MemoryRequirements memoryRequirements;
       vkGetImageMemoryRequirements( m_device, static_cast( image ), reinterpret_cast( &memoryRequirements ) );
       return memoryRequirements;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result bindImageMemory( Image image, DeviceMemory memory, DeviceSize memoryOffset )
+    {
+      return static_cast( vkBindImageMemory( m_device, static_cast( image ), static_cast( memory ), memoryOffset ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void bindImageMemory( Image image, DeviceMemory memory, DeviceSize memoryOffset ) const
     {
       Result result = static_cast( vkBindImageMemory( m_device, static_cast( image ), static_cast( memory ), memoryOffset ) );
@@ -20391,7 +20847,14 @@ namespace vk
         throw Exception( result, "vk::Device::bindImageMemory" );
       }
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void getImageSparseMemoryRequirements( Image image, uint32_t* pSparseMemoryRequirementCount, SparseImageMemoryRequirements* pSparseMemoryRequirements )
+    {
+      vkGetImageSparseMemoryRequirements( m_device, static_cast( image ), pSparseMemoryRequirementCount, reinterpret_cast( pSparseMemoryRequirements ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     std::vector getImageSparseMemoryRequirements( Image image ) const
     {
       std::vector sparseMemoryRequirements;
@@ -20401,7 +20864,14 @@ namespace vk
       vkGetImageSparseMemoryRequirements( m_device, static_cast( image ), &sparseMemoryRequirementCount, reinterpret_cast( sparseMemoryRequirements.data() ) );
       return std::move( sparseMemoryRequirements );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result createFence( const FenceCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Fence* pFence )
+    {
+      return static_cast( vkCreateFence( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pFence ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     Fence createFence( const FenceCreateInfo& createInfo, const AllocationCallbacks& allocator ) const
     {
       Fence fence;
@@ -20412,12 +20882,26 @@ namespace vk
       }
       return fence;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void destroyFence( Fence fence, const AllocationCallbacks* pAllocator )
+    {
+      vkDestroyFence( m_device, static_cast( fence ), reinterpret_cast( pAllocator ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void destroyFence( Fence fence, const AllocationCallbacks& allocator ) const
     {
       vkDestroyFence( m_device, static_cast( fence ), reinterpret_cast( &allocator ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result resetFences( uint32_t fenceCount, const Fence* pFences )
+    {
+      return static_cast( vkResetFences( m_device, fenceCount, reinterpret_cast( pFences ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void resetFences( std::vector const& fences ) const
     {
       Result result = static_cast( vkResetFences( m_device, static_cast( fences.size() ), reinterpret_cast( fences.data() ) ) );
@@ -20426,7 +20910,14 @@ namespace vk
         throw Exception( result, "vk::Device::resetFences" );
       }
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result getFenceStatus( Fence fence )
+    {
+      return static_cast( vkGetFenceStatus( m_device, static_cast( fence ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     Result getFenceStatus( Fence fence ) const
     {
       Result result = static_cast( vkGetFenceStatus( m_device, static_cast( fence ) ) );
@@ -20436,7 +20927,14 @@ namespace vk
       }
       return result;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result waitForFences( uint32_t fenceCount, const Fence* pFences, Bool32 waitAll, uint64_t timeout )
+    {
+      return static_cast( vkWaitForFences( m_device, fenceCount, reinterpret_cast( pFences ), waitAll, timeout ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     Result waitForFences( std::vector const& fences, Bool32 waitAll, uint64_t timeout ) const
     {
       Result result = static_cast( vkWaitForFences( m_device, static_cast( fences.size() ), reinterpret_cast( fences.data() ), waitAll, timeout ) );
@@ -20446,7 +20944,14 @@ namespace vk
       }
       return result;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result createSemaphore( const SemaphoreCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Semaphore* pSemaphore )
+    {
+      return static_cast( vkCreateSemaphore( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSemaphore ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     Semaphore createSemaphore( const SemaphoreCreateInfo& createInfo, const AllocationCallbacks& allocator ) const
     {
       Semaphore semaphore;
@@ -20457,12 +20962,26 @@ namespace vk
       }
       return semaphore;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void destroySemaphore( Semaphore semaphore, const AllocationCallbacks* pAllocator )
+    {
+      vkDestroySemaphore( m_device, static_cast( semaphore ), reinterpret_cast( pAllocator ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void destroySemaphore( Semaphore semaphore, const AllocationCallbacks& allocator ) const
     {
       vkDestroySemaphore( m_device, static_cast( semaphore ), reinterpret_cast( &allocator ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result createEvent( const EventCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Event* pEvent )
+    {
+      return static_cast( vkCreateEvent( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pEvent ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     Event createEvent( const EventCreateInfo& createInfo, const AllocationCallbacks& allocator ) const
     {
       Event event;
@@ -20473,12 +20992,26 @@ namespace vk
       }
       return event;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void destroyEvent( Event event, const AllocationCallbacks* pAllocator )
+    {
+      vkDestroyEvent( m_device, static_cast( event ), reinterpret_cast( pAllocator ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void destroyEvent( Event event, const AllocationCallbacks& allocator ) const
     {
       vkDestroyEvent( m_device, static_cast( event ), reinterpret_cast( &allocator ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result getEventStatus( Event event )
+    {
+      return static_cast( vkGetEventStatus( m_device, static_cast( event ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     Result getEventStatus( Event event ) const
     {
       Result result = static_cast( vkGetEventStatus( m_device, static_cast( event ) ) );
@@ -20488,7 +21021,14 @@ namespace vk
       }
       return result;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result setEvent( Event event )
+    {
+      return static_cast( vkSetEvent( m_device, static_cast( event ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void setEvent( Event event ) const
     {
       Result result = static_cast( vkSetEvent( m_device, static_cast( event ) ) );
@@ -20497,7 +21037,14 @@ namespace vk
         throw Exception( result, "vk::Device::setEvent" );
       }
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result resetEvent( Event event )
+    {
+      return static_cast( vkResetEvent( m_device, static_cast( event ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void resetEvent( Event event ) const
     {
       Result result = static_cast( vkResetEvent( m_device, static_cast( event ) ) );
@@ -20506,7 +21053,14 @@ namespace vk
         throw Exception( result, "vk::Device::resetEvent" );
       }
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result createQueryPool( const QueryPoolCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, QueryPool* pQueryPool )
+    {
+      return static_cast( vkCreateQueryPool( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pQueryPool ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     QueryPool createQueryPool( const QueryPoolCreateInfo& createInfo, const AllocationCallbacks& allocator ) const
     {
       QueryPool queryPool;
@@ -20517,12 +21071,26 @@ namespace vk
       }
       return queryPool;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void destroyQueryPool( QueryPool queryPool, const AllocationCallbacks* pAllocator )
+    {
+      vkDestroyQueryPool( m_device, static_cast( queryPool ), reinterpret_cast( pAllocator ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void destroyQueryPool( QueryPool queryPool, const AllocationCallbacks& allocator ) const
     {
       vkDestroyQueryPool( m_device, static_cast( queryPool ), reinterpret_cast( &allocator ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result getQueryPoolResults( QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, DeviceSize stride, QueryResultFlags flags )
+    {
+      return static_cast( vkGetQueryPoolResults( m_device, static_cast( queryPool ), firstQuery, queryCount, dataSize, pData, stride, static_cast( flags ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     template 
     Result getQueryPoolResults( QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, std::vector & data, DeviceSize stride, QueryResultFlags flags ) const
     {
@@ -20533,7 +21101,14 @@ namespace vk
       }
       return result;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result createBuffer( const BufferCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Buffer* pBuffer )
+    {
+      return static_cast( vkCreateBuffer( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pBuffer ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     Buffer createBuffer( const BufferCreateInfo& createInfo, const AllocationCallbacks& allocator ) const
     {
       Buffer buffer;
@@ -20544,12 +21119,26 @@ namespace vk
       }
       return buffer;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void destroyBuffer( Buffer buffer, const AllocationCallbacks* pAllocator )
+    {
+      vkDestroyBuffer( m_device, static_cast( buffer ), reinterpret_cast( pAllocator ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void destroyBuffer( Buffer buffer, const AllocationCallbacks& allocator ) const
     {
       vkDestroyBuffer( m_device, static_cast( buffer ), reinterpret_cast( &allocator ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result createBufferView( const BufferViewCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, BufferView* pView )
+    {
+      return static_cast( vkCreateBufferView( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pView ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     BufferView createBufferView( const BufferViewCreateInfo& createInfo, const AllocationCallbacks& allocator ) const
     {
       BufferView view;
@@ -20560,12 +21149,26 @@ namespace vk
       }
       return view;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void destroyBufferView( BufferView bufferView, const AllocationCallbacks* pAllocator )
+    {
+      vkDestroyBufferView( m_device, static_cast( bufferView ), reinterpret_cast( pAllocator ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void destroyBufferView( BufferView bufferView, const AllocationCallbacks& allocator ) const
     {
       vkDestroyBufferView( m_device, static_cast( bufferView ), reinterpret_cast( &allocator ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result createImage( const ImageCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Image* pImage )
+    {
+      return static_cast( vkCreateImage( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pImage ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     Image createImage( const ImageCreateInfo& createInfo, const AllocationCallbacks& allocator ) const
     {
       Image image;
@@ -20576,19 +21179,40 @@ namespace vk
       }
       return image;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void destroyImage( Image image, const AllocationCallbacks* pAllocator )
+    {
+      vkDestroyImage( m_device, static_cast( image ), reinterpret_cast( pAllocator ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void destroyImage( Image image, const AllocationCallbacks& allocator ) const
     {
       vkDestroyImage( m_device, static_cast( image ), reinterpret_cast( &allocator ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void getImageSubresourceLayout( Image image, const ImageSubresource* pSubresource, SubresourceLayout* pLayout )
+    {
+      vkGetImageSubresourceLayout( m_device, static_cast( image ), reinterpret_cast( pSubresource ), reinterpret_cast( pLayout ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     SubresourceLayout getImageSubresourceLayout( Image image, const ImageSubresource& subresource ) const
     {
       SubresourceLayout layout;
       vkGetImageSubresourceLayout( m_device, static_cast( image ), reinterpret_cast( &subresource ), reinterpret_cast( &layout ) );
       return layout;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result createImageView( const ImageViewCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, ImageView* pView )
+    {
+      return static_cast( vkCreateImageView( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pView ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     ImageView createImageView( const ImageViewCreateInfo& createInfo, const AllocationCallbacks& allocator ) const
     {
       ImageView view;
@@ -20599,12 +21223,26 @@ namespace vk
       }
       return view;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void destroyImageView( ImageView imageView, const AllocationCallbacks* pAllocator )
+    {
+      vkDestroyImageView( m_device, static_cast( imageView ), reinterpret_cast( pAllocator ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void destroyImageView( ImageView imageView, const AllocationCallbacks& allocator ) const
     {
       vkDestroyImageView( m_device, static_cast( imageView ), reinterpret_cast( &allocator ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result createShaderModule( const ShaderModuleCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, ShaderModule* pShaderModule )
+    {
+      return static_cast( vkCreateShaderModule( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pShaderModule ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     ShaderModule createShaderModule( const ShaderModuleCreateInfo& createInfo, const AllocationCallbacks& allocator ) const
     {
       ShaderModule shaderModule;
@@ -20615,12 +21253,26 @@ namespace vk
       }
       return shaderModule;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void destroyShaderModule( ShaderModule shaderModule, const AllocationCallbacks* pAllocator )
+    {
+      vkDestroyShaderModule( m_device, static_cast( shaderModule ), reinterpret_cast( pAllocator ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void destroyShaderModule( ShaderModule shaderModule, const AllocationCallbacks& allocator ) const
     {
       vkDestroyShaderModule( m_device, static_cast( shaderModule ), reinterpret_cast( &allocator ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result createPipelineCache( const PipelineCacheCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, PipelineCache* pPipelineCache )
+    {
+      return static_cast( vkCreatePipelineCache( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pPipelineCache ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     PipelineCache createPipelineCache( const PipelineCacheCreateInfo& createInfo, const AllocationCallbacks& allocator ) const
     {
       PipelineCache pipelineCache;
@@ -20631,12 +21283,26 @@ namespace vk
       }
       return pipelineCache;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void destroyPipelineCache( PipelineCache pipelineCache, const AllocationCallbacks* pAllocator )
+    {
+      vkDestroyPipelineCache( m_device, static_cast( pipelineCache ), reinterpret_cast( pAllocator ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void destroyPipelineCache( PipelineCache pipelineCache, const AllocationCallbacks& allocator ) const
     {
       vkDestroyPipelineCache( m_device, static_cast( pipelineCache ), reinterpret_cast( &allocator ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result getPipelineCacheData( PipelineCache pipelineCache, size_t* pDataSize, void* pData )
+    {
+      return static_cast( vkGetPipelineCacheData( m_device, static_cast( pipelineCache ), pDataSize, pData ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     std::vector getPipelineCacheData( PipelineCache pipelineCache ) const
     {
       std::vector data;
@@ -20654,7 +21320,14 @@ namespace vk
       }
       return std::move( data );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result mergePipelineCaches( PipelineCache dstCache, uint32_t srcCacheCount, const PipelineCache* pSrcCaches )
+    {
+      return static_cast( vkMergePipelineCaches( m_device, static_cast( dstCache ), srcCacheCount, reinterpret_cast( pSrcCaches ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void mergePipelineCaches( PipelineCache dstCache, std::vector const& srcCaches ) const
     {
       Result result = static_cast( vkMergePipelineCaches( m_device, static_cast( dstCache ), static_cast( srcCaches.size() ), reinterpret_cast( srcCaches.data() ) ) );
@@ -20663,7 +21336,14 @@ namespace vk
         throw Exception( result, "vk::Device::mergePipelineCaches" );
       }
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result createGraphicsPipelines( PipelineCache pipelineCache, uint32_t createInfoCount, const GraphicsPipelineCreateInfo* pCreateInfos, const AllocationCallbacks* pAllocator, Pipeline* pPipelines )
+    {
+      return static_cast( vkCreateGraphicsPipelines( m_device, static_cast( pipelineCache ), createInfoCount, reinterpret_cast( pCreateInfos ), reinterpret_cast( pAllocator ), reinterpret_cast( pPipelines ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     std::vector createGraphicsPipelines( PipelineCache pipelineCache, std::vector const& createInfos, const AllocationCallbacks& allocator ) const
     {
       std::vector pipelines( createInfos.size() );
@@ -20674,7 +21354,14 @@ namespace vk
       }
       return std::move( pipelines );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result createComputePipelines( PipelineCache pipelineCache, uint32_t createInfoCount, const ComputePipelineCreateInfo* pCreateInfos, const AllocationCallbacks* pAllocator, Pipeline* pPipelines )
+    {
+      return static_cast( vkCreateComputePipelines( m_device, static_cast( pipelineCache ), createInfoCount, reinterpret_cast( pCreateInfos ), reinterpret_cast( pAllocator ), reinterpret_cast( pPipelines ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     std::vector createComputePipelines( PipelineCache pipelineCache, std::vector const& createInfos, const AllocationCallbacks& allocator ) const
     {
       std::vector pipelines( createInfos.size() );
@@ -20685,12 +21372,26 @@ namespace vk
       }
       return std::move( pipelines );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void destroyPipeline( Pipeline pipeline, const AllocationCallbacks* pAllocator )
+    {
+      vkDestroyPipeline( m_device, static_cast( pipeline ), reinterpret_cast( pAllocator ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void destroyPipeline( Pipeline pipeline, const AllocationCallbacks& allocator ) const
     {
       vkDestroyPipeline( m_device, static_cast( pipeline ), reinterpret_cast( &allocator ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result createPipelineLayout( const PipelineLayoutCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, PipelineLayout* pPipelineLayout )
+    {
+      return static_cast( vkCreatePipelineLayout( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pPipelineLayout ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     PipelineLayout createPipelineLayout( const PipelineLayoutCreateInfo& createInfo, const AllocationCallbacks& allocator ) const
     {
       PipelineLayout pipelineLayout;
@@ -20701,12 +21402,26 @@ namespace vk
       }
       return pipelineLayout;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void destroyPipelineLayout( PipelineLayout pipelineLayout, const AllocationCallbacks* pAllocator )
+    {
+      vkDestroyPipelineLayout( m_device, static_cast( pipelineLayout ), reinterpret_cast( pAllocator ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void destroyPipelineLayout( PipelineLayout pipelineLayout, const AllocationCallbacks& allocator ) const
     {
       vkDestroyPipelineLayout( m_device, static_cast( pipelineLayout ), reinterpret_cast( &allocator ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result createSampler( const SamplerCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Sampler* pSampler )
+    {
+      return static_cast( vkCreateSampler( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSampler ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     Sampler createSampler( const SamplerCreateInfo& createInfo, const AllocationCallbacks& allocator ) const
     {
       Sampler sampler;
@@ -20717,12 +21432,26 @@ namespace vk
       }
       return sampler;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void destroySampler( Sampler sampler, const AllocationCallbacks* pAllocator )
+    {
+      vkDestroySampler( m_device, static_cast( sampler ), reinterpret_cast( pAllocator ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void destroySampler( Sampler sampler, const AllocationCallbacks& allocator ) const
     {
       vkDestroySampler( m_device, static_cast( sampler ), reinterpret_cast( &allocator ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result createDescriptorSetLayout( const DescriptorSetLayoutCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, DescriptorSetLayout* pSetLayout )
+    {
+      return static_cast( vkCreateDescriptorSetLayout( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSetLayout ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     DescriptorSetLayout createDescriptorSetLayout( const DescriptorSetLayoutCreateInfo& createInfo, const AllocationCallbacks& allocator ) const
     {
       DescriptorSetLayout setLayout;
@@ -20733,12 +21462,26 @@ namespace vk
       }
       return setLayout;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void destroyDescriptorSetLayout( DescriptorSetLayout descriptorSetLayout, const AllocationCallbacks* pAllocator )
+    {
+      vkDestroyDescriptorSetLayout( m_device, static_cast( descriptorSetLayout ), reinterpret_cast( pAllocator ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void destroyDescriptorSetLayout( DescriptorSetLayout descriptorSetLayout, const AllocationCallbacks& allocator ) const
     {
       vkDestroyDescriptorSetLayout( m_device, static_cast( descriptorSetLayout ), reinterpret_cast( &allocator ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result createDescriptorPool( const DescriptorPoolCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, DescriptorPool* pDescriptorPool )
+    {
+      return static_cast( vkCreateDescriptorPool( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pDescriptorPool ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     DescriptorPool createDescriptorPool( const DescriptorPoolCreateInfo& createInfo, const AllocationCallbacks& allocator ) const
     {
       DescriptorPool descriptorPool;
@@ -20749,12 +21492,26 @@ namespace vk
       }
       return descriptorPool;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void destroyDescriptorPool( DescriptorPool descriptorPool, const AllocationCallbacks* pAllocator )
+    {
+      vkDestroyDescriptorPool( m_device, static_cast( descriptorPool ), reinterpret_cast( pAllocator ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void destroyDescriptorPool( DescriptorPool descriptorPool, const AllocationCallbacks& allocator ) const
     {
       vkDestroyDescriptorPool( m_device, static_cast( descriptorPool ), reinterpret_cast( &allocator ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result resetDescriptorPool( DescriptorPool descriptorPool, DescriptorPoolResetFlags flags )
+    {
+      return static_cast( vkResetDescriptorPool( m_device, static_cast( descriptorPool ), static_cast( flags ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void resetDescriptorPool( DescriptorPool descriptorPool, DescriptorPoolResetFlags flags ) const
     {
       Result result = static_cast( vkResetDescriptorPool( m_device, static_cast( descriptorPool ), static_cast( flags ) ) );
@@ -20763,7 +21520,14 @@ namespace vk
         throw Exception( result, "vk::Device::resetDescriptorPool" );
       }
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result allocateDescriptorSets( const DescriptorSetAllocateInfo* pAllocateInfo, DescriptorSet* pDescriptorSets )
+    {
+      return static_cast( vkAllocateDescriptorSets( m_device, reinterpret_cast( pAllocateInfo ), reinterpret_cast( pDescriptorSets ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     std::vector allocateDescriptorSets( const DescriptorSetAllocateInfo& allocateInfo ) const
     {
       std::vector descriptorSets( allocateInfo.descriptorSetCount() );
@@ -20774,7 +21538,14 @@ namespace vk
       }
       return std::move( descriptorSets );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result freeDescriptorSets( DescriptorPool descriptorPool, uint32_t descriptorSetCount, const DescriptorSet* pDescriptorSets )
+    {
+      return static_cast( vkFreeDescriptorSets( m_device, static_cast( descriptorPool ), descriptorSetCount, reinterpret_cast( pDescriptorSets ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void freeDescriptorSets( DescriptorPool descriptorPool, std::vector const& descriptorSets ) const
     {
       Result result = static_cast( vkFreeDescriptorSets( m_device, static_cast( descriptorPool ), static_cast( descriptorSets.size() ), reinterpret_cast( descriptorSets.data() ) ) );
@@ -20783,12 +21554,26 @@ namespace vk
         throw Exception( result, "vk::Device::freeDescriptorSets" );
       }
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void updateDescriptorSets( uint32_t descriptorWriteCount, const WriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const CopyDescriptorSet* pDescriptorCopies )
+    {
+      vkUpdateDescriptorSets( m_device, descriptorWriteCount, reinterpret_cast( pDescriptorWrites ), descriptorCopyCount, reinterpret_cast( pDescriptorCopies ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void updateDescriptorSets( std::vector const& descriptorWrites, std::vector const& descriptorCopies ) const
     {
       vkUpdateDescriptorSets( m_device, static_cast( descriptorWrites.size() ), reinterpret_cast( descriptorWrites.data() ), static_cast( descriptorCopies.size() ), reinterpret_cast( descriptorCopies.data() ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result createFramebuffer( const FramebufferCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Framebuffer* pFramebuffer )
+    {
+      return static_cast( vkCreateFramebuffer( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pFramebuffer ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     Framebuffer createFramebuffer( const FramebufferCreateInfo& createInfo, const AllocationCallbacks& allocator ) const
     {
       Framebuffer framebuffer;
@@ -20799,12 +21584,26 @@ namespace vk
       }
       return framebuffer;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void destroyFramebuffer( Framebuffer framebuffer, const AllocationCallbacks* pAllocator )
+    {
+      vkDestroyFramebuffer( m_device, static_cast( framebuffer ), reinterpret_cast( pAllocator ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void destroyFramebuffer( Framebuffer framebuffer, const AllocationCallbacks& allocator ) const
     {
       vkDestroyFramebuffer( m_device, static_cast( framebuffer ), reinterpret_cast( &allocator ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result createRenderPass( const RenderPassCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, RenderPass* pRenderPass )
+    {
+      return static_cast( vkCreateRenderPass( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pRenderPass ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     RenderPass createRenderPass( const RenderPassCreateInfo& createInfo, const AllocationCallbacks& allocator ) const
     {
       RenderPass renderPass;
@@ -20815,19 +21614,40 @@ namespace vk
       }
       return renderPass;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void destroyRenderPass( RenderPass renderPass, const AllocationCallbacks* pAllocator )
+    {
+      vkDestroyRenderPass( m_device, static_cast( renderPass ), reinterpret_cast( pAllocator ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void destroyRenderPass( RenderPass renderPass, const AllocationCallbacks& allocator ) const
     {
       vkDestroyRenderPass( m_device, static_cast( renderPass ), reinterpret_cast( &allocator ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void getRenderAreaGranularity( RenderPass renderPass, Extent2D* pGranularity )
+    {
+      vkGetRenderAreaGranularity( m_device, static_cast( renderPass ), reinterpret_cast( pGranularity ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     Extent2D getRenderAreaGranularity( RenderPass renderPass ) const
     {
       Extent2D granularity;
       vkGetRenderAreaGranularity( m_device, static_cast( renderPass ), reinterpret_cast( &granularity ) );
       return granularity;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result createCommandPool( const CommandPoolCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, CommandPool* pCommandPool )
+    {
+      return static_cast( vkCreateCommandPool( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pCommandPool ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     CommandPool createCommandPool( const CommandPoolCreateInfo& createInfo, const AllocationCallbacks& allocator ) const
     {
       CommandPool commandPool;
@@ -20838,12 +21658,26 @@ namespace vk
       }
       return commandPool;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void destroyCommandPool( CommandPool commandPool, const AllocationCallbacks* pAllocator )
+    {
+      vkDestroyCommandPool( m_device, static_cast( commandPool ), reinterpret_cast( pAllocator ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void destroyCommandPool( CommandPool commandPool, const AllocationCallbacks& allocator ) const
     {
       vkDestroyCommandPool( m_device, static_cast( commandPool ), reinterpret_cast( &allocator ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result resetCommandPool( CommandPool commandPool, CommandPoolResetFlags flags )
+    {
+      return static_cast( vkResetCommandPool( m_device, static_cast( commandPool ), static_cast( flags ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void resetCommandPool( CommandPool commandPool, CommandPoolResetFlags flags ) const
     {
       Result result = static_cast( vkResetCommandPool( m_device, static_cast( commandPool ), static_cast( flags ) ) );
@@ -20852,7 +21686,14 @@ namespace vk
         throw Exception( result, "vk::Device::resetCommandPool" );
       }
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result allocateCommandBuffers( const CommandBufferAllocateInfo* pAllocateInfo, CommandBuffer* pCommandBuffers )
+    {
+      return static_cast( vkAllocateCommandBuffers( m_device, reinterpret_cast( pAllocateInfo ), reinterpret_cast( pCommandBuffers ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     std::vector allocateCommandBuffers( const CommandBufferAllocateInfo& allocateInfo ) const
     {
       std::vector commandBuffers( allocateInfo.commandBufferCount() );
@@ -20863,12 +21704,26 @@ namespace vk
       }
       return std::move( commandBuffers );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void freeCommandBuffers( CommandPool commandPool, uint32_t commandBufferCount, const CommandBuffer* pCommandBuffers )
+    {
+      vkFreeCommandBuffers( m_device, static_cast( commandPool ), commandBufferCount, reinterpret_cast( pCommandBuffers ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void freeCommandBuffers( CommandPool commandPool, std::vector const& commandBuffers ) const
     {
       vkFreeCommandBuffers( m_device, static_cast( commandPool ), static_cast( commandBuffers.size() ), reinterpret_cast( commandBuffers.data() ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result createSharedSwapchainsKHR( uint32_t swapchainCount, const SwapchainCreateInfoKHR* pCreateInfos, const AllocationCallbacks* pAllocator, SwapchainKHR* pSwapchains )
+    {
+      return static_cast( vkCreateSharedSwapchainsKHR( m_device, swapchainCount, reinterpret_cast( pCreateInfos ), reinterpret_cast( pAllocator ), reinterpret_cast( pSwapchains ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     std::vector createSharedSwapchainsKHR( std::vector const& createInfos, const AllocationCallbacks& allocator ) const
     {
       std::vector swapchains( createInfos.size() );
@@ -20879,7 +21734,14 @@ namespace vk
       }
       return std::move( swapchains );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result createSwapchainKHR( const SwapchainCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, SwapchainKHR* pSwapchain )
+    {
+      return static_cast( vkCreateSwapchainKHR( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSwapchain ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     SwapchainKHR createSwapchainKHR( const SwapchainCreateInfoKHR& createInfo, const AllocationCallbacks& allocator ) const
     {
       SwapchainKHR swapchain;
@@ -20890,12 +21752,26 @@ namespace vk
       }
       return swapchain;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void destroySwapchainKHR( SwapchainKHR swapchain, const AllocationCallbacks* pAllocator )
+    {
+      vkDestroySwapchainKHR( m_device, static_cast( swapchain ), reinterpret_cast( pAllocator ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void destroySwapchainKHR( SwapchainKHR swapchain, const AllocationCallbacks& allocator ) const
     {
       vkDestroySwapchainKHR( m_device, static_cast( swapchain ), reinterpret_cast( &allocator ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result getSwapchainImagesKHR( SwapchainKHR swapchain, uint32_t* pSwapchainImageCount, Image* pSwapchainImages )
+    {
+      return static_cast( vkGetSwapchainImagesKHR( m_device, static_cast( swapchain ), pSwapchainImageCount, reinterpret_cast( pSwapchainImages ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     Result getSwapchainImagesKHR( SwapchainKHR swapchain, std::vector & swapchainImages ) const
     {
       uint32_t swapchainImageCount;
@@ -20912,7 +21788,14 @@ namespace vk
       }
       return result;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result acquireNextImageKHR( SwapchainKHR swapchain, uint64_t timeout, Semaphore semaphore, Fence fence, uint32_t* pImageIndex )
+    {
+      return static_cast( vkAcquireNextImageKHR( m_device, static_cast( swapchain ), timeout, static_cast( semaphore ), static_cast( fence ), pImageIndex ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     Result acquireNextImageKHR( SwapchainKHR swapchain, uint64_t timeout, Semaphore semaphore, Fence fence, uint32_t& imageIndex ) const
     {
       Result result = static_cast( vkAcquireNextImageKHR( m_device, static_cast( swapchain ), timeout, static_cast( semaphore ), static_cast( fence ), &imageIndex ) );
@@ -20966,6 +21849,11 @@ namespace vk
     }
 #endif
 
+    void getProperties( PhysicalDeviceProperties* pProperties )
+    {
+      vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast( pProperties ) );
+    }
+
 #ifdef VKCPP_ENHANCED_MODE
     PhysicalDeviceProperties getProperties(  ) const
     {
@@ -20973,7 +21861,14 @@ namespace vk
       vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast( &properties ) );
       return properties;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void getQueueFamilyProperties( uint32_t* pQueueFamilyPropertyCount, QueueFamilyProperties* pQueueFamilyProperties )
+    {
+      vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast( pQueueFamilyProperties ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     std::vector getQueueFamilyProperties(  ) const
     {
       std::vector queueFamilyProperties;
@@ -20983,28 +21878,56 @@ namespace vk
       vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( queueFamilyProperties.data() ) );
       return std::move( queueFamilyProperties );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void getMemoryProperties( PhysicalDeviceMemoryProperties* pMemoryProperties )
+    {
+      vkGetPhysicalDeviceMemoryProperties( m_physicalDevice, reinterpret_cast( pMemoryProperties ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     PhysicalDeviceMemoryProperties getMemoryProperties(  ) const
     {
       PhysicalDeviceMemoryProperties memoryProperties;
       vkGetPhysicalDeviceMemoryProperties( m_physicalDevice, reinterpret_cast( &memoryProperties ) );
       return memoryProperties;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void getFeatures( PhysicalDeviceFeatures* pFeatures )
+    {
+      vkGetPhysicalDeviceFeatures( m_physicalDevice, reinterpret_cast( pFeatures ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     PhysicalDeviceFeatures getFeatures(  ) const
     {
       PhysicalDeviceFeatures features;
       vkGetPhysicalDeviceFeatures( m_physicalDevice, reinterpret_cast( &features ) );
       return features;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void getFormatProperties( Format format, FormatProperties* pFormatProperties )
+    {
+      vkGetPhysicalDeviceFormatProperties( m_physicalDevice, static_cast( format ), reinterpret_cast( pFormatProperties ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     FormatProperties getFormatProperties( Format format ) const
     {
       FormatProperties formatProperties;
       vkGetPhysicalDeviceFormatProperties( m_physicalDevice, static_cast( format ), reinterpret_cast( &formatProperties ) );
       return formatProperties;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result getImageFormatProperties( Format format, ImageType type, ImageTiling tiling, ImageUsageFlags usage, ImageCreateFlags flags, ImageFormatProperties* pImageFormatProperties )
+    {
+      return static_cast( vkGetPhysicalDeviceImageFormatProperties( m_physicalDevice, static_cast( format ), static_cast( type ), static_cast( tiling ), static_cast( usage ), static_cast( flags ), reinterpret_cast( pImageFormatProperties ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     ImageFormatProperties getImageFormatProperties( Format format, ImageType type, ImageTiling tiling, ImageUsageFlags usage, ImageCreateFlags flags ) const
     {
       ImageFormatProperties imageFormatProperties;
@@ -21015,7 +21938,14 @@ namespace vk
       }
       return imageFormatProperties;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result createDevice( const DeviceCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Device* pDevice )
+    {
+      return static_cast( vkCreateDevice( m_physicalDevice, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pDevice ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     Device createDevice( const DeviceCreateInfo& createInfo, const AllocationCallbacks& allocator ) const
     {
       Device device;
@@ -21026,7 +21956,14 @@ namespace vk
       }
       return device;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result enumerateDeviceLayerProperties( uint32_t* pPropertyCount, LayerProperties* pProperties )
+    {
+      return static_cast( vkEnumerateDeviceLayerProperties( m_physicalDevice, pPropertyCount, reinterpret_cast( pProperties ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     Result enumerateDeviceLayerProperties( std::vector & properties ) const
     {
       uint32_t propertyCount;
@@ -21043,7 +21980,14 @@ namespace vk
       }
       return result;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result enumerateDeviceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, ExtensionProperties* pProperties )
+    {
+      return static_cast( vkEnumerateDeviceExtensionProperties( m_physicalDevice, pLayerName, pPropertyCount, reinterpret_cast( pProperties ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     Result enumerateDeviceExtensionProperties( std::string const& layerName, std::vector & properties ) const
     {
       uint32_t propertyCount;
@@ -21060,7 +22004,14 @@ namespace vk
       }
       return result;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void getSparseImageFormatProperties( Format format, ImageType type, SampleCountFlagBits samples, ImageUsageFlags usage, ImageTiling tiling, uint32_t* pPropertyCount, SparseImageFormatProperties* pProperties )
+    {
+      vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice, static_cast( format ), static_cast( type ), static_cast( samples ), static_cast( usage ), static_cast( tiling ), pPropertyCount, reinterpret_cast( pProperties ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     std::vector getSparseImageFormatProperties( Format format, ImageType type, SampleCountFlagBits samples, ImageUsageFlags usage, ImageTiling tiling ) const
     {
       std::vector properties;
@@ -21070,7 +22021,14 @@ namespace vk
       vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice, static_cast( format ), static_cast( type ), static_cast( samples ), static_cast( usage ), static_cast( tiling ), &propertyCount, reinterpret_cast( properties.data() ) );
       return std::move( properties );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result getDisplayPropertiesKHR( uint32_t* pPropertyCount, DisplayPropertiesKHR* pProperties )
+    {
+      return static_cast( vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, pPropertyCount, reinterpret_cast( pProperties ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     Result getDisplayPropertiesKHR( std::vector & properties ) const
     {
       uint32_t propertyCount;
@@ -21087,7 +22045,14 @@ namespace vk
       }
       return result;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result getDisplayPlanePropertiesKHR( uint32_t* pPropertyCount, DisplayPlanePropertiesKHR* pProperties )
+    {
+      return static_cast( vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, pPropertyCount, reinterpret_cast( pProperties ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     Result getDisplayPlanePropertiesKHR( std::vector & properties ) const
     {
       uint32_t propertyCount;
@@ -21104,7 +22069,14 @@ namespace vk
       }
       return result;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, uint32_t* pDisplayCount, DisplayKHR* pDisplays )
+    {
+      return static_cast( vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, pDisplayCount, reinterpret_cast( pDisplays ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     Result getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, std::vector & displays ) const
     {
       uint32_t displayCount;
@@ -21121,7 +22093,14 @@ namespace vk
       }
       return result;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result getDisplayModePropertiesKHR( DisplayKHR display, uint32_t* pPropertyCount, DisplayModePropertiesKHR* pProperties )
+    {
+      return static_cast( vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast( display ), pPropertyCount, reinterpret_cast( pProperties ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     Result getDisplayModePropertiesKHR( DisplayKHR display, std::vector & properties ) const
     {
       uint32_t propertyCount;
@@ -21138,7 +22117,14 @@ namespace vk
       }
       return result;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result createDisplayModeKHR( DisplayKHR display, const DisplayModeCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, DisplayModeKHR* pMode )
+    {
+      return static_cast( vkCreateDisplayModeKHR( m_physicalDevice, static_cast( display ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pMode ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     DisplayModeKHR createDisplayModeKHR( DisplayKHR display, const DisplayModeCreateInfoKHR& createInfo, const AllocationCallbacks& allocator ) const
     {
       DisplayModeKHR mode;
@@ -21149,7 +22135,14 @@ namespace vk
       }
       return mode;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result getDisplayPlaneCapabilitiesKHR( DisplayModeKHR mode, uint32_t planeIndex, DisplayPlaneCapabilitiesKHR* pCapabilities )
+    {
+      return static_cast( vkGetDisplayPlaneCapabilitiesKHR( m_physicalDevice, static_cast( mode ), planeIndex, reinterpret_cast( pCapabilities ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     DisplayPlaneCapabilitiesKHR getDisplayPlaneCapabilitiesKHR( DisplayModeKHR mode, uint32_t planeIndex ) const
     {
       DisplayPlaneCapabilitiesKHR capabilities;
@@ -21160,14 +22153,30 @@ namespace vk
       }
       return capabilities;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+#ifdef VK_USE_PLATFORM_MIR_KHR
+    Bool32 getMirPresentationSupportKHR( uint32_t queueFamilyIndex, MirConnection* connection )
+    {
+      return vkGetPhysicalDeviceMirPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, connection );
+    }
+#endif /*VK_USE_PLATFORM_MIR_KHR*/
+
+#ifdef VKCPP_ENHANCED_MODE
 #ifdef VK_USE_PLATFORM_MIR_KHR
     Bool32 getMirPresentationSupportKHR( uint32_t queueFamilyIndex, MirConnection& connection ) const
     {
       return vkGetPhysicalDeviceMirPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &connection );
     }
 #endif /*VK_USE_PLATFORM_MIR_KHR*/
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result getSurfaceSupportKHR( uint32_t queueFamilyIndex, SurfaceKHR surface, Bool32* pSupported )
+    {
+      return static_cast( vkGetPhysicalDeviceSurfaceSupportKHR( m_physicalDevice, queueFamilyIndex, static_cast( surface ), pSupported ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     Bool32 getSurfaceSupportKHR( uint32_t queueFamilyIndex, SurfaceKHR surface ) const
     {
       Bool32 supported;
@@ -21178,7 +22187,14 @@ namespace vk
       }
       return supported;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result getSurfaceCapabilitiesKHR( SurfaceKHR surface, SurfaceCapabilitiesKHR* pSurfaceCapabilities )
+    {
+      return static_cast( vkGetPhysicalDeviceSurfaceCapabilitiesKHR( m_physicalDevice, static_cast( surface ), reinterpret_cast( pSurfaceCapabilities ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     Result getSurfaceCapabilitiesKHR( SurfaceKHR surface, SurfaceCapabilitiesKHR& surfaceCapabilities ) const
     {
       Result result = static_cast( vkGetPhysicalDeviceSurfaceCapabilitiesKHR( m_physicalDevice, static_cast( surface ), reinterpret_cast( &surfaceCapabilities ) ) );
@@ -21188,7 +22204,14 @@ namespace vk
       }
       return result;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result getSurfaceFormatsKHR( SurfaceKHR surface, uint32_t* pSurfaceFormatCount, SurfaceFormatKHR* pSurfaceFormats )
+    {
+      return static_cast( vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast( surface ), pSurfaceFormatCount, reinterpret_cast( pSurfaceFormats ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     Result getSurfaceFormatsKHR( SurfaceKHR surface, std::vector & surfaceFormats ) const
     {
       uint32_t surfaceFormatCount;
@@ -21205,7 +22228,14 @@ namespace vk
       }
       return result;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result getSurfacePresentModesKHR( SurfaceKHR surface, uint32_t* pPresentModeCount, PresentModeKHR* pPresentModes )
+    {
+      return static_cast( vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast( surface ), pPresentModeCount, reinterpret_cast( pPresentModes ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     Result getSurfacePresentModesKHR( SurfaceKHR surface, std::vector & presentModes ) const
     {
       uint32_t presentModeCount;
@@ -21222,28 +22252,64 @@ namespace vk
       }
       return result;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+#ifdef VK_USE_PLATFORM_WAYLAND_KHR
+    Bool32 getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display* display )
+    {
+      return vkGetPhysicalDeviceWaylandPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, display );
+    }
+#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
+
+#ifdef VKCPP_ENHANCED_MODE
 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
     Bool32 getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display& display ) const
     {
       return vkGetPhysicalDeviceWaylandPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &display );
     }
 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
+#endif /*VKCPP_ENHANCED_MODE*/
 
+#ifdef VK_USE_PLATFORM_WIN32_KHR
+    Bool32 getWin32PresentationSupportKHR( uint32_t queueFamilyIndex )
+    {
+      return vkGetPhysicalDeviceWin32PresentationSupportKHR( m_physicalDevice, queueFamilyIndex );
+    }
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+#ifdef VKCPP_ENHANCED_MODE
 #ifdef VK_USE_PLATFORM_WIN32_KHR
     Bool32 getWin32PresentationSupportKHR( uint32_t queueFamilyIndex ) const
     {
       return vkGetPhysicalDeviceWin32PresentationSupportKHR( m_physicalDevice, queueFamilyIndex );
     }
 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
+#endif /*VKCPP_ENHANCED_MODE*/
 
+#ifdef VK_USE_PLATFORM_XLIB_KHR
+    Bool32 getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display* dpy, VisualID visualID )
+    {
+      return vkGetPhysicalDeviceXlibPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, dpy, visualID );
+    }
+#endif /*VK_USE_PLATFORM_XLIB_KHR*/
+
+#ifdef VKCPP_ENHANCED_MODE
 #ifdef VK_USE_PLATFORM_XLIB_KHR
     Bool32 getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display& dpy, VisualID visualID ) const
     {
       return vkGetPhysicalDeviceXlibPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &dpy, visualID );
     }
 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
+#endif /*VKCPP_ENHANCED_MODE*/
 
+#ifdef VK_USE_PLATFORM_XCB_KHR
+    Bool32 getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id )
+    {
+      return vkGetPhysicalDeviceXcbPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, connection, visual_id );
+    }
+#endif /*VK_USE_PLATFORM_XCB_KHR*/
+
+#ifdef VKCPP_ENHANCED_MODE
 #ifdef VK_USE_PLATFORM_XCB_KHR
     Bool32 getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t& connection, xcb_visualid_t visual_id ) const
     {
@@ -21461,12 +22527,24 @@ namespace vk
     }
 #endif
 
+    void destroy( const AllocationCallbacks* pAllocator )
+    {
+      vkDestroyInstance( m_instance, reinterpret_cast( pAllocator ) );
+    }
+
 #ifdef VKCPP_ENHANCED_MODE
     void destroy( const AllocationCallbacks& allocator ) const
     {
       vkDestroyInstance( m_instance, reinterpret_cast( &allocator ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result enumeratePhysicalDevices( uint32_t* pPhysicalDeviceCount, PhysicalDevice* pPhysicalDevices )
+    {
+      return static_cast( vkEnumeratePhysicalDevices( m_instance, pPhysicalDeviceCount, reinterpret_cast( pPhysicalDevices ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     std::vector enumeratePhysicalDevices(  ) const
     {
       std::vector physicalDevices;
@@ -21484,12 +22562,28 @@ namespace vk
       }
       return std::move( physicalDevices );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    PFN_vkVoidFunction getProcAddr( const char* pName )
+    {
+      return vkGetInstanceProcAddr( m_instance, pName );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     PFN_vkVoidFunction getProcAddr( std::string const& name ) const
     {
       return vkGetInstanceProcAddr( m_instance, name.c_str() );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+#ifdef VK_USE_PLATFORM_ANDROID_KHR
+    Result createAndroidSurfaceKHR( const AndroidSurfaceCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface )
+    {
+      return static_cast( vkCreateAndroidSurfaceKHR( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSurface ) ) );
+    }
+#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+
+#ifdef VKCPP_ENHANCED_MODE
 #ifdef VK_USE_PLATFORM_ANDROID_KHR
     SurfaceKHR createAndroidSurfaceKHR( const AndroidSurfaceCreateInfoKHR& createInfo, const AllocationCallbacks& allocator ) const
     {
@@ -21502,7 +22596,14 @@ namespace vk
       return surface;
     }
 #endif /*VK_USE_PLATFORM_ANDROID_KHR*/
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result createDisplayPlaneSurfaceKHR( const DisplaySurfaceCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface )
+    {
+      return static_cast( vkCreateDisplayPlaneSurfaceKHR( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSurface ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     SurfaceKHR createDisplayPlaneSurfaceKHR( const DisplaySurfaceCreateInfoKHR& createInfo, const AllocationCallbacks& allocator ) const
     {
       SurfaceKHR surface;
@@ -21513,7 +22614,16 @@ namespace vk
       }
       return surface;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+#ifdef VK_USE_PLATFORM_MIR_KHR
+    Result createMirSurfaceKHR( const MirSurfaceCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface )
+    {
+      return static_cast( vkCreateMirSurfaceKHR( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSurface ) ) );
+    }
+#endif /*VK_USE_PLATFORM_MIR_KHR*/
+
+#ifdef VKCPP_ENHANCED_MODE
 #ifdef VK_USE_PLATFORM_MIR_KHR
     SurfaceKHR createMirSurfaceKHR( const MirSurfaceCreateInfoKHR& createInfo, const AllocationCallbacks& allocator ) const
     {
@@ -21526,12 +22636,28 @@ namespace vk
       return surface;
     }
 #endif /*VK_USE_PLATFORM_MIR_KHR*/
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void destroySurfaceKHR( SurfaceKHR surface, const AllocationCallbacks* pAllocator )
+    {
+      vkDestroySurfaceKHR( m_instance, static_cast( surface ), reinterpret_cast( pAllocator ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void destroySurfaceKHR( SurfaceKHR surface, const AllocationCallbacks& allocator ) const
     {
       vkDestroySurfaceKHR( m_instance, static_cast( surface ), reinterpret_cast( &allocator ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+#ifdef VK_USE_PLATFORM_WAYLAND_KHR
+    Result createWaylandSurfaceKHR( const WaylandSurfaceCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface )
+    {
+      return static_cast( vkCreateWaylandSurfaceKHR( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSurface ) ) );
+    }
+#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
+
+#ifdef VKCPP_ENHANCED_MODE
 #ifdef VK_USE_PLATFORM_WAYLAND_KHR
     SurfaceKHR createWaylandSurfaceKHR( const WaylandSurfaceCreateInfoKHR& createInfo, const AllocationCallbacks& allocator ) const
     {
@@ -21544,7 +22670,16 @@ namespace vk
       return surface;
     }
 #endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
+#endif /*VKCPP_ENHANCED_MODE*/
 
+#ifdef VK_USE_PLATFORM_WIN32_KHR
+    Result createWin32SurfaceKHR( const Win32SurfaceCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface )
+    {
+      return static_cast( vkCreateWin32SurfaceKHR( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSurface ) ) );
+    }
+#endif /*VK_USE_PLATFORM_WIN32_KHR*/
+
+#ifdef VKCPP_ENHANCED_MODE
 #ifdef VK_USE_PLATFORM_WIN32_KHR
     SurfaceKHR createWin32SurfaceKHR( const Win32SurfaceCreateInfoKHR& createInfo, const AllocationCallbacks& allocator ) const
     {
@@ -21557,7 +22692,16 @@ namespace vk
       return surface;
     }
 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
+#endif /*VKCPP_ENHANCED_MODE*/
 
+#ifdef VK_USE_PLATFORM_XLIB_KHR
+    Result createXlibSurfaceKHR( const XlibSurfaceCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface )
+    {
+      return static_cast( vkCreateXlibSurfaceKHR( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSurface ) ) );
+    }
+#endif /*VK_USE_PLATFORM_XLIB_KHR*/
+
+#ifdef VKCPP_ENHANCED_MODE
 #ifdef VK_USE_PLATFORM_XLIB_KHR
     SurfaceKHR createXlibSurfaceKHR( const XlibSurfaceCreateInfoKHR& createInfo, const AllocationCallbacks& allocator ) const
     {
@@ -21570,7 +22714,16 @@ namespace vk
       return surface;
     }
 #endif /*VK_USE_PLATFORM_XLIB_KHR*/
+#endif /*VKCPP_ENHANCED_MODE*/
 
+#ifdef VK_USE_PLATFORM_XCB_KHR
+    Result createXcbSurfaceKHR( const XcbSurfaceCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface )
+    {
+      return static_cast( vkCreateXcbSurfaceKHR( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSurface ) ) );
+    }
+#endif /*VK_USE_PLATFORM_XCB_KHR*/
+
+#ifdef VKCPP_ENHANCED_MODE
 #ifdef VK_USE_PLATFORM_XCB_KHR
     SurfaceKHR createXcbSurfaceKHR( const XcbSurfaceCreateInfoKHR& createInfo, const AllocationCallbacks& allocator ) const
     {
@@ -21583,7 +22736,14 @@ namespace vk
       return surface;
     }
 #endif /*VK_USE_PLATFORM_XCB_KHR*/
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    Result createDebugReportCallbackEXT( const DebugReportCallbackCreateInfoEXT* pCreateInfo, const AllocationCallbacks* pAllocator, DebugReportCallbackEXT* pCallback )
+    {
+      return static_cast( vkCreateDebugReportCallbackEXT( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pCallback ) ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     DebugReportCallbackEXT createDebugReportCallbackEXT( const DebugReportCallbackCreateInfoEXT& createInfo, const AllocationCallbacks& allocator ) const
     {
       DebugReportCallbackEXT callback;
@@ -21594,12 +22754,26 @@ namespace vk
       }
       return callback;
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void destroyDebugReportCallbackEXT( DebugReportCallbackEXT callback, const AllocationCallbacks* pAllocator )
+    {
+      vkDestroyDebugReportCallbackEXT( m_instance, static_cast( callback ), reinterpret_cast( pAllocator ) );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void destroyDebugReportCallbackEXT( DebugReportCallbackEXT callback, const AllocationCallbacks& allocator ) const
     {
       vkDestroyDebugReportCallbackEXT( m_instance, static_cast( callback ), reinterpret_cast( &allocator ) );
     }
+#endif /*VKCPP_ENHANCED_MODE*/
 
+    void debugReportMessageEXT( DebugReportFlagsEXT flags, DebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage )
+    {
+      vkDebugReportMessageEXT( m_instance, static_cast( flags ), static_cast( objectType ), object, location, messageCode, pLayerPrefix, pMessage );
+    }
+
+#ifdef VKCPP_ENHANCED_MODE
     void debugReportMessageEXT( DebugReportFlagsEXT flags, DebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, std::string const& layerPrefix, std::string const& message ) const
     {
       vkDebugReportMessageEXT( m_instance, static_cast( flags ), static_cast( objectType ), object, location, messageCode, layerPrefix.c_str(), message.c_str() );
@@ -21639,6 +22813,7 @@ namespace vk
   {
     return static_cast( vkCreateInstance( reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pInstance ) ) );
   }
+
 #ifdef VKCPP_ENHANCED_MODE
   inline Instance createInstance( const InstanceCreateInfo& createInfo, const AllocationCallbacks& allocator )
   {
@@ -21652,70 +22827,11 @@ namespace vk
   }
 #endif /*VKCPP_ENHANCED_MODE*/
 
-  inline void destroyInstance( Instance instance, const AllocationCallbacks* pAllocator )
-  {
-    vkDestroyInstance( static_cast( instance ), reinterpret_cast( pAllocator ) );
-  }
-
-  inline Result enumeratePhysicalDevices( Instance instance, uint32_t* pPhysicalDeviceCount, PhysicalDevice* pPhysicalDevices )
-  {
-    return static_cast( vkEnumeratePhysicalDevices( static_cast( instance ), pPhysicalDeviceCount, reinterpret_cast( pPhysicalDevices ) ) );
-  }
-
-  inline PFN_vkVoidFunction getDeviceProcAddr( Device device, const char* pName )
-  {
-    return vkGetDeviceProcAddr( static_cast( device ), pName );
-  }
-
-  inline PFN_vkVoidFunction getInstanceProcAddr( Instance instance, const char* pName )
-  {
-    return vkGetInstanceProcAddr( static_cast( instance ), pName );
-  }
-
-  inline void getPhysicalDeviceProperties( PhysicalDevice physicalDevice, PhysicalDeviceProperties* pProperties )
-  {
-    vkGetPhysicalDeviceProperties( static_cast( physicalDevice ), reinterpret_cast( pProperties ) );
-  }
-
-  inline void getPhysicalDeviceQueueFamilyProperties( PhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, QueueFamilyProperties* pQueueFamilyProperties )
-  {
-    vkGetPhysicalDeviceQueueFamilyProperties( static_cast( physicalDevice ), pQueueFamilyPropertyCount, reinterpret_cast( pQueueFamilyProperties ) );
-  }
-
-  inline void getPhysicalDeviceMemoryProperties( PhysicalDevice physicalDevice, PhysicalDeviceMemoryProperties* pMemoryProperties )
-  {
-    vkGetPhysicalDeviceMemoryProperties( static_cast( physicalDevice ), reinterpret_cast( pMemoryProperties ) );
-  }
-
-  inline void getPhysicalDeviceFeatures( PhysicalDevice physicalDevice, PhysicalDeviceFeatures* pFeatures )
-  {
-    vkGetPhysicalDeviceFeatures( static_cast( physicalDevice ), reinterpret_cast( pFeatures ) );
-  }
-
-  inline void getPhysicalDeviceFormatProperties( PhysicalDevice physicalDevice, Format format, FormatProperties* pFormatProperties )
-  {
-    vkGetPhysicalDeviceFormatProperties( static_cast( physicalDevice ), static_cast( format ), reinterpret_cast( pFormatProperties ) );
-  }
-
-  inline Result getPhysicalDeviceImageFormatProperties( PhysicalDevice physicalDevice, Format format, ImageType type, ImageTiling tiling, ImageUsageFlags usage, ImageCreateFlags flags, ImageFormatProperties* pImageFormatProperties )
-  {
-    return static_cast( vkGetPhysicalDeviceImageFormatProperties( static_cast( physicalDevice ), static_cast( format ), static_cast( type ), static_cast( tiling ), static_cast( usage ), static_cast( flags ), reinterpret_cast( pImageFormatProperties ) ) );
-  }
-
-  inline Result createDevice( PhysicalDevice physicalDevice, const DeviceCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Device* pDevice )
-  {
-    return static_cast( vkCreateDevice( static_cast( physicalDevice ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pDevice ) ) );
-  }
-
-  inline void destroyDevice( Device device, const AllocationCallbacks* pAllocator )
-  {
-    vkDestroyDevice( static_cast( device ), reinterpret_cast( pAllocator ) );
-  }
-
   inline Result enumerateInstanceLayerProperties( uint32_t* pPropertyCount, LayerProperties* pProperties )
   {
     return static_cast( vkEnumerateInstanceLayerProperties( pPropertyCount, reinterpret_cast( pProperties ) ) );
   }
+
 #ifdef VKCPP_ENHANCED_MODE
   inline Result enumerateInstanceLayerProperties( std::vector & properties )
   {
@@ -21739,6 +22855,7 @@ namespace vk
   {
     return static_cast( vkEnumerateInstanceExtensionProperties( pLayerName, pPropertyCount, reinterpret_cast( pProperties ) ) );
   }
+
 #ifdef VKCPP_ENHANCED_MODE
   inline Result enumerateInstanceExtensionProperties( std::string const& layerName, std::vector & properties )
   {
@@ -21758,798 +22875,6 @@ namespace vk
   }
 #endif /*VKCPP_ENHANCED_MODE*/
 
-  inline Result enumerateDeviceLayerProperties( PhysicalDevice physicalDevice, uint32_t* pPropertyCount, LayerProperties* pProperties )
-  {
-    return static_cast( vkEnumerateDeviceLayerProperties( static_cast( physicalDevice ), pPropertyCount, reinterpret_cast( pProperties ) ) );
-  }
-
-  inline Result enumerateDeviceExtensionProperties( PhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, ExtensionProperties* pProperties )
-  {
-    return static_cast( vkEnumerateDeviceExtensionProperties( static_cast( physicalDevice ), pLayerName, pPropertyCount, reinterpret_cast( pProperties ) ) );
-  }
-
-  inline void getDeviceQueue( Device device, uint32_t queueFamilyIndex, uint32_t queueIndex, Queue* pQueue )
-  {
-    vkGetDeviceQueue( static_cast( device ), queueFamilyIndex, queueIndex, reinterpret_cast( pQueue ) );
-  }
-
-  inline Result queueSubmit( Queue queue, uint32_t submitCount, const SubmitInfo* pSubmits, Fence fence )
-  {
-    return static_cast( vkQueueSubmit( static_cast( queue ), submitCount, reinterpret_cast( pSubmits ), static_cast( fence ) ) );
-  }
-
-  inline Result queueWaitIdle( Queue queue )
-  {
-    return static_cast( vkQueueWaitIdle( static_cast( queue ) ) );
-  }
-
-  inline Result deviceWaitIdle( Device device )
-  {
-    return static_cast( vkDeviceWaitIdle( static_cast( device ) ) );
-  }
-
-  inline Result allocateMemory( Device device, const MemoryAllocateInfo* pAllocateInfo, const AllocationCallbacks* pAllocator, DeviceMemory* pMemory )
-  {
-    return static_cast( vkAllocateMemory( static_cast( device ), reinterpret_cast( pAllocateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pMemory ) ) );
-  }
-
-  inline void freeMemory( Device device, DeviceMemory memory, const AllocationCallbacks* pAllocator )
-  {
-    vkFreeMemory( static_cast( device ), static_cast( memory ), reinterpret_cast( pAllocator ) );
-  }
-
-  inline Result mapMemory( Device device, DeviceMemory memory, DeviceSize offset, DeviceSize size, MemoryMapFlags flags, void** ppData )
-  {
-    return static_cast( vkMapMemory( static_cast( device ), static_cast( memory ), offset, size, static_cast( flags ), ppData ) );
-  }
-
-  inline void unmapMemory( Device device, DeviceMemory memory )
-  {
-    vkUnmapMemory( static_cast( device ), static_cast( memory ) );
-  }
-
-  inline Result flushMappedMemoryRanges( Device device, uint32_t memoryRangeCount, const MappedMemoryRange* pMemoryRanges )
-  {
-    return static_cast( vkFlushMappedMemoryRanges( static_cast( device ), memoryRangeCount, reinterpret_cast( pMemoryRanges ) ) );
-  }
-
-  inline Result invalidateMappedMemoryRanges( Device device, uint32_t memoryRangeCount, const MappedMemoryRange* pMemoryRanges )
-  {
-    return static_cast( vkInvalidateMappedMemoryRanges( static_cast( device ), memoryRangeCount, reinterpret_cast( pMemoryRanges ) ) );
-  }
-
-  inline void getDeviceMemoryCommitment( Device device, DeviceMemory memory, DeviceSize* pCommittedMemoryInBytes )
-  {
-    vkGetDeviceMemoryCommitment( static_cast( device ), static_cast( memory ), pCommittedMemoryInBytes );
-  }
-
-  inline void getBufferMemoryRequirements( Device device, Buffer buffer, MemoryRequirements* pMemoryRequirements )
-  {
-    vkGetBufferMemoryRequirements( static_cast( device ), static_cast( buffer ), reinterpret_cast( pMemoryRequirements ) );
-  }
-
-  inline Result bindBufferMemory( Device device, Buffer buffer, DeviceMemory memory, DeviceSize memoryOffset )
-  {
-    return static_cast( vkBindBufferMemory( static_cast( device ), static_cast( buffer ), static_cast( memory ), memoryOffset ) );
-  }
-
-  inline void getImageMemoryRequirements( Device device, Image image, MemoryRequirements* pMemoryRequirements )
-  {
-    vkGetImageMemoryRequirements( static_cast( device ), static_cast( image ), reinterpret_cast( pMemoryRequirements ) );
-  }
-
-  inline Result bindImageMemory( Device device, Image image, DeviceMemory memory, DeviceSize memoryOffset )
-  {
-    return static_cast( vkBindImageMemory( static_cast( device ), static_cast( image ), static_cast( memory ), memoryOffset ) );
-  }
-
-  inline void getImageSparseMemoryRequirements( Device device, Image image, uint32_t* pSparseMemoryRequirementCount, SparseImageMemoryRequirements* pSparseMemoryRequirements )
-  {
-    vkGetImageSparseMemoryRequirements( static_cast( device ), static_cast( image ), pSparseMemoryRequirementCount, reinterpret_cast( pSparseMemoryRequirements ) );
-  }
-
-  inline void getPhysicalDeviceSparseImageFormatProperties( PhysicalDevice physicalDevice, Format format, ImageType type, SampleCountFlagBits samples, ImageUsageFlags usage, ImageTiling tiling, uint32_t* pPropertyCount, SparseImageFormatProperties* pProperties )
-  {
-    vkGetPhysicalDeviceSparseImageFormatProperties( static_cast( physicalDevice ), static_cast( format ), static_cast( type ), static_cast( samples ), static_cast( usage ), static_cast( tiling ), pPropertyCount, reinterpret_cast( pProperties ) );
-  }
-
-  inline Result queueBindSparse( Queue queue, uint32_t bindInfoCount, const BindSparseInfo* pBindInfo, Fence fence )
-  {
-    return static_cast( vkQueueBindSparse( static_cast( queue ), bindInfoCount, reinterpret_cast( pBindInfo ), static_cast( fence ) ) );
-  }
-
-  inline Result createFence( Device device, const FenceCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Fence* pFence )
-  {
-    return static_cast( vkCreateFence( static_cast( device ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pFence ) ) );
-  }
-
-  inline void destroyFence( Device device, Fence fence, const AllocationCallbacks* pAllocator )
-  {
-    vkDestroyFence( static_cast( device ), static_cast( fence ), reinterpret_cast( pAllocator ) );
-  }
-
-  inline Result resetFences( Device device, uint32_t fenceCount, const Fence* pFences )
-  {
-    return static_cast( vkResetFences( static_cast( device ), fenceCount, reinterpret_cast( pFences ) ) );
-  }
-
-  inline Result getFenceStatus( Device device, Fence fence )
-  {
-    return static_cast( vkGetFenceStatus( static_cast( device ), static_cast( fence ) ) );
-  }
-
-  inline Result waitForFences( Device device, uint32_t fenceCount, const Fence* pFences, Bool32 waitAll, uint64_t timeout )
-  {
-    return static_cast( vkWaitForFences( static_cast( device ), fenceCount, reinterpret_cast( pFences ), waitAll, timeout ) );
-  }
-
-  inline Result createSemaphore( Device device, const SemaphoreCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Semaphore* pSemaphore )
-  {
-    return static_cast( vkCreateSemaphore( static_cast( device ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSemaphore ) ) );
-  }
-
-  inline void destroySemaphore( Device device, Semaphore semaphore, const AllocationCallbacks* pAllocator )
-  {
-    vkDestroySemaphore( static_cast( device ), static_cast( semaphore ), reinterpret_cast( pAllocator ) );
-  }
-
-  inline Result createEvent( Device device, const EventCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Event* pEvent )
-  {
-    return static_cast( vkCreateEvent( static_cast( device ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pEvent ) ) );
-  }
-
-  inline void destroyEvent( Device device, Event event, const AllocationCallbacks* pAllocator )
-  {
-    vkDestroyEvent( static_cast( device ), static_cast( event ), reinterpret_cast( pAllocator ) );
-  }
-
-  inline Result getEventStatus( Device device, Event event )
-  {
-    return static_cast( vkGetEventStatus( static_cast( device ), static_cast( event ) ) );
-  }
-
-  inline Result setEvent( Device device, Event event )
-  {
-    return static_cast( vkSetEvent( static_cast( device ), static_cast( event ) ) );
-  }
-
-  inline Result resetEvent( Device device, Event event )
-  {
-    return static_cast( vkResetEvent( static_cast( device ), static_cast( event ) ) );
-  }
-
-  inline Result createQueryPool( Device device, const QueryPoolCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, QueryPool* pQueryPool )
-  {
-    return static_cast( vkCreateQueryPool( static_cast( device ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pQueryPool ) ) );
-  }
-
-  inline void destroyQueryPool( Device device, QueryPool queryPool, const AllocationCallbacks* pAllocator )
-  {
-    vkDestroyQueryPool( static_cast( device ), static_cast( queryPool ), reinterpret_cast( pAllocator ) );
-  }
-
-  inline Result getQueryPoolResults( Device device, QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, DeviceSize stride, QueryResultFlags flags )
-  {
-    return static_cast( vkGetQueryPoolResults( static_cast( device ), static_cast( queryPool ), firstQuery, queryCount, dataSize, pData, stride, static_cast( flags ) ) );
-  }
-
-  inline Result createBuffer( Device device, const BufferCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Buffer* pBuffer )
-  {
-    return static_cast( vkCreateBuffer( static_cast( device ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pBuffer ) ) );
-  }
-
-  inline void destroyBuffer( Device device, Buffer buffer, const AllocationCallbacks* pAllocator )
-  {
-    vkDestroyBuffer( static_cast( device ), static_cast( buffer ), reinterpret_cast( pAllocator ) );
-  }
-
-  inline Result createBufferView( Device device, const BufferViewCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, BufferView* pView )
-  {
-    return static_cast( vkCreateBufferView( static_cast( device ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pView ) ) );
-  }
-
-  inline void destroyBufferView( Device device, BufferView bufferView, const AllocationCallbacks* pAllocator )
-  {
-    vkDestroyBufferView( static_cast( device ), static_cast( bufferView ), reinterpret_cast( pAllocator ) );
-  }
-
-  inline Result createImage( Device device, const ImageCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Image* pImage )
-  {
-    return static_cast( vkCreateImage( static_cast( device ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pImage ) ) );
-  }
-
-  inline void destroyImage( Device device, Image image, const AllocationCallbacks* pAllocator )
-  {
-    vkDestroyImage( static_cast( device ), static_cast( image ), reinterpret_cast( pAllocator ) );
-  }
-
-  inline void getImageSubresourceLayout( Device device, Image image, const ImageSubresource* pSubresource, SubresourceLayout* pLayout )
-  {
-    vkGetImageSubresourceLayout( static_cast( device ), static_cast( image ), reinterpret_cast( pSubresource ), reinterpret_cast( pLayout ) );
-  }
-
-  inline Result createImageView( Device device, const ImageViewCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, ImageView* pView )
-  {
-    return static_cast( vkCreateImageView( static_cast( device ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pView ) ) );
-  }
-
-  inline void destroyImageView( Device device, ImageView imageView, const AllocationCallbacks* pAllocator )
-  {
-    vkDestroyImageView( static_cast( device ), static_cast( imageView ), reinterpret_cast( pAllocator ) );
-  }
-
-  inline Result createShaderModule( Device device, const ShaderModuleCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, ShaderModule* pShaderModule )
-  {
-    return static_cast( vkCreateShaderModule( static_cast( device ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pShaderModule ) ) );
-  }
-
-  inline void destroyShaderModule( Device device, ShaderModule shaderModule, const AllocationCallbacks* pAllocator )
-  {
-    vkDestroyShaderModule( static_cast( device ), static_cast( shaderModule ), reinterpret_cast( pAllocator ) );
-  }
-
-  inline Result createPipelineCache( Device device, const PipelineCacheCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, PipelineCache* pPipelineCache )
-  {
-    return static_cast( vkCreatePipelineCache( static_cast( device ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pPipelineCache ) ) );
-  }
-
-  inline void destroyPipelineCache( Device device, PipelineCache pipelineCache, const AllocationCallbacks* pAllocator )
-  {
-    vkDestroyPipelineCache( static_cast( device ), static_cast( pipelineCache ), reinterpret_cast( pAllocator ) );
-  }
-
-  inline Result getPipelineCacheData( Device device, PipelineCache pipelineCache, size_t* pDataSize, void* pData )
-  {
-    return static_cast( vkGetPipelineCacheData( static_cast( device ), static_cast( pipelineCache ), pDataSize, pData ) );
-  }
-
-  inline Result mergePipelineCaches( Device device, PipelineCache dstCache, uint32_t srcCacheCount, const PipelineCache* pSrcCaches )
-  {
-    return static_cast( vkMergePipelineCaches( static_cast( device ), static_cast( dstCache ), srcCacheCount, reinterpret_cast( pSrcCaches ) ) );
-  }
-
-  inline Result createGraphicsPipelines( Device device, PipelineCache pipelineCache, uint32_t createInfoCount, const GraphicsPipelineCreateInfo* pCreateInfos, const AllocationCallbacks* pAllocator, Pipeline* pPipelines )
-  {
-    return static_cast( vkCreateGraphicsPipelines( static_cast( device ), static_cast( pipelineCache ), createInfoCount, reinterpret_cast( pCreateInfos ), reinterpret_cast( pAllocator ), reinterpret_cast( pPipelines ) ) );
-  }
-
-  inline Result createComputePipelines( Device device, PipelineCache pipelineCache, uint32_t createInfoCount, const ComputePipelineCreateInfo* pCreateInfos, const AllocationCallbacks* pAllocator, Pipeline* pPipelines )
-  {
-    return static_cast( vkCreateComputePipelines( static_cast( device ), static_cast( pipelineCache ), createInfoCount, reinterpret_cast( pCreateInfos ), reinterpret_cast( pAllocator ), reinterpret_cast( pPipelines ) ) );
-  }
-
-  inline void destroyPipeline( Device device, Pipeline pipeline, const AllocationCallbacks* pAllocator )
-  {
-    vkDestroyPipeline( static_cast( device ), static_cast( pipeline ), reinterpret_cast( pAllocator ) );
-  }
-
-  inline Result createPipelineLayout( Device device, const PipelineLayoutCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, PipelineLayout* pPipelineLayout )
-  {
-    return static_cast( vkCreatePipelineLayout( static_cast( device ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pPipelineLayout ) ) );
-  }
-
-  inline void destroyPipelineLayout( Device device, PipelineLayout pipelineLayout, const AllocationCallbacks* pAllocator )
-  {
-    vkDestroyPipelineLayout( static_cast( device ), static_cast( pipelineLayout ), reinterpret_cast( pAllocator ) );
-  }
-
-  inline Result createSampler( Device device, const SamplerCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Sampler* pSampler )
-  {
-    return static_cast( vkCreateSampler( static_cast( device ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSampler ) ) );
-  }
-
-  inline void destroySampler( Device device, Sampler sampler, const AllocationCallbacks* pAllocator )
-  {
-    vkDestroySampler( static_cast( device ), static_cast( sampler ), reinterpret_cast( pAllocator ) );
-  }
-
-  inline Result createDescriptorSetLayout( Device device, const DescriptorSetLayoutCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, DescriptorSetLayout* pSetLayout )
-  {
-    return static_cast( vkCreateDescriptorSetLayout( static_cast( device ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSetLayout ) ) );
-  }
-
-  inline void destroyDescriptorSetLayout( Device device, DescriptorSetLayout descriptorSetLayout, const AllocationCallbacks* pAllocator )
-  {
-    vkDestroyDescriptorSetLayout( static_cast( device ), static_cast( descriptorSetLayout ), reinterpret_cast( pAllocator ) );
-  }
-
-  inline Result createDescriptorPool( Device device, const DescriptorPoolCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, DescriptorPool* pDescriptorPool )
-  {
-    return static_cast( vkCreateDescriptorPool( static_cast( device ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pDescriptorPool ) ) );
-  }
-
-  inline void destroyDescriptorPool( Device device, DescriptorPool descriptorPool, const AllocationCallbacks* pAllocator )
-  {
-    vkDestroyDescriptorPool( static_cast( device ), static_cast( descriptorPool ), reinterpret_cast( pAllocator ) );
-  }
-
-  inline Result resetDescriptorPool( Device device, DescriptorPool descriptorPool, DescriptorPoolResetFlags flags )
-  {
-    return static_cast( vkResetDescriptorPool( static_cast( device ), static_cast( descriptorPool ), static_cast( flags ) ) );
-  }
-
-  inline Result allocateDescriptorSets( Device device, const DescriptorSetAllocateInfo* pAllocateInfo, DescriptorSet* pDescriptorSets )
-  {
-    return static_cast( vkAllocateDescriptorSets( static_cast( device ), reinterpret_cast( pAllocateInfo ), reinterpret_cast( pDescriptorSets ) ) );
-  }
-
-  inline Result freeDescriptorSets( Device device, DescriptorPool descriptorPool, uint32_t descriptorSetCount, const DescriptorSet* pDescriptorSets )
-  {
-    return static_cast( vkFreeDescriptorSets( static_cast( device ), static_cast( descriptorPool ), descriptorSetCount, reinterpret_cast( pDescriptorSets ) ) );
-  }
-
-  inline void updateDescriptorSets( Device device, uint32_t descriptorWriteCount, const WriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const CopyDescriptorSet* pDescriptorCopies )
-  {
-    vkUpdateDescriptorSets( static_cast( device ), descriptorWriteCount, reinterpret_cast( pDescriptorWrites ), descriptorCopyCount, reinterpret_cast( pDescriptorCopies ) );
-  }
-
-  inline Result createFramebuffer( Device device, const FramebufferCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, Framebuffer* pFramebuffer )
-  {
-    return static_cast( vkCreateFramebuffer( static_cast( device ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pFramebuffer ) ) );
-  }
-
-  inline void destroyFramebuffer( Device device, Framebuffer framebuffer, const AllocationCallbacks* pAllocator )
-  {
-    vkDestroyFramebuffer( static_cast( device ), static_cast( framebuffer ), reinterpret_cast( pAllocator ) );
-  }
-
-  inline Result createRenderPass( Device device, const RenderPassCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, RenderPass* pRenderPass )
-  {
-    return static_cast( vkCreateRenderPass( static_cast( device ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pRenderPass ) ) );
-  }
-
-  inline void destroyRenderPass( Device device, RenderPass renderPass, const AllocationCallbacks* pAllocator )
-  {
-    vkDestroyRenderPass( static_cast( device ), static_cast( renderPass ), reinterpret_cast( pAllocator ) );
-  }
-
-  inline void getRenderAreaGranularity( Device device, RenderPass renderPass, Extent2D* pGranularity )
-  {
-    vkGetRenderAreaGranularity( static_cast( device ), static_cast( renderPass ), reinterpret_cast( pGranularity ) );
-  }
-
-  inline Result createCommandPool( Device device, const CommandPoolCreateInfo* pCreateInfo, const AllocationCallbacks* pAllocator, CommandPool* pCommandPool )
-  {
-    return static_cast( vkCreateCommandPool( static_cast( device ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pCommandPool ) ) );
-  }
-
-  inline void destroyCommandPool( Device device, CommandPool commandPool, const AllocationCallbacks* pAllocator )
-  {
-    vkDestroyCommandPool( static_cast( device ), static_cast( commandPool ), reinterpret_cast( pAllocator ) );
-  }
-
-  inline Result resetCommandPool( Device device, CommandPool commandPool, CommandPoolResetFlags flags )
-  {
-    return static_cast( vkResetCommandPool( static_cast( device ), static_cast( commandPool ), static_cast( flags ) ) );
-  }
-
-  inline Result allocateCommandBuffers( Device device, const CommandBufferAllocateInfo* pAllocateInfo, CommandBuffer* pCommandBuffers )
-  {
-    return static_cast( vkAllocateCommandBuffers( static_cast( device ), reinterpret_cast( pAllocateInfo ), reinterpret_cast( pCommandBuffers ) ) );
-  }
-
-  inline void freeCommandBuffers( Device device, CommandPool commandPool, uint32_t commandBufferCount, const CommandBuffer* pCommandBuffers )
-  {
-    vkFreeCommandBuffers( static_cast( device ), static_cast( commandPool ), commandBufferCount, reinterpret_cast( pCommandBuffers ) );
-  }
-
-  inline Result beginCommandBuffer( CommandBuffer commandBuffer, const CommandBufferBeginInfo* pBeginInfo )
-  {
-    return static_cast( vkBeginCommandBuffer( static_cast( commandBuffer ), reinterpret_cast( pBeginInfo ) ) );
-  }
-
-  inline Result endCommandBuffer( CommandBuffer commandBuffer )
-  {
-    return static_cast( vkEndCommandBuffer( static_cast( commandBuffer ) ) );
-  }
-
-  inline Result resetCommandBuffer( CommandBuffer commandBuffer, CommandBufferResetFlags flags )
-  {
-    return static_cast( vkResetCommandBuffer( static_cast( commandBuffer ), static_cast( flags ) ) );
-  }
-
-  inline void cmdBindPipeline( CommandBuffer commandBuffer, PipelineBindPoint pipelineBindPoint, Pipeline pipeline )
-  {
-    vkCmdBindPipeline( static_cast( commandBuffer ), static_cast( pipelineBindPoint ), static_cast( pipeline ) );
-  }
-
-  inline void cmdSetViewport( CommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const Viewport* pViewports )
-  {
-    vkCmdSetViewport( static_cast( commandBuffer ), firstViewport, viewportCount, reinterpret_cast( pViewports ) );
-  }
-
-  inline void cmdSetScissor( CommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const Rect2D* pScissors )
-  {
-    vkCmdSetScissor( static_cast( commandBuffer ), firstScissor, scissorCount, reinterpret_cast( pScissors ) );
-  }
-
-  inline void cmdSetLineWidth( CommandBuffer commandBuffer, float lineWidth )
-  {
-    vkCmdSetLineWidth( static_cast( commandBuffer ), lineWidth );
-  }
-
-  inline void cmdSetDepthBias( CommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor )
-  {
-    vkCmdSetDepthBias( static_cast( commandBuffer ), depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor );
-  }
-
-  inline void cmdSetBlendConstants( CommandBuffer commandBuffer, const float blendConstants[4] )
-  {
-    vkCmdSetBlendConstants( static_cast( commandBuffer ), blendConstants );
-  }
-
-  inline void cmdSetDepthBounds( CommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds )
-  {
-    vkCmdSetDepthBounds( static_cast( commandBuffer ), minDepthBounds, maxDepthBounds );
-  }
-
-  inline void cmdSetStencilCompareMask( CommandBuffer commandBuffer, StencilFaceFlags faceMask, uint32_t compareMask )
-  {
-    vkCmdSetStencilCompareMask( static_cast( commandBuffer ), static_cast( faceMask ), compareMask );
-  }
-
-  inline void cmdSetStencilWriteMask( CommandBuffer commandBuffer, StencilFaceFlags faceMask, uint32_t writeMask )
-  {
-    vkCmdSetStencilWriteMask( static_cast( commandBuffer ), static_cast( faceMask ), writeMask );
-  }
-
-  inline void cmdSetStencilReference( CommandBuffer commandBuffer, StencilFaceFlags faceMask, uint32_t reference )
-  {
-    vkCmdSetStencilReference( static_cast( commandBuffer ), static_cast( faceMask ), reference );
-  }
-
-  inline void cmdBindDescriptorSets( CommandBuffer commandBuffer, PipelineBindPoint pipelineBindPoint, PipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const DescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets )
-  {
-    vkCmdBindDescriptorSets( static_cast( commandBuffer ), static_cast( pipelineBindPoint ), static_cast( layout ), firstSet, descriptorSetCount, reinterpret_cast( pDescriptorSets ), dynamicOffsetCount, pDynamicOffsets );
-  }
-
-  inline void cmdBindIndexBuffer( CommandBuffer commandBuffer, Buffer buffer, DeviceSize offset, IndexType indexType )
-  {
-    vkCmdBindIndexBuffer( static_cast( commandBuffer ), static_cast( buffer ), offset, static_cast( indexType ) );
-  }
-
-  inline void cmdBindVertexBuffers( CommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const Buffer* pBuffers, const DeviceSize* pOffsets )
-  {
-    vkCmdBindVertexBuffers( static_cast( commandBuffer ), firstBinding, bindingCount, reinterpret_cast( pBuffers ), pOffsets );
-  }
-
-  inline void cmdDraw( CommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance )
-  {
-    vkCmdDraw( static_cast( commandBuffer ), vertexCount, instanceCount, firstVertex, firstInstance );
-  }
-
-  inline void cmdDrawIndexed( CommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance )
-  {
-    vkCmdDrawIndexed( static_cast( commandBuffer ), indexCount, instanceCount, firstIndex, vertexOffset, firstInstance );
-  }
-
-  inline void cmdDrawIndirect( CommandBuffer commandBuffer, Buffer buffer, DeviceSize offset, uint32_t drawCount, uint32_t stride )
-  {
-    vkCmdDrawIndirect( static_cast( commandBuffer ), static_cast( buffer ), offset, drawCount, stride );
-  }
-
-  inline void cmdDrawIndexedIndirect( CommandBuffer commandBuffer, Buffer buffer, DeviceSize offset, uint32_t drawCount, uint32_t stride )
-  {
-    vkCmdDrawIndexedIndirect( static_cast( commandBuffer ), static_cast( buffer ), offset, drawCount, stride );
-  }
-
-  inline void cmdDispatch( CommandBuffer commandBuffer, uint32_t x, uint32_t y, uint32_t z )
-  {
-    vkCmdDispatch( static_cast( commandBuffer ), x, y, z );
-  }
-
-  inline void cmdDispatchIndirect( CommandBuffer commandBuffer, Buffer buffer, DeviceSize offset )
-  {
-    vkCmdDispatchIndirect( static_cast( commandBuffer ), static_cast( buffer ), offset );
-  }
-
-  inline void cmdCopyBuffer( CommandBuffer commandBuffer, Buffer srcBuffer, Buffer dstBuffer, uint32_t regionCount, const BufferCopy* pRegions )
-  {
-    vkCmdCopyBuffer( static_cast( commandBuffer ), static_cast( srcBuffer ), static_cast( dstBuffer ), regionCount, reinterpret_cast( pRegions ) );
-  }
-
-  inline void cmdCopyImage( CommandBuffer commandBuffer, Image srcImage, ImageLayout srcImageLayout, Image dstImage, ImageLayout dstImageLayout, uint32_t regionCount, const ImageCopy* pRegions )
-  {
-    vkCmdCopyImage( static_cast( commandBuffer ), static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstImage ), static_cast( dstImageLayout ), regionCount, reinterpret_cast( pRegions ) );
-  }
-
-  inline void cmdBlitImage( CommandBuffer commandBuffer, Image srcImage, ImageLayout srcImageLayout, Image dstImage, ImageLayout dstImageLayout, uint32_t regionCount, const ImageBlit* pRegions, Filter filter )
-  {
-    vkCmdBlitImage( static_cast( commandBuffer ), static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstImage ), static_cast( dstImageLayout ), regionCount, reinterpret_cast( pRegions ), static_cast( filter ) );
-  }
-
-  inline void cmdCopyBufferToImage( CommandBuffer commandBuffer, Buffer srcBuffer, Image dstImage, ImageLayout dstImageLayout, uint32_t regionCount, const BufferImageCopy* pRegions )
-  {
-    vkCmdCopyBufferToImage( static_cast( commandBuffer ), static_cast( srcBuffer ), static_cast( dstImage ), static_cast( dstImageLayout ), regionCount, reinterpret_cast( pRegions ) );
-  }
-
-  inline void cmdCopyImageToBuffer( CommandBuffer commandBuffer, Image srcImage, ImageLayout srcImageLayout, Buffer dstBuffer, uint32_t regionCount, const BufferImageCopy* pRegions )
-  {
-    vkCmdCopyImageToBuffer( static_cast( commandBuffer ), static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstBuffer ), regionCount, reinterpret_cast( pRegions ) );
-  }
-
-  inline void cmdUpdateBuffer( CommandBuffer commandBuffer, Buffer dstBuffer, DeviceSize dstOffset, DeviceSize dataSize, const uint32_t* pData )
-  {
-    vkCmdUpdateBuffer( static_cast( commandBuffer ), static_cast( dstBuffer ), dstOffset, dataSize, pData );
-  }
-
-  inline void cmdFillBuffer( CommandBuffer commandBuffer, Buffer dstBuffer, DeviceSize dstOffset, DeviceSize size, uint32_t data )
-  {
-    vkCmdFillBuffer( static_cast( commandBuffer ), static_cast( dstBuffer ), dstOffset, size, data );
-  }
-
-  inline void cmdClearColorImage( CommandBuffer commandBuffer, Image image, ImageLayout imageLayout, const ClearColorValue* pColor, uint32_t rangeCount, const ImageSubresourceRange* pRanges )
-  {
-    vkCmdClearColorImage( static_cast( commandBuffer ), static_cast( image ), static_cast( imageLayout ), reinterpret_cast( pColor ), rangeCount, reinterpret_cast( pRanges ) );
-  }
-
-  inline void cmdClearDepthStencilImage( CommandBuffer commandBuffer, Image image, ImageLayout imageLayout, const ClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const ImageSubresourceRange* pRanges )
-  {
-    vkCmdClearDepthStencilImage( static_cast( commandBuffer ), static_cast( image ), static_cast( imageLayout ), reinterpret_cast( pDepthStencil ), rangeCount, reinterpret_cast( pRanges ) );
-  }
-
-  inline void cmdClearAttachments( CommandBuffer commandBuffer, uint32_t attachmentCount, const ClearAttachment* pAttachments, uint32_t rectCount, const ClearRect* pRects )
-  {
-    vkCmdClearAttachments( static_cast( commandBuffer ), attachmentCount, reinterpret_cast( pAttachments ), rectCount, reinterpret_cast( pRects ) );
-  }
-
-  inline void cmdResolveImage( CommandBuffer commandBuffer, Image srcImage, ImageLayout srcImageLayout, Image dstImage, ImageLayout dstImageLayout, uint32_t regionCount, const ImageResolve* pRegions )
-  {
-    vkCmdResolveImage( static_cast( commandBuffer ), static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstImage ), static_cast( dstImageLayout ), regionCount, reinterpret_cast( pRegions ) );
-  }
-
-  inline void cmdSetEvent( CommandBuffer commandBuffer, Event event, PipelineStageFlags stageMask )
-  {
-    vkCmdSetEvent( static_cast( commandBuffer ), static_cast( event ), static_cast( stageMask ) );
-  }
-
-  inline void cmdResetEvent( CommandBuffer commandBuffer, Event event, PipelineStageFlags stageMask )
-  {
-    vkCmdResetEvent( static_cast( commandBuffer ), static_cast( event ), static_cast( stageMask ) );
-  }
-
-  inline void cmdWaitEvents( CommandBuffer commandBuffer, uint32_t eventCount, const Event* pEvents, PipelineStageFlags srcStageMask, PipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const MemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const BufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const ImageMemoryBarrier* pImageMemoryBarriers )
-  {
-    vkCmdWaitEvents( static_cast( commandBuffer ), eventCount, reinterpret_cast( pEvents ), static_cast( srcStageMask ), static_cast( dstStageMask ), memoryBarrierCount, reinterpret_cast( pMemoryBarriers ), bufferMemoryBarrierCount, reinterpret_cast( pBufferMemoryBarriers ), imageMemoryBarrierCount, reinterpret_cast( pImageMemoryBarriers ) );
-  }
-
-  inline void cmdPipelineBarrier( CommandBuffer commandBuffer, PipelineStageFlags srcStageMask, PipelineStageFlags dstStageMask, DependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const MemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const BufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const ImageMemoryBarrier* pImageMemoryBarriers )
-  {
-    vkCmdPipelineBarrier( static_cast( commandBuffer ), static_cast( srcStageMask ), static_cast( dstStageMask ), static_cast( dependencyFlags ), memoryBarrierCount, reinterpret_cast( pMemoryBarriers ), bufferMemoryBarrierCount, reinterpret_cast( pBufferMemoryBarriers ), imageMemoryBarrierCount, reinterpret_cast( pImageMemoryBarriers ) );
-  }
-
-  inline void cmdBeginQuery( CommandBuffer commandBuffer, QueryPool queryPool, uint32_t query, QueryControlFlags flags )
-  {
-    vkCmdBeginQuery( static_cast( commandBuffer ), static_cast( queryPool ), query, static_cast( flags ) );
-  }
-
-  inline void cmdEndQuery( CommandBuffer commandBuffer, QueryPool queryPool, uint32_t query )
-  {
-    vkCmdEndQuery( static_cast( commandBuffer ), static_cast( queryPool ), query );
-  }
-
-  inline void cmdResetQueryPool( CommandBuffer commandBuffer, QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount )
-  {
-    vkCmdResetQueryPool( static_cast( commandBuffer ), static_cast( queryPool ), firstQuery, queryCount );
-  }
-
-  inline void cmdWriteTimestamp( CommandBuffer commandBuffer, PipelineStageFlagBits pipelineStage, QueryPool queryPool, uint32_t query )
-  {
-    vkCmdWriteTimestamp( static_cast( commandBuffer ), static_cast( pipelineStage ), static_cast( queryPool ), query );
-  }
-
-  inline void cmdCopyQueryPoolResults( CommandBuffer commandBuffer, QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Buffer dstBuffer, DeviceSize dstOffset, DeviceSize stride, QueryResultFlags flags )
-  {
-    vkCmdCopyQueryPoolResults( static_cast( commandBuffer ), static_cast( queryPool ), firstQuery, queryCount, static_cast( dstBuffer ), dstOffset, stride, static_cast( flags ) );
-  }
-
-  inline void cmdPushConstants( CommandBuffer commandBuffer, PipelineLayout layout, ShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues )
-  {
-    vkCmdPushConstants( static_cast( commandBuffer ), static_cast( layout ), static_cast( stageFlags ), offset, size, pValues );
-  }
-
-  inline void cmdBeginRenderPass( CommandBuffer commandBuffer, const RenderPassBeginInfo* pRenderPassBegin, SubpassContents contents )
-  {
-    vkCmdBeginRenderPass( static_cast( commandBuffer ), reinterpret_cast( pRenderPassBegin ), static_cast( contents ) );
-  }
-
-  inline void cmdNextSubpass( CommandBuffer commandBuffer, SubpassContents contents )
-  {
-    vkCmdNextSubpass( static_cast( commandBuffer ), static_cast( contents ) );
-  }
-
-  inline void cmdEndRenderPass( CommandBuffer commandBuffer )
-  {
-    vkCmdEndRenderPass( static_cast( commandBuffer ) );
-  }
-
-  inline void cmdExecuteCommands( CommandBuffer commandBuffer, uint32_t commandBufferCount, const CommandBuffer* pCommandBuffers )
-  {
-    vkCmdExecuteCommands( static_cast( commandBuffer ), commandBufferCount, reinterpret_cast( pCommandBuffers ) );
-  }
-
-#ifdef VK_USE_PLATFORM_ANDROID_KHR
-  inline Result createAndroidSurfaceKHR( Instance instance, const AndroidSurfaceCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface )
-  {
-    return static_cast( vkCreateAndroidSurfaceKHR( static_cast( instance ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSurface ) ) );
-  }
-#endif /*VK_USE_PLATFORM_ANDROID_KHR*/
-
-  inline Result getPhysicalDeviceDisplayPropertiesKHR( PhysicalDevice physicalDevice, uint32_t* pPropertyCount, DisplayPropertiesKHR* pProperties )
-  {
-    return static_cast( vkGetPhysicalDeviceDisplayPropertiesKHR( static_cast( physicalDevice ), pPropertyCount, reinterpret_cast( pProperties ) ) );
-  }
-
-  inline Result getPhysicalDeviceDisplayPlanePropertiesKHR( PhysicalDevice physicalDevice, uint32_t* pPropertyCount, DisplayPlanePropertiesKHR* pProperties )
-  {
-    return static_cast( vkGetPhysicalDeviceDisplayPlanePropertiesKHR( static_cast( physicalDevice ), pPropertyCount, reinterpret_cast( pProperties ) ) );
-  }
-
-  inline Result getDisplayPlaneSupportedDisplaysKHR( PhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, DisplayKHR* pDisplays )
-  {
-    return static_cast( vkGetDisplayPlaneSupportedDisplaysKHR( static_cast( physicalDevice ), planeIndex, pDisplayCount, reinterpret_cast( pDisplays ) ) );
-  }
-
-  inline Result getDisplayModePropertiesKHR( PhysicalDevice physicalDevice, DisplayKHR display, uint32_t* pPropertyCount, DisplayModePropertiesKHR* pProperties )
-  {
-    return static_cast( vkGetDisplayModePropertiesKHR( static_cast( physicalDevice ), static_cast( display ), pPropertyCount, reinterpret_cast( pProperties ) ) );
-  }
-
-  inline Result createDisplayModeKHR( PhysicalDevice physicalDevice, DisplayKHR display, const DisplayModeCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, DisplayModeKHR* pMode )
-  {
-    return static_cast( vkCreateDisplayModeKHR( static_cast( physicalDevice ), static_cast( display ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pMode ) ) );
-  }
-
-  inline Result getDisplayPlaneCapabilitiesKHR( PhysicalDevice physicalDevice, DisplayModeKHR mode, uint32_t planeIndex, DisplayPlaneCapabilitiesKHR* pCapabilities )
-  {
-    return static_cast( vkGetDisplayPlaneCapabilitiesKHR( static_cast( physicalDevice ), static_cast( mode ), planeIndex, reinterpret_cast( pCapabilities ) ) );
-  }
-
-  inline Result createDisplayPlaneSurfaceKHR( Instance instance, const DisplaySurfaceCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface )
-  {
-    return static_cast( vkCreateDisplayPlaneSurfaceKHR( static_cast( instance ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSurface ) ) );
-  }
-
-  inline Result createSharedSwapchainsKHR( Device device, uint32_t swapchainCount, const SwapchainCreateInfoKHR* pCreateInfos, const AllocationCallbacks* pAllocator, SwapchainKHR* pSwapchains )
-  {
-    return static_cast( vkCreateSharedSwapchainsKHR( static_cast( device ), swapchainCount, reinterpret_cast( pCreateInfos ), reinterpret_cast( pAllocator ), reinterpret_cast( pSwapchains ) ) );
-  }
-
-#ifdef VK_USE_PLATFORM_MIR_KHR
-  inline Result createMirSurfaceKHR( Instance instance, const MirSurfaceCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface )
-  {
-    return static_cast( vkCreateMirSurfaceKHR( static_cast( instance ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSurface ) ) );
-  }
-#endif /*VK_USE_PLATFORM_MIR_KHR*/
-
-#ifdef VK_USE_PLATFORM_MIR_KHR
-  inline Bool32 getPhysicalDeviceMirPresentationSupportKHR( PhysicalDevice physicalDevice, uint32_t queueFamilyIndex, MirConnection* connection )
-  {
-    return vkGetPhysicalDeviceMirPresentationSupportKHR( static_cast( physicalDevice ), queueFamilyIndex, connection );
-  }
-#endif /*VK_USE_PLATFORM_MIR_KHR*/
-
-  inline void destroySurfaceKHR( Instance instance, SurfaceKHR surface, const AllocationCallbacks* pAllocator )
-  {
-    vkDestroySurfaceKHR( static_cast( instance ), static_cast( surface ), reinterpret_cast( pAllocator ) );
-  }
-
-  inline Result getPhysicalDeviceSurfaceSupportKHR( PhysicalDevice physicalDevice, uint32_t queueFamilyIndex, SurfaceKHR surface, Bool32* pSupported )
-  {
-    return static_cast( vkGetPhysicalDeviceSurfaceSupportKHR( static_cast( physicalDevice ), queueFamilyIndex, static_cast( surface ), pSupported ) );
-  }
-
-  inline Result getPhysicalDeviceSurfaceCapabilitiesKHR( PhysicalDevice physicalDevice, SurfaceKHR surface, SurfaceCapabilitiesKHR* pSurfaceCapabilities )
-  {
-    return static_cast( vkGetPhysicalDeviceSurfaceCapabilitiesKHR( static_cast( physicalDevice ), static_cast( surface ), reinterpret_cast( pSurfaceCapabilities ) ) );
-  }
-
-  inline Result getPhysicalDeviceSurfaceFormatsKHR( PhysicalDevice physicalDevice, SurfaceKHR surface, uint32_t* pSurfaceFormatCount, SurfaceFormatKHR* pSurfaceFormats )
-  {
-    return static_cast( vkGetPhysicalDeviceSurfaceFormatsKHR( static_cast( physicalDevice ), static_cast( surface ), pSurfaceFormatCount, reinterpret_cast( pSurfaceFormats ) ) );
-  }
-
-  inline Result getPhysicalDeviceSurfacePresentModesKHR( PhysicalDevice physicalDevice, SurfaceKHR surface, uint32_t* pPresentModeCount, PresentModeKHR* pPresentModes )
-  {
-    return static_cast( vkGetPhysicalDeviceSurfacePresentModesKHR( static_cast( physicalDevice ), static_cast( surface ), pPresentModeCount, reinterpret_cast( pPresentModes ) ) );
-  }
-
-  inline Result createSwapchainKHR( Device device, const SwapchainCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, SwapchainKHR* pSwapchain )
-  {
-    return static_cast( vkCreateSwapchainKHR( static_cast( device ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSwapchain ) ) );
-  }
-
-  inline void destroySwapchainKHR( Device device, SwapchainKHR swapchain, const AllocationCallbacks* pAllocator )
-  {
-    vkDestroySwapchainKHR( static_cast( device ), static_cast( swapchain ), reinterpret_cast( pAllocator ) );
-  }
-
-  inline Result getSwapchainImagesKHR( Device device, SwapchainKHR swapchain, uint32_t* pSwapchainImageCount, Image* pSwapchainImages )
-  {
-    return static_cast( vkGetSwapchainImagesKHR( static_cast( device ), static_cast( swapchain ), pSwapchainImageCount, reinterpret_cast( pSwapchainImages ) ) );
-  }
-
-  inline Result acquireNextImageKHR( Device device, SwapchainKHR swapchain, uint64_t timeout, Semaphore semaphore, Fence fence, uint32_t* pImageIndex )
-  {
-    return static_cast( vkAcquireNextImageKHR( static_cast( device ), static_cast( swapchain ), timeout, static_cast( semaphore ), static_cast( fence ), pImageIndex ) );
-  }
-
-  inline Result queuePresentKHR( Queue queue, const PresentInfoKHR* pPresentInfo )
-  {
-    return static_cast( vkQueuePresentKHR( static_cast( queue ), reinterpret_cast( pPresentInfo ) ) );
-  }
-
-#ifdef VK_USE_PLATFORM_WAYLAND_KHR
-  inline Result createWaylandSurfaceKHR( Instance instance, const WaylandSurfaceCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface )
-  {
-    return static_cast( vkCreateWaylandSurfaceKHR( static_cast( instance ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSurface ) ) );
-  }
-#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
-
-#ifdef VK_USE_PLATFORM_WAYLAND_KHR
-  inline Bool32 getPhysicalDeviceWaylandPresentationSupportKHR( PhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display )
-  {
-    return vkGetPhysicalDeviceWaylandPresentationSupportKHR( static_cast( physicalDevice ), queueFamilyIndex, display );
-  }
-#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
-
-#ifdef VK_USE_PLATFORM_WIN32_KHR
-  inline Result createWin32SurfaceKHR( Instance instance, const Win32SurfaceCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface )
-  {
-    return static_cast( vkCreateWin32SurfaceKHR( static_cast( instance ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSurface ) ) );
-  }
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-
-#ifdef VK_USE_PLATFORM_WIN32_KHR
-  inline Bool32 getPhysicalDeviceWin32PresentationSupportKHR( PhysicalDevice physicalDevice, uint32_t queueFamilyIndex )
-  {
-    return vkGetPhysicalDeviceWin32PresentationSupportKHR( static_cast( physicalDevice ), queueFamilyIndex );
-  }
-#endif /*VK_USE_PLATFORM_WIN32_KHR*/
-
-#ifdef VK_USE_PLATFORM_XLIB_KHR
-  inline Result createXlibSurfaceKHR( Instance instance, const XlibSurfaceCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface )
-  {
-    return static_cast( vkCreateXlibSurfaceKHR( static_cast( instance ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSurface ) ) );
-  }
-#endif /*VK_USE_PLATFORM_XLIB_KHR*/
-
-#ifdef VK_USE_PLATFORM_XLIB_KHR
-  inline Bool32 getPhysicalDeviceXlibPresentationSupportKHR( PhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID )
-  {
-    return vkGetPhysicalDeviceXlibPresentationSupportKHR( static_cast( physicalDevice ), queueFamilyIndex, dpy, visualID );
-  }
-#endif /*VK_USE_PLATFORM_XLIB_KHR*/
-
-#ifdef VK_USE_PLATFORM_XCB_KHR
-  inline Result createXcbSurfaceKHR( Instance instance, const XcbSurfaceCreateInfoKHR* pCreateInfo, const AllocationCallbacks* pAllocator, SurfaceKHR* pSurface )
-  {
-    return static_cast( vkCreateXcbSurfaceKHR( static_cast( instance ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pSurface ) ) );
-  }
-#endif /*VK_USE_PLATFORM_XCB_KHR*/
-
-#ifdef VK_USE_PLATFORM_XCB_KHR
-  inline Bool32 getPhysicalDeviceXcbPresentationSupportKHR( PhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id )
-  {
-    return vkGetPhysicalDeviceXcbPresentationSupportKHR( static_cast( physicalDevice ), queueFamilyIndex, connection, visual_id );
-  }
-#endif /*VK_USE_PLATFORM_XCB_KHR*/
-
-  inline Result createDebugReportCallbackEXT( Instance instance, const DebugReportCallbackCreateInfoEXT* pCreateInfo, const AllocationCallbacks* pAllocator, DebugReportCallbackEXT* pCallback )
-  {
-    return static_cast( vkCreateDebugReportCallbackEXT( static_cast( instance ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast( pCallback ) ) );
-  }
-
-  inline void destroyDebugReportCallbackEXT( Instance instance, DebugReportCallbackEXT callback, const AllocationCallbacks* pAllocator )
-  {
-    vkDestroyDebugReportCallbackEXT( static_cast( instance ), static_cast( callback ), reinterpret_cast( pAllocator ) );
-  }
-
-  inline void debugReportMessageEXT( Instance instance, DebugReportFlagsEXT flags, DebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage )
-  {
-    vkDebugReportMessageEXT( static_cast( instance ), static_cast( flags ), static_cast( objectType ), object, location, messageCode, pLayerPrefix, pMessage );
-  }
-
   inline std::string getString(FramebufferCreateFlagBits)
   {
     return std::string();