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 /Main.hs | |
| parent | 2e5a8167542bd0b5a6d1dea4ea4642c7b06f268e (diff) | |
example
Diffstat (limited to 'Main.hs')
| -rw-r--r-- | Main.hs | 24 |
1 files changed, 23 insertions, 1 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 |
