From 391f513c366dff5a03c7d31ec6be74e1e2c1093d Mon Sep 17 00:00:00 2001 From: Pekka Paalanen Date: Mon, 22 Mar 2021 16:42:40 +0200 Subject: [PATCH] gl-renderer: fragment shader precision to high Always when supported, make the fragment shader default floating point precision high. The medium precision is roughly like half-floats, which can be surprisingly bad. High precision does not reach even normal 32-bit float precision (by specification), but it's better. GL ES implementations are allowed to exceed the minimum precision requirements given in the specification. This is an advance attempt to avoid nasty surprises from poor shader precision. Signed-off-by: Pekka Paalanen --- libweston/renderer-gl/fragment.glsl | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libweston/renderer-gl/fragment.glsl b/libweston/renderer-gl/fragment.glsl index daa9cf67..5d975fea 100644 --- a/libweston/renderer-gl/fragment.glsl +++ b/libweston/renderer-gl/fragment.glsl @@ -46,7 +46,13 @@ #extension GL_OES_EGL_image_external : require #endif -precision mediump float; +#ifdef GL_FRAGMENT_PRECISION_HIGH +#define HIGHPRECISION highp +#else +#define HIGHPRECISION mediump +#endif + +precision HIGHPRECISION float; /* * These undeclared identifiers will be #defined by a runtime generated code