[GH-ISSUE #310] What FPS do you get in Remote Desktop? #148

Closed
opened 2026-02-27 15:49:03 +03:00 by kerem · 31 comments
Owner

Originally created by @itapi on GitHub (Jul 30, 2015).
Original GitHub issue: https://github.com/quasar/Quasar/issues/310

i didnt really know where to post it so i would do it here :).

just wanted to hear from you guys whats the fps ur runing the remote desktop connection? let say on 100 quality. give me an average number. (use lan because i dont calculate the network factor).
my for example is between 18~20.

Originally created by @itapi on GitHub (Jul 30, 2015). Original GitHub issue: https://github.com/quasar/Quasar/issues/310 i didnt really know where to post it so i would do it here :). just wanted to hear from you guys whats the fps ur runing the remote desktop connection? let say on 100 quality. give me an average number. (use lan because i dont calculate the network factor). my for example is between 18~20.
kerem 2026-02-27 15:49:03 +03:00
  • closed this issue
  • added the
    question
    label
Author
Owner

@MaxXor commented on GitHub (Jul 30, 2015):

You should measure the FPS when streaming a YT video.

<!-- gh-comment-id:126316125 --> @MaxXor commented on GitHub (Jul 30, 2015): You should measure the FPS when streaming a YT video.
Author
Owner

@itapi commented on GitHub (Jul 30, 2015):

@MaxXor allright i will. im asking this becuse i want to help this project.i developed a pairely nice algorithm for finding differences(using parralel and threads so it goes exteremly fast.) i'll post it here if its okay of you?

<!-- gh-comment-id:126318346 --> @itapi commented on GitHub (Jul 30, 2015): @MaxXor allright i will. im asking this becuse i want to help this project.i developed a pairely nice algorithm for finding differences(using parralel and threads so it goes exteremly fast.) i'll post it here if its okay of you?
Author
Owner

@MaxXor commented on GitHub (Jul 30, 2015):

@itapi You can create a fork and implement it, maybe it's better than the one xRAT has currently.

<!-- gh-comment-id:126320120 --> @MaxXor commented on GitHub (Jul 30, 2015): @itapi You can create a fork and implement it, maybe it's better than the one xRAT has currently.
Author
Owner

@ghost commented on GitHub (Jul 31, 2015):

Streaming a YT video with Remote Desktop full screen I'm getting ~7 frames which is sufficient enough for me :)

<!-- gh-comment-id:126688485 --> @ghost commented on GitHub (Jul 31, 2015): Streaming a YT video with Remote Desktop full screen I'm getting ~7 frames which is sufficient enough for me :)
Author
Owner

@yankejustin commented on GitHub (Aug 3, 2015):

@d3agle How good is your processor?

<!-- gh-comment-id:127087669 --> @yankejustin commented on GitHub (Aug 3, 2015): @d3agle How good is your processor?
Author
Owner

@ghost commented on GitHub (Aug 3, 2015):

@yankejustin, I have an i7 2600k @ 4.5GHz

<!-- gh-comment-id:127092233 --> @ghost commented on GitHub (Aug 3, 2015): @yankejustin, I have an i7 2600k @ 4.5GHz
Author
Owner

@yankejustin commented on GitHub (Aug 3, 2015):

@d3agle Wow. I'd imagine the FPS would be higher...

<!-- gh-comment-id:127315265 --> @yankejustin commented on GitHub (Aug 3, 2015): @d3agle Wow. I'd imagine the FPS would be higher...
Author
Owner

@ghost commented on GitHub (Aug 4, 2015):

@yankejustin, Well the client machine was 1920x1080 so it makes sense :P Would have to wait for the client to process a large image then send to server/receive from server

The remote desktop is fairly quick as it is. I've done some testing with Teamviewer (TCP) and the Remote Desktop (xRAT) is a little bit slower, but not by much. I'd say its pretty comparable.

Edit: It appears that the biggest bottle-neck is the control we are using the display the image. Setting my client to 1024x768 (75 quality), opening the Remote Desktop form and not re-sizing the control I'm getting ~25-30 fps. When I maximize the form, I'm getting around 7-10 frames max. I wonder what we can do to improve this...

