diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,10 @@
+0.7.4
+-----
+* Added support for three new extensions:
+  * `EXT_float_blend`
+  * `NV_command_list`
+  * `NV_polygon_mode`
+
 0.7.3
 -----
 * Added support for three new extensions:
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT.hs b/dist/build/autogen/Graphics/GL/Ext/EXT.hs
--- a/dist/build/autogen/Graphics/GL/Ext/EXT.hs
+++ b/dist/build/autogen/Graphics/GL/Ext/EXT.hs
@@ -34,6 +34,7 @@
   , module Graphics.GL.Ext.EXT.DrawElementsBaseVertex
   , module Graphics.GL.Ext.EXT.DrawInstanced
   , module Graphics.GL.Ext.EXT.DrawRangeElements
+  , module Graphics.GL.Ext.EXT.FloatBlend
   , module Graphics.GL.Ext.EXT.FogCoord
   , module Graphics.GL.Ext.EXT.FourTwoTwoPixels
   , module Graphics.GL.Ext.EXT.FramebufferBlit
@@ -183,6 +184,7 @@
 import Graphics.GL.Ext.EXT.DrawElementsBaseVertex
 import Graphics.GL.Ext.EXT.DrawInstanced
 import Graphics.GL.Ext.EXT.DrawRangeElements
+import Graphics.GL.Ext.EXT.FloatBlend
 import Graphics.GL.Ext.EXT.FogCoord
 import Graphics.GL.Ext.EXT.FourTwoTwoPixels
 import Graphics.GL.Ext.EXT.FramebufferBlit
