XYUV test, frag shader clean-ups, and shader garbage collection
This MR depends on !132 (merged).
Fixes: #462 (closed)
This is the follow-up for the loose ends from !132 (merged):
- Clean up drm_fourcc.h fallback definitions and make a single place for them and
XYUV8888format in GL-renderer, so that
- the new test case for
XYUV8888can exercise the XYUV shader variant in CI. This means all shader variants except EXTERNAL are now exercised in CI.
- Fragment shader gets a series of clean-ups and documentation, addressing what was dropped from !132 (merged) when I took over.
- Fragment shader programs get a garbage collection mechanism, which can be seen to operate with
- the added debug logs for shader programs.
I tested the garbage collection by hack-patching the minimum number of kept shaders to 1 and the expiry time to 1 second, and running
weston-simple-dmabuf-v4l -f YUYV which hits the EXTERNAL shader variant. Open
weston-debug gl-shader-generator and you see the EXTERNAL shader deleted shortly after you quit the V4L client, provided something still happens on Weston outputs.
"gl-renderer: drop R8 and GR88 definitions" is the first original commit in this series, the earlier ones belong to MRs this depends on.