summaryrefslogtreecommitdiff
path: root/Main.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Main.hs')
-rw-r--r--Main.hs24
1 files changed, 23 insertions, 1 deletions
diff --git a/Main.hs b/Main.hs
index f16f6f5..54b5c16 100644
--- a/Main.hs
+++ b/Main.hs
@@ -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