On 09/03/2013 03:26 AM, Zhao, Halley wrote:
More questions:
1.I searched inside mesa code, there is wl_display_create_queue(), but
no wl_event_queue_destroy(), is it a bug?
That seems to be missing from the clean up path. However, before
destroying the queue, we need to make sure there is no proxy that uses
that queue, otherwise a crash would happen if the proxy received an
event after the queue was destroyed.
2.I searched inside Weston code, there is no wl_buffer_send_release(),
is there other way to send the event of WL_BUFFER_RELEASE?
Look at weston_buffer_reference() in compositor.c. That function uses
wl_resource_queue_event() to add the event to the connection buffer
without flushing it and causing a context switch().
3.What’s the design philosophy of wl_buffer_send_release?
a)I had thought the event is sent when server doesn’t use wl_buffer any
longer
That is correct.
i.when a new wl_buffer is committed (release previous committed buffer)
ii.When the corresponding wl_surface is destroying (release the
committed buffer)
iii.When a second wl_buffer is attached before commit (release the
previous attached one)
For the case of SHM buffers, the release event is sent after a texture
upload, because at that moment a copy of the buffer is created. However,
EGL buffers aren't copied so the release event is only sent when the
buffer is replaced by a new one.
b)However, the above assumption doesn’t work well with mesa. With nested
server in webkit.
Seems mesa requires wayland server send wl_buffer_send_release upon attach.
Could you elaborate on that?
Cheers,
Ander
_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel