diff options
author | Pekka Paalanen <pekka.paalanen@collabora.com> | 2021-02-08 17:18:25 +0200 |
---|---|---|
committer | Pekka Paalanen <pekka.paalanen@collabora.com> | 2021-02-25 14:36:46 +0200 |
commit | d278015d0060b4d2ba60f56ea7df95d0cde7951c (patch) | |
tree | a67a7098f6cf0fd73e1f77b27aba3bd894af3cdd | |
parent | a88144f9e10d0a174b6287b3e68e1abc52469ffc (diff) | |
download | weston-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.glsl | 10 |
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); |