GPipe-GLFW4-2.0.0: bench/Graphics/GPipe/BufferBench.hs
{-# LANGUAGE ScopedTypeVariables #-}
module Graphics.GPipe.BufferBench (suite) where
import Criterion.Main (Benchmark, bench, bgroup, whnfIO)
import Graphics.GPipe.Buffer
import Graphics.GPipe.Context (runContextT)
import qualified Graphics.GPipe.Context.GLFW as GLFW
benchWriteBuffer :: Int -> IO Int
benchWriteBuffer l =
runContextT GLFW.defaultHandleConfig $ do
buf :: Buffer os (B Float) <- newBuffer l
writeBuffer buf 0 [0..fromIntegral l]
return $ bufferLength buf
suite :: IO Benchmark
suite = return $ bgroup "Buffer"
[ bgroup "writeBuffer"
[ bench "1000000" $ whnfIO (benchWriteBuffer 1000000)
, bench "10000000" $ whnfIO (benchWriteBuffer 10000000)
]
]