I wrote: > • It seems to cause the nested-client to cycle between three buffers > while rendering whereas previously it would only use two. I may have > messed something up with the ordering between the frame callbacks and > the buffer release events but I'm not sure yet.
I think I got to the bottom of why this is happening. The buffers created in Mesa are created via a request on the wl_drm object. That means they will use the wl_drm object as a proxy factory and they will end up using Mesa's internal event queue. That was causing the buffer release event to be handled only when control is given back to Mesa in eglSwapBuffers which happens after the nested compositor has seen the frame callback event and passed it on to the client. Therefore the client would start drawing before it has seen the buffer release event so it would end up needing a third buffer. My proposed solution to this is to just reset the buffer's event queue back to the main event queue after creating it. It doesn't look like there's a way to do that in the current Wayland client API so I'm attaching a patch to add a getter for the default event queue. I am also attaching a second version of the Mesa patch to take advantage of that. Regards, - Neil --------------------------------------------------------------------- Intel Corporation (UK) Limited Registered No. 1134945 (England) Registered Office: Pipers Way, Swindon SN3 1RJ VAT No: 860 2173 47 This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). Any review or distribution by others is strictly prohibited. If you are not the intended recipient, please contact the sender and delete all copies. _______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
