diff --git a/src/mesa/drivers/dri/intel/intel_screen.c b/src/mesa/drivers/dri/intel/intel_screen.c
index 5233e58..7f580ae 100644
--- a/src/mesa/drivers/dri/intel/intel_screen.c
+++ b/src/mesa/drivers/dri/intel/intel_screen.c
@@ -408,6 +408,16 @@ static const __DRIextension *intelScreenExtensions[] = {
     &driFrameTrackingExtension.base,
     &driMediaStreamCounterExtension.base,
     &intelTexOffsetExtension.base,
+    NULL
+};
+
+static const __DRIextension *intelScreenExtensions_DRI2[] = {
+    &driReadDrawableExtension,
+    &driCopySubBufferExtension.base,
+    &driSwapControlExtension.base,
+    &driFrameTrackingExtension.base,
+    &driMediaStreamCounterExtension.base,
+    &intelTexOffsetExtension.base,
     &intelTexBufferExtension.base,
     NULL
 };
@@ -855,7 +865,7 @@ __DRIconfig **intelInitScreen2(__DRIscreenPrivate *psp)
       return GL_FALSE;
    }
 
-   psp->extensions = intelScreenExtensions;
+   psp->extensions = intelScreenExtensions_DRI2;
 
    return driConcatConfigs(intelFillInModes(psp, 16, 16, 0, 1),
 			   intelFillInModes(psp, 32, 24, 8, 1));