Request a v3 context
diff --git a/Android.mk b/Android.mk
index 4412088..f7575fe 100644
--- a/Android.mk
+++ b/Android.mk
@@ -27,7 +27,7 @@
     libutils \
     libz \
     libEGL \
-    libGLESv2
+    libGLESv3
 
 LOCAL_STATIC_LIBRARIES += \
     libvncserver
diff --git a/src/EglWindow.cpp b/src/EglWindow.cpp
index c534b02..60e9b49 100644
--- a/src/EglWindow.cpp
+++ b/src/EglWindow.cpp
@@ -142,7 +142,7 @@
     }
 
     EGLint contextAttribs[] = {
-        EGL_CONTEXT_CLIENT_VERSION, 2,
+        EGL_CONTEXT_CLIENT_VERSION, 3,
         EGL_NONE
     };
     mEglContext = eglCreateContext(mEglDisplay, mEglConfig, EGL_NO_CONTEXT,
diff --git a/src/Program.cpp b/src/Program.cpp
index 72c11aa..e2dbd76 100644
--- a/src/Program.cpp
+++ b/src/Program.cpp
@@ -20,7 +20,8 @@
 
 #include "Program.h"
 
-#include <GLES2/gl2.h>
+#include <GLES3/gl3.h>
+#include <GLES3/gl3ext.h>
 #include <GLES2/gl2ext.h>
 
 #include <assert.h>
diff --git a/src/Program.h b/src/Program.h
index 558be8d..1d70887 100644
--- a/src/Program.h
+++ b/src/Program.h
@@ -20,7 +20,7 @@
 #include <utils/Errors.h>
 
 #include <EGL/egl.h>
-#include <GLES2/gl2.h>
+#include <GLES3/gl3.h>
 
 namespace android {