tildearrow / kwin-lowlatency

archived - X11 full-screen unredirection and lots'a settings for KWin
373 stars 10 forks source link

[$2000 open source bounty by TestUFO inventor] All 5 distros should use stutter-free KWin (+variants) by default. #56

Closed blurbusters closed 4 years ago

blurbusters commented 4 years ago

Hello.

I'm the founder of TestUFO / Blur Busters.

You know, the motion test website that every power user has been using to gawk at amazement with kwin-lowlatency. That's me, I'm the creator of TestUFO.

I want to congratulate the developers of kwin-lowlatency for miraculous performance at www.testufo.com/animation-time-graph

image

This sub-millisecond framepacing even works perfectly on our experimental 480 Hz monitor! (I bet we're the first to test kwin-lowlatency at 480 Hz...?)

$2000 Bounty for Reliable TestUFO >60 Hz Under Linux

Blur Busters is offering a $2000 open source bounty to the developer/team that succeeds in getting the top 5 Linux distros to go stutter-free in TestUFO by default.

Possible Path: Getting 5 Distros To Use kwin-lowlatency

Theoretically, this might be as simple as convincing 5 major distros to use kwin-lowlatency. This may be all that qualifies. If so, then the bounty goes to the kwin-lowlatency team, for example! Realistically, there's a bit more work, so read on...

Goal of Bounty: All distros work out of box with stutterfree TestUFO >60Hz

  1. User downloads one of the top 5 Linux distributions
  2. Users connect a single non-60 Hz monitor. (whether basic 75 Hz or high-end 144 Hz / 240 Hz)
  3. Users launch FireFox or Chrome
  4. TestUFO correctly works stutter-free out-of-the-box

We want to reach the point where we can delete the "VSYNC UNSUPPORTED" message from TestUFO.

Known Weak Links

Conditions:

How To Test

  1. Install distro at default settings
  2. Test both FireFox + Chrome + Default browser (only if not FireFox/Chrome)
  3. Load www.testufo.com .... Is refresh rate detected correctly?
  4. Load www.testufo.com/photo .... Is it running smooth without stutters?
  5. Load www.testufo.com/animation-time-graph .... Is it glassfloor to less than 2ms variance?
  6. Load www.testufo.com/frameskipping and photograph it. Is there zero frame skipping?
  7. PASS

NOTE: Ignore the "VSYNC UNSUPPORTED" message. while manually validating the above. That boilerplate message (done via useragent detection) for now, will stay hardcoded until the Linux ecosystem is strong enough to permit such an assumption. Sorry, that's not going to change, unless there's a reliable way to correctly detect kwin-lowlatency in JavaScript. The error message needs to err on side of fail for many legitimate reasons. There are researchers/students/users/testers loading TestUFO to do scientific display tests and tests of frameskipping during refresh rate overclocking, as well as other browser-based tests that are fully dependent on perfect compositor sync. (TestUFO even correctly self-detects stutters under Windows in >90% of browser configurations, correctly self-invalidating tests that are researcher/scientist/education/overclocker/tweaker-important!) A huge purpose purpose of the bounty is to make that VSYNC UNSUPPORTED message unnecessary.

During development phase, you may have to fiddle settings or replace kwin, etc, between steps 1 and 2, and then commit those changes and/or do necessary politics (convince the distro maker to make it standard.).

Bounty Validation Notes

Yes, Windows is not perfect (google "TestUFO stuck at 60 Hz" complaints, often caused by GPU acceleration being disabled for one reason or another), but today is Linux <10% versus Windows >80% in terms of TestUFO refresh rate stutter-free operation on primary monitor (TestUFO as only window). We will pre-disqualify those Windows systems, and only test systems that already has plug-n-play non-60Hz on Windows 10.

Deadline: July 31st, 2020

We realize this is a big ask. However, this bounty is serious. We want to signal the distro makers to get the "Hertz shit" together to make non-60Hz as easy in Linux as in Windows. Lots of you are doing great work, and kwin-lowlatency is a gift from heaven to many users. But this compositor sync quality needs to be standard, out of the box.

If all distro makers use kwin-lowlatency (and similar works/variants), all the driver vendors (opensource and proprietary) support it with their latest drivers, and on all GPUs, this moves the Linux desktop world much closer to matching the refresh rate reliability of Windows.

Potentially Extendable Deadline

This deadline may be extendable if tangible progress is observed.

Discussion Welcome

Even if this bounty only generates vigorous debate/discussion, that will still be a success in raising awareness at distro makers. Since we went retina resolution, the refresh rate race recently started (with the boom of mainstream 120 Hz beginning to happen). Tomorrow, 240 Hz will eventually be cheap/mainstream like 4K and retina spatial resolution became.

This bounty is to help encourage along a re-evaluation of sync (software thru photons) in all Linux distros.

clapbr commented 4 years ago

Thanks a lot, this is a great idea. A few points :

n4n0GH commented 4 years ago

While $2,000 sounds nice, I feel like the work required for this should be worth more than that.

Izaic commented 4 years ago

Kwin is getting it's compositor reworked as we speak by Roman Gilg (sponsored by valve) and a few other contributors. I don't know how big of a change it will be compared to kwin-lowlatency when the patches are finished, but on the other hand it's not likely you'll see any distributions switching over to a fork of kwin.

blurbusters commented 4 years ago

To follow up the serious discussion of optimizing the problematic refresh rate architecture of Linux X subsystems --

  1. Consideration: Distros use official git repos rather than forked git repos A great consideration. I was emailed by David at KDE that it is unlikely that kwin-lowlatency is going to be directly adopted by distro makers. I understand there's a slow long-term code flow upstream (e.g. other repositories surgically adopting useful modifications). That process may take years to happen. I understand that too; that's all rolled into the "Politics" category, e.g. distros requiring original repositories to have adopted the modifications. Whatever path is chosen, I understand that it takes time.

  2. Consideration: Bounty too small? Deadline and bounty size is not permanently set in stone. The esports gaming industry (Fortnite, etc) is growing 7x from 2019 thru 2029 and with TestUFO breaking excess of one million visits per month, there is super-incredible pressure (on our side) to make browsers plug-play compatible with high-Hz. That critical mass finally happened with high-Hz Windows and high-Hz Android devices.

The higher refresh rates are gradually becoming more mainstream (new smartphones, new tablets, etc). This will be a slowly-increasing pressure over time, since retina refresh rates are well beyond 1000 Hz, confirmed by multiple peer-reviewed scientists now. A slow gradual long-term refresh rate race has started, and the pressures will only become more-and-more intense.

This is a progressive increasing-pressure tech feature. As higher-Hz slowly approaching zero-cost cost (much like retina became; and cheap 4K TV costing same as 1080p/720p), this is a new domino-tip that will continue for years and decades until free-cost retina refresh rate is achieved. With high-Hz becoming more mainstream (smartphones, tablets, esports, etc), the high-Hz industry has boomed. Blur Busters, being a "Better Than 60 Hz" business (born from a hobby) -- thusly, it is possible that down the road, Blur Busters / TestUFO will obtain the budget to officialize a 5-figure bounty years down the road -- or dedicate hired programmers towards the tasks. But for now, budget constraints means $2000 is the bounty budget through mid-2020.

I personally (and we, as a business) just want to "encourage the progress along". Both a hobbyist perspective, and from a business perspective. Being a high-Hz fan, I have a personal huge hobbyist interest in seeing this happen, and thus, the entire bounty is my founder out-of-pocket donation on behalf of my business.

Team-Up for Official BountySource If others would like to team-up with me, to enlarge this bounty -- or make it an official BoutySource pot (e.g. several people/organizations donating to create a 5 figure bounty) -- please contact me at mark [at] blurbusters.com ... Recently, I did not like hearing about the monthly-inactivity fees that BountySource was planning to do, and other issues. I rather keep funds in investment account and self-investments where it grows money. People in the gaming industry trusts Blur Busters (some credentials here) -- That said, if multiple 4-figure donors pitch simultaneously too, I'm willing to fall in line and go BountySource or other similar reputable system, while pushing out deadline beyond mid-2020.

Izaic commented 4 years ago

To follow up the serious discussion of optimizing the problematic refresh rate architecture of Linux X subsystems --

1. **Consideration: Distros use official git repos rather than forked git repos**
   A great consideration. I was emailed by David at KDE that it is unlikely that kwin-lowlatency is going to be directly adopted by distro makers.  I understand there's a slow long-term code flow upstream (e.g. other repositories surgically adopting useful modifications).  That process may take years to happen.   I understand that too; that's all rolled into the "Politics" category, e.g. distros requiring original repositories to have adopted the modifications.  Whatever path is chosen, I understand that it takes time.

2. **Consideration: Bounty too small?  Deadline and bounty size is not permanently set in stone.**
   The esports gaming industry (Fortnite, etc) is growing 7x from 2019 thru 2029 and with TestUFO breaking excess of one million visits per month, there is super-incredible pressure (on our side) to make browsers plug-play compatible with high-Hz.  That critical mass finally happened with high-Hz Windows and high-Hz Android devices.

The higher refresh rates are gradually becoming more mainstream (new smartphones, new tablets, etc). This will be a slowly-increasing pressure over time, since retina refresh rates are well beyond 1000 Hz, confirmed by multiple peer-reviewed scientists now. A slow gradual long-term refresh rate race has started, and the pressures will only become more-and-more intense.

This is a progressive increasing-pressure tech feature. As higher-Hz slowly approaching zero-cost cost (much like retina became; and cheap 4K TV costing same as 1080p/720p), this is a new domino-tip that will continue for years and decades until free-cost retina refresh rate is achieved. With high-Hz becoming more mainstream (smartphones, tablets, esports, etc), the high-Hz industry has boomed. Blur Busters, being a "Better Than 60 Hz" business (born from a hobby) -- thusly, it is possible that down the road, Blur Busters / TestUFO will obtain the budget to officialize a 5-figure bounty years down the road -- or dedicate hired programmers towards the tasks. But for now, budget constraints means $2000 is the bounty budget through mid-2020.

I personally (and we, as a business) just want to "encourage the progress along". Both a hobbyist perspective, and from a business perspective. Being a high-Hz fan, I have a personal huge hobbyist interest in seeing this happen, and thus, the entire bounty is my founder out-of-pocket donation on behalf of my business.

Team-Up for Official BountySource If others would like to team-up with me, to enlarge this bounty -- or make it an official BoutySource pot (e.g. several people/organizations donating to create a 5 figure bounty) -- please contact me at mark [at] blurbusters.com ... Recently, I did not like hearing about the monthly-inactivity fees that BountySource was planning to do, and other issues. I rather keep funds in investment account and self-investments where it grows money. People in the gaming industry trusts Blur Busters (some credentials here) -- That said, if multiple 4-figure donors pitch simultaneously too, I'm willing to fall in line and go BountySource or other similar reputable system, while pushing out deadline beyond mid-2020.

https://phabricator.kde.org/T11071 Look into this task list of the work being done on kwin, and then read the rest of my comment.

Considering your "deadline" is somewhere in 2020, and Kwin will probably have most if not all of it's latency improvements by then, why not considering just splitting up and donating that money to the KDE foundation and other linux projects you think may need it? $1000 dollars to the KDE foundation and maybe $1000 to the Linux mint project (another main distro which also happens to maintain it's own desktop and fork of mutter), or Mate...

