diff --git a/extensions/QCOM/QCOM_shader_framebuffer_fetch_rate.txt b/extensions/QCOM/QCOM_shader_framebuffer_fetch_rate.txt
new file mode 100644
index 0000000..99f6b45
--- /dev/null
+++ b/extensions/QCOM/QCOM_shader_framebuffer_fetch_rate.txt
@@ -0,0 +1,264 @@
+Name
+    QCOM_shader_framebuffer_fetch_rate
+
+Name Strings
+
+    GL_QCOM_shader_framebuffer_fetch_rate
+
+Contact
+
+    Jeff Leger ( jleger 'at' qti.qualcomm.com)
+
+Contributors
+
+    Jeff Leger, Qualcomm
+    Jonathan Wicks, Qualcomm
+
+Status
+
+    DRAFT
+
+Version
+
+    Last Modified Date:         August 20, 2018
+    Revision:                   1
+
+Number
+
+    OpenGL ES Extension #304
+
+
+Dependencies
+
+    OpenGL ES 2.0 and GLSL ES 1.00 are required.
+
+    This extension is written against the OpenGL ES 3.2 (May 14, 2018)
+    and the OpenGL ES Shading Language 3.20.4 Specification
+    (June 14, 2018) specifications.
+
+    This extension interacts with EXT_shader_framebuffer_fetch.
+    This extension interacts with ARM_shader_framebuffer_fetch_depth_stencil.
+
+Overview
+
+    When certain built-ins (e.g. gl_LastFragData, gl_LastFragStencilARM)
+    are referenced in the shader, the shader is required to execute at sample-rate
+    if the attachments are multisampled.  In some use-cases executing such shaders
+    at fragment-rate is actually the preferred behavior.  When this extension is
+    enabled, such GLSL shaders will execute at fragment-rate and the built-in
+    will return a per-fragment value.  This avoids the significant performance
+    penalty that would otherwise be incurred with sample-rate shading.
+
+    The following built-ins are affected when the this extension is enabled:
+
+        gl_LastFragData      (from EXT_shader_framebuffer_fetch)
+        gl_LastFragDepthARM  (from ARM_shader_framebuffer_fetch_depth_stencil)
+
+    The following built-ins are disallowed when this extension is enabled:
+
+        gl_SampleID
+        gl_SamplePosition
+        interpolateAtSample()
+
+IP Status
+
+    No known IP claims.
+
+New Procedures and Functions
+
+    None
+
+New Tokens
+
+    None
+
+Additions to Chapter 13 of the OpenGL ES 3.2 Specification
+(Fixed-Function Primitive Assembly and Rasterization)
+
+    Modify Section 13.4.1, Sample Shading, p. 353
+
+    Modify the first paragraph:
+        "Sample shading can be used to specify a minimum number of unique samples
+        to process for each fragment. Sample shading is controlled by calling
+        Enable or Disable with target SAMPLE_SHADING."
+
+    by adding one sentence to the end:
+        "Sample shading can be used to specify a minimum number of unique samples
+        to process for each fragment. Sample shading is controlled by calling
+        Enable or Disable with target SAMPLE_SHADING.  For any fragment shader
+        that has forced fragment-rate by enabling QCOM_shader_framebuffer_fetch_rate,
+        such shader will execute as if SAMPLE_SHADING is disabled."
+
+Additions to Chapter 14 (Programmable Fragment Processing) of the OpenGL ES 3.2 Specification
+
+
+    Modify Section 14.2.2 (Shader Inputs), p. 372
+
+        Modify the sentence:
+            "Using gl_SampleID in a fragment shader causes the entire shader to
+            be executed per-sample."
+
+        to:
+            "Using gl_SampleID in a fragment shader causes the entire shader to
+            be executed per-sample.  If GL_QCOM_shader_framebuffer_fetch_rate is
+            enabled, any use of gl_SampleID will result in a compile or link error."
+
+        Modify the sentence:
+            "Using gl_SamplePosition in a fragment shader causes the entire shader to
+            be executed per-sample."
+
+        to:
+            "Using gl_SamplePosition in a fragment shader causes the entire shader to
+            be executed per-sample.  If GL_QCOM_shader_framebuffer_fetch_rate is
+            enabled, any use of gl_SamplePosition will result in a compile or link
+            error."
+
+
+    Modify Section 14.2.3 (Shader Outputs), p. 372
+
+        [[ The following applies if EXT_shader_framebuffer_fetch is supported ]]
+
+            In the new paragraphs added by EXT_shader_framebuffer_fetch to the end
+            this section, change the following added sentence:
+
+                From:
+                   "Reading from a user-defined fragment output declared inout
+                   causes the shader to be evaluated per-sample, since the
+                   framebuffer potentially contains different color values for
+                   each sample."
+
+                To:
+                  "If QCOM_shader_framebuffer_fetch_rate is not enabled, reading from
+                  a user-defined fragment output declared inout causes the shader
+                  to be evaluated per-sample, since the framebuffer potentially
+                  contains different color values for each sample."
+
+            Add the following paragraph to the end of "Shader Outputs" section:
+
+              "If the current rendertarget is multisampled and if
+              QCOM_shader_framebuffer_fetch_rate is enabled, then reading from
+              a user-defined fragment output declared inout will return an
+              implementation-dependent weighted average of the samples within
+              the destination pixel covered by the current fragment.  The value
+              will be between the minium and maximum value of the covered samples.
+              If the destination colors must be linearized from sRGB as
+              described in the preceding paragraphs, the conversion from sRGB
+              to linear happens before computing the weighted average.
+
+Additions to the EGL Specifications
+
+    None.
+
+Modifications to The OpenGL ES Shading Language Specification, Version 3.20.4
+
+    Changes to section 7.1.5. (Fragment Shader Special Variables), p 120.
+
+        Add the following at the start of this section:
+
+            "Static use of certain built-in variables described in this section
+            will cause the shader to be evaluated per-sample. This language feature
+            can be optionally disabled, forcing such shaders to evaluate per-
+            fragment.  The optional behavior can be enabled using:
+
+            #extension GL_QCOM_shader_framebuffer_fetch_rate : <behavior>
+
+            where <behavior> is as specified in section 3.4 (Preprocessor).
+
+            If GL_QCOM_shader_framebuffer_fetch_rate is enabled, it is a compile-time
+            or link-time error if any variable is declared with the "sample"
+            qualifier or if the built-in function interpolateAtSample() is statically
+            referenced."
+
+            Add the New preprocessor #defines are added to the OpenGL ES Shading Language:
+
+            "#define GL_QCOM_shader_framebuffer_fetch_rate  1"
+
+        Modify the last sentence of the paragraph starting with "The input variable
+        gl_SampleID is filled with the sample number of the sample currently being
+        processed"
+
+        from:
+            "Any static use of this variable in a fragment shader causes the entire
+            shader to be evaluated per-sample."
+        to
+            "If GL_QCOM_shader_framebuffer_fetch_rate is not enabled, any static use
+            of this variable in a fragment shader causes the entire shader to be evaluated
+            per-sample.  If GL_QCOM_shader_framebuffer_fetch_rate is enabled, an static
+            reference to gl_SampleID will cause a compile or link error."
+
+        Modify the last sentence of the paragraph starting with "The input variable
+        gl_SamplePosition contains the position of the current sample within the
+        multisample draw buffer."
+
+        from:
+            "Any static use of this variable in a fragment shader causes the entire
+            shader to be evaluated per-sample."
+        to
+            "If GL_QCOM_shader_framebuffer_fetch_rate is not enabled, any static use of
+            this variable in a fragment shader causes the entire shader to be evaluated
+            per-sample.  If GL_QCOM_shader_framebuffer_fetch_rate is enabled, an static
+            reference to gl_SamplePosition will cause a compile or link error."
+
+Interactions with EXT_shader_framebuffer_fetch.
+
+    Extension EXT_shader_framebuffer_fetch adds built-ins (gl_LastFragData[] for
+    version 1.0 shaders and inout variables version 3.0 shaders) that cause fragment
+    shaders to run at sample-rate.  This extension relaxes that requirement to
+    allow fragment-rate and specifies that the value returned from gl_LastFragData
+    will be an implementation-dependent weighted average of the covered pixels.
+
+Interactions with ARM_shader_framebuffer_fetch_depth_stencil.
+
+   Extension ARM_shader_framebuffer_fetch adds built-in "gl_LastFragDepthARM",
+   and specifies the value returned -- for both sample-rate and fragment-rate
+   execution.  This extension can be used to control whether sample-rate or
+   fragment-rate execution is used.
+
+Errors
+
+    None.
+
+New State
+
+    None.
+
+New Implementation Dependent State
+
+    None
+
+Issues
+
+    (1) Does it make sense to enable this extension for a shader that references
+        per-sample built-ins like gl_SampleID and gl_SamplePosition?
+
+        RESOLVED: No.  It doesn't make sense to force fragment-rate
+        execution using this extension, while also referencing per-sample
+        built-ins.  Since there is no known use-case, this will be a compile
+        or link error.
+
+        For the same reason, using the "sample" qualifier or using
+        interpolateAtSample() will cause a compile or link error.
+
+    (2) How does this extension interact with API-controlled sample-rate shading?
+
+        RESOLVED: For shaders that enable this this extension, those the shaders
+        will always execute at fragment-rate, regardless of other API states.
+        In particular, the enable/disable of SAMPLE_SHADING and the value of
+        MIN_SAMPLE_SHADING_VALUE will have no effect on such shaders.
+
+    (3) How does this extension differ from ARM_shader_framebuffer_fetch?
+
+        ARM_shader_framebuffer_fetch provides a means for controlling whether
+        shaders fetching color from the framebuffer should execute at sample-rate or
+        fragement rate.  The API state "FETCH_PER_SAMPLE_ARM" controls
+        this behavior.
+
+        This extension also provides control over sample-rate vs fragment-rate
+        for framebuffer fetch shaders, but does so in the GLSL shader.  Some
+        implementations require this information at shader compile time.
+
+Revision History
+
+    Rev.    Date      Author    Changes
+    ----  ----------  --------  -----------------------------------------
+    1     2018-08-20  jleger     initial version
diff --git a/extensions/esext.php b/extensions/esext.php
index a209ec6..8deb772 100644
--- a/extensions/esext.php
+++ b/extensions/esext.php
@@ -631,4 +631,6 @@
 </li>
 <li value=303><a href="extensions/AMD/AMD_framebuffer_multisample_advanced.txt">GL_AMD_framebuffer_multisample_advanced</a>
 </li>
