Reducing GL context switches
Martin Robinson <[email protected]>
| Newsgroups | gmane.comp.lib.cairo |
|---|---|
| Message-ID | <[email protected]> |
Recently I've been experimenting with ways to reduce unnecessary context switches in the GL backend. Based on input from Henry Song and Chris Wilson I've written two patches at: https://github.com/mrobinson/cairo/tree/reduce-context-switches 1. This patch adds two new APIs, cairo_glx_device_set_thread_aware and cairo_egl_device_set_thread_aware. When a device sets "thread-aware" to false, it simply does not release the context after painting. This should work well for applications that do not try to access the same OpenGL context from different threads. 2. The second patch tracks what context was active upon activating Cairo's painting context. After painting, it restores the previously active context or, if no change took place, does nothing. I think this improves Cairo's current behavior because it makes a Cairo paint slightly more "invisible." I'd love to get some feedback on these patches. They are both pretty simple. I've tested them locally with seemingly no regressions. --Martin -- cairo mailing list [email protected] http://lists.cairographics.org/mailman/listinfo/cairo