diff --git a/extensions/NV/NV_timeline_semaphore.txt b/extensions/NV/NV_timeline_semaphore.txt
new file mode 100755
index 0000000..3479fa3
--- /dev/null
+++ b/extensions/NV/NV_timeline_semaphore.txt
@@ -0,0 +1,223 @@
+Name
+
+    NV_timeline_semaphore
+
+Name Strings
+
+    GL_NV_timeline_semaphore
+
+Contributors
+
+    Carsten Rohde, NVIDIA
+    James Jones, NVIDIA
+
+Contact
+
+    Carsten Rohde, NVIDIA Corporation (crohde 'at' nvidia.com)
+
+Status
+
+    Complete
+
+Version
+
+    Last Modified Date: Jul 10, 2020
+    Revision:           1
+
+Number
+
+    551
+    OpenGL ES Extension #330
+
+Dependencies
+
+    Written against the OpenGL 4.6 and OpenGL ES 3.2 specifications.
+
+    GL_NV_timeline_semaphore requires GL_EXT_semaphore or a version of
+    OpenGL or OpenGL ES that incorporates it.
+
+Overview
+
+    The Vulkan API introduces the concept of timeline semaphores.
+    This extension brings those concepts to the OpenGL API by adding
+    a semaphore type to the semaphore object. In OpenGL, timeline semaphore
+    signal and wait operations are similar to the corresponding operations on
+    imported Direct3D 12 fences defined in EXT_external_objects_win32.
+
+New Procedures and Functions
+
+    void CreateSemaphoresNV(sizei n, uint *semaphores);
+
+    void SemaphoreParameterivNV(uint semaphore,
+                                enum pname,
+                                const GLint *params);
+
+    void GetSemaphoreParameterivNV(uint semaphore,
+                                   enum pname,
+                                   int *params);
+
+New Tokens
+
+    Accepted by the <pname> parameter of SemaphoreParameterivNV
+    and GetSemaphoreParameterivNV:
+
+        SEMAPHORE_TYPE_NV                           0x95B3
+
+    Accepted by the <param> parameter of SemaphoreParameterivNV and
+    GetSemaphoreParameterivNV when <pname> parameter is SEMAPHORE_TYPE_NV:
+
+        SEMAPHORE_TYPE_BINARY_NV                    0x95B4
+        SEMAPHORE_TYPE_TIMELINE_NV                  0x95B5
+
+    Accepted by the <pname> parameter of SemaphoreParameterui64vNV
+    and GetSemaphoreParameterui64vNV:
+
+        TIMELINE_SEMAPHORE_VALUE_NV                 0x9595
+
+    Accepted by the <pname> parameter to GetIntegerv, GetFloatv, GetDoublev,
+    GetInteger64v, and GetBooleanv:
+
+        MAX_TIMELINE_SEMAPHORE_VALUE_DIFFERENCE_NV  0x95B6
+
+
+Additions to Chapter 4 of the OpenGL 4.6 Specification (Event Model)
+
+    Add the following to section 4.2 Semaphore Objects after paragraph
+    which describes command GenSemaphoresEXT:
+
+        The command
+
+            void CreateSemaphoresNV(sizei n,
+                                    uint *semaphores);
+
+        returns <n> previously unused semaphore names in <semaphores>.
+        The semaphores named contain default state, but initially have no
+        external semaphores associated with them.
+
+    Replace section 4.2.2 Semaphore Parameters with the following:
+
+        Semaphore parameters control the type of the semaphore and how
+        semaphore wait and signal operations behave.
+        Table 4.3 defines which parameters are available for a semaphore
+        based on the external handle type from which it was imported.
+        Semaphore parameters are set using the commands
+
+            void SemaphoreParameterivNV(uint semaphore,
+                                        enum pname,
+                                        const int *params);
+
+        and
+
+            void SemaphoreParameterui64vEXT(uint semaphore,
+                                            enum pname,
+                                            const uint64 *params);
+
+        <semaphore> is the name of the semaphore object on which the
+        parameter <pname> will be set to the value(s) in <pname>.
+
+        Table 4.3: Semaphore parameters
+
+        | Name                        | Handle Types                | Legal Values                         |
+        +-----------------------------+-----------------------------+--------------------------------------+
+        | SEMAPHORE_TYPE_NV           | any handle type             | SEMAPHORE_TYPE_BINARY_NV (default)   |
+        |                             |                             | SEMAPHORE_TYPE_TIMELINE_NV           |
+        +-----------------------------+-----------------------------+--------------------------------------+
+        | TIMELINE_SEMAPHORE_VALUE_NV | any handle type             | any value                            |
+        +-----------------------------+-----------------------------+--------------------------------------+
+
+        The default type of a semaphore is SEMAPHORE_TYPE_BINARY_NV. Only when the semaphore is imported
+        from a D3D fence, the semaphore type defaults to SEMAPHORE_TYPE_TIMELINE_NV.
+
+        Parameters of a semaphore object may be queried with the commands
+
+            void GetSemaphoreParameteriEXT(uint semaphore,
+                                           enum pname,
+                                           uint64 *params);
+
+        and
+
+            void GetSemaphoreParameterui64EXT(uint semaphore,
+                                              enum pname,
+                                              uint64 *params);
+
+        <semaphore> is the semaphore object from with the parameter <pname>
+        is queried.  The value(s) of the parameter are returned in <params>.
+        <pname> may be any value in table 4.3.
+
+    Add the following after the first paragraph of section 4.2.3 "Waiting
+    for Semaphores"
+
+        If <semaphore> is of the type SEMAPHORE_TYPE_TIMELINE_NV, it will
+        reach the signaled state when its value is greater than or equal
+        to the value specified by its TIMELINE_SEMAPHORE_VALUE_NV parameter.
+
+    Add the following at the end of section 4.2.3 "Waiting for Semaphores":
+
+        When using binary semaphores, for every wait on a semaphore there must
+        be a prior signal of that semaphore that will not be consumed by a
+        different wait on the semaphore.
+        When using timeline semaphores, wait-before-signal behavior is
+        well-defined and applications can wait for semaphore before the
+        corresponding semaphore signal operation is flushed.
+
+        MAX_TIMELINE_SEMAPHORE_VALUE_DIFFERENCE_NV indicates the maximum
+        difference allowed by the implementation between the current value
+        of a timeline semaphore and any pending wait operations
+
+    Add the following after the first paragraph of section 4.2.4 "Signaling
+    Semaphores"
+
+        If <semaphore> is of the type SEMAPHORE_TYPE_TIMELINE_NV, its value
+        will be set to the value specified by its TIMELINE_SEMAPHORE_VALUE_NV
+        parameter when the signal operation completes.
+
+    Add the following at the end of section 4.2.4 "Signaling for Semaphores":
+
+        MAX_TIMELINE_SEMAPHORE_VALUE_DIFFERENCE_NV indicates the maximum
+        difference allowed by the implementation between the current value
+        of a timeline semaphore and any pending signal operations.
+
+
+Example
+
+    GLuint semapohre;
+    glCreateSemaphoresNV(1, &semaphore);
+    GLenum semaphoreType = GL_SEMAPHORE_TYPE_TIMELINE_NV;
+    glSemaphoreParameterivNV(semaphore, GL_SEMAPHORE_TYPE_NV, (GLint*)&semaphoreType);
+    glImportSemaphoreFdEXT(semaphore, GL_HANDLE_TYPE_OPAQUE_FD_EXT, fd); // or win32 equivalent
+
+    GLuint64 semaphoreValue = 0;
+
+    while (...) {
+        glSemaphoreParameterui64vEXT(semaphore, GL_TIMELINE_SEMAPHORE_VALUE_NV, &semaphoreValue);
+        glWaitSemaphoreEXT(semaphore, ...);
+
+        ...
+
+        semaphoreValue ++;
+        glSemaphoreParameterui64vEXT(semaphore, GL_TIMELINE_SEMAPHORE_VALUE_NV, &semaphoreValue);
+        glSignalSemaphoreEXT(semaphore, ...);
+    }
+
+    glDeleteSemaphoresEXT(1, &semaphore);
+
+
+Issues
+
+    (1) Should we add client functions to signal and wait for the semaphore on
+        the CPU?
+
+        RESOLVED: No. We already declined to add external Vulkan fence interop
+                  with GL on the basis that you can just do that with Vulkan
+                  if you need it.
+
+    (2) Should GetIntegerv and GetBooleanv be allowed to query
+        MAX_TIMELINE_SEMAPHORE_VALUE_DIFFERENCE_NV?
+
+        RESOLVED: Yes. Although it's dangerous to use them they don't throw an
+                  error but you are advised to use GetInteger64v.
+
+Revision History
+
+    Revision 1, 2020-07-10 (Carsten Rohde)
+        - Initial draft.
diff --git a/extensions/esext.php b/extensions/esext.php
index f8decbe..c4a1baf 100644
--- a/extensions/esext.php
+++ b/extensions/esext.php
@@ -685,4 +685,6 @@
 </li>
 <li value=329><a href="extensions/NV/NV_memory_object_sparse.txt">GL_NV_memory_object_sparse</a>
 </li>
