diff --git a/libweston/renderer-gl/fragment.glsl b/libweston/renderer-gl/fragment.glsl index d431096b9..1ea95b2c1 100644 --- a/libweston/renderer-gl/fragment.glsl +++ b/libweston/renderer-gl/fragment.glsl @@ -119,7 +119,7 @@ uniform samplerExternalOES tex; uniform sampler2D tex; #endif -varying vec2 v_texcoord; +varying HIGHPRECISION vec2 v_texcoord; uniform sampler2D tex1; uniform sampler2D tex2; uniform float view_alpha; diff --git a/libweston/renderer-gl/vertex.glsl b/libweston/renderer-gl/vertex.glsl index 03282e331..8b8019c3c 100644 --- a/libweston/renderer-gl/vertex.glsl +++ b/libweston/renderer-gl/vertex.glsl @@ -25,10 +25,21 @@ * SOFTWARE. */ +/* Always use high-precision for vertex calculations */ +precision highp float; + +#ifdef GL_FRAGMENT_PRECISION_HIGH +#define FRAG_PRECISION highp +#else +#define FRAG_PRECISION mediump +#endif + uniform mat4 proj; attribute vec2 position; attribute vec2 texcoord; -varying vec2 v_texcoord; + +/* Match the varying precision to the fragment shader */ +varying FRAG_PRECISION vec2 v_texcoord; void main() {