Summary: | Shared Memory queuing up in xlib backend for slow X Server 1.9.5 | ||
---|---|---|---|
Product: | cairo | Reporter: | kasberger |
Component: | xlib backend | Assignee: | Chris Wilson <chris> |
Status: | RESOLVED MOVED | QA Contact: | cairo-bugs mailing list <cairo-bugs> |
Severity: | normal | ||
Priority: | medium | ||
Version: | 1.12.16 | ||
Hardware: | x86 (IA32) | ||
OS: | Linux (All) | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
kasberger
2014-02-26 11:46:20 UTC
Why is the client running unthrottled? I don't know how I can throttle the vnc client. It is getting a new screen from vnc server for displaying it and it is doing it. Sorry maybe I have missed the point of your question at all. Oh forget it using cairo_scale what causes the heavy computations on an old Intel Atom with EMGD (PowerVR) and poorly supported driver from Intel Ok I think if nobody feels responsible for this problem it is better to close this bug. I have no possibility to see from application that cairo xlib backend is flooding th xserver. a) Cairo claims it is not responsibility of cairo if XServer is too slow b) and Xserver cannot change anything if data are coming faster as Xserver can work on it I have just added a patch in my xlib backend that will always sync with Xserver if the 32 MB shared memory page is full but this is not a good solution just a workaround My point is that the client is pushing data faster than the Xserver can render it, so the client is building up a massive output latency. It tends to cause very annoying lag. However, how to close that feedback loop is not obvious and may require an extra interface in cairo (something like cairo_device_throttle). (In reply to comment #5) > My point is that the client is pushing data faster than the Xserver can > render it, so the client is building up a massive output latency. It tends > to cause very annoying lag. However, how to close that feedback loop is not > obvious and may require an extra interface in cairo (something like > cairo_device_throttle). Yes, I agree. But if a client should do active throtteling means the client needs two things a) intelligence when throtteling is useful. How to measure the speed of a xserver? b) intelligence how to throttle down What about a kind of callback each time called when the cairo xlib backend allocates/deallocate a shared memory arena? For the client it would be a good hint there is something strange with xserver Or can you think for other measuremnt parameters indicating a a xserver load ? Oh I think I am too directly attached to my problem. What about cairo_device_throttle_strategy(..) e.g. with NONE (=old behavior), COWARD (=try to get in sync with xserver every time), BEST (=sync if really needed) ? Maybe second solution would be much better. What do you think? -- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/cairo/cairo/issues/212. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.