You can probably write it off on your taxes too, and it's good publicity. As a stop-gap measure for Plasma desktop users, you could do a little banner below the Vsync placeholder that mentions trying alternative compositors such as Kwin-lowlatency if the user isn't having a good experience.

blurbusters commented 4 years ago

A compositor overhaul is good news!

That's a damn good suggestion! That said, the strong desire is for the entire Linux ecosystem rather than just KDE. Where 9 out of 10 computers that composites stutter-free in browser at correct Hz under Windows, will also do so successfully under Linux. Including the graphics support, the defaults, all default desktops and window managers, browser. It's frustrating when there's multiple weak links involved -- I have to see the business case too, in addition to the hobbyist desire. The question is: How efficiently and quickly can non-60Hz compositing be fixed in a meaningful number of distributions, given things take time, with multiple weak links involved? There may need to be an advocacy role here.

you could do a little banner below the Vsync placeholder that mentions trying alternative compositors such as Kwin-lowlatency if the user isn't having a good experience.

That is a good idea!

sarthak96 commented 4 years ago

There may need to be an advocacy role here.

This is definitely the case. High refresh rates have been considered a low priority for a long time in linux compositors. To the point where some have even argued the compositor doesn't need to draw at 144fps. This has been the case for input latency as well, since unredirection of fullscreen was removed from kwin with no real replacements

megapro17 commented 4 years ago

Linux even haven't hardware video acceleration from the box, and you asking for high refresh rates lol. Rip bounty I guess, only two months left

joder666 commented 4 years ago

GG RIP bounty :( Meanwhile i can't even compile it since it breaks if you use the kde unstable repos in opensuse.

tildearrow commented 4 years ago

TODO: write apology soon and rationale on rejecting the bounty.