<!-- gh-comment-id:127674517 --> @ghost commented on GitHub (Aug 4, 2015): @yankejustin, Well the client machine was 1920x1080 so it makes sense :P Would have to wait for the client to process a large image then send to server/receive from server The remote desktop is fairly quick as it is. I've done some testing with Teamviewer (TCP) and the Remote Desktop (xRAT) is a little bit slower, but not by much. I'd say its pretty comparable. Edit: It appears that the biggest bottle-neck is the control we are using the display the image. Setting my client to 1024x768 (75 quality), opening the Remote Desktop form and not re-sizing the control I'm getting ~25-30 fps. When I maximize the form, I'm getting around 7-10 frames max. I wonder what we can do to improve this...
Author
Owner

@ghost commented on GitHub (Aug 4, 2015):

Perhaps we could scale the image instead of stretching it? If we maintained the aspect ratio, maximizing the form wouldn't affect the frame rate (The same way teamviewer does it)

<!-- gh-comment-id:127755575 --> @ghost commented on GitHub (Aug 4, 2015): Perhaps we could scale the image instead of stretching it? If we maintained the aspect ratio, maximizing the form wouldn't affect the frame rate (The same way teamviewer does it)
Author
Owner

@itapi commented on GitHub (Aug 5, 2015):

@d3agle scaling the image using c# would probably reduce the quality of the image.
Secod thing,why should maximizing the form affect the frame rate? it make sense when you run both client and server on the same machine so its taking a screenshot of itself,but if you run the client on another computer ,it shouldnt bother at all...

<!-- gh-comment-id:127904295 --> @itapi commented on GitHub (Aug 5, 2015): @d3agle scaling the image using c# would probably reduce the quality of the image. Secod thing,why should maximizing the form affect the frame rate? it make sense when you run both client and server on the same machine so its taking a screenshot of itself,but if you run the client on another computer ,it shouldnt bother at all...
Author
Owner

@MaxXor commented on GitHub (Aug 5, 2015):

