Update: UltraVNC 1.4.3.6 and UltraVNC SC 1.4.3.6: viewtopic.php?t=37885
Important: Please update to latest version before to create a reply, a topic or an issue: viewtopic.php?t=37864

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

OpenGL accelerated viewer

Any features you would like to see in UltraVNC? Propose it here
Post Reply
yooyo3d
Posts: 2
Joined: 2009-01-21 10:33

OpenGL accelerated viewer

Post by yooyo3d »

Hi,

Is there any chance to reorganise viewer code to relies on externaly provided library for rendering? Right now I have created my own VNC viewer based on OpenGL rendering API. I can connect to several VNC servers at same time and place their desktops on 3D... see pictures:

Image
Image

I did try to cleanup viewer code to achive such feature but now code too differ from original. Bacically, i changed viewer to deliver remote desktop as OpenGL texture. With additional code to handle mouse in 3d I build fully functional 3d VNC viewer. Because it uses hw acceleration scaling is "free" and viewer runs much faster than GDI version.

Now.. the question (for developers) is.. Do you want to spent some time to cleanup viewer code and use externaly provided rendering interface? Even more.. if you are intresting in this, I can join to dev team and handle this part of project.

Another succestion is to update server to use externally provided JPG encoder and viewer to use externaly provided JPG decoder. Intel's IJL is ~10x faster than JPEGLIB. User that have Intel IPP licence can build .dll/.so with JPEG codec and setup vnc serer and client to use it. It will speedup image transfer.
pro’ gram mer (n.) - An organism that converts caffeine into code.
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6838
Joined: 2004-04-23 10:21
Contact:

Re: OpenGL accelerated viewer

Post by Rudi De Vos »

You better should have used the "tabbed viewer" as base.
The tab viewer use direct3D surfaces to display multiple viewers in a mdi window.
I tryied once to attached the surface to a 3D rotating cube ( using directx)
, but never succeeded.
Your samples look nice ::)

Intel ijl is indeed faster and the ipp zlib give even more acceleration.
If you even want to go faster you can use Mjpeg and reuse the Huffman tables for each image.
Only, GPL require you to be able to compile without the use of priority
libs... My own version use ipp, but the GPL version can't.
PS: Users don't need an intel license, only the developper need one and can royalty free distribute there exe.

For the same reason, using an external lib without adding the source is not allowed by GPL, you can only use it intern.

If you want to create a 3D viewer, and add the source for it to svn we can
work together, only, i current have little time ( some commercial projects need to be finished first). But can make some time in the future.
Last edited by Rudi De Vos on 2009-01-21 14:58, edited 1 time in total.
yooyo3d
Posts: 2
Joined: 2009-01-21 10:33

Re: OpenGL accelerated viewer

Post by yooyo3d »

I started this mod from 1.02 and there is no tabbed viewer framework. Because I needed to totally understand how viewer works I have to chop off a lot code from original viewer, remove windowing stuff, etc.. Even more I didnt support all compressions so there is more things to work.

What I did is to change all common encoders to create rendering job for external renderer instead issuing GDI calls. External renderer runs in its own loop (thread) and once per frame check is there something to update. Then it locks job queue, execute pending jobs (ie.. draw rects, images, ...) and result is modified texture. Because im OpenGL guru, I know how to achive fastest possible codepath using OpenGL API, so peformaces are realy good.

Regarding IJL I know that developers must have licence. My idea is tu create just "plugin" code and release source code for it. Next thing will be to make two different implementation...
1. using JPGLIB with full source code and
2. using IJL (just with plugin stub code). Developers who have Intel lience can rebuild this plugin... others cannot. Im not sure is this GPL viloation or not.

I wold like to join this project.. so when you have more time please email me to contribute my code.

btw.. is there any chance to upload exe on this forum if someone wants to try?
Last edited by yooyo3d on 2009-01-21 23:39, edited 1 time in total.
pro’ gram mer (n.) - An organism that converts caffeine into code.
redge
1000
1000
Posts: 6797
Joined: 2004-07-03 17:05
Location: Switzerland - Geneva

Re: OpenGL accelerated viewer

Post by redge »

> is there a vncviewer/winvnc with VirtualGL/TurboVNC for windows ?

yes,
here the linux version and windows version TurboVNC*.exe
http://sourceforge.net/projects/virtualgl/files/
Last edited by redge on 2009-11-28 01:54, edited 2 times in total.
UltraVNC 1.0.9.6.1 (built 20110518)
OS Win: xp home + vista business + 7 home
only experienced user, not developer
redge
1000
1000
Posts: 6797
Joined: 2004-07-03 17:05
Location: Switzerland - Geneva

Re: OpenGL accelerated viewer

Post by redge »

yooyo3d wrote:btw.. is there any chance to upload exe on this forum if someone wants to try?
I would be happy to try
you can host on your own instant file like web while your are online with Opera 10.10
UltraVNC 1.0.9.6.1 (built 20110518)
OS Win: xp home + vista business + 7 home
only experienced user, not developer
redge
1000
1000
Posts: 6797
Joined: 2004-07-03 17:05
Location: Switzerland - Geneva

Re: OpenGL accelerated viewer

Post by redge »

> is there a vncviewer/winvnc with VirtualGL/TurboVNC for windows ?

found TigerVNC (replace TurboVNC based remote VirtualGL)
[topic=16637][/topic]


cross OS plateform and open source :-)
but weird slow, i must miss something.
Last edited by redge on 2009-12-18 21:50, edited 1 time in total.
UltraVNC 1.0.9.6.1 (built 20110518)
OS Win: xp home + vista business + 7 home
only experienced user, not developer
redge
1000
1000
Posts: 6797
Joined: 2004-07-03 17:05
Location: Switzerland - Geneva

Re: OpenGL accelerated viewer

Post by redge »

Rudi De Vos wrote:Intel ijl is indeed faster and the ipp zlib give even more acceleration.
If you even want to go faster you can use Mjpeg and reuse the Huffman tables for each image.
Only, GPL require you to be able to compile without the use of priority
libs... My own version use ipp, but the GPL version can't.
PS: Users don't need an intel license, only the developper need one and can royalty free distribute there exe.
Darell Commander wrote:tuning the open source libjpeg/SIMD codec at the assembly level, resulting in double the performance.
reference creator of VirtualGL
http://www.linkedin.com/in/dcommander
Rudi,
I don't understand you about ijl and ipp zlib if the libjpeg/SIMD of intel since is open source.
Why is not implemented inside ultravnc open source,
are you worry broken your business ?
UltraVNC 1.0.9.6.1 (built 20110518)
OS Win: xp home + vista business + 7 home
only experienced user, not developer
User avatar
Rudi De Vos
Admin & Developer
Admin & Developer
Posts: 6838
Joined: 2004-04-23 10:21
Contact:

Re: OpenGL accelerated viewer

Post by Rudi De Vos »

Intel ipp are libs...
If you use ipp insite vnc, you need the libs to be able to compile vnc.
This mean that you can only compile vnc if you buy a intel license...
redge
1000
1000
Posts: 6797
Joined: 2004-07-03 17:05
Location: Switzerland - Geneva

Re: OpenGL accelerated viewer

Post by redge »

This mean that you can only compile vnc if you buy a intel license...
do you have vncviewer 1.0.82 or/and winvnc 1.0.8.2 exe file for see difference performance ?
UltraVNC 1.0.9.6.1 (built 20110518)
OS Win: xp home + vista business + 7 home
only experienced user, not developer
Post Reply