From d278015d0060b4d2ba60f56ea7df95d0cde7951c Mon Sep 17 00:00:00 2001 From: Pekka Paalanen Date: Mon, 8 Feb 2021 17:18:25 +0200 Subject: [PATCH] gl-renderer: drop redundant texture lookups Do not call texture2D() in the shader when we already have the result. Simpler code, maybe even a little bit faster? Suggested-by: Harish Krupo Signed-off-by: Pekka Paalanen --- libweston/renderer-gl/fragment.glsl | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/libweston/renderer-gl/fragment.glsl b/libweston/renderer-gl/fragment.glsl index 8a922afe..43cf8281 100644 --- a/libweston/renderer-gl/fragment.glsl +++ b/libweston/renderer-gl/fragment.glsl @@ -106,22 +106,18 @@ main() } else if (c_variant == SHADER_VARIANT_Y_UV) { yuva.x = texture2D(tex, v_texcoord).x; - yuva.y = texture2D(tex1, v_texcoord).r; - yuva.z = texture2D(tex1, v_texcoord).g; + yuva.yz = texture2D(tex1, v_texcoord).rg; yuva.w = alpha; gl_FragColor = yuva2rgba(yuva); } else if (c_variant == SHADER_VARIANT_Y_XUXV) { yuva.x = texture2D(tex, v_texcoord).x; - yuva.y = texture2D(tex1, v_texcoord).g; - yuva.z = texture2D(tex1, v_texcoord).a; + yuva.yz = texture2D(tex1, v_texcoord).ga; yuva.w = alpha; gl_FragColor = yuva2rgba(yuva); } else if (c_variant == SHADER_VARIANT_XYUV) { - yuva.x = texture2D(tex, v_texcoord).b; - yuva.y = texture2D(tex, v_texcoord).g; - yuva.z = texture2D(tex, v_texcoord).r; + yuva.xyz = texture2D(tex, v_texcoord).bgr; yuva.w = alpha; gl_FragColor = yuva2rgba(yuva);