packages feed

vulkan-utils 0.5.0.2 → 0.5.1

raw patch · 4 files changed

+23/−11 lines, 4 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

Files

changelog.md view
@@ -2,6 +2,11 @@  ## WIP +## [0.5.1] - 2021-07-24+- Fix bug where `createInstanceFromRequirements` and+  `createDebugInstanceFromRequirements` would fail for missing layers in+  optional requirements.+ ## [0.5.0.2] - 2021-06-22 - Relax bounds on `vulkan` 
package.yaml view
@@ -1,5 +1,5 @@ name: vulkan-utils-version: "0.5.0.2"+version: "0.5.1" synopsis: Utils for the vulkan package category: Graphics maintainer: Joe Hermaszewski <live.long.and.prosper@monoid.al>
src/Vulkan/Utils/Requirements.hs view
@@ -27,7 +27,7 @@ import           Data.Functor.Product           ( Product(..) ) import qualified Data.HashMap.Strict           as Map import           Data.Kind                      ( Type )-import           Data.List                      ( intercalate )+import           Data.List                      ( intercalate, intersect ) import           Data.List.Extra                ( nubOrd ) import           Data.Proxy import           Data.Semigroup                 ( Endo(..) )@@ -85,6 +85,7 @@   foundVersion    <- enumerateInstanceVersion   (_, layerProps) <- enumerateInstanceLayerProperties   lookupExtension <- getLookupExtension+    layerProps     Nothing     [ instanceExtensionLayerName     | RequireInstanceExtension { instanceExtensionLayerName } <- allAsList@@ -206,7 +207,9 @@       --       feats           <- getPhysicalDeviceFeaturesMaybe @fs phys       props           <- getPhysicalDevicePropertiesMaybe @ps phys+      (_, layerProps) <- enumerateDeviceLayerProperties phys       lookupExtension <- getLookupExtension+        layerProps         (Just phys)         [ deviceExtensionLayerName         | RequireDeviceExtension { deviceExtensionLayerName } <- allAsList@@ -486,29 +489,33 @@ -- Helpers for 'Device' and 'Instance' extensions ---------------------------------------------------------------- --- | Make a lookup function for extensions in layers+-- | Make a lookup function for extensions in layers. Ignores layers not+-- present in the instance/device getLookupExtension   :: MonadIO m-  => Maybe PhysicalDevice+  => Vector LayerProperties+  -> Maybe PhysicalDevice   -- ^ Pass 'Nothing' for 'Instance' extensions, pass a PhysicalDevice for-  -- device extensions.+  -- 'Device' extensions.   -> ["layerName" ::: Maybe ByteString]   -> m        (  ("layerName" ::: Maybe ByteString)        -> ByteString        -> Maybe ExtensionProperties        )-getLookupExtension mbPhys extensionLayers = do+getLookupExtension layerProps mbPhys extensionLayers = do   let enumerate = maybe enumerateInstanceExtensionProperties                         enumerateDeviceExtensionProperties                         mbPhys-  extensions <- for (nubOrd extensionLayers) $ \layer -> do+      availableLayers = Nothing : ((Just . layerName) <$> V.toList layerProps)+      searchedLayers = availableLayers `intersect` extensionLayers+  extensions <- for searchedLayers $ \layer -> do     (_, props) <- enumerate layer     pure (layer, props)   let extensionMap = Map.fromListWith (<>) extensions-  pure $ \layer name ->-    let es = Map.lookupDefault mempty layer extensionMap-    in  find ((== name) . extensionName) es+  pure $ \layer name -> do+    es <- Map.lookup layer extensionMap+    find ((== name) . extensionName) es  ---------------------------------------------------------------- -- Helpers for extracting the type of chain used by a set of requirements
vulkan-utils.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack  name:           vulkan-utils-version:        0.5.0.2+version:        0.5.1 synopsis:       Utils for the vulkan package category:       Graphics homepage:       https://github.com/expipiplus1/vulkan#readme