summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPekka Paalanen <pekka.paalanen@collabora.com>2021-02-08 17:18:25 +0200
committerPekka Paalanen <pekka.paalanen@collabora.com>2021-02-25 14:36:46 +0200
commitd278015d0060b4d2ba60f56ea7df95d0cde7951c (patch)
treea67a7098f6cf0fd73e1f77b27aba3bd894af3cdd
parenta88144f9e10d0a174b6287b3e68e1abc52469ffc (diff)
downloadweston-d278015d0060b4d2ba60f56ea7df95d0cde7951c.tar.gz
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 <harishkrupo@gmail.com> Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.com>
-rw-r--r--libweston/renderer-gl/fragment.glsl10
1 files 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);