gpu-vulkan-core 0.1.0.16 → 0.1.0.17
raw patch · 8 files changed
+195/−4 lines, 8 filesPVP: minor bump suggested
API additions: PVP suggests at least a minor version bump
API changes (from Hackage documentation)
+ Gpu.Vulkan.Buffer.Core: data MemoryBarrier2
+ Gpu.Vulkan.Buffer.Core: instance GHC.Internal.Foreign.Storable.Storable Gpu.Vulkan.Buffer.Core.MemoryBarrier2
+ Gpu.Vulkan.Buffer.Core: instance GHC.Internal.Show.Show Gpu.Vulkan.Buffer.Core.MemoryBarrier2
+ Gpu.Vulkan.Buffer.Core: memoryBarrier2Buffer :: MemoryBarrier2 -> B
+ Gpu.Vulkan.Buffer.Core: memoryBarrier2DstAccessMask :: MemoryBarrier2 -> Word64
+ Gpu.Vulkan.Buffer.Core: memoryBarrier2DstQueueFamilyIndex :: MemoryBarrier2 -> Word32
+ Gpu.Vulkan.Buffer.Core: memoryBarrier2DstStageMask :: MemoryBarrier2 -> Word64
+ Gpu.Vulkan.Buffer.Core: memoryBarrier2Offset :: MemoryBarrier2 -> Word64
+ Gpu.Vulkan.Buffer.Core: memoryBarrier2PNext :: MemoryBarrier2 -> PtrVoid
+ Gpu.Vulkan.Buffer.Core: memoryBarrier2SType :: MemoryBarrier2 -> ()
+ Gpu.Vulkan.Buffer.Core: memoryBarrier2Size :: MemoryBarrier2 -> Word64
+ Gpu.Vulkan.Buffer.Core: memoryBarrier2SrcAccessMask :: MemoryBarrier2 -> Word64
+ Gpu.Vulkan.Buffer.Core: memoryBarrier2SrcQueueFamilyIndex :: MemoryBarrier2 -> Word32
+ Gpu.Vulkan.Buffer.Core: memoryBarrier2SrcStageMask :: MemoryBarrier2 -> Word64
+ Gpu.Vulkan.Buffer.Core: pattern MemoryBarrier2 :: () -> PtrVoid -> Word64 -> Word64 -> Word64 -> Word64 -> Word32 -> Word32 -> B -> Word64 -> Word64 -> MemoryBarrier2
+ Gpu.Vulkan.Buffer.Core: type PtrMemoryBarrier2 = Ptr MemoryBarrier2
+ Gpu.Vulkan.Cmd.Core: pipelineBarrier2 :: C -> Ptr DependencyInfo -> IO ()
+ Gpu.Vulkan.Core: data DependencyInfo
+ Gpu.Vulkan.Core: dependencyInfoBufferMemoryBarrierCount :: DependencyInfo -> Word32
+ Gpu.Vulkan.Core: dependencyInfoDependencyFlags :: DependencyInfo -> Word32
+ Gpu.Vulkan.Core: dependencyInfoImageMemoryBarrierCount :: DependencyInfo -> Word32
+ Gpu.Vulkan.Core: dependencyInfoMemoryBarrierCount :: DependencyInfo -> Word32
+ Gpu.Vulkan.Core: dependencyInfoPBufferMemoryBarriers :: DependencyInfo -> PtrMemoryBarrier2
+ Gpu.Vulkan.Core: dependencyInfoPImageMemoryBarriers :: DependencyInfo -> PtrMemoryBarrier2
+ Gpu.Vulkan.Core: dependencyInfoPMemoryBarriers :: DependencyInfo -> PtrBarrier2
+ Gpu.Vulkan.Core: dependencyInfoPNext :: DependencyInfo -> PtrVoid
+ Gpu.Vulkan.Core: dependencyInfoSType :: DependencyInfo -> ()
+ Gpu.Vulkan.Core: instance GHC.Internal.Foreign.Storable.Storable Gpu.Vulkan.Core.DependencyInfo
+ Gpu.Vulkan.Core: instance GHC.Internal.Show.Show Gpu.Vulkan.Core.DependencyInfo
+ Gpu.Vulkan.Core: pattern DependencyInfo :: () -> PtrVoid -> Word32 -> Word32 -> PtrBarrier2 -> Word32 -> PtrMemoryBarrier2 -> Word32 -> PtrMemoryBarrier2 -> DependencyInfo
+ Gpu.Vulkan.Image.Core: data MemoryBarrier2
+ Gpu.Vulkan.Image.Core: instance GHC.Internal.Foreign.Storable.Storable Gpu.Vulkan.Image.Core.MemoryBarrier2
+ Gpu.Vulkan.Image.Core: instance GHC.Internal.Show.Show Gpu.Vulkan.Image.Core.MemoryBarrier2
+ Gpu.Vulkan.Image.Core: memoryBarrier2DstAccessMask :: MemoryBarrier2 -> Word64
+ Gpu.Vulkan.Image.Core: memoryBarrier2DstQueueFamilyIndex :: MemoryBarrier2 -> Word32
+ Gpu.Vulkan.Image.Core: memoryBarrier2DstStageMask :: MemoryBarrier2 -> Word64
+ Gpu.Vulkan.Image.Core: memoryBarrier2Image :: MemoryBarrier2 -> I
+ Gpu.Vulkan.Image.Core: memoryBarrier2NewLayout :: MemoryBarrier2 -> Word32
+ Gpu.Vulkan.Image.Core: memoryBarrier2OldLayout :: MemoryBarrier2 -> Word32
+ Gpu.Vulkan.Image.Core: memoryBarrier2PNext :: MemoryBarrier2 -> PtrVoid
+ Gpu.Vulkan.Image.Core: memoryBarrier2SType :: MemoryBarrier2 -> ()
+ Gpu.Vulkan.Image.Core: memoryBarrier2SrcAccessMask :: MemoryBarrier2 -> Word64
+ Gpu.Vulkan.Image.Core: memoryBarrier2SrcQueueFamilyIndex :: MemoryBarrier2 -> Word32
+ Gpu.Vulkan.Image.Core: memoryBarrier2SrcStageMask :: MemoryBarrier2 -> Word64
+ Gpu.Vulkan.Image.Core: memoryBarrier2SubresourceRange :: MemoryBarrier2 -> SubresourceRange
+ Gpu.Vulkan.Image.Core: pattern MemoryBarrier2 :: () -> PtrVoid -> Word64 -> Word64 -> Word64 -> Word64 -> Word32 -> Word32 -> Word32 -> Word32 -> I -> SubresourceRange -> MemoryBarrier2
+ Gpu.Vulkan.Image.Core: type PtrMemoryBarrier2 = Ptr MemoryBarrier2
+ Gpu.Vulkan.Memory.Core: barrier2DstAccessMask :: Barrier2 -> Word64
+ Gpu.Vulkan.Memory.Core: barrier2DstStageMask :: Barrier2 -> Word64
+ Gpu.Vulkan.Memory.Core: barrier2PNext :: Barrier2 -> PtrVoid
+ Gpu.Vulkan.Memory.Core: barrier2SType :: Barrier2 -> ()
+ Gpu.Vulkan.Memory.Core: barrier2SrcAccessMask :: Barrier2 -> Word64
+ Gpu.Vulkan.Memory.Core: barrier2SrcStageMask :: Barrier2 -> Word64
+ Gpu.Vulkan.Memory.Core: data Barrier2
+ Gpu.Vulkan.Memory.Core: instance GHC.Internal.Foreign.Storable.Storable Gpu.Vulkan.Memory.Core.Barrier2
+ Gpu.Vulkan.Memory.Core: instance GHC.Internal.Show.Show Gpu.Vulkan.Memory.Core.Barrier2
+ Gpu.Vulkan.Memory.Core: pattern Barrier2 :: () -> PtrVoid -> Word64 -> Word64 -> Word64 -> Word64 -> Barrier2
+ Gpu.Vulkan.Memory.Core: type PtrBarrier2 = Ptr Barrier2
Files
- gpu-vulkan-core.cabal +1/−1
- src/Gpu/Vulkan/Buffer/Core.hs-boot +6/−0
- src/Gpu/Vulkan/Buffer/Core.hsc +49/−1
- src/Gpu/Vulkan/Cmd/Core.hsc +5/−1
- src/Gpu/Vulkan/Core.hsc +45/−0
- src/Gpu/Vulkan/Image/Core.hs-boot +6/−0
- src/Gpu/Vulkan/Image/Core.hsc +52/−0
- src/Gpu/Vulkan/Memory/Core.hsc +31/−1
gpu-vulkan-core.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: gpu-vulkan-core-version: 0.1.0.16+version: 0.1.0.17 synopsis: Thin wrapper for Vulkan API description: Please see the README on GitHub at <https://github.com/YoshikuniJujo/gpu-vulkan-core#readme> category: GPU
+ src/Gpu/Vulkan/Buffer/Core.hs-boot view
@@ -0,0 +1,6 @@+module Gpu.Vulkan.Buffer.Core where++import Foreign.Ptr++data MemoryBarrier2+type PtrMemoryBarrier2 = Ptr MemoryBarrier2
src/Gpu/Vulkan/Buffer/Core.hsc view
@@ -30,8 +30,15 @@ memoryBarrierSType, memoryBarrierPNext, memoryBarrierSrcAccessMask, memoryBarrierDstAccessMask, memoryBarrierSrcQueueFamilyIndex, memoryBarrierDstQueueFamilyIndex,- memoryBarrierBuffer, memoryBarrierOffset, memoryBarrierSize+ memoryBarrierBuffer, memoryBarrierOffset, memoryBarrierSize, + MemoryBarrier2, PtrMemoryBarrier2, pattern MemoryBarrier2,+ memoryBarrier2SType, memoryBarrier2PNext,+ memoryBarrier2SrcStageMask, memoryBarrier2SrcAccessMask,+ memoryBarrier2DstStageMask, memoryBarrier2DstAccessMask,+ memoryBarrier2SrcQueueFamilyIndex, memoryBarrier2DstQueueFamilyIndex,+ memoryBarrier2Buffer, memoryBarrier2Offset, memoryBarrier2Size+ ) where import Foreign.Ptr@@ -138,6 +145,47 @@ [| #{peek VkBufferMemoryBarrier, size} |], [| #{poke VkBufferMemoryBarrier, size} |]) ] [''Show, ''Storable]++mbType2 :: #{type VkStructureType}+mbType2 = #{const VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2}++struct "MemoryBarrier2" #{size VkBufferMemoryBarrier2}+ #{alignment VkBufferMemoryBarrier2} [+ ("sType", ''(), [| const $ pure() |],+ [| \p _ -> #{poke VkBufferMemoryBarrier2, sType} p mbType2 |]),+ ("pNext", ''PtrVoid,+ [| #{peek VkBufferMemoryBarrier2, pNext} |],+ [| #{poke VkBufferMemoryBarrier2, pNext} |]),+ ("srcStageMask", ''#{type VkPipelineStageFlags2},+ [| #{peek VkBufferMemoryBarrier2, srcStageMask} |],+ [| #{poke VkBufferMemoryBarrier2, srcStageMask} |]),+ ("srcAccessMask", ''#{type VkAccessFlags2},+ [| #{peek VkBufferMemoryBarrier2, srcAccessMask} |],+ [| #{poke VkBufferMemoryBarrier2, srcAccessMask} |]),+ ("dstStageMask", ''#{type VkPipelineStageFlags2},+ [| #{peek VkBufferMemoryBarrier2, dstStageMask} |],+ [| #{poke VkBufferMemoryBarrier2, dstStageMask} |]),+ ("dstAccessMask", ''#{type VkAccessFlags2},+ [| #{peek VkBufferMemoryBarrier2, dstAccessMask} |],+ [| #{poke VkBufferMemoryBarrier2, dstAccessMask} |]),+ ("srcQueueFamilyIndex", ''#{type uint32_t},+ [| #{peek VkBufferMemoryBarrier2, srcQueueFamilyIndex} |],+ [| #{poke VkBufferMemoryBarrier2, srcQueueFamilyIndex} |]),+ ("dstQueueFamilyIndex", ''#{type uint32_t},+ [| #{peek VkBufferMemoryBarrier2, dstQueueFamilyIndex} |],+ [| #{poke VkBufferMemoryBarrier2, dstQueueFamilyIndex} |]),+ ("buffer", ''B,+ [| #{peek VkBufferMemoryBarrier2, buffer} |],+ [| #{poke VkBufferMemoryBarrier2, buffer} |]),+ ("offset", ''#{type VkDeviceSize},+ [| #{peek VkBufferMemoryBarrier2, offset} |],+ [| #{poke VkBufferMemoryBarrier2, offset} |]),+ ("size", ''#{type VkDeviceSize},+ [| #{peek VkBufferMemoryBarrier2, size} |],+ [| #{poke VkBufferMemoryBarrier2, size} |]) ]+ [''Show, ''Storable]++type PtrMemoryBarrier2 = Ptr MemoryBarrier2 struct "ImageCopy" #{size VkBufferImageCopy} #{alignment VkBufferImageCopy} [ ("bufferOffset", ''#{type VkDeviceSize},
src/Gpu/Vulkan/Cmd/Core.hsc view
@@ -22,7 +22,7 @@ -- * PIPELINE BARRIER - pipelineBarrier,+ pipelineBarrier, pipelineBarrier2, -- * QUERY @@ -35,6 +35,7 @@ import Data.Word import Data.Int +import Gpu.Vulkan.Core import qualified Gpu.Vulkan.RenderPass.Core as RenderPass import qualified Gpu.Vulkan.Pipeline.Core as Pipeline import qualified Gpu.Vulkan.CommandBuffer.Core as CommandBuffer@@ -126,3 +127,6 @@ foreign import ccall "vkCmdWriteTimestamp" writeTimestamp :: CommandBuffer.C -> #{type VkPipelineStageFlagBits} -> QueryPool.Q -> #{type uint32_t} -> IO ()++foreign import ccall "vkCmdPipelineBarrier2" pipelineBarrier2 ::+ CommandBuffer.C -> Ptr DependencyInfo -> IO ()
src/Gpu/Vulkan/Core.hsc view
@@ -109,6 +109,16 @@ Extent3d, pattern Extent3d, extent3dWidth, extent3dHeight, extent3dDepth, + -- ** DEPENDENCY INFO++ DependencyInfo, pattern DependencyInfo,+ dependencyInfoSType, dependencyInfoPNext, dependencyInfoDependencyFlags,+ dependencyInfoMemoryBarrierCount, dependencyInfoPMemoryBarriers,+ dependencyInfoBufferMemoryBarrierCount,+ dependencyInfoPBufferMemoryBarriers,+ dependencyInfoImageMemoryBarrierCount,+ dependencyInfoPImageMemoryBarriers+ ) where import Foreign.Ptr@@ -128,6 +138,10 @@ import {-# SOURCE #-} qualified Gpu.Vulkan.CommandBuffer.Core as CommandBuffer import {-# SOURCE #-} qualified Gpu.Vulkan.Semaphore.Core as Semaphore +import qualified Gpu.Vulkan.Memory.Core as Memory+import {-# SOURCE #-} qualified Gpu.Vulkan.Buffer.Core as Buffer+import {-# SOURCE #-} qualified Gpu.Vulkan.Image.Core as Image+ #include <vulkan/vulkan.h> struct "StructCommon" #{size VkApplicationInfo}@@ -386,4 +400,35 @@ ("bufferFeatures", ''#{type VkFormatFeatureFlags}, [| #{peek VkFormatProperties, bufferFeatures} |], [| #{poke VkFormatProperties, bufferFeatures} |]) ]+ [''Show, ''Storable]++struct "DependencyInfo" #{size VkDependencyInfo} #{alignment VkDependencyInfo} [+ ("sType", ''(), [| const $ pure () |],+ [| \p _ -> #{poke VkApplicationInfo, sType} p+ (#{const VK_STRUCTURE_TYPE_DEPENDENCY_INFO} ::+ #{type VkStructureType}) |]),+ ("pNext", ''PtrVoid,+ [| #{peek VkDependencyInfo, pNext} |],+ [| #{poke VkDependencyInfo, pNext} |]),+ ("dependencyFlags", ''#{type VkDependencyFlags},+ [| #{peek VkDependencyInfo, dependencyFlags} |],+ [| #{poke VkDependencyInfo, dependencyFlags} |] ),+ ("memoryBarrierCount", ''#{type uint32_t},+ [| #{peek VkDependencyInfo, memoryBarrierCount} |],+ [| #{poke VkDependencyInfo, memoryBarrierCount} |] ),+ ("pMemoryBarriers", ''Memory.PtrBarrier2,+ [| #{peek VkDependencyInfo, pMemoryBarriers} |],+ [| #{poke VkDependencyInfo, pMemoryBarriers} |] ),+ ("bufferMemoryBarrierCount", ''#{type uint32_t},+ [| #{peek VkDependencyInfo, bufferMemoryBarrierCount} |],+ [| #{poke VkDependencyInfo, bufferMemoryBarrierCount} |]),+ ("pBufferMemoryBarriers", ''Buffer.PtrMemoryBarrier2,+ [| #{peek VkDependencyInfo, pBufferMemoryBarriers} |],+ [| #{poke VkDependencyInfo, pBufferMemoryBarriers} |]),+ ("imageMemoryBarrierCount", ''#{type uint32_t},+ [| #{peek VkDependencyInfo, imageMemoryBarrierCount} |],+ [| #{poke VkDependencyInfo, imageMemoryBarrierCount} |]),+ ("pImageMemoryBarriers", ''Image.PtrMemoryBarrier2,+ [| #{peek VkDependencyInfo, pImageMemoryBarriers} |],+ [| #{poke VkDependencyInfo, pImageMemoryBarriers} |]) ] [''Show, ''Storable]
+ src/Gpu/Vulkan/Image/Core.hs-boot view
@@ -0,0 +1,6 @@+module Gpu.Vulkan.Image.Core where++import Foreign.Ptr++data MemoryBarrier2+type PtrMemoryBarrier2 = Ptr MemoryBarrier2
src/Gpu/Vulkan/Image/Core.hsc view
@@ -28,6 +28,14 @@ memoryBarrierSrcQueueFamilyIndex, memoryBarrierDstQueueFamilyIndex, memoryBarrierImage, memoryBarrierSubresourceRange, + MemoryBarrier2, PtrMemoryBarrier2, pattern MemoryBarrier2,+ memoryBarrier2SType, memoryBarrier2PNext,+ memoryBarrier2SrcStageMask, memoryBarrier2SrcAccessMask,+ memoryBarrier2DstStageMask, memoryBarrier2DstAccessMask,+ memoryBarrier2OldLayout, memoryBarrier2NewLayout,+ memoryBarrier2SrcQueueFamilyIndex, memoryBarrier2DstQueueFamilyIndex,+ memoryBarrier2Image, memoryBarrier2SubresourceRange,+ -- ** SubresourceRange SubresourceRange, pattern SubresourceRange,@@ -188,6 +196,50 @@ [| #{peek VkImageMemoryBarrier, subresourceRange} |], [| #{poke VkImageMemoryBarrier, subresourceRange} |]) ] [''Show, ''Storable]++mbType2 :: #{type VkStructureType}+mbType2 = #{const VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2}++struct "MemoryBarrier2" #{size VkImageMemoryBarrier2}+ #{alignment VkImageMemoryBarrier2} [+ ("sType", ''(), [| const $ pure () |],+ [| \p _ -> #{poke VkImageMemoryBarrier2, sType} p mbType2 |]),+ ("pNext", ''PtrVoid,+ [| #{peek VkImageMemoryBarrier2, pNext} |],+ [| #{poke VkImageMemoryBarrier2, pNext} |]),+ ("srcStageMask", ''#{type VkPipelineStageFlags2},+ [| #{peek VkImageMemoryBarrier2, srcStageMask} |],+ [| #{poke VkImageMemoryBarrier2, srcStageMask} |]),+ ("srcAccessMask", ''#{type VkAccessFlags2},+ [| #{peek VkImageMemoryBarrier2, srcAccessMask} |],+ [| #{poke VkImageMemoryBarrier2, srcAccessMask} |]),+ ("dstStageMask", ''#{type VkPipelineStageFlags2},+ [| #{peek VkImageMemoryBarrier2, dstStageMask} |],+ [| #{poke VkImageMemoryBarrier2, dstStageMask} |]),+ ("dstAccessMask", ''#{type VkAccessFlags2},+ [| #{peek VkImageMemoryBarrier2, dstAccessMask} |],+ [| #{poke VkImageMemoryBarrier2, dstAccessMask} |]),+ ("oldLayout", ''#{type VkImageLayout},+ [| #{peek VkImageMemoryBarrier2, oldLayout} |],+ [| #{poke VkImageMemoryBarrier2, oldLayout} |]),+ ("newLayout", ''#{type VkImageLayout},+ [| #{peek VkImageMemoryBarrier2, newLayout} |],+ [| #{poke VkImageMemoryBarrier2, newLayout} |]),+ ("srcQueueFamilyIndex", ''#{type uint32_t},+ [| #{peek VkImageMemoryBarrier2, srcQueueFamilyIndex} |],+ [| #{poke VkImageMemoryBarrier2, srcQueueFamilyIndex} |]),+ ("dstQueueFamilyIndex", ''#{type uint32_t},+ [| #{peek VkImageMemoryBarrier2, dstQueueFamilyIndex} |],+ [| #{poke VkImageMemoryBarrier2, dstQueueFamilyIndex} |]),+ ("image", ''I,+ [| #{peek VkImageMemoryBarrier2, image} |],+ [| #{poke VkImageMemoryBarrier2, image} |]),+ ("subresourceRange", ''SubresourceRange,+ [| #{peek VkImageMemoryBarrier2, subresourceRange} |],+ [| #{poke VkImageMemoryBarrier2, subresourceRange} |]) ]+ [''Show, ''Storable]++type PtrMemoryBarrier2 = Ptr MemoryBarrier2 struct "SubresourceLayers" #{size VkImageSubresourceLayers} #{alignment VkImageSubresourceLayers} [
src/Gpu/Vulkan/Memory/Core.hsc view
@@ -31,8 +31,13 @@ -- * BARRIER Barrier, pattern Barrier,- barrierSType, barrierPNext, barrierSrcAccessMask, barrierDstAccessMask+ barrierSType, barrierPNext, barrierSrcAccessMask, barrierDstAccessMask, + Barrier2, PtrBarrier2, pattern Barrier2,+ barrier2SType, barrier2PNext,+ barrier2SrcStageMask, barrier2SrcAccessMask,+ barrier2DstStageMask, barrier2DstAccessMask+ ) where import Prelude hiding (map)@@ -139,3 +144,28 @@ [| #{peek VkMemoryBarrier, dstAccessMask} |], [| #{poke VkMemoryBarrier, dstAccessMask} |]) ] [''Show, ''Storable]++bType2 :: #{type VkStructureType}+bType2 = #{const VK_STRUCTURE_TYPE_MEMORY_BARRIER_2}++struct "Barrier2" #{size VkMemoryBarrier2} #{alignment VkMemoryBarrier2} [+ ("sType", ''(), [| const $ pure () |],+ [| \p _ -> #{poke VkMemoryBarrier2, sType} p bType2 |]),+ ("pNext", ''PtrVoid,+ [| #{peek VkMemoryBarrier2, pNext} |],+ [| #{poke VkMemoryBarrier2, pNext} |]),+ ("srcStageMask", ''#{type VkPipelineStageFlags2},+ [| #{peek VkMemoryBarrier2, srcStageMask} |],+ [| #{poke VkMemoryBarrier2, srcStageMask} |]),+ ("srcAccessMask", ''#{type VkAccessFlags2},+ [| #{peek VkMemoryBarrier2, srcAccessMask} |],+ [| #{poke VkMemoryBarrier2, srcAccessMask} |]),+ ("dstStageMask", ''#{type VkPipelineStageFlags2},+ [| #{peek VkMemoryBarrier2, dstStageMask} |],+ [| #{poke VkMemoryBarrier2, dstStageMask} |]),+ ("dstAccessMask", ''#{type VkAccessFlags2},+ [| #{peek VkMemoryBarrier2, dstAccessMask} |],+ [| #{poke VkMemoryBarrier2, dstAccessMask} |]) ]+ [''Show, ''Storable]++type PtrBarrier2 = Ptr Barrier2