blob: 54b5c169ef382d2157e618342f61cf63719e1e74 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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 = 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
|