diff --git a/dist/build/autogen/Graphics/GL/Ext/EXT/FloatBlend.hs b/dist/build/autogen/Graphics/GL/Ext/EXT/FloatBlend.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/autogen/Graphics/GL/Ext/EXT/FloatBlend.hs
@@ -0,0 +1,15 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.EXT.FloatBlend (
+  -- * Extension Support
+    gl_EXT_float_blend
+) where
+
+import Data.Set
+import Graphics.GL.Internal.Proc
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/EXT/EXT_float_blend.txt GL_EXT_float_blend> extension is available.
+
+gl_EXT_float_blend :: Bool
+gl_EXT_float_blend = member "GL_EXT_float_blend" extensions
+{-# NOINLINE gl_EXT_float_blend #-}
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV.hs b/dist/build/autogen/Graphics/GL/Ext/NV.hs
--- a/dist/build/autogen/Graphics/GL/Ext/NV.hs
+++ b/dist/build/autogen/Graphics/GL/Ext/NV.hs
@@ -8,6 +8,7 @@
   , module Graphics.GL.Ext.NV.BlendEquationAdvanced
   , module Graphics.GL.Ext.NV.BlendEquationAdvancedCoherent
   , module Graphics.GL.Ext.NV.BlendSquare
+  , module Graphics.GL.Ext.NV.CommandList
   , module Graphics.GL.Ext.NV.ComputeProgram5
   , module Graphics.GL.Ext.NV.ConditionalRender
   , module Graphics.GL.Ext.NV.ConservativeRaster
@@ -64,6 +65,7 @@
   , module Graphics.GL.Ext.NV.PathRenderingSharedEdge
   , module Graphics.GL.Ext.NV.PixelDataRange
   , module Graphics.GL.Ext.NV.PointSprite
+  , module Graphics.GL.Ext.NV.PolygonMode
   , module Graphics.GL.Ext.NV.PresentVideo
   , module Graphics.GL.Ext.NV.PrimitiveRestart
   , module Graphics.GL.Ext.NV.ReadBuffer
@@ -128,6 +130,7 @@
 import Graphics.GL.Ext.NV.BlendEquationAdvanced
 import Graphics.GL.Ext.NV.BlendEquationAdvancedCoherent
 import Graphics.GL.Ext.NV.BlendSquare
+import Graphics.GL.Ext.NV.CommandList
 import Graphics.GL.Ext.NV.ComputeProgram5
 import Graphics.GL.Ext.NV.ConditionalRender
 import Graphics.GL.Ext.NV.ConservativeRaster
@@ -184,6 +187,7 @@
 import Graphics.GL.Ext.NV.PathRenderingSharedEdge
 import Graphics.GL.Ext.NV.PixelDataRange
 import Graphics.GL.Ext.NV.PointSprite
+import Graphics.GL.Ext.NV.PolygonMode
 import Graphics.GL.Ext.NV.PresentVideo
 import Graphics.GL.Ext.NV.PrimitiveRestart
 import Graphics.GL.Ext.NV.ReadBuffer
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/CommandList.hs b/dist/build/autogen/Graphics/GL/Ext/NV/CommandList.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/autogen/Graphics/GL/Ext/NV/CommandList.hs
@@ -0,0 +1,283 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.CommandList (
+  -- * Extension Support
+    gl_NV_command_list
+
+  -- * GL_NV_command_list
+  , glCallCommandListNV
+  , glCommandListSegmentsNV
+  , glCompileCommandListNV
+  , glCreateCommandListsNV
+  , glCreateStatesNV
+  , glDeleteCommandListsNV
+  , glDeleteStatesNV
+  , glDrawCommandsAddressNV
+  , glDrawCommandsNV
+  , glDrawCommandsStatesAddressNV
+  , glDrawCommandsStatesNV
+  , glGetCommandHeaderNV
+  , glGetStageIndexNV
+  , glIsCommandListNV
+  , glIsStateNV
+  , glListDrawCommandsStatesClientNV
+  , glStateCaptureNV
+  , pattern GL_ALPHA_REF_COMMAND_NV
+  , pattern GL_ATTRIBUTE_ADDRESS_COMMAND_NV
+  , pattern GL_BLEND_COLOR_COMMAND_NV
+  , pattern GL_DRAW_ARRAYS_COMMAND_NV
+  , pattern GL_DRAW_ARRAYS_INSTANCED_COMMAND_NV
+  , pattern GL_DRAW_ARRAYS_STRIP_COMMAND_NV
+  , pattern GL_DRAW_ELEMENTS_COMMAND_NV
+  , pattern GL_DRAW_ELEMENTS_INSTANCED_COMMAND_NV
+  , pattern GL_DRAW_ELEMENTS_STRIP_COMMAND_NV
+  , pattern GL_ELEMENT_ADDRESS_COMMAND_NV
+  , pattern GL_FRONT_FACE_COMMAND_NV
+  , pattern GL_LINE_WIDTH_COMMAND_NV
+  , pattern GL_NOP_COMMAND_NV
+  , pattern GL_POLYGON_OFFSET_COMMAND_NV
+  , pattern GL_SCISSOR_COMMAND_NV
+  , pattern GL_STENCIL_REF_COMMAND_NV
+  , pattern GL_TERMINATE_SEQUENCE_COMMAND_NV
+  , pattern GL_UNIFORM_ADDRESS_COMMAND_NV
+  , pattern GL_VIEWPORT_COMMAND_NV
+) 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
+
+-- | Checks that the <https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/command_list.txt GL_NV_command_list> extension is available.
+
+gl_NV_command_list :: Bool
+gl_NV_command_list = member "GL_NV_command_list" extensions
+{-# NOINLINE gl_NV_command_list #-}
+
+-- | Usage: @'glCallCommandListNV' list@
+
+
+glCallCommandListNV :: MonadIO m => GLuint -> m ()
+glCallCommandListNV = ffiuintIOV glCallCommandListNVFunPtr
+
+glCallCommandListNVFunPtr :: FunPtr (GLuint -> IO ())
+glCallCommandListNVFunPtr = unsafePerformIO (getProcAddress "glCallCommandListNV")
+
+{-# NOINLINE glCallCommandListNVFunPtr #-}
+
+-- | Usage: @'glCommandListSegmentsNV' list segments@
+
+
+glCommandListSegmentsNV :: MonadIO m => GLuint -> GLuint -> m ()
+glCommandListSegmentsNV = ffiuintuintIOV glCommandListSegmentsNVFunPtr
+
+glCommandListSegmentsNVFunPtr :: FunPtr (GLuint -> GLuint -> IO ())
+glCommandListSegmentsNVFunPtr = unsafePerformIO (getProcAddress "glCommandListSegmentsNV")
+
+{-# NOINLINE glCommandListSegmentsNVFunPtr #-}
+
+-- | Usage: @'glCompileCommandListNV' list@
+
+
+glCompileCommandListNV :: MonadIO m => GLuint -> m ()
+glCompileCommandListNV = ffiuintIOV glCompileCommandListNVFunPtr
+
+glCompileCommandListNVFunPtr :: FunPtr (GLuint -> IO ())
+glCompileCommandListNVFunPtr = unsafePerformIO (getProcAddress "glCompileCommandListNV")
+
+{-# NOINLINE glCompileCommandListNVFunPtr #-}
+
+-- | Usage: @'glCreateCommandListsNV' n lists@
+
+
+glCreateCommandListsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateCommandListsNV = ffisizeiPtruintIOV glCreateCommandListsNVFunPtr
+
+glCreateCommandListsNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateCommandListsNVFunPtr = unsafePerformIO (getProcAddress "glCreateCommandListsNV")
+
+{-# NOINLINE glCreateCommandListsNVFunPtr #-}
+
+-- | Usage: @'glCreateStatesNV' n states@
+
+
+glCreateStatesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glCreateStatesNV = ffisizeiPtruintIOV glCreateStatesNVFunPtr
+
+glCreateStatesNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glCreateStatesNVFunPtr = unsafePerformIO (getProcAddress "glCreateStatesNV")
+
+{-# NOINLINE glCreateStatesNVFunPtr #-}
+
+-- | Usage: @'glDeleteCommandListsNV' n lists@
+
+
+glDeleteCommandListsNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteCommandListsNV = ffisizeiPtruintIOV glDeleteCommandListsNVFunPtr
+
+glDeleteCommandListsNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteCommandListsNVFunPtr = unsafePerformIO (getProcAddress "glDeleteCommandListsNV")
+
+{-# NOINLINE glDeleteCommandListsNVFunPtr #-}
+
+-- | Usage: @'glDeleteStatesNV' n states@
+
+
+glDeleteStatesNV :: MonadIO m => GLsizei -> Ptr GLuint -> m ()
+glDeleteStatesNV = ffisizeiPtruintIOV glDeleteStatesNVFunPtr
+
+glDeleteStatesNVFunPtr :: FunPtr (GLsizei -> Ptr GLuint -> IO ())
+glDeleteStatesNVFunPtr = unsafePerformIO (getProcAddress "glDeleteStatesNV")
+
+{-# NOINLINE glDeleteStatesNVFunPtr #-}
+
+-- | Usage: @'glDrawCommandsAddressNV' primitiveMode indirects sizes count@
+
+
+glDrawCommandsAddressNV :: MonadIO m => GLenum -> Ptr GLuint64 -> Ptr GLsizei -> GLuint -> m ()
+glDrawCommandsAddressNV = ffienumPtruint64PtrsizeiuintIOV glDrawCommandsAddressNVFunPtr
+
+glDrawCommandsAddressNVFunPtr :: FunPtr (GLenum -> Ptr GLuint64 -> Ptr GLsizei -> GLuint -> IO ())
+glDrawCommandsAddressNVFunPtr = unsafePerformIO (getProcAddress "glDrawCommandsAddressNV")
+
+{-# NOINLINE glDrawCommandsAddressNVFunPtr #-}
+
+-- | Usage: @'glDrawCommandsNV' primitiveMode buffer indirects sizes count@
+
+
+glDrawCommandsNV :: MonadIO m => GLenum -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> GLuint -> m ()
+glDrawCommandsNV = ffienumuintPtrintptrPtrsizeiuintIOV glDrawCommandsNVFunPtr
+
+glDrawCommandsNVFunPtr :: FunPtr (GLenum -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> GLuint -> IO ())
+glDrawCommandsNVFunPtr = unsafePerformIO (getProcAddress "glDrawCommandsNV")
+
+{-# NOINLINE glDrawCommandsNVFunPtr #-}
+
+-- | Usage: @'glDrawCommandsStatesAddressNV' indirects sizes states fbos count@
+
+
+glDrawCommandsStatesAddressNV :: MonadIO m => Ptr GLuint64 -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()
+glDrawCommandsStatesAddressNV = ffiPtruint64PtrsizeiPtruintPtruintuintIOV glDrawCommandsStatesAddressNVFunPtr
+
+glDrawCommandsStatesAddressNVFunPtr :: FunPtr (Ptr GLuint64 -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ())
+glDrawCommandsStatesAddressNVFunPtr = unsafePerformIO (getProcAddress "glDrawCommandsStatesAddressNV")
+
+{-# NOINLINE glDrawCommandsStatesAddressNVFunPtr #-}
+
+-- | Usage: @'glDrawCommandsStatesNV' buffer indirects sizes states fbos count@
+
+
+glDrawCommandsStatesNV :: MonadIO m => GLuint -> Ptr GLintptr -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()
+glDrawCommandsStatesNV = ffiuintPtrintptrPtrsizeiPtruintPtruintuintIOV glDrawCommandsStatesNVFunPtr
+
+glDrawCommandsStatesNVFunPtr :: FunPtr (GLuint -> Ptr GLintptr -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ())
+glDrawCommandsStatesNVFunPtr = unsafePerformIO (getProcAddress "glDrawCommandsStatesNV")
+
+{-# NOINLINE glDrawCommandsStatesNVFunPtr #-}
+
+-- | Usage: @'glGetCommandHeaderNV' tokenID size@
+
+
+glGetCommandHeaderNV :: MonadIO m => GLenum -> GLuint -> m GLuint
+glGetCommandHeaderNV = ffienumuintIOuint glGetCommandHeaderNVFunPtr
+
+glGetCommandHeaderNVFunPtr :: FunPtr (GLenum -> GLuint -> IO GLuint)
+glGetCommandHeaderNVFunPtr = unsafePerformIO (getProcAddress "glGetCommandHeaderNV")
+
+{-# NOINLINE glGetCommandHeaderNVFunPtr #-}
+
+-- | Usage: @'glGetStageIndexNV' shadertype@
+
+
+glGetStageIndexNV :: MonadIO m => GLenum -> m GLushort
+glGetStageIndexNV = ffienumIOushort glGetStageIndexNVFunPtr
+
+glGetStageIndexNVFunPtr :: FunPtr (GLenum -> IO GLushort)
+glGetStageIndexNVFunPtr = unsafePerformIO (getProcAddress "glGetStageIndexNV")
+
+{-# NOINLINE glGetStageIndexNVFunPtr #-}
+
+-- | Usage: @'glIsCommandListNV' list@
+
+
+glIsCommandListNV :: MonadIO m => GLuint -> m GLboolean
+glIsCommandListNV = ffiuintIOboolean glIsCommandListNVFunPtr
+
+glIsCommandListNVFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsCommandListNVFunPtr = unsafePerformIO (getProcAddress "glIsCommandListNV")
+
+{-# NOINLINE glIsCommandListNVFunPtr #-}
+
+-- | Usage: @'glIsStateNV' state@
+
+
+glIsStateNV :: MonadIO m => GLuint -> m GLboolean
+glIsStateNV = ffiuintIOboolean glIsStateNVFunPtr
+
+glIsStateNVFunPtr :: FunPtr (GLuint -> IO GLboolean)
+glIsStateNVFunPtr = unsafePerformIO (getProcAddress "glIsStateNV")
+
+{-# NOINLINE glIsStateNVFunPtr #-}
+
+-- | Usage: @'glListDrawCommandsStatesClientNV' list segment indirects sizes states fbos count@
+
+
+glListDrawCommandsStatesClientNV :: MonadIO m => GLuint -> GLuint -> Ptr (Ptr ()) -> Ptr () -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()
+glListDrawCommandsStatesClientNV = ffiuintuintPtrPtrVPtrVPtruintPtruintuintIOV glListDrawCommandsStatesClientNVFunPtr
+
+glListDrawCommandsStatesClientNVFunPtr :: FunPtr (GLuint -> GLuint -> Ptr (Ptr ()) -> Ptr () -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ())
+glListDrawCommandsStatesClientNVFunPtr = unsafePerformIO (getProcAddress "glListDrawCommandsStatesClientNV")
+
+{-# NOINLINE glListDrawCommandsStatesClientNVFunPtr #-}
+
+-- | Usage: @'glStateCaptureNV' state mode@
+
+
+glStateCaptureNV :: MonadIO m => GLuint -> GLenum -> m ()
+glStateCaptureNV = ffiuintenumIOV glStateCaptureNVFunPtr
+
+glStateCaptureNVFunPtr :: FunPtr (GLuint -> GLenum -> IO ())
+glStateCaptureNVFunPtr = unsafePerformIO (getProcAddress "glStateCaptureNV")
+
+{-# NOINLINE glStateCaptureNVFunPtr #-}
+
+pattern GL_ALPHA_REF_COMMAND_NV = 0x000F
+
+pattern GL_ATTRIBUTE_ADDRESS_COMMAND_NV = 0x0009
+
+pattern GL_BLEND_COLOR_COMMAND_NV = 0x000B
+
+pattern GL_DRAW_ARRAYS_COMMAND_NV = 0x0003
+
+pattern GL_DRAW_ARRAYS_INSTANCED_COMMAND_NV = 0x0007
+
+pattern GL_DRAW_ARRAYS_STRIP_COMMAND_NV = 0x0005
+
+pattern GL_DRAW_ELEMENTS_COMMAND_NV = 0x0002
+
+pattern GL_DRAW_ELEMENTS_INSTANCED_COMMAND_NV = 0x0006
+
+pattern GL_DRAW_ELEMENTS_STRIP_COMMAND_NV = 0x0004
+
+pattern GL_ELEMENT_ADDRESS_COMMAND_NV = 0x0008
+
+pattern GL_FRONT_FACE_COMMAND_NV = 0x0012
+
+pattern GL_LINE_WIDTH_COMMAND_NV = 0x000D
+
+pattern GL_NOP_COMMAND_NV = 0x0001
+
+pattern GL_POLYGON_OFFSET_COMMAND_NV = 0x000E
+
+pattern GL_SCISSOR_COMMAND_NV = 0x0011
+
+pattern GL_STENCIL_REF_COMMAND_NV = 0x000C
+
+pattern GL_TERMINATE_SEQUENCE_COMMAND_NV = 0x0000
+
+pattern GL_UNIFORM_ADDRESS_COMMAND_NV = 0x000A
+
+pattern GL_VIEWPORT_COMMAND_NV = 0x0010
diff --git a/dist/build/autogen/Graphics/GL/Ext/NV/PolygonMode.hs b/dist/build/autogen/Graphics/GL/Ext/NV/PolygonMode.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/autogen/Graphics/GL/Ext/NV/PolygonMode.hs
@@ -0,0 +1,58 @@
+-- This file was automatically generated.
+{-# LANGUAGE CPP, ScopedTypeVariables, PatternSynonyms #-}
+module Graphics.GL.Ext.NV.PolygonMode (
+  -- * Extension Support
+    gl_NV_polygon_mode
+
+  -- * GL_NV_polygon_mode
+  , glPolygonModeNV
+  , pattern GL_FILL_NV
+  , pattern GL_LINE_NV
+  , pattern GL_POINT_NV
+  , pattern GL_POLYGON_MODE_NV
+  , pattern GL_POLYGON_OFFSET_LINE_NV
+  , pattern GL_POLYGON_OFFSET_POINT_NV
+) 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
+
+-- | Checks that the <https://www.khronos.org/registry/gles/extensions/NV/NV_polygon_mode.txt GL_NV_polygon_mode> extension is available.
+
+gl_NV_polygon_mode :: Bool
+gl_NV_polygon_mode = member "GL_NV_polygon_mode" extensions
+{-# NOINLINE gl_NV_polygon_mode #-}
+
+-- | Usage: @'glPolygonModeNV' face mode@
+--
+-- The parameter @face@ is a @MaterialFace@, one of: 'Graphics.GL.Internal.Shared.GL_BACK', 'Graphics.GL.Internal.Shared.GL_FRONT', 'Graphics.GL.Internal.Shared.GL_FRONT_AND_BACK'.
+--
+-- The parameter @mode@ is a @PolygonMode@, one of: 'Graphics.GL.Internal.Shared.GL_FILL', 'Graphics.GL.Internal.Shared.GL_LINE', 'Graphics.GL.Internal.Shared.GL_POINT'.
+--
+-- This command is an alias for 'Graphics.GL.Internal.Shared.glPolygonMode'.
+
+
+glPolygonModeNV :: MonadIO m => GLenum -> GLenum -> m ()
+glPolygonModeNV = ffienumenumIOV glPolygonModeNVFunPtr
+
+glPolygonModeNVFunPtr :: FunPtr (GLenum -> GLenum -> IO ())
+glPolygonModeNVFunPtr = unsafePerformIO (getProcAddress "glPolygonModeNV")
+
+{-# NOINLINE glPolygonModeNVFunPtr #-}
+
+pattern GL_FILL_NV = 0x1B02
+
+pattern GL_LINE_NV = 0x1B01
+
+pattern GL_POINT_NV = 0x1B00
+
+pattern GL_POLYGON_MODE_NV = 0x0B40
+
+pattern GL_POLYGON_OFFSET_LINE_NV = 0x2A02
+
+pattern GL_POLYGON_OFFSET_POINT_NV = 0x2A01
diff --git a/dist/build/autogen/Graphics/GL/Internal/FFI.hs b/dist/build/autogen/Graphics/GL/Internal/FFI.hs
--- a/dist/build/autogen/Graphics/GL/Internal/FFI.hs
+++ b/dist/build/autogen/Graphics/GL/Internal/FFI.hs
@@ -236,6 +236,10 @@
   , ffienumintsizeisizeiuintIOV
   , ffisizeiPtrenumIOV
   , ffiintPtrenumPtrintIOV
+  , ffienumPtruint64PtrsizeiuintIOV
+  , ffienumuintPtrintptrPtrsizeiuintIOV
+  , ffiPtruint64PtrsizeiPtruintPtruintuintIOV
+  , ffiuintPtrintptrPtrsizeiPtruintPtruintuintIOV
   , ffienumsizeiIOV
   , ffienumsizeienumPtrVIOV
   , ffienumsizeienumPtrVintIOV
@@ -315,6 +319,7 @@
   , ffienumenumenumenumPtrintIOV
   , ffienumenumenumPtrfloatIOV
   , ffienumenumenumPtrintIOV
+  , ffienumuintIOuint
   , ffienumenumintPtrVIOV
   , ffienumintPtrVIOV
   , ffiuintintsizeiPtrVIOV
@@ -396,6 +401,7 @@
   , ffiuintenumPtruint64IOV
   , ffienumenumenumPtrVPtrVPtrVIOV
   , ffienumenumPtrintPtrintIOV
+  , ffienumIOushort
   , ffienumIOPtrubyte
   , ffienumuintIOPtrubyte
   , ffisyncenumsizeiPtrsizeiPtrintIOV
@@ -472,6 +478,7 @@
   , ffiuintenumIOboolean
   , ffienumuintsizeiPtrcharIOV
   , ffiintushortIOV
+  , ffiuintuintPtrPtrVPtrVPtruintPtruintuintIOV
   , ffiuintenumfloatIOV
   , ffiuintenumintIOV
   , ffienumuintsizeiPtrubyteIOV
@@ -2038,6 +2045,26 @@
 ffiintPtrenumPtrintIOV :: MonadIO m => FunPtr (GLint -> Ptr GLenum -> Ptr GLint -> IO ()) -> GLint -> Ptr GLenum -> Ptr GLint -> m ()
 ffiintPtrenumPtrintIOV fp v0 v1 v2 = liftIO (dynintPtrenumPtrintIOV fp v0 v1 v2)
 
+foreign import CALLCONV "dynamic" dynenumPtruint64PtrsizeiuintIOV :: FunPtr (GLenum -> Ptr GLuint64 -> Ptr GLsizei -> GLuint -> IO ()) -> GLenum -> Ptr GLuint64 -> Ptr GLsizei -> GLuint -> IO ()
+
+ffienumPtruint64PtrsizeiuintIOV :: MonadIO m => FunPtr (GLenum -> Ptr GLuint64 -> Ptr GLsizei -> GLuint -> IO ()) -> GLenum -> Ptr GLuint64 -> Ptr GLsizei -> GLuint -> m ()
+ffienumPtruint64PtrsizeiuintIOV fp v0 v1 v2 v3 = liftIO (dynenumPtruint64PtrsizeiuintIOV fp v0 v1 v2 v3)
+
+foreign import CALLCONV "dynamic" dynenumuintPtrintptrPtrsizeiuintIOV :: FunPtr (GLenum -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> GLuint -> IO ()) -> GLenum -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> GLuint -> IO ()
+
+ffienumuintPtrintptrPtrsizeiuintIOV :: MonadIO m => FunPtr (GLenum -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> GLuint -> IO ()) -> GLenum -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> GLuint -> m ()
+ffienumuintPtrintptrPtrsizeiuintIOV fp v0 v1 v2 v3 v4 = liftIO (dynenumuintPtrintptrPtrsizeiuintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynPtruint64PtrsizeiPtruintPtruintuintIOV :: FunPtr (Ptr GLuint64 -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()) -> Ptr GLuint64 -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()
+
+ffiPtruint64PtrsizeiPtruintPtruintuintIOV :: MonadIO m => FunPtr (Ptr GLuint64 -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()) -> Ptr GLuint64 -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()
+ffiPtruint64PtrsizeiPtruintPtruintuintIOV fp v0 v1 v2 v3 v4 = liftIO (dynPtruint64PtrsizeiPtruintPtruintuintIOV fp v0 v1 v2 v3 v4)
+
+foreign import CALLCONV "dynamic" dynuintPtrintptrPtrsizeiPtruintPtruintuintIOV :: FunPtr (GLuint -> Ptr GLintptr -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()) -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()
+
+ffiuintPtrintptrPtrsizeiPtruintPtruintuintIOV :: MonadIO m => FunPtr (GLuint -> Ptr GLintptr -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()) -> GLuint -> Ptr GLintptr -> Ptr GLsizei -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()
+ffiuintPtrintptrPtrsizeiPtruintPtruintuintIOV fp v0 v1 v2 v3 v4 v5 = liftIO (dynuintPtrintptrPtrsizeiPtruintPtruintuintIOV fp v0 v1 v2 v3 v4 v5)
+
 foreign import CALLCONV "dynamic" dynenumsizeiIOV :: FunPtr (GLenum -> GLsizei -> IO ()) -> GLenum -> GLsizei -> IO ()
 
 ffienumsizeiIOV :: MonadIO m => FunPtr (GLenum -> GLsizei -> IO ()) -> GLenum -> GLsizei -> m ()
@@ -2433,6 +2460,11 @@
 ffienumenumenumPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLenum -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> GLenum -> Ptr GLint -> m ()
 ffienumenumenumPtrintIOV fp v0 v1 v2 v3 = liftIO (dynenumenumenumPtrintIOV fp v0 v1 v2 v3)
 
+foreign import CALLCONV "dynamic" dynenumuintIOuint :: FunPtr (GLenum -> GLuint -> IO GLuint) -> GLenum -> GLuint -> IO GLuint
+
+ffienumuintIOuint :: MonadIO m => FunPtr (GLenum -> GLuint -> IO GLuint) -> GLenum -> GLuint -> m GLuint
+ffienumuintIOuint fp v0 v1 = liftIO (dynenumuintIOuint fp v0 v1)
+
 foreign import CALLCONV "dynamic" dynenumenumintPtrVIOV :: FunPtr (GLenum -> GLenum -> GLint -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> Ptr () -> IO ()
 
 ffienumenumintPtrVIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> GLint -> Ptr () -> IO ()) -> GLenum -> GLenum -> GLint -> Ptr () -> m ()
@@ -2838,6 +2870,11 @@
 ffienumenumPtrintPtrintIOV :: MonadIO m => FunPtr (GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> IO ()) -> GLenum -> GLenum -> Ptr GLint -> Ptr GLint -> m ()
 ffienumenumPtrintPtrintIOV fp v0 v1 v2 v3 = liftIO (dynenumenumPtrintPtrintIOV fp v0 v1 v2 v3)
 
+foreign import CALLCONV "dynamic" dynenumIOushort :: FunPtr (GLenum -> IO GLushort) -> GLenum -> IO GLushort
+
+ffienumIOushort :: MonadIO m => FunPtr (GLenum -> IO GLushort) -> GLenum -> m GLushort
+ffienumIOushort fp v0 = liftIO (dynenumIOushort fp v0)
+
 foreign import CALLCONV "dynamic" dynenumIOPtrubyte :: FunPtr (GLenum -> IO (Ptr GLubyte)) -> GLenum -> IO (Ptr GLubyte)
 
 ffienumIOPtrubyte :: MonadIO m => FunPtr (GLenum -> IO (Ptr GLubyte)) -> GLenum -> m (Ptr GLubyte)
@@ -3217,6 +3254,11 @@
 
 ffiintushortIOV :: MonadIO m => FunPtr (GLint -> GLushort -> IO ()) -> GLint -> GLushort -> m ()
 ffiintushortIOV fp v0 v1 = liftIO (dynintushortIOV fp v0 v1)
+
+foreign import CALLCONV "dynamic" dynuintuintPtrPtrVPtrVPtruintPtruintuintIOV :: FunPtr (GLuint -> GLuint -> Ptr (Ptr ()) -> Ptr () -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> Ptr (Ptr ()) -> Ptr () -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()
+
+ffiuintuintPtrPtrVPtrVPtruintPtruintuintIOV :: MonadIO m => FunPtr (GLuint -> GLuint -> Ptr (Ptr ()) -> Ptr () -> Ptr GLuint -> Ptr GLuint -> GLuint -> IO ()) -> GLuint -> GLuint -> Ptr (Ptr ()) -> Ptr () -> Ptr GLuint -> Ptr GLuint -> GLuint -> m ()
+ffiuintuintPtrPtrVPtrVPtruintPtruintuintIOV fp v0 v1 v2 v3 v4 v5 v6 = liftIO (dynuintuintPtrPtrVPtrVPtruintPtruintuintIOV fp v0 v1 v2 v3 v4 v5 v6)
 
 foreign import CALLCONV "dynamic" dynuintenumfloatIOV :: FunPtr (GLuint -> GLenum -> GLfloat -> IO ()) -> GLuint -> GLenum -> GLfloat -> IO ()
 
diff --git a/extensions.txt b/extensions.txt
--- a/extensions.txt
+++ b/extensions.txt
@@ -299,6 +299,7 @@
 GL_EXT_draw_instanced https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/draw_instanced.txt
 GL_EXT_draw_instanced https://www.khronos.org/registry/gles/extensions/EXT/EXT_draw_instanced.txt
 GL_EXT_draw_range_elements https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/draw_range_elements.txt
+GL_EXT_float_blend https://www.khronos.org/registry/gles/extensions/EXT/EXT_float_blend.txt
 GL_EXT_fog_coord https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/fog_coord.txt
 GL_EXT_frag_depth https://www.khronos.org/registry/gles/extensions/EXT/EXT_frag_depth.txt
 GL_EXT_fragment_lighting https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/EXT/fragment_lighting.txt
@@ -518,6 +519,7 @@
 GL_NV_blend_equation_advanced https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/blend_equation_advanced.txt
 GL_NV_blend_equation_advanced_coherent https://www.khronos.org/registry/gles/extensions/NV/NV_blend_equation_advanced_coherent.txt
 GL_NV_blend_square https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/blend_square.txt
+GL_NV_command_list https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/command_list.txt
 GL_NV_compute_program5 https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/compute_program5.txt
 GL_NV_conditional_render https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/conditional_render.txt
 GL_NV_conservative_raster https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/conservative_raster.txt
@@ -585,6 +587,7 @@
 GL_NV_pixel_data_range https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/pixel_data_range.txt
 GL_NV_platform_binary https://www.khronos.org/registry/gles/extensions/NV/NV_platform_binary.txt
 GL_NV_point_sprite https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/point_sprite.txt
+GL_NV_polygon_mode https://www.khronos.org/registry/gles/extensions/NV/NV_polygon_mode.txt
 GL_NV_present_video https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/present_video.txt
 GL_NV_primitive_restart https://cvs.khronos.org/svn/repos/ogl/trunk/doc/registry/public/specs/NV/primitive_restart.txt
 GL_NV_read_buffer https://www.khronos.org/registry/gles/extensions/NV/NV_read_buffer.txt
diff --git a/gl.cabal b/gl.cabal
--- a/gl.cabal
+++ b/gl.cabal
@@ -1,5 +1,5 @@
 name:          gl
-version:       0.7.3
+version:       0.7.4
 synopsis:      Complete OpenGL raw bindings
 description:   Complete OpenGL raw bindings
 license:       BSD3
@@ -382,6 +382,7 @@
     Graphics.GL.Ext.EXT.DrawRangeElements
     Graphics.GL.Ext.EXT.FogCoord
     Graphics.GL.Ext.EXT.FourTwoTwoPixels
+    Graphics.GL.Ext.EXT.FloatBlend
     Graphics.GL.Ext.EXT.FramebufferBlit
     Graphics.GL.Ext.EXT.FramebufferMultisample
     Graphics.GL.Ext.EXT.FramebufferMultisampleBlitScaled
@@ -553,6 +554,7 @@
     Graphics.GL.Ext.NV.BlendEquationAdvanced
     Graphics.GL.Ext.NV.BlendEquationAdvancedCoherent
     Graphics.GL.Ext.NV.BlendSquare
+    Graphics.GL.Ext.NV.CommandList
     Graphics.GL.Ext.NV.ComputeProgram5
     Graphics.GL.Ext.NV.ConditionalRender
     Graphics.GL.Ext.NV.ConservativeRaster
@@ -609,6 +611,7 @@
     Graphics.GL.Ext.NV.PathRenderingSharedEdge
     Graphics.GL.Ext.NV.PixelDataRange
     Graphics.GL.Ext.NV.PointSprite
+    Graphics.GL.Ext.NV.PolygonMode
     Graphics.GL.Ext.NV.PresentVideo
     Graphics.GL.Ext.NV.PrimitiveRestart
     Graphics.GL.Ext.NV.ReadBuffer
diff --git a/gl.xml b/gl.xml
# file too large to diff: gl.xml
