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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.