diff options
| author | andromeda <andromeda@lenovo> | 2026-08-17 02:14:41 +0200 |
|---|---|---|
| committer | andromeda <andromeda@lenovo> | 2026-08-17 02:14:41 +0200 |
| commit | a49e506fcd5a037dd29831e5dbcd0c574060c4b5 (patch) | |
| tree | 0ddeff00ba10c0f3cb460cdc83680cda1d5a1c6c | |
| parent | 2e5a8167542bd0b5a6d1dea4ea4642c7b06f268e (diff) | |
example
| -rw-r--r-- | Main.hs | 24 | ||||
| -rw-r--r-- | vktest.cabal | 2 |
2 files changed, 24 insertions, 2 deletions
@@ -1,4 +1,26 @@ module Main (main) where +import qualified Vulkan.Core10 as Vk +import Vulkan.Zero (zero) +import Control.Exception (bracket) +import Data.Foldable (traverse_) + main :: IO () -main = putStrLn "Hello, Haskell!" +main = Vk.withInstance zero Nothing bracket $ \i -> do + putStrLn $ show i + (_, layers) <- Vk.enumerateInstanceLayerProperties + (_, extensions) <- Vk.enumerateInstanceExtensionProperties Nothing + putStrLn $ show layers + putStrLn $ show extensions + (_, devices) <- Vk.enumeratePhysicalDevices i + traverse_ deviceInfo devices + +deviceInfo :: Vk.PhysicalDevice -> IO () +deviceInfo p = do + (_, extensions) <- Vk.enumerateDeviceExtensionProperties p Nothing + (_, layers) <- Vk.enumerateDeviceLayerProperties p + traverse_ (putStrLn . show) extensions + traverse_ (putStrLn . show) layers + (putStrLn . show) =<< Vk.getPhysicalDeviceFeatures p + (putStrLn . show) =<< Vk.getPhysicalDeviceProperties p + (putStrLn . show) =<< Vk.getPhysicalDeviceMemoryProperties p
\ No newline at end of file diff --git a/vktest.cabal b/vktest.cabal index 91cf7c9..fc6b342 100644 --- a/vktest.cabal +++ b/vktest.cabal @@ -17,6 +17,6 @@ executable vktest -- other-modules: -- other-extensions: build-depends: base >= 4.20.2 - , vulkan-utils >= 0.5.10 + , vulkan >= 3.27 hs-source-dirs: . default-language: Haskell2010 |
