From a49e506fcd5a037dd29831e5dbcd0c574060c4b5 Mon Sep 17 00:00:00 2001 From: andromeda Date: Mon, 17 Aug 2026 02:14:41 +0200 Subject: example --- Main.hs | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'Main.hs') 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 -- cgit v1.3.1