Skip to content
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

Try to Improve Movement pool rate strategy #452

Open
RamonUnch opened this issue Aug 1, 2023 · 12 comments
Open

Try to Improve Movement pool rate strategy #452

RamonUnch opened this issue Aug 1, 2023 · 12 comments
Labels
enhancement New feature or request

Comments

@RamonUnch
Copy link
Owner

With this build you can set RezTimer=3 to combine the the option with the usual Move/Resize rates.

So if you got a 1KHz mouse and a 100Hz Monitor you can try to set MoveRate=10 or maybe a bit lower and set RezTimer=3

It is still WIP...

@Ichisich you might be interested by this build.

AltSnap1.61test21_i386.zip
AltSnap1.61test21_x64.zip

@Ichisich
Copy link

Ichisich commented Aug 1, 2023

Looks promising.

Subjective RezTimer=3 and MoveRate=7 gives excellent results with a 1000Hz mouse and 75Hz display.
It also consumes less CPU power than RefreshRate=0 or native dragging but a bit more than RezTimer=1, so the later should still be preferable for 60Hz displays.

Additionally, it avoids some strange behavior a low Moverate can have with certain applications (bug of the applications, not AltSnap).
It also reduces some 1000Hz polling rate issues #446 thanks to the higher MoveRate, without the disadvantages a higher MoveRate normally has.

@RamonUnch RamonUnch added the enhancement New feature or request label Aug 15, 2023
@Ichisich
Copy link

Subjective RezTimer=3 and MoveRate=7 gives excellent results with a 1000Hz mouse and 75Hz display.
It also consumes less CPU power than RefreshRate=0 or native dragging but a bit more than RezTimer=1, so the later should still be preferable for 60Hz displays.

As RezTimer=3 and MoveRate=7 gives great results with 75Hz display refresh and RezTimer=1 with a 60Hz refresh, but judder otherwise:
Is there a possibility AltSnap to auto-recognize display refresh changes and adapt accordingly?
Alternatively, in case you think this is too niche or intrusive, a simple command line parameter to change RezTimer would already be sufficient.

@RamonUnch
Copy link
Owner Author

Is there a possibility AltSnap to auto-recognize display refresh changes and adapt accordingly?

This should already be the case.

RezTimer=2
; Set to 1 to move the window only when the timestamp of
; a mouse event is different from the previous one, every 16ms
; more or less. MoveRate and ResizeRate and RefreshRate
; will have no effect if the option is enabled.
; This is overall the option that gives the best performances.
; It can be combined with FullWin=0 mode for ~0% CPU usage.
; Set to 2 for auto-mode, where RezTimer is only enabled if
; display frequency is set to 60Hz.
; Set to 3 to combine with the MoveRate and ResizeRate options.

However it only checks display frequency once at startup but I do not think people change display settings that often for this to matter.

So what I should do is to also check in the case of RezTimer=3 to be equivalent to RezTimer=1 when using 60Hz monitor.

@RamonUnch
Copy link
Owner Author

However there is no reliable way to get mouse frequency. The only way is by asking the user to shake the mouse quickly and to count mouse events/sec.

@Ichisich
Copy link

Ah, I still use an older Frankenstein ini and wasn't aware of RezTimer=2.

However it only checks display frequency once at startup but I do not think people change display settings that often for this to matter.

I constantly do, for video editing and video games.
But admittedly, it's still a niche issue.

So what I should do is to also check in the case of RezTimer=3 to be equivalent to RezTimer=1 when using 60Hz monitor.

Nah, RezTimer=1 is still the best option for 60Hz.
My plea would be to change to RezTimer=3 when changing to everything besides 60Hz and change back to RezTimer=1 when 60Hz gets enabled.

But as I said, if it's too much hassle, a command line like altsnap -rX for the RezTimer would be sufficient.

@RamonUnch
Copy link
Owner Author

I will add a -r option to reload the settings. I also will make a RezTimer=4 that auto to 1 or 3 depending on the Display frequency. so you will just have to call AltSnap.exe -r or as usual enable/disable AltSnap. This is the simplest for me.

So you just need to set RezTimer=4.

here is the associated test build:
AltSnap1.62test10_x64.zip

@Ichisich
Copy link

Thanks, much appreciated.

@Ichisich
Copy link

Ichisich commented Oct 16, 2023

RezTimer=4 works as intended when enabling/disabling Altsnap.
altsnap -r seems to not affect the config.

@RamonUnch
Copy link
Owner Author

Does it work if you use an admin elevated prompt or if you use runas?
I guess I must allow one more messages to go from nona-dmin to admin...

@Ichisich
Copy link

Ichisich commented Oct 16, 2023

You're right, altsnap -r gets recognized when using the elevated console.
I didn't consider the config itself as elevated, when using elevated AltSnap.

@RamonUnch
Copy link
Owner Author

This build should allow the message to come from a non elevated prompt.
AltSnap1.62_test11_x64.zip

@Ichisich
Copy link

Perfect.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants