-
-
Notifications
You must be signed in to change notification settings - Fork 167
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Window scaling is wrong when windows 10 scaling isn't the same between monitors #4205
Comments
Desktop scaling is global. With the v6 clients, you may have better results with Scaling is a PITA, especially on MS Windows because the OS is trying very hard to lie to us about the actual rendering resolution. |
Ah, none of the opengl options will work if opengl fails to load. As for the per-monitor dpi, we meant to enable it with #3943 but I'm not entirely sure how that plays out with GTK, opengl, environment variables, etc |
Here is the output: This line stuck out to me I tried to import it using the Python_exec_cmd
I don't think those C:/msys64 paths actually exist on my machine. I tried googling a bit and found some people had a similar problem in an older version of PyOpenGL and solved it by doing
But I'm not sure how I'd source whatever python environment xpra uses to try and pip upgrade OpenGL_accelerate/numpy. |
Here is the output:
This looks absolutely fine. Maybe show
This is optional and not an issue at all. |
Here is the output |
How odd, no sign of the warning from this comment: #4205 (comment) |
Ah when I gave the previous output there was no window to display on the server. I'll go through my steps and maybe you can point out if I'm doing something wrong. Normally:
This gives the error from #4205 (comment) regardless of the For these new logs what I'm doing:
This flow doesn't show any errors in my system tray like when I use the GUI, here is the output of the Xpra_cmd: If openGL is working, it still doesn't fix the scaling issue or the fact that the fullscreen snaps go offscreen. |
Ah, that's using the GUI... Let me try that.
Simplified version of this long command:
FYI: You can also use
It is, your log sample shows:
Ah, sorry. It was worth a try. |
I tried it with cmd.exe and got the same results.
No worries I learned a bit more about xpra in the process and I have a workaround. I do think it could trip up new users though. This command specifically is pretty useful to me Thanks for your help! |
just wanted to comment that I still get the OpenGL loading error from the GUI in 6.0.1 |
I've mentioned this in the discord, but I have a possibly related issue (clean windows + xpra install):
|
The commit above may help. At least it now allows Wayland clients to display the window with the correct scaling applied (#4242) and I have verified that the scaling can be changed dynamically so this should also handle the case where the window is moved to a monitor which uses a different scaling value - at least for Wayland clients. With the non-opengl backend, we just paint with cairo and I'm not sure if cairo or the OS (or both!) do the actual scaling (it's complicated - see links), or what type of filter they apply when they do it. xpra/xpra/client/gl/backing.py Line 786 in 4c6ae20
For more information, see glBlitFramebuffer Now this does not handle fractional scaling, so this may not help with the "150% scaling with MS Windows clients. Here are some relevant links for what MS Windows does:
To be able to take advantage of these extra pixels, we would need to:
I haven't even begun to look at what MacOS does, but it's bound to be problematic too. @L0laapk3 Finally, as of the |
Would it be possible to give the user an option to manually enter their settings for each monitor? |
I am certainly not going to make it easier for users to mess things up. It's hard enough as it is. |
Describe the bug
The image sharpness/quality is degraded when switching windows between monitors that have different scaling.
To Reproduce
Steps to reproduce the behavior:
server command
On RHEL 8
xpra start :10 --pulseaudio=no --start-via-proxy=no --opengl=auto --speaker=disabled --microphone=disabled --resize-display=yes --desktop-scaling=auto
client command
On Windows 10 I connect over SSH using the GUI
specific action to trigger the bug
On Windows, make the 'main display' have a scale and layout value other than 100%.
I show 150% on monitor 1 here:
Then when I move a window to a different display that is at 100%, the scaling is wrong, text looks blurry and zoomed out.
If I make the main display 100% scaling, then open xpra on the client, everything looks how I'd expect it to.
System Information (please complete the following information):
Additional context
Here are some before and after pictures, both of these screenshots are taken using monitor 2 using 100% scaling:
with 150% scaling on the main monitor (monitor 1):
With 100% scaling (This is how I want it to look always, regardless of the scaling on monitor 1)
It is most obvious in the ribbon drop down options and icons. I don't think the scaling on monitors that aren't being used to display the window should have any impact on the resolution/clarity of the image so I thought I'd file this issue. I think
--desktop-scaling=auto
is supposed to fix this but maybe I'm using it wrong.It's easy to workaround by changing my scaling, opening the xpra client, then changing my scaling back. But it would be nice to not need to do that.
I also noticed that snapping/maximizing a window or using Win+arrow_keys will send the window offscreen, I'm not sure if that is related to the scaling or a separate issue entirely but it's also easy to workaround by dragging from the corner to expand it by hand.
The text was updated successfully, but these errors were encountered: