1
0
Fork 0
mutter-performance-source/cogl
Daniel van Vugt 3a474556b8 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
2020-07-07 16:15:24 +08:00
..
cogl cogl-texture-2d: Flush the journal before mipmapping 2020-07-07 16:15:24 +08:00
cogl-pango cogl: Use autopointers to free structs on return 2020-04-12 21:40:20 +00:00
test-fixtures cogl tests: Normally skip tests that are not expected to succeed 2020-06-02 20:15:26 +00:00
tests clutter/stage: Remove color property 2020-06-27 13:35:46 +00:00
.gitignore cogl: Remove CoglPath and the tesselator 2020-04-08 11:38:48 +02: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 cogl/dma-buf: Add API to synchronize reading 2020-05-26 13:54:28 +00:00