diff --git a/gpu-vulkan.cabal b/gpu-vulkan.cabal
--- a/gpu-vulkan.cabal
+++ b/gpu-vulkan.cabal
@@ -5,7 +5,7 @@
 -- see: https://github.com/sol/hpack
 
 name:           gpu-vulkan
-version:        0.1.0.162
+version:        0.1.0.164
 synopsis:       Vulkan library
 description:    Please see the README on GitHub at <https://github.com/YoshikuniJujo/gpu-vulkan#readme>
 category:       GPU
diff --git a/src/Gpu/Vulkan.hs b/src/Gpu/Vulkan.hs
--- a/src/Gpu/Vulkan.hs
+++ b/src/Gpu/Vulkan.hs
@@ -15,7 +15,8 @@
 	-- ** ApplicationINfo
 
 	ApplicationInfo(..),
-	ApiVersion, makeApiVersion,
+	ApiVersion,
+	makeApiVersion, fromApiVersion, Variant, Major, Minor, Patch,
 	apiVersion_1_0, apiVersion_1_1, apiVersion_1_2, apiVersion_1_3,
 
 	-- ** SubmitInfo
@@ -86,7 +87,7 @@
 
 	Size(..),
 
-	DependencyInfo(..),
+	DependencyInfo(..), BlitImageInfo2(..),
 
 	-- * ENUM
 
diff --git a/src/Gpu/Vulkan/Cmd.hs b/src/Gpu/Vulkan/Cmd.hs
--- a/src/Gpu/Vulkan/Cmd.hs
+++ b/src/Gpu/Vulkan/Cmd.hs
@@ -39,7 +39,7 @@
 
 -- * COPY BUFFER AND IMAGES
 
-copyBuffer, copyBufferToImage, copyImageToBuffer, blitImage,
+copyBuffer, copyBufferToImage, copyImageToBuffer, blitImage, blitImage2,
 
 -- * CLEAR COLOR IMAGE
 
@@ -341,6 +341,14 @@
 blitImage (CommandBuffer.T.C cb)
 	(Image.Binded src) slyt (Image.Binded dst) dlyt blts fltr =
 	M.blitImage cb src slyt dst dlyt blts fltr
+
+blitImage2 :: (
+	WithPoked (TMaybe.M mn),
+	Length ras, HPList.ToListWithCCpsM' WithPoked TMaybe.M ras ) =>
+	CommandBuffer.C scb ->
+	BlitImageInfo2 mn sms sis nms fmts smd sid nmd fmtd ras -> IO ()
+blitImage2 (CommandBuffer.T.C cb) bii =
+	M.blitImage2 cb $ blitImageInfo2ToMiddle bii
 
 resetQueryPool :: CommandBuffer.C sc ->
 	QueryPool.Q sq tp -> Query.First -> Query.Count -> IO ()
diff --git a/src/Gpu/Vulkan/Image.hs b/src/Gpu/Vulkan/Image.hs
--- a/src/Gpu/Vulkan/Image.hs
+++ b/src/Gpu/Vulkan/Image.hs
@@ -31,7 +31,7 @@
 
 	-- * BLIT
 
-	Blit(..), SubresourceLayers(..),
+	Blit(..), Blit2(..), SubresourceLayers(..),
 
 	-- * OTHERS
 
diff --git a/src/Gpu/Vulkan/Image/Internal.hs b/src/Gpu/Vulkan/Image/Internal.hs
--- a/src/Gpu/Vulkan/Image/Internal.hs
+++ b/src/Gpu/Vulkan/Image/Internal.hs
@@ -32,7 +32,7 @@
 
 	-- * BLIT
 
-	M.Blit(..), M.SubresourceLayers(..),
+	M.Blit(..), M.Blit2(..), M.SubresourceLayers(..),
 
 	-- * OTHERS
 
diff --git a/src/Gpu/Vulkan/Internal.hs b/src/Gpu/Vulkan/Internal.hs
--- a/src/Gpu/Vulkan/Internal.hs
+++ b/src/Gpu/Vulkan/Internal.hs
@@ -15,7 +15,8 @@
 	-- ** ApplicationInfo
 
 	M.ApplicationInfo(..),
-	M.ApiVersion, M.makeApiVersion,
+	M.ApiVersion, M.makeApiVersion, M.fromApiVersion,
+	M.Variant, M.Major, M.Minor, M.Patch,
 	M.apiVersion_1_0, M.apiVersion_1_1, M.apiVersion_1_2, M.apiVersion_1_3,
 
 	-- ** SubmitInfo
@@ -86,7 +87,8 @@
 
 	M.Size(..),
 
-	DependencyInfo(..), dependencyInfoToMiddle
+	DependencyInfo(..), dependencyInfoToMiddle,
+	BlitImageInfo2(..), blitImageInfo2ToMiddle
 
 	) where
 
@@ -112,6 +114,7 @@
 import Gpu.Vulkan.Memory.Middle qualified as Memory.M
 import {-# SOURCE #-} Gpu.Vulkan.Buffer.Internal qualified as Buffer
 import Gpu.Vulkan.Image.Internal qualified as Image
+import Gpu.Vulkan.Image.Enum qualified as Image
 
 import Gpu.Vulkan.CommandBuffer.Internal qualified as CommandBuffer
 
@@ -319,3 +322,28 @@
 		Buffer.memoryBarrier2ListToMiddle bmbs,
 	M.dependencyInfoImageMemoryBarriers =
 		Image.memoryBarrier2ListToMiddle imbs }
+
+data BlitImageInfo2 mn sms sis nms fmts smd sid nmd fmtd ras = BlitImageInfo2 {
+	blitImageInfo2Next :: TMaybe.M mn,
+	blitImageInfo2SrcImage :: Image.Binded sms sis nms fmts,
+	blitImageInfo2SrcImageLayout :: Image.Layout,
+	blitImageInfo2DstImage :: Image.Binded smd sid nmd fmtd,
+	blitImageInfo2DstImageLayout :: Image.Layout,
+	blitImageInfo2Regions :: HPList.PL Image.Blit2 ras,
+	blitImageInfo2Filter :: Filter }
+
+blitImageInfo2ToMiddle ::
+	BlitImageInfo2 mn sms sis nms fmts smd sid nmd fmtd ras ->
+	M.BlitImageInfo2 mn ras
+blitImageInfo2ToMiddle BlitImageInfo2 {
+	blitImageInfo2Next = mnxt,
+	blitImageInfo2SrcImage = Image.Binded si,
+	blitImageInfo2SrcImageLayout = sil,
+	blitImageInfo2DstImage = Image.Binded di,
+	blitImageInfo2DstImageLayout = dil,
+	blitImageInfo2Regions = rs,
+	blitImageInfo2Filter = flt } = M.BlitImageInfo2 {
+	M.blitImageInfo2Next = mnxt,
+	M.blitImageInfo2SrcImage = si, M.blitImageInfo2SrcImageLayout = sil,
+	M.blitImageInfo2DstImage = di, M.blitImageInfo2DstImageLayout = dil,
+	M.blitImageInfo2Regions = rs, M.blitImageInfo2Filter = flt }
