{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
module Graphics.GL.Ext.AMD.PerformanceMonitor (
gl_AMD_performance_monitor
, glBeginPerfMonitorAMD
, glDeletePerfMonitorsAMD
, glEndPerfMonitorAMD
, glGenPerfMonitorsAMD
, glGetPerfMonitorCounterDataAMD
, glGetPerfMonitorCounterInfoAMD
, glGetPerfMonitorCounterStringAMD
, glGetPerfMonitorCountersAMD
, glGetPerfMonitorGroupStringAMD
, glGetPerfMonitorGroupsAMD
, glSelectPerfMonitorCountersAMD
, pattern GL_COUNTER_RANGE_AMD
, pattern GL_COUNTER_TYPE_AMD
, pattern GL_PERCENTAGE_AMD
, pattern GL_PERFMON_RESULT_AMD
, pattern GL_PERFMON_RESULT_AVAILABLE_AMD
, pattern GL_PERFMON_RESULT_SIZE_AMD
, pattern GL_UNSIGNED_INT64_AMD
) where
import Control.Monad.IO.Class
import Data.Set
import Foreign.Ptr
import Graphics.GL.Internal.FFI
import Graphics.GL.Internal.Proc
import Graphics.GL.Types
import System.IO.Unsafe
gl_AMD_performance_monitor :: Bool
gl_AMD_performance_monitor :: Bool
gl_AMD_performance_monitor = [Char] -> Set [Char] -> Bool
forall a. Ord a => a -> Set a -> Bool
member "GL_AMD_performance_monitor" Set [Char]
extensions
{-# NOINLINE gl_AMD_performance_monitor #-}
glBeginPerfMonitorAMD :: MonadIO m => GLuint -> m ()
glBeginPerfMonitorAMD :: GLuint -> m ()
glBeginPerfMonitorAMD = FunPtr (GLuint -> IO ()) -> GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> IO ()) -> GLuint -> m ()
ffiuintIOV FunPtr (GLuint -> IO ())
glBeginPerfMonitorAMDFunPtr
glBeginPerfMonitorAMDFunPtr :: FunPtr (GLuint -> IO ())
glBeginPerfMonitorAMDFunPtr :: FunPtr (GLuint -> IO ())
glBeginPerfMonitorAMDFunPtr = IO (FunPtr (GLuint -> IO ())) -> FunPtr (GLuint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLuint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glBeginPerfMonitorAMD")
{-# NOINLINE glBeginPerfMonitorAMDFunPtr #-}
glDeletePerfMonitorsAMD :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glDeletePerfMonitorsAMD :: GLsizei -> Ptr GLuint -> m ()
glDeletePerfMonitorsAMD = FunPtr (GLsizei -> Ptr GLuint -> IO ())
-> GLsizei -> Ptr GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> Ptr GLuint -> IO ())
-> GLsizei -> Ptr GLuint -> m ()
ffisizeiPtruintIOV FunPtr (GLsizei -> Ptr GLuint -> IO ())
glDeletePerfMonitorsAMDFunPtr
glDeletePerfMonitorsAMDFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
glDeletePerfMonitorsAMDFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
glDeletePerfMonitorsAMDFunPtr = IO (FunPtr (GLsizei -> Ptr GLuint -> IO ()))
-> FunPtr (GLsizei -> Ptr GLuint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLsizei -> Ptr GLuint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glDeletePerfMonitorsAMD")
{-# NOINLINE glDeletePerfMonitorsAMDFunPtr #-}
glEndPerfMonitorAMD :: MonadIO m => GLuint -> m ()
glEndPerfMonitorAMD :: GLuint -> m ()
glEndPerfMonitorAMD = FunPtr (GLuint -> IO ()) -> GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> IO ()) -> GLuint -> m ()
ffiuintIOV FunPtr (GLuint -> IO ())
glEndPerfMonitorAMDFunPtr
glEndPerfMonitorAMDFunPtr :: FunPtr (GLuint -> IO ())
glEndPerfMonitorAMDFunPtr :: FunPtr (GLuint -> IO ())
glEndPerfMonitorAMDFunPtr = IO (FunPtr (GLuint -> IO ())) -> FunPtr (GLuint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLuint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glEndPerfMonitorAMD")
{-# NOINLINE glEndPerfMonitorAMDFunPtr #-}
glGenPerfMonitorsAMD :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
glGenPerfMonitorsAMD :: GLsizei -> Ptr GLuint -> m ()
glGenPerfMonitorsAMD = FunPtr (GLsizei -> Ptr GLuint -> IO ())
-> GLsizei -> Ptr GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLsizei -> Ptr GLuint -> IO ())
-> GLsizei -> Ptr GLuint -> m ()
ffisizeiPtruintIOV FunPtr (GLsizei -> Ptr GLuint -> IO ())
glGenPerfMonitorsAMDFunPtr
glGenPerfMonitorsAMDFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
glGenPerfMonitorsAMDFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
glGenPerfMonitorsAMDFunPtr = IO (FunPtr (GLsizei -> Ptr GLuint -> IO ()))
-> FunPtr (GLsizei -> Ptr GLuint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char] -> IO (FunPtr (GLsizei -> Ptr GLuint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGenPerfMonitorsAMD")
{-# NOINLINE glGenPerfMonitorsAMDFunPtr #-}
glGetPerfMonitorCounterDataAMD :: MonadIO m => GLuint -> GLenum -> GLsizei -> Ptr GLuint -> Ptr GLint -> m ()
glGetPerfMonitorCounterDataAMD :: GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLsizei -> m ()
glGetPerfMonitorCounterDataAMD = FunPtr
(GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLsizei -> IO ())
-> GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLsizei -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
(GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLsizei -> IO ())
-> GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLsizei -> m ()
ffiuintenumsizeiPtruintPtrintIOV FunPtr
(GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLsizei -> IO ())
glGetPerfMonitorCounterDataAMDFunPtr
glGetPerfMonitorCounterDataAMDFunPtr :: FunPtr (GLuint -> GLenum -> GLsizei -> Ptr GLuint -> Ptr GLint -> IO ())
glGetPerfMonitorCounterDataAMDFunPtr :: FunPtr
(GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLsizei -> IO ())
glGetPerfMonitorCounterDataAMDFunPtr = IO
(FunPtr
(GLuint
-> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLsizei -> IO ()))
-> FunPtr
(GLuint -> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLsizei -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
(FunPtr
(GLuint
-> GLuint -> GLsizei -> Ptr GLuint -> Ptr GLsizei -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetPerfMonitorCounterDataAMD")
{-# NOINLINE glGetPerfMonitorCounterDataAMDFunPtr #-}
glGetPerfMonitorCounterInfoAMD :: MonadIO m => GLuint -> GLuint -> GLenum -> Ptr () -> m ()
glGetPerfMonitorCounterInfoAMD :: GLuint -> GLuint -> GLuint -> Ptr () -> m ()
glGetPerfMonitorCounterInfoAMD = FunPtr (GLuint -> GLuint -> GLuint -> Ptr () -> IO ())
-> GLuint -> GLuint -> GLuint -> Ptr () -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLuint -> GLuint -> Ptr () -> IO ())
-> GLuint -> GLuint -> GLuint -> Ptr () -> m ()
ffiuintuintenumPtrVIOV FunPtr (GLuint -> GLuint -> GLuint -> Ptr () -> IO ())
glGetPerfMonitorCounterInfoAMDFunPtr
glGetPerfMonitorCounterInfoAMDFunPtr :: FunPtr (GLuint -> GLuint -> GLenum -> Ptr () -> IO ())
glGetPerfMonitorCounterInfoAMDFunPtr :: FunPtr (GLuint -> GLuint -> GLuint -> Ptr () -> IO ())
glGetPerfMonitorCounterInfoAMDFunPtr = IO (FunPtr (GLuint -> GLuint -> GLuint -> Ptr () -> IO ()))
-> FunPtr (GLuint -> GLuint -> GLuint -> Ptr () -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO (FunPtr (GLuint -> GLuint -> GLuint -> Ptr () -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetPerfMonitorCounterInfoAMD")
{-# NOINLINE glGetPerfMonitorCounterInfoAMDFunPtr #-}
glGetPerfMonitorCounterStringAMD :: MonadIO m => GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetPerfMonitorCounterStringAMD :: GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetPerfMonitorCounterStringAMD = FunPtr
(GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-> GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
(GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-> GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
ffiuintuintsizeiPtrsizeiPtrcharIOV FunPtr
(GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
glGetPerfMonitorCounterStringAMDFunPtr
glGetPerfMonitorCounterStringAMDFunPtr :: FunPtr (GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
glGetPerfMonitorCounterStringAMDFunPtr :: FunPtr
(GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
glGetPerfMonitorCounterStringAMDFunPtr = IO
(FunPtr
(GLuint
-> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()))
-> FunPtr
(GLuint -> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
(FunPtr
(GLuint
-> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetPerfMonitorCounterStringAMD")
{-# NOINLINE glGetPerfMonitorCounterStringAMDFunPtr #-}
glGetPerfMonitorCountersAMD :: MonadIO m => GLuint -> Ptr GLint -> Ptr GLint -> GLsizei -> Ptr GLuint -> m ()
glGetPerfMonitorCountersAMD :: GLuint
-> Ptr GLsizei -> Ptr GLsizei -> GLsizei -> Ptr GLuint -> m ()
glGetPerfMonitorCountersAMD = FunPtr
(GLuint
-> Ptr GLsizei -> Ptr GLsizei -> GLsizei -> Ptr GLuint -> IO ())
-> GLuint
-> Ptr GLsizei
-> Ptr GLsizei
-> GLsizei
-> Ptr GLuint
-> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
(GLuint
-> Ptr GLsizei -> Ptr GLsizei -> GLsizei -> Ptr GLuint -> IO ())
-> GLuint
-> Ptr GLsizei
-> Ptr GLsizei
-> GLsizei
-> Ptr GLuint
-> m ()
ffiuintPtrintPtrintsizeiPtruintIOV FunPtr
(GLuint
-> Ptr GLsizei -> Ptr GLsizei -> GLsizei -> Ptr GLuint -> IO ())
glGetPerfMonitorCountersAMDFunPtr
glGetPerfMonitorCountersAMDFunPtr :: FunPtr (GLuint -> Ptr GLint -> Ptr GLint -> GLsizei -> Ptr GLuint -> IO ())
glGetPerfMonitorCountersAMDFunPtr :: FunPtr
(GLuint
-> Ptr GLsizei -> Ptr GLsizei -> GLsizei -> Ptr GLuint -> IO ())
glGetPerfMonitorCountersAMDFunPtr = IO
(FunPtr
(GLuint
-> Ptr GLsizei -> Ptr GLsizei -> GLsizei -> Ptr GLuint -> IO ()))
-> FunPtr
(GLuint
-> Ptr GLsizei -> Ptr GLsizei -> GLsizei -> Ptr GLuint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
(FunPtr
(GLuint
-> Ptr GLsizei -> Ptr GLsizei -> GLsizei -> Ptr GLuint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetPerfMonitorCountersAMD")
{-# NOINLINE glGetPerfMonitorCountersAMDFunPtr #-}
glGetPerfMonitorGroupStringAMD :: MonadIO m => GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetPerfMonitorGroupStringAMD :: GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
glGetPerfMonitorGroupStringAMD = FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
-> GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> m ()
ffiuintsizeiPtrsizeiPtrcharIOV FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
glGetPerfMonitorGroupStringAMDFunPtr
glGetPerfMonitorGroupStringAMDFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
glGetPerfMonitorGroupStringAMDFunPtr :: FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
glGetPerfMonitorGroupStringAMDFunPtr = IO
(FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()))
-> FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
(FunPtr (GLuint -> GLsizei -> Ptr GLsizei -> Ptr GLchar -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetPerfMonitorGroupStringAMD")
{-# NOINLINE glGetPerfMonitorGroupStringAMDFunPtr #-}
glGetPerfMonitorGroupsAMD :: MonadIO m => Ptr GLint -> GLsizei -> Ptr GLuint -> m ()
glGetPerfMonitorGroupsAMD :: Ptr GLsizei -> GLsizei -> Ptr GLuint -> m ()
glGetPerfMonitorGroupsAMD = FunPtr (Ptr GLsizei -> GLsizei -> Ptr GLuint -> IO ())
-> Ptr GLsizei -> GLsizei -> Ptr GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr (Ptr GLsizei -> GLsizei -> Ptr GLuint -> IO ())
-> Ptr GLsizei -> GLsizei -> Ptr GLuint -> m ()
ffiPtrintsizeiPtruintIOV FunPtr (Ptr GLsizei -> GLsizei -> Ptr GLuint -> IO ())
glGetPerfMonitorGroupsAMDFunPtr
glGetPerfMonitorGroupsAMDFunPtr :: FunPtr (Ptr GLint -> GLsizei -> Ptr GLuint -> IO ())
glGetPerfMonitorGroupsAMDFunPtr :: FunPtr (Ptr GLsizei -> GLsizei -> Ptr GLuint -> IO ())
glGetPerfMonitorGroupsAMDFunPtr = IO (FunPtr (Ptr GLsizei -> GLsizei -> Ptr GLuint -> IO ()))
-> FunPtr (Ptr GLsizei -> GLsizei -> Ptr GLuint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO (FunPtr (Ptr GLsizei -> GLsizei -> Ptr GLuint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glGetPerfMonitorGroupsAMD")
{-# NOINLINE glGetPerfMonitorGroupsAMDFunPtr #-}
glSelectPerfMonitorCountersAMD :: MonadIO m => GLuint -> GLboolean -> GLuint -> GLint -> Ptr GLuint -> m ()
glSelectPerfMonitorCountersAMD :: GLuint -> GLboolean -> GLuint -> GLsizei -> Ptr GLuint -> m ()
glSelectPerfMonitorCountersAMD = FunPtr
(GLuint -> GLboolean -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
-> GLuint -> GLboolean -> GLuint -> GLsizei -> Ptr GLuint -> m ()
forall (m :: * -> *).
MonadIO m =>
FunPtr
(GLuint -> GLboolean -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
-> GLuint -> GLboolean -> GLuint -> GLsizei -> Ptr GLuint -> m ()
ffiuintbooleanuintintPtruintIOV FunPtr
(GLuint -> GLboolean -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
glSelectPerfMonitorCountersAMDFunPtr
glSelectPerfMonitorCountersAMDFunPtr :: FunPtr (GLuint -> GLboolean -> GLuint -> GLint -> Ptr GLuint -> IO ())
glSelectPerfMonitorCountersAMDFunPtr :: FunPtr
(GLuint -> GLboolean -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
glSelectPerfMonitorCountersAMDFunPtr = IO
(FunPtr
(GLuint -> GLboolean -> GLuint -> GLsizei -> Ptr GLuint -> IO ()))
-> FunPtr
(GLuint -> GLboolean -> GLuint -> GLsizei -> Ptr GLuint -> IO ())
forall a. IO a -> a
unsafePerformIO ([Char]
-> IO
(FunPtr
(GLuint -> GLboolean -> GLuint -> GLsizei -> Ptr GLuint -> IO ()))
forall a. [Char] -> IO (FunPtr a)
getProcAddress "glSelectPerfMonitorCountersAMD")
{-# NOINLINE glSelectPerfMonitorCountersAMDFunPtr #-}
pattern $bGL_COUNTER_RANGE_AMD :: a
$mGL_COUNTER_RANGE_AMD :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_COUNTER_RANGE_AMD = 0x8BC1
pattern $bGL_COUNTER_TYPE_AMD :: a
$mGL_COUNTER_TYPE_AMD :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_COUNTER_TYPE_AMD = 0x8BC0
pattern $bGL_PERCENTAGE_AMD :: a
$mGL_PERCENTAGE_AMD :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_PERCENTAGE_AMD = 0x8BC3
pattern $bGL_PERFMON_RESULT_AMD :: a
$mGL_PERFMON_RESULT_AMD :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_PERFMON_RESULT_AMD = 0x8BC6
pattern $bGL_PERFMON_RESULT_AVAILABLE_AMD :: a
$mGL_PERFMON_RESULT_AVAILABLE_AMD :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_PERFMON_RESULT_AVAILABLE_AMD = 0x8BC4
pattern $bGL_PERFMON_RESULT_SIZE_AMD :: a
$mGL_PERFMON_RESULT_SIZE_AMD :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_PERFMON_RESULT_SIZE_AMD = 0x8BC5
pattern $bGL_UNSIGNED_INT64_AMD :: a
$mGL_UNSIGNED_INT64_AMD :: forall r a. (Eq a, Num a) => a -> (Void# -> r) -> (Void# -> r) -> r
GL_UNSIGNED_INT64_AMD = 0x8BC2