RoanH / KeysPerSecond

A keys-per-second meter & counter. Written for osu! but should work for other rhythm games too.
https://osu.ppy.sh/forum/t/552405/
GNU General Public License v3.0
347 stars 28 forks source link

Entire window "flashes" under Java (Linux) #37

Open Gotchfutchian opened 3 years ago

Gotchfutchian commented 3 years ago

when at a semi high update rate (250 ms or higher) it starts flashing, or dissapearing and reapearing rapidly. Really annoying and might make my planned ADOFAI streams ubearable (scince ADOFAI tweaks uses a windows only program to mod unity). I have included my Config file so maybe it has to deal with it being transparent {See note in my new comment} or i did something wrong. Also gonna include my Neofetch.

██████████████████ ████████ gotchfutchian@gotchbox-arch ██████████████████ ████████ --------------------------- ██████████████████ ████████ OS: Manjaro Linux x86_64 ██████████████████ ████████ Host: Alienware Aurora R9 1.0.9 {yes its a prebuilt i got a couple christmases ago} ████████ ████████ Kernel: 5.14.0-1-MANJARO ████████ ████████ ████████ Uptime: 20 hours, 54 mins ████████ ████████ ████████ Packages: 1474 (pacman), 16 (flatpak), 5 (snap) ████████ ████████ ████████ Shell: zsh 5.8 ████████ ████████ ████████ Resolution: 2560x1440 ████████ ████████ ████████ DE: Plasma 5.22.4 ████████ ████████ ████████ WM: KWin ████████ ████████ ████████ Theme: Breath2 2021 Dark [Plasma], Breath [GTK2/3] ████████ ████████ ████████ Icons: [Plasma], breath2 [GTK2/3] ████████ ████████ ████████ Terminal: yakuake CPU: Intel i7-9700K (8) @ 5.200GHz GPU: NVIDIA GeForce RTX 2070 SUPER GPU: Intel CoffeeLake-S GT2 [UHD Graphics 630] {ignore, this is disabled nor does it output anything} Memory: 8132MiB / 15798MiB

config.kpsconf3.renamed_becasue_github_dosent_like_non_standard_file_extensions.txt

Gotchfutchian commented 3 years ago

NOTE: I have just did a bit more testing, it seems to be an issue with me setting it to transparent AND high update rate.

RoanH commented 3 years ago

Hmm, that's interesting, the only cases I know of where things start flashing is when the program fails to draw the rendering updates within the allotted time window. But given the specs of your system that really should not be an issue. Does the entire window disappear or just the content inside it? I might try to experiment a bit to see what is going on, but I don't have a lot of time and this issue seems like it won't be very easy to debug.

Gotchfutchian commented 3 years ago

Does the entire window disappear or just the content inside it?

The entire window. For like a frame and then it reappears until the next "update" happens. It seems like either an issue with me using the jar from the command line with JDK 16 or XOrg/X11 being stupid again. (Or this is just a small issue with how transparency is dealt with)

RoanH commented 3 years ago

Hmm, the window itself is managed by your OS/JDK/XOrg/X11, so that might be too far removed from what I can influence to change anything. I've previously fixed some transparency issues that only affected certain Windows systems by changing up the order things were drawn, but that was related to the content inside the window, not the window itself. I'll see if I can reproduce it on my Linux laptop (Windows works fine sadly...), but if I can't it's going to be hard to investigate.

RoanH commented 2 years ago

No real progress on this yet (haven't really had a lot of time either unfortunately). But at least on my existing system I cannot get anything similar to happen (though my system configuration isn't similar to yours either...). At the very least your configuration works fine for me, minus transparent windows apparently not being supported on my system. Probably going to have to setup a system running Plasma at least.

RoanH commented 2 years ago

There's another issue now documenting the same problem: https://github.com/RoanH/KeysPerSecond/issues/58

juanmuscaria commented 1 year ago

I decided to poke around on my own and stumbled on this https://stackoverflow.com/questions/4627320/java-hardware-acceleration Running java -Dsun.java2d.opengl=true -jar KeysPerSecond.jar solves the flickering and the window being really slow to update when in the background, but removes the support for transparency sadly Running on Linux Mint 20.3, java Zulu 8.66.0.15-CA-linux64

RoanH commented 1 year ago

Oh that's interesting, thanks for the information! So whatever the default renderer was on your system did not manage to render something properly (well probably transparency I guess?). I was aware that transparency was an issue on some Linux setups, though from your test it would seem that it would probably be systems that use OpenGL by default to render things. I might see if I can at least somehow integrate a way to easily switch the renderer, but that might not be something I can do at runtime.