mutter/cogl
Daniel van Vugt eae21f01dd cogl-texture-2d: Flush the journal before mipmapping
In the case of indirect rendering like the first frame to use mutter's
background wallpaper:

  Texture_A -> FBO_B (Texture_B) -> FBO_C (screen)

we would be trying to render the contents of both FBO_B and FBO_C in
the same flush, before the contents of Texture_A had made it to FBO_B.
So when FBO_C wants to use mipmaps of Texture_B they didn't exist yet
and appeared all black. And the blackness would remain for subsequent
frames as cogl has now decided the mipmaps of FBO_B are no longer
"dirty" and don't need refreshing:

  FBO_B (Texture_B) (mipmaps_dirty==FALSE but black) -> FBO_C (screen)

We must flush FBO_B before referencing Texture_B for use in rendering
FBO_C. This only happens when Texture_A changes (e.g. when the user
changes their background wallpaper) so there's no ongoing performance
penalty from this flush.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1347

(cherry picked from commit 3a474556b8)
2020-07-30 20:34:47 +02:00
..
cogl cogl-texture-2d: Flush the journal before mipmapping 2020-07-30 20:34:47 +02:00
cogl-pango cogl-pango: Special case alpha of 0 for color glyphs 2020-03-29 12:53:39 +00:00
cogl-path cogl: Mark exported cogl symbols using COGL_EXPORT 2020-03-26 09:05:38 +01:00
test-fixtures cogl: Mark exported cogl symbols using COGL_EXPORT 2020-03-26 09:05:38 +01:00
tests cogl: Remove no-op cogl_shader_compile and cogl_shader_get_info_log 2020-02-12 21:55:44 +00:00
.gitignore cogl-framebuffer: Remove swap_throttled config 2018-12-06 14:29:34 +00:00
cogl-config.h.meson cogl: Add libsysprof capture based tracing 2019-05-31 11:55:56 -03:00
cogl-mutter-config.h.in cogl: Make cogl-config.h include check explicit 2018-11-06 17:17:36 +01:00
config-custom.h move everything into a cogl/ directory 2016-04-22 16:44:31 +02:00
meson.build Add Graphene dependency 2019-10-16 11:38:13 +00:00