+<li value=304><a href="extensions/QCOM/QCOM_shader_framebuffer_fetch_rate.txt">GL_QCOM_shader_framebuffer_fetch_rate</a>
+</li>
 </ol>
diff --git a/extensions/registry.py b/extensions/registry.py
index 2b0bec5..0f36d45 100644
--- a/extensions/registry.py
+++ b/extensions/registry.py
@@ -4324,11 +4324,31 @@
         'flags' : { 'public' },
         'url' : 'extensions/QCOM/QCOM_extended_get2.txt',
     },
+    'GL_QCOM_framebuffer_foveated' : {
+        'esnumber' : 273,
+        'flags' : { 'public' },
+        'url' : 'extensions/QCOM/QCOM_framebuffer_foveated.txt',
+    },
     'GL_QCOM_performance_monitor_global_mode' : {
         'esnumber' : 56,
         'flags' : { 'public' },
         'url' : 'extensions/QCOM/QCOM_performance_monitor_global_mode.txt',
     },
+    'GL_QCOM_shader_framebuffer_fetch_noncoherent' : {
+        'esnumber' : 277,
+        'flags' : { 'public' },
+        'url' : 'extensions/QCOM/QCOM_shader_framebuffer_fetch_noncoherent.txt',
+    },
+    'GL_QCOM_shader_framebuffer_fetch_rate' : {
+        'esnumber' : 304,
+        'flags' : { 'public' },
+        'url' : 'extensions/QCOM/QCOM_shader_framebuffer_fetch_rate.txt',
+    },
+    'GL_QCOM_texture_foveated' : {
+        'esnumber' : 293,
+        'flags' : { 'public' },
+        'url' : 'extensions/QCOM/QCOM_texture_foveated.txt',
+    },
     'GL_QCOM_tiled_rendering' : {
         'esnumber' : 70,
         'flags' : { 'public' },
@@ -4340,21 +4360,6 @@
         'flags' : { 'public' },
         'url' : 'extensions/QCOM/QCOM_writeonly_rendering.txt',
     },