+<li value=330><a href="extensions/NV/GL_NV_timeline_semaphore.txt">GL_NV_timeline_semaphore</a>
+</li>
 </ol>
diff --git a/extensions/glext.php b/extensions/glext.php
index 6f32d05..735eed1 100644
--- a/extensions/glext.php
+++ b/extensions/glext.php
@@ -1039,4 +1039,6 @@
 </li>
 <li value=550><a href="extensions/NV/NV_memory_object_sparse.txt">GL_NV_memory_object_sparse</a>
 </li>
+<li value=551><a href="extensions/NV/GL_NV_timeline_semaphore.txt">GL_NV_timeline_semaphore</a>
+</li>
 </ol>
diff --git a/extensions/registry.py b/extensions/registry.py
index 505e19f..8f3fa4e 100644
--- a/extensions/registry.py
+++ b/extensions/registry.py
@@ -3944,6 +3944,13 @@
         'supporters' : { 'NVIDIA' },
         'url' : 'extensions/NV/NV_transform_feedback2.txt',
     },
+    'GL_NV_timeline_semaphore' : {
+        'number' : 551,
+        'esnumber' : 330,
+        'flags' : { 'public' },
+        'supporters' : { 'NVIDIA' },
+        'url' : 'extensions/NV/NV_timeline_semaphore.txt',
+    },
     'GL_NV_uniform_buffer_unified_memory' : {
         'number' : 459,
         'flags' : { 'public' },
diff --git a/xml/gl.xml b/xml/gl.xml
index cbef0f7..7554114 100644
--- a/xml/gl.xml
+++ b/xml/gl.xml
@@ -11571,6 +11571,7 @@
         <enum value="0x9593" name="GL_LAYOUT_TRANSFER_DST_EXT" group="TextureLayout"/>
         <enum value="0x9594" name="GL_HANDLE_TYPE_D3D12_FENCE_EXT" group="ExternalHandleType"/>
         <enum value="0x9595" name="GL_D3D12_FENCE_VALUE_EXT" group="SemaphoreParameterName"/>
+        <enum value="0x9595" name="GL_TIMELINE_SEMAPHORE_VALUE_NV" group="SemaphoreParameterName"/>
         <enum value="0x9596" name="GL_NUM_DEVICE_UUIDS_EXT" group="GetPName"/>
         <enum value="0x9597" name="GL_DEVICE_UUID_EXT" group="GetPName"/>
         <enum value="0x9598" name="GL_DRIVER_UUID_EXT" group="GetPName"/>
@@ -11598,7 +11599,12 @@
         <enum value="0x95AE" name="GL_SHADING_RATE_SAMPLE_ORDER_DEFAULT_NV"/>
         <enum value="0x95AF" name="GL_SHADING_RATE_SAMPLE_ORDER_PIXEL_MAJOR_NV"/>
         <enum value="0x95B0" name="GL_SHADING_RATE_SAMPLE_ORDER_SAMPLE_MAJOR_NV"/>
-        <unused start="0x9581" end="0x962F" vendor="NV"/>
+        <unused start="0x95B1" end="0x95B2" vendor="NV"/>
+        <enum value="0x95B3" name="GL_SEMAPHORE_TYPE_NV"/>
+        <enum value="0x95B4" name="GL_SEMAPHORE_TYPE_BINARY_NV"/>
+        <enum value="0x95B5" name="GL_SEMAPHORE_TYPE_TIMELINE_NV"/>
+        <enum value="0x95B6" name="GL_MAX_TIMELINE_SEMAPHORE_VALUE_DIFFERENCE_NV"/>
+        <unused start="0x95B7" end="0x962F" vendor="NV"/>
     </enums>
 
     <enums namespace="GL" start="0x9630" end="0x963F" vendor="Oculus" comment="Email from Cass Everitt">
@@ -14976,6 +14982,11 @@
             <param len="n"><ptype>GLuint</ptype> *<name>samplers</name></param>
         </command>
         <command>
+            <proto>void <name>glCreateSemaphoresNV</name></proto>
+            <param><ptype>GLsizei</ptype> <name>n</name></param>
+            <param len="n"><ptype>GLuint</ptype> *<name>semaphores</name></param>
+        </command>
+        <command>
             <proto><ptype>GLuint</ptype> <name>glCreateShader</name></proto>
             <param group="ShaderType"><ptype>GLenum</ptype> <name>type</name></param>
         </command>
@@ -19719,6 +19730,12 @@
             <param len="COMPSIZE(pname)"><ptype>GLint</ptype> *<name>params</name></param>
         </command>
         <command>
+            <proto>void <name>glGetSemaphoreParameterivNV</name></proto>
+            <param><ptype>GLuint</ptype> <name>semaphore</name></param>
+            <param group="SemaphoreParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+            <param><ptype>GLint</ptype> *<name>params</name></param>
+        </command>
+        <command>
             <proto>void <name>glGetSemaphoreParameterui64vEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>semaphore</name></param>
             <param group="SemaphoreParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
@@ -27780,6 +27797,12 @@
             <param len="numCounters"><ptype>GLuint</ptype> *<name>counterList</name></param>
         </command>
         <command>
+            <proto>void <name>glSemaphoreParameterivNV</name></proto>
+            <param><ptype>GLuint</ptype> <name>semaphore</name></param>
+            <param group="SemaphoreParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
+            <param>const <ptype>GLint</ptype> *<name>params</name></param>
+        </command>
+        <command>
             <proto>void <name>glSemaphoreParameterui64vEXT</name></proto>
             <param><ptype>GLuint</ptype> <name>semaphore</name></param>
             <param group="SemaphoreParameterName"><ptype>GLenum</ptype> <name>pname</name></param>
@@ -46887,6 +46910,18 @@
                 <command name="glTextureViewEXT"/>
             </require>
         </extension>
+        <extension name="GL_NV_timeline_semaphore" supported="gl|gles2">
+            <require>
+                <enum name="GL_TIMELINE_SEMAPHORE_VALUE_NV"/>
+                <enum name="GL_SEMAPHORE_TYPE_NV"/>
+                <enum name="GL_SEMAPHORE_TYPE_BINARY_NV"/>
+                <enum name="GL_SEMAPHORE_TYPE_TIMELINE_NV"/>
+                <enum name="GL_MAX_TIMELINE_SEMAPHORE_VALUE_DIFFERENCE_NV"/>
+                <command name="glCreateSemaphoresNV"/>
+                <command name="glSemaphoreParameterivNV"/>
+                <command name="glGetSemaphoreParameterivNV"/>
+            </require>
+        </extension>
         <extension name="GL_EXT_timer_query" supported="gl">
             <require>
                 <enum name="GL_TIME_ELAPSED_EXT"/>
