Posts: 52
Threads: 8
Joined: Oct 2020
Reputation:
2
06-30-2021, 04:15 AM
(This post was last modified: 06-30-2021, 04:23 AM by Harry777.)
Hi Mike,
I'm sure you remember a while back I was complaining about general lag in MobileSheets as far as zooming and panning (it's definitely better now than it used to be, but still shows some general sluggishness). I think I finally figured out why it's happening.
I'm using a Surface Book 3 15" version, which has a resolution of 3240x2160. It must be that rendering the screen in (almost) 4K is just too difficult for the machine to do without stuttering. To test my theory, I lowered my computer to half the resolution (1620x1080), and VOILA, MobileSheets ran smooth as silk.
This leads to my question; is there any way to choose what resolution MobileSheets runs at without changing the resolution of Windows itself so that I can experiment and find a good middle-ground between quality and speed? I'm not sure if this is something Windows is capable of doing, but I definitely don't want to run my computer at half the resolution all the time. I'm pretty sure there isn't a way to do this (at least that I know of), but at least I finally figured out the problem.
Any thoughts?
Thanks,
Harry
Surface Book 3 15"
Donner Page Turning Pedal
Posts: 13,317
Threads: 301
Joined: Apr 2012
Reputation:
234
06-30-2021, 05:04 AM
(This post was last modified: 06-30-2021, 05:05 AM by Zubersoft.)
There doesn't appear to be any way for me to have the application change the display scaling or resolution in Microsoft's framework. Even if I lowered the resolution of the images that are generated and used (and then forced them to stretch to fill the space, making them more blurry), that still wouldn't fix the issue as I'm sure you are encountering limitations with the Win2d/DirectX rendering just not being able to keep up. While a Surface Book 3 has a fast processor, the ability at which it can render large images in DirectX depends more on the graphics card/chip in the device. Looking at the specifications, there are three configurations for a Surface Book 3:
Intel® Core™ i5-1035G7 models: Intel® Iris™ Plus Graphics
Intel® Core™ i7-1065G7 models: NVIDIA® GeForce® GTX 1650 with Max-Q Design w/4GB GDDR5 graphics memory
Surface Book 3 15”
Intel® Core™ i7-1065G7 models: NVIDIA® GeForce® GTX 1660 Ti with Max-Q Design w/6GB GDDR6 graphics memory
Did you get yours with either of the GeForce discrete graphics cards? If not, that might explain why the graphics processing can't keep up (that and the processor is an i5 instead of an i7). If you did get a discrete graphics card, and it can't keep up with zooming/panning, that's really concerning. Let me know if that is the case.
My Surface Pro 4 has 16GB of ram and a Core i7 processor at 2736 x 1824 resolution with the equivalent of the Iris Plus Graphics shown above (which isn't too powerful). I don't seem to have major performance issues while zooming and panning, especially if I'm not fully zoomed in. How sluggish is the performance on your device? While the resolution of my Surface Pro 4 is certainly less, and the screen is slightly smaller, your Surface Book 3 has better/faster hardware, so the difference shouldn't be that significant. Perhaps I need to see a video of your device with the latest version to understand the level of performance you are getting.
Thanks,
Mike
Posts: 52
Threads: 8
Joined: Oct 2020
Reputation:
2
Hi Mike,
I do have the 15" i7 version with the 1660ti, BUT I use my computer almost exclusively in "clipboard" only mode, which is just the screen without the keyboard attached (which houses the graphics card). I have tried a few times to force MobileSheets to use the graphics card and not the integrated graphics through Windows settings, but it actually runs WORSE when forced to use the graphics card??? I'll happily share whatever info you want about my computer so we can try to figure this out.
Here's a link to a video of me zooming/panning/generally using MobileSheets so you can see how it usually looks to me.
https://imgur.com/JQPObdm
Sadly enough, the sluggishness is actually worse than it looks in the video (which I also can't explain). Like I said, I'm more than happy to work with you to test this and try to find the cause of this!
Surface Book 3 15"
Donner Page Turning Pedal
Posts: 13,317
Threads: 301
Joined: Apr 2012
Reputation:
234
So, looking at this from a different angle, how is the zooming/panning sluggishness impacting your ability to use the app? Is it making it difficult to position the page accurately when you zoom all the way in and that is creating frustration? Or do you just generally want the zooming to be smoother? As it stands, I switched the rendering code so that it only draws what is actually visible on the screen when you zoom in. So even if the page is blown up to 6000x4000 pixels, for example, it's only actually drawing the 3240x2160 area of the page that is visible on the screen. I'm assuming you already tried going to Settings->Display Settings and changing the "Image Quality" setting to "Low", correct? that will render the image with less precision which helps draw it faster. If that doesn't help, and you want to test out a few things, we could try dropping the image quality even further to the lowest supported in Win2D (which does look pretty bad in my opinion) to see if that runs any better on your device. I also just noticed that I'm not honoring the "Image Quality" setting correctly if the "Draw highlights behind content" setting is enabled in the annotations editor. If you currently have that enabled, can you try turning that off to see if it helps at all with the sluggishness?
Thanks,
Mike
Posts: 13,317
Threads: 301
Joined: Apr 2012
Reputation:
234
I've looked into this some more, and there is something that I can take advantage of - there is a DPI scaling setting in the rendering component that I use to render pages. This means that I could provide an option to render images at 100%, 75%, 50%, or 25% of the normal resolution, for example, which would speed up the drawing significantly. This is the same you changing the resolution of the screen I believe. In order to support this, I would need to go through all of my code and update it to correctly handle scaling everything based on what the user selects (because annotations would need to scale up or down differently depending on that setting as well). So I do think it's possible for me to improve the performance dramatically on your device, but it's going to require some significant changes, and a lot of testing would need to be done to ensure bugs aren't introduced, because it will impact a huge amount of functionality including:
1) Annotations
2) Link Points
3) Smart Buttons
4) Hyperlinks in PDF
5) Layout calculations
6) PDF, Image and text/chord pro bitmap processing
I don't think this is something I can tackle right now though - finishing the iOS version is my highest priority at the moment. So it would be best if we can find a different workaround in the meantime, but eventually add these settings so you could drop the image resolution by 25 or 50% to make things run smoothly.
Mike
|