@itapi The problem is when maximizing the form the drawing/resizing of the image takes a lot of time. Either we stay with this or we use DirectX to draw the image (maybe we can use this wrapper: https://github.com/sharpdx/SharpDX).

<!-- gh-comment-id:128068660 --> @MaxXor commented on GitHub (Aug 5, 2015): @itapi The problem is when maximizing the form the drawing/resizing of the image takes a lot of time. Either we stay with this or we use DirectX to draw the image (maybe we can use this wrapper: https://github.com/sharpdx/SharpDX).
Author
Owner

@ghost commented on GitHub (Aug 5, 2015):

@MaxXor, We could go with SharpDX, or we could scale the image (like teamviewer does). I've been messing around with scaling the image and it seems like the fps when maximizing the form doesn't drop as much. Sure, the image quality may be a little bit less (lower res on client, higher res on host/server), but it would work well. I have the code to scale the image to the size of the RapidPictureBox control and maintaining the aspect ratio of the Client machine, but I am having trouble keeping the image centered in the control. I'm going to work on it for a little bit today, and if I can get it working I could send a PR so you could test. What do you think?

<!-- gh-comment-id:128104753 --> @ghost commented on GitHub (Aug 5, 2015): @MaxXor, We could go with SharpDX, or we could scale the image (like teamviewer does). I've been messing around with scaling the image and it seems like the fps when maximizing the form doesn't drop as much. Sure, the image quality may be a little bit less (lower res on client, higher res on host/server), but it would work well. I have the code to scale the image to the size of the RapidPictureBox control and maintaining the aspect ratio of the Client machine, but I am having trouble keeping the image centered in the control. I'm going to work on it for a little bit today, and if I can get it working I could send a PR so you could test. What do you think?
Author
Owner

@MaxXor commented on GitHub (Aug 5, 2015):

We are already resizing the image to the size of the RapidPictureBox here.

<!-- gh-comment-id:128116948 --> @MaxXor commented on GitHub (Aug 5, 2015): We are already resizing the image to the size of the `RapidPictureBox` [here](https://github.com/MaxXor/xRAT/blob/master/Server/Controls/RapidPictureBox.cs#L133).
Author
Owner

@ghost commented on GitHub (Aug 5, 2015):

Right.. but maintaining the aspect ratio (Scale) of the Client resolution instead of making the image stretch to the control.

<!-- gh-comment-id:128118363 --> @ghost commented on GitHub (Aug 5, 2015): Right.. but maintaining the aspect ratio (Scale) of the Client resolution instead of making the image stretch to the control.
Author
Owner

@ghost commented on GitHub (Aug 5, 2015):

Here is an example of what I mean by maintaining aspect ratio:
http://i.gyazo.com/3bf3c41b086d9c621c9507975e2c4209.mp4

What I am having trouble figuring out how to do is keeping the image centered in the PictureBox control

<!-- gh-comment-id:128128286 --> @ghost commented on GitHub (Aug 5, 2015): Here is an example of what I mean by maintaining aspect ratio: http://i.gyazo.com/3bf3c41b086d9c621c9507975e2c4209.mp4 What I am having trouble figuring out how to do is keeping the image centered in the PictureBox control
Author
Owner

@ghost commented on GitHub (Aug 12, 2015):

Going to look into implementing SharpDX today. Saw that Gyo released Babylon RAT for free and noticed he had implemented SharpDX a few weeks ago. The frame rates are very nice on LAN. On my network up to 150 frames per second. We would need to determine whether or not to keep this current client <-> server packet throttling as it is or to revert it to the previous implementation to get a high frame rate. What do you think?

<!-- gh-comment-id:130439264 --> @ghost commented on GitHub (Aug 12, 2015): Going to look into implementing SharpDX today. Saw that Gyo released Babylon RAT for free and noticed he had implemented SharpDX a few weeks ago. The frame rates are very nice on LAN. On my network up to 150 frames per second. We would need to determine whether or not to keep this current client <-> server packet throttling as it is or to revert it to the previous implementation to get a high frame rate. What do you think?
Author
Owner

@MaxXor commented on GitHub (Aug 12, 2015):

@d3agle Can you send me a link to this RAT? I wanna take a look, I think then we can add sharpdx.

<!-- gh-comment-id:130447810 --> @MaxXor commented on GitHub (Aug 12, 2015): @d3agle Can you send me a link to this RAT? I wanna take a look, I think then we can add sharpdx.
Author
Owner

@ghost commented on GitHub (Aug 12, 2015):

@MaxXor, sent you a pm on hf

<!-- gh-comment-id:130448340 --> @ghost commented on GitHub (Aug 12, 2015): @MaxXor, sent you a pm on hf
Author
Owner

@MaxXor commented on GitHub (Aug 12, 2015):

@d3agle Thanks, maybe I'm going to add it tomorrow. :)

<!-- gh-comment-id:130449938 --> @MaxXor commented on GitHub (Aug 12, 2015): @d3agle Thanks, maybe I'm going to add it tomorrow. :)
Author
Owner

@ghost commented on GitHub (Aug 12, 2015):

Sounds good :D I looked into it a few days ago and I couldn't figure out what classes we needed for implementation. I know we need a DirectX device, some rending properties to be set, and possibly bitmap conversion, but I haven't figured out exactly how to go about using these DLLs. I've asked Gyo if he could provide some tips or snippets, but waiting for his reply. If you can figure it out though, it will be a great addition :D

<!-- gh-comment-id:130450833 --> @ghost commented on GitHub (Aug 12, 2015): Sounds good :D I looked into it a few days ago and I couldn't figure out what classes we needed for implementation. I know we need a DirectX device, some rending properties to be set, and possibly bitmap conversion, but I haven't figured out exactly how to go about using these DLLs. I've asked Gyo if he could provide some tips or snippets, but waiting for his reply. If you can figure it out though, it will be a great addition :D
Author
Owner

@Pr0active commented on GitHub (Aug 13, 2015):

bad deobfuscated source from babylon rat, got trouble with cflow :) but maybe it help
http://rghost.ru/6lpyBWFkq

<!-- gh-comment-id:130689334 --> @Pr0active commented on GitHub (Aug 13, 2015): bad deobfuscated source from babylon rat, got trouble with cflow :) but maybe it help http://rghost.ru/6lpyBWFkq
Author
Owner

@itapi commented on GitHub (Aug 13, 2015):

@d3agle according to this video https://www.youtube.com/watch?v=oc12JSIPVVo their remote desktop seems slow as hell.. but if you say so..

<!-- gh-comment-id:130693103 --> @itapi commented on GitHub (Aug 13, 2015): @d3agle according to this video https://www.youtube.com/watch?v=oc12JSIPVVo their remote desktop seems slow as hell.. but if you say so..
Author
Owner

@itapi commented on GitHub (Aug 13, 2015):

@d3agle by the way im also working hard to optimize this code:
you can see my question just asked today here haha http://stackoverflow.com/questions/31990488/c-sharp-cut-rectangle-blocks-from-image

<!-- gh-comment-id:130693376 --> @itapi commented on GitHub (Aug 13, 2015): @d3agle by the way im also working hard to optimize this code: you can see my question just asked today here haha http://stackoverflow.com/questions/31990488/c-sharp-cut-rectangle-blocks-from-image
Author
Owner

@ghost commented on GitHub (Aug 13, 2015):

@itapi, it's actually pretty fast on my network. But of course we would have to test it to see what impacts it would have. And the code you posted on stackoverflow, what you are trying to accomplish would only minimize network traffic. This could be useful, but still fast changing images couldn't be drawn to the control when they are larger/stretched to fit the control.

<!-- gh-comment-id:130829825 --> @ghost commented on GitHub (Aug 13, 2015): @itapi, it's actually pretty fast on my network. But of course we would have to test it to see what impacts it would have. And the code you posted on stackoverflow, what you are trying to accomplish would only minimize network traffic. This could be useful, but still fast changing images couldn't be drawn to the control when they are larger/stretched to fit the control.
Author
Owner

@itapi commented on GitHub (Aug 14, 2015):

@d3agle alright I understand. Can you send me the sources of Babylon? I would like to have a look too

<!-- gh-comment-id:131002823 --> @itapi commented on GitHub (Aug 14, 2015): @d3agle alright I understand. Can you send me the sources of Babylon? I would like to have a look too
Author
Owner

@itapi commented on GitHub (Aug 16, 2015):

@d3agle ?

<!-- gh-comment-id:131519567 --> @itapi commented on GitHub (Aug 16, 2015): @d3agle ?
Author
Owner

@ghost commented on GitHub (Aug 16, 2015):

@itapi Look above at Vigorian's comment. I don't have the source lol

<!-- gh-comment-id:131519651 --> @ghost commented on GitHub (Aug 16, 2015): @itapi Look above at Vigorian's comment. I don't have the source lol
Author
Owner

@itapi commented on GitHub (Aug 16, 2015):

@d3agle it doesnt let me build the project even... lol.
is it working for you?

<!-- gh-comment-id:131519803 --> @itapi commented on GitHub (Aug 16, 2015): @d3agle it doesnt let me build the project even... lol. is it working for you?
Author
Owner

@ghost commented on GitHub (Aug 16, 2015):

Right you wouldn't be able to.. He just posted the deob'd source for reference.. You can see what objects were used for SharpDX

<!-- gh-comment-id:131520665 --> @ghost commented on GitHub (Aug 16, 2015): Right you wouldn't be able to.. He just posted the deob'd source for reference.. You can see what objects were used for SharpDX
Author
Owner

@itapi commented on GitHub (Aug 16, 2015):

@MaxXor are you going to work on that man?

<!-- gh-comment-id:131602452 --> @itapi commented on GitHub (Aug 16, 2015): @MaxXor are you going to work on that man?
Author
Owner

@yankejustin commented on GitHub (Aug 30, 2015):

@MaxXor This can probably be closed.

<!-- gh-comment-id:136158880 --> @yankejustin commented on GitHub (Aug 30, 2015): @MaxXor This can probably be closed.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/Quasar#148
No description provided.