vulkan-3.0.0.0: examples/info/Main.hs
module Main
where
import Graphics.Vulkan.Version
import Graphics.Vulkan.Zero
import Graphics.Vulkan.Core10
import Text.Pretty.Simple
import Data.Foldable
main :: IO ()
main = withInstance zero Nothing $ \i -> do
pPrint i
(_, layers ) <- enumerateInstanceLayerProperties
(_, extensions) <- enumerateInstanceExtensionProperties Nothing
pPrint layers
pPrint extensions
(_, devices) <- enumeratePhysicalDevices i
traverse_ deviceInfo devices
deviceInfo :: PhysicalDevice -> IO ()
deviceInfo p = do
(_, extensions) <- enumerateDeviceExtensionProperties p Nothing
(_, layers ) <- enumerateDeviceLayerProperties p
traverse_ pPrint extensions
traverse_ pPrint layers
pPrint =<< getPhysicalDeviceFeatures p
pPrint =<< getPhysicalDeviceProperties p