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.

-> 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.

Environment

None

Activity

Show:

Walt Miner 
July 13, 2021 at 4:41 PM

Close for LL 12.0.0

Marius Vlad 
April 9, 2021 at 8:04 AM

Technically this is not a bug, we've design it initially this way. 

Walt Miner 
April 8, 2021 at 5:14 PM

 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?

Details

Assignee

Reporter

Fix versions

Labels

Components

Priority

Created March 6, 2021 at 6:53 PM
Updated October 26, 2021 at 9:24 AM
Resolved April 8, 2021 at 8:39 AM

Flag notifications