-    'GL_QCOM_framebuffer_foveated' : {
-        'esnumber' : 273,
-        'flags' : { 'public' },
-        'url' : 'extensions/QCOM/QCOM_framebuffer_foveated.txt',
-    },
-    'GL_QCOM_texture_foveated' : {
-        'esnumber' : 293,
-        'flags' : { 'public' },
-        'url' : 'extensions/QCOM/QCOM_texture_foveated.txt',
-    },
-    'GL_QCOM_shader_framebuffer_fetch_noncoherent' : {
-        'esnumber' : 277,
-        'flags' : { 'public' },
-        'url' : 'extensions/QCOM/QCOM_shader_framebuffer_fetch_noncoherent.txt',
-    },
     'GL_REND_screen_coordinates' : {
         'number' : 155,
         'flags' : { 'public' },
diff --git a/xml/gl.xml b/xml/gl.xml
index 067b3b3..1b36b68 100644
--- a/xml/gl.xml
+++ b/xml/gl.xml
@@ -49090,6 +49090,8 @@
                 <command name="glFramebufferFetchBarrierQCOM"/>
             </require>
         </extension>
+        <extension name="GL_QCOM_shader_framebuffer_fetch_rate" supported="gles2">
+        </extension>
         <extension name="GL_QCOM_tiled_rendering" supported="gles1|gles2">
             <require>
                 <enum name="GL_COLOR_BUFFER_BIT0_QCOM"/>
