agl-compositor doesn't send maximized surface size from the beginning
Fixed
Description
I have noticed two issues. They have a different description but they might be related.
1. I have wrote XDG application. And I noticed that it is not activated by default if surface has no buffer attached.
2. weston-simple-egl first receives xdg_toplevel@configure with zero width and height. And only after it starts attaching buffer with default dimension 250x250, it receives xdg_toplevel@configure with 1920x1080.
Technically this is not a bug, we've design it initially this way.
Walt Miner
April 8, 2021 at 5:14 PM
@Marius Vlad Cherry pick to Koi?
Marius Vlad
April 8, 2021 at 8:39 AM
This has been fixed in the latest version of the compositor. Need to bump SRCREV to include it.
Marius Vlad
March 10, 2021 at 11:00 PM
Presentation is delayed until the shell UI is started. I don't see how that would ut send the correct geometry given that a) it doesn't have, as it can't know which are the panel dimensions which are used to compute the geometry area b) the same code handles the same bits. Not only but with the patch that I have posted on gerrit pending surfaces will need to resize from the reasons I just explained above in those points.
If don't you mind maybe you can give the patch a try and see if that helps?
I have noticed two issues. They have a different description but they might be related.
1. I have wrote XDG application. And I noticed that it is not activated by default if surface has no buffer attached.
2. weston-simple-egl first receives xdg_toplevel@configure with zero width and height. And only after it starts attaching buffer with default dimension 250x250, it receives xdg_toplevel@configure with 1920x1080.
-> wl_compositor@4.create_surface(new id wl_surface@8) -> xdg_wm_base@7.get_xdg_surface(new id xdg_surface@11, wl_surface@8) -> xdg_surface@11.get_toplevel(new id xdg_toplevel@12) -> xdg_toplevel@12.set_title("simple-egl") -> wl_surface@8.commit() -> wl_compositor@4.create_surface(new id wl_surface@13) xdg_toplevel@12.configure(0, 0, array) xdg_surface@11.configure(8) -> xdg_surface@11.ack_configure(8) -> wl_surface@8.set_opaque_region(nil) -> zwp_linux_dmabuf_v1@10.create_params(new id zwp_linux_buffer_params_v1@14) -> zwp_linux_buffer_params_v1@14.add(fd 18, 0, 0, 1024, 0, 0) -> zwp_linux_buffer_params_v1@14.create(250, 250, 875713089, 0) zwp_linux_buffer_params_v1@14.created(new id wl_buffer@3850979680) -> zwp_linux_buffer_params_v1@14.destroy() -> wl_surface@8.frame(new id wl_callback@15) -> wl_surface@8.attach(wl_buffer@4278190080, 0, 0) -> wl_surface@8.damage(0, 0, 250, 250) -> wl_surface@8.commit() -> wl_surface@8.set_opaque_region(nil) wl_display@1.delete_id(14) wl_display@1.delete_id(15) wl_callback@15.done(2130937) -> zwp_linux_dmabuf_v1@10.create_params(new id zwp_linux_buffer_params_v1@15) -> zwp_linux_buffer_params_v1@15.add(fd 19, 0, 0, 1024, 0, 0) -> zwp_linux_buffer_params_v1@15.create(250, 250, 875713089, 0) zwp_linux_buffer_params_v1@15.created(new id wl_buffer@3855288384) -> zwp_linux_buffer_params_v1@15.destroy() -> wl_surface@8.frame(new id wl_callback@14) -> wl_surface@8.attach(wl_buffer@4278190081, 0, 0) -> wl_surface@8.damage(0, 0, 250, 250) -> wl_surface@8.commit() xdg_toplevel@12.configure(1920, 1080, array)
I believe this is due to weston-simple-egl is not activated by default until it starts committing surface with attached buffer.
I think that proper behaviour should be that application receives xdg_toplevel@configure with final width/height from start.