After more 1 000 000 (one million) views on forum for 1.5.0.x development versions... and 1.6.0.0 version
A new stable version, UltraVNC 1.6.1.0 and UltraVNC SC 1.6.1.0 have been released: https://forum.uvnc.com/viewtopic.php?t=38080
Feedback is welcome

Celebrating the 22th anniversary of the UltraVNC (25th anniversary since the laying of the foundation stone): https://forum.uvnc.com/viewtopic.php?t=38031

Important: Please update to latest version before to create a reply, a topic or an issue: https://forum.uvnc.com/viewtopic.php?t=37864

Forum password change request: https://forum.uvnc.com/viewtopic.php?t=38078

Development: UltraVNC development is always here... Any help is welcome.
A new development version, UltraVNC 1.6.2.0-dev has been released, please test it: https://forum.uvnc.com/viewtopic.php?t=38083
Feedback is welcome

Join us on social networks and share our announcements:
- Website: https://uvnc.com/
- GitHub: https://github.com/ultravnc
- Mastodon: https://mastodon.social/@ultravnc
- Bluesky/AT Protocol: https://bsky.app/profile/ultravnc.bsky.social
- Facebook: https://www.facebook.com/ultravnc1
- X/Twitter: https://x.com/ultravnc1
- Reddit community: https://www.reddit.com/r/ultravnc
- OpenHub: https://openhub.net/p/ultravnc

Problem with too many full frame updates at start

Developers may discuss here
Post Reply
tobybuk
Posts: 1
Joined: 2015-03-06 21:02

Problem with too many full frame updates at start

Post by tobybuk »

Hi all

I have an issue which is with UltraVnc that seems inexplicable:

I have written a specialised RFB client and it works well except for the initial screen update - I seem to be getting two full screen updates as opposed to an initial full screen and then just differences.

My client does the following:

1. Opens the socket and Negotiates 8 Bit, no auth and the following encodings: CopyRect, Hextile, RRE, Raw (The client and server are on the same machine - loopback enabled.)
2. The client then sends a RfbRequestFrameBufferUpdate for the full screen with incremental = false
3. Server sends a full screen as expected.
3. The client then sends a RfbRequestFrameBufferUpdate for the full screen with incremental = true
4. The server sends another full screen - obviously unnecessary.
5. Further RfbRequestFrameBufferUpdate results in just the changed regions.

I've tried debugging the server but it looks like it will take a heavy time investment to get into what its really doing. If someone could shed some light on this I'd be very grateful.

I'd be happy to supply debug or PCAP traces.

Many thanks

Toby


Windows 7 SP1
NO mirror driver or hooks.
UltraVnc 1.2.0.5
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6950
Joined: 2004-04-23 10:21
Contact:

Re: Problem with too many full frame updates at start

Post by Rudi De Vos »

under investigation
UltraVNC links (join us on social networks):
- Website: https://uvnc.com/
- Forum: https://forum.uvnc.com/
- GitHub sourcecode: https://github.com/ultravnc/UltraVNC
- Mastodon: https://mastodon.social/@ultravnc
- Bluesky/AT Protocol: https://bsky.app/profile/ultravnc.bsky.social
- Facebook: https://www.facebook.com/ultravnc1
- X/Twitter: https://x.com/ultravnc1
- Reddit community: https://www.reddit.com/r/ultravnc
- OpenHub: https://openhub.net/p/ultravnc
- uvnc2me: https://uvnc2me.com/
stefano2015
Posts: 1
Joined: 2015-03-19 10:28

Re: Problem with too many full frame updates at start

Post by stefano2015 »

I had same problem. It is still unsolved.
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6950
Joined: 2004-04-23 10:21
Contact:

Re: Problem with too many full frame updates at start

Post by Rudi De Vos »

This wil be fixed in next release

vncdesktopthread.cpp

Code: Select all

//BOOL screensize_changed=false;
				BOOL monitor_changed=true;
				rfbServerInitMsg oldscrinfo;

Code: Select all

//BOOL screensize_changed=false;
				BOOL monitor_changed=false;
				BOOL initial_run = false;
				if (m_desktop->m_old_monitor == 6) initial_run = true;
				rfbServerInitMsg oldscrinfo;

Code: Select all

					m_desktop->m_buffer.BlackBack();


					}
					m_desktop->m_buffer.ClearCache();
					m_desktop->m_buffer.BlackBack();
					InvalidateRect(NULL,NULL,TRUE);

Code: Select all

m_desktop->m_buffer.BlackBack();


					}
					if (!initial_run)
					{
						initial_run = false;
						m_desktop->m_buffer.ClearCache();
						m_desktop->m_buffer.BlackBack();
					}
					InvalidateRect(NULL,NULL,TRUE);
UltraVNC links (join us on social networks):
- Website: https://uvnc.com/
- Forum: https://forum.uvnc.com/
- GitHub sourcecode: https://github.com/ultravnc/UltraVNC
- Mastodon: https://mastodon.social/@ultravnc
- Bluesky/AT Protocol: https://bsky.app/profile/ultravnc.bsky.social
- Facebook: https://www.facebook.com/ultravnc1
- X/Twitter: https://x.com/ultravnc1
- Reddit community: https://www.reddit.com/r/ultravnc
- OpenHub: https://openhub.net/p/ultravnc
- uvnc2me: https://uvnc2me.com/
Post Reply