Reapply "Fix texture sampling in fragment shader."

... skipping unit test on devices without the
required EGL extension.

Because the input surface uses semiplanar
YCbCr420 it needs GL_EXT_YUV_target to
correctly sample the texture.

Previously used samplerExternalOES doesn't
respect the memory layout correctly which
caused incorrect colors in rendered image.

In order to use the extension, this cl
rewrites the texture fragment shader to
use v3 GLSL.

It also adds unit tests to verify the
shaders compile correctly in presubmit
and modifies the test pattern so it's
easier to catch color mismatch.

Bug: 301023410
Test: OpenCamera
Test: atest virtual_camera_tests
Change-Id: I125c77c330d7ec005191f146f19e996339c63763
6 files changed