Possible bug in compositor-rdp.c (Marek Romanowicz)

2013-08-06 Thread Marek Romanowicz
Hi all,

 

I am not sure if compositor-rdp.c acts as authors intended it to. I
managed to make it running after several attempts together with wayland
and connect to it over RDP protocol using xfreerdp from another machine
running Ubuntu 13.10. Xfreerdp client obtained initial Wayland desktop
image over the network however it did not seem to be receiving any screen
updates until I moved its window on the client side so I investigated it
further and noticed  these lines within rdp_output_repaint function:

 

if ((outputPeer-flags  RDP_PEER_ACTIVATED) 
(outputPeer-flags  RDP_PEER_OUTPUT_ENABLED))
{
rdp_peer_refresh_region(damage, outputPeer-peer);
}

 

As it turned out, compositor-rdp.c  wanted to send an update of the
display having received every input signal or changed display but these
two flags don't seem to be both set at the same time except for when I
move a window on the client side. Looking into it further I noticed that
the problem was with RDP_PEER_OUTPUT_ENABLED flag as the other one
appeared to be set whenever there is a repaint request. Has anyone
encountered a similar problem?

 

Kind regards,

Marek Romanowicz

 

___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel


Re: Possible bug in compositor-rdp.c (Marek Romanowicz)

2013-08-06 Thread David FORT

On 06/08/2013 17:28, Marek Romanowicz wrote:


Hi all,

I am not sure if compositor-rdp.c acts as authors intended it to. I 
managed to make it running after several attempts together with 
wayland and connect to it over RDP protocol using xfreerdp from 
another machine running Ubuntu 13.10. Xfreerdp client obtained initial 
Wayland desktop image over the network however it did not seem to be 
receiving any screen updates until I moved its window on the client 
side so I investigated it further and noticed  these lines within 
rdp_output_repaint function:


if ((outputPeer-flags  RDP_PEER_ACTIVATED) 
(outputPeer-flags  RDP_PEER_OUTPUT_ENABLED))
{
rdp_peer_refresh_region(damage, outputPeer-peer);
}

As it turned out, compositor-rdp.c  wanted to send an update of the 
display having received every input signal or changed display but 
these two flags don't seem to be both set at the same time except for 
when I move a window on the client side. Looking into it further I 
noticed that the problem was with RDP_PEER_OUTPUT_ENABLED flag as the 
other one appeared to be set whenever there is a repaint request. Has 
anyone encountered a similar problem?



Good catch, the flags should be initialized with 
RDP_PEER_OUTPUT_ENABLED. I've never seen it because when the xfreerdp 
client window is focused/unfocused it sends appropriate suspend output 
messages.


A patch will follow.

Regards.
___
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel