1
0
Fork 0
mutter-performance-source/cogl/winsys
Robert Bragg 042dc7c8cd framebuffer: Optimize _cogl_framebuffer_flush_state()
Previously the cost of _cogl_framebuffer_state_flush() would always
scale by the total amount of state tracked by CoglFramebuffer even in
cases where we knew up-front that we only wanted to flush a subset of
the state or in cases where we requested to flush the same framebuffer
multiple times with no changes being made to the framebuffer.

We now track a set of state changed flags with each framebuffer and
track the current read/draw buffers as part of the CoglContext so that
we can quickly bail out when asked to flush the same framebuffer
multiple times with no changes.

_cogl_framebuffer_flush_state() now takes a mask of the state that we
want to flush and the implementation has been redesigned so that the
cost of checking what needs to be flushed and flushing those changes
now scales by how much state we actually plan to update.

Reviewed-by: Neil Roberts <neil@linux.intel.com>
2011-12-06 18:51:57 +00:00
..
cogl-texture-pixmap-x11-private.h texture-pixmap-x11: Move GLX code to cogl-winsys-glx.c 2011-05-05 14:46:01 +01:00
cogl-texture-pixmap-x11.c Remove inclusion of Xlib headers in Cogl headers 2011-11-01 15:55:53 +00:00
cogl-texture-pixmap-x11.h docs: Adds various missing 2.0 sections and symbols 2011-11-01 12:03:04 +00:00
cogl-winsys-egl-feature-functions.h kms: Check for EGL_KHR_surfaceless_opengl extension 2011-11-28 17:38:17 +00:00
cogl-winsys-egl-private.h build: Add missing include in cogl-winsys-egl-private.h 2011-12-06 19:49:00 +01:00
cogl-winsys-egl.c kms: flatten setup_kms into _cogl_winsys_kms_display_setup 2011-11-28 17:38:15 +00:00
cogl-winsys-glx-feature-functions.h winsys-glx: Fix synchronisation behaviour in _cogl_winsys_onscreen_swap_region 2011-09-19 16:40:06 +01:00
cogl-winsys-glx.c framebuffer: Optimize _cogl_framebuffer_flush_state() 2011-12-06 18:51:57 +00:00
cogl-winsys-kms.c kms: Avoid using struct member before it is set 2011-11-30 15:37:09 +00:00
cogl-winsys-kms.h kms: avoid using redundant g* and GL* types 2011-11-28 22:43:15 +00:00
cogl-winsys-private.h framebuffer: split out CoglOnscreen code 2011-11-01 12:03:02 +00:00
cogl-winsys-sdl.c Don't use the 'NULL' GModule to resolve GL symbols 2011-07-27 16:10:02 +01:00
cogl-winsys-stub-private.h Make stub winsys into a proper winsys backend 2011-06-01 20:44:41 +01:00
cogl-winsys-stub.c Update cogl/winsys/cogl-winsys-stub.c 2011-11-23 12:16:45 +00:00
cogl-winsys-wgl-feature-functions.h Add a WGL winsys 2011-05-10 17:58:41 +01:00
cogl-winsys-wgl.c Start to reduce dependence on glib 2011-11-01 12:03:02 +00:00
cogl-winsys.c Don't use the 'NULL' GModule to resolve GL symbols 2011-07-27 16:10:02 +01:00