3a474556b8
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 |
||
---|---|---|
.. | ||
cogl | ||
cogl-pango | ||
test-fixtures | ||
tests | ||
.gitignore | ||
cogl-config.h.meson | ||
cogl-mutter-config.h.in | ||
config-custom.h | ||
meson.build |