Announcement

Collapse
No announcement yet.

VRR, Lower Latency Likely Coming For KDE's KWin Wayland Compositor

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • unic0rn
    replied
    so it seems kwin changes made it to kde 5.21 in manjaro. there's an option to choose between latency and smoothess. with balanced... kde animations drop frames and stutter like crazy. what the hell were they thinking?

    when forcing it to smoothest (at the presumed cost of latency) it's slightly better, still drops a lot of frames but when something renders at 60fps - be it a game or youtube video in chromium - it's in general keeping that 60fps (i'm disabling compositing for fullscreen gaming and mpv anyway).

    i've checked it under wayland as well - that's why i've decided to go with "force smoothest" in general, since under wayland mpv dropped a frame from time to time on balanced, while with force smoothest it's almost perfect. almost... it can still drop a frame once every few minutes, which shouldn't happen and doesn't happen without compositing. added wayland bonuses: no caps-lock/ctrl mapping, gtk apps looking like crap, mouse cursor speed working differently, the list goes on.

    took a look at kwinft, saw the list of issues, gave up.

    for now i'm sticking to kde on x11, apps run smoothly, only kwin animations leave something to be desired, and for fullscreen use cases i can always disable compositing and ignore all this mess. still, if kde team manages to screw up kwin even more, i may consider trying out gnome 3, because this is ridiculous. i had smooth 60fps animations with kde+compiz decades ago, on geforce 4 mx ffs. this igpu can run crysis, yet kwin stutters at simple desktop slide-in effect? it's a bad joke.

    Leave a comment:


  • oiaohm
    replied
    Originally posted by tildearrow View Post
    In fact this already happened. My 4K monitor from 2017 does not support 50Hz modes, and after adding one manually there was visible stutter every 1/10th of a second (which means it was mapping 50 into 60 as you described).
    The solution was to enable FreeSync (VRR)...
    If the panel is locked at 60Hz for PSR using FreeSync VRR all it does is randomise the stutter a bit. 50 to 60 results in needing 10 frames of duplicates.

    Fun of putting a flash 50 hz test on a screen. that when one frame is white and the next frame is black and measuring how long each black and white time frame is. Doing this with VRR enabled on monitored with panel locked to 60Hz sees that you have as much stutter per frame just it can be more even spread than the internal monitor controller implementation of 50 to 60.

    The first monitor/tv to appear using the PSR method was VRR was the first VRR monitor.

    tildearrow yes the disappearance of dynamically changing LCD clock speeds as been going on now for almost a decade. Yet people will still claim that VRR can do stuff that the fixed HZ of the LCD panel just will not allow. stutter/judder what ever you want to call it comes from this fixed clock. At best VRR will do on a fixed clock panel randomise stutter/judder making it less noticeable.

    Think about it 50 frames per second on a 60 frame per second panel means there has to be 10 duplicate frames so that gives the stutter every 1/10th of a second the size of a 1/60 of a second frame. 120 frames doing 50 frames per second gives 20 duplicates to be added in. So that every 1/20th of a second stutter the size of 1/120 of a second happens if everything is nice and evenly spread.

    Now the 50 frames into 60 Drop this back into 5 into 6 to make it simple. So you can be doing 1 2 3 4 5 5 to give you 6 as most simple LCD screen controllers do giving a repeating stutter exactly at 1/10th of a second that turns out to be really human noticiable. But this is not the only option 1 2 3 3 4 5 or 1 2 3 4 4 5.... to give you 6 and mix these in a kind of random pattern this is what enabling VRR end up doing on a fixed clock panel since the stutter is not always appearing at the same time comes less noticeable to human watcher. Yes the result of this tricks the human viewer into thinking the panel clock has changed to match VRR when in reality all that has happened that the stutter location has been randomised with the panel clock not changing at all.

    The freesync VRR on that tv is most likely still using the PSR mode for 50 into 60 on that TV. Just with more randomisation of the stutter point than when you push a pure 50Hz signal into it.

    Leave a comment:


  • tildearrow
    replied
    Originally posted by oiaohm View Post
    Lot of people talk about high Hz monitors for game play you don't see many reviewers talking about how the high Hz monitors in a lot of cases result in better video play back for PAL encoded content due to how many 60Hz monitors the panel freq is really locked at 60Hz. Basically tildearrow its not just your phone with the 60Hz and bad PAL playback. PAL content playing back badly on monitors and TVs is horrible common as well and its going to become move common in lower end monitors/tv as chipsets do broad range clocking of panel keeps on disappearing being replaced by PSR work around to advertise 50Hz but then map 50 into 60hz.
    In fact this already happened. My 4K monitor from 2017 does not support 50Hz modes, and after adding one manually there was visible stutter every 1/10th of a second (which means it was mapping 50 into 60 as you described).
    The solution was to enable FreeSync (VRR)...

    Leave a comment:


  • oiaohm
    replied
    Originally posted by tildearrow View Post
    This is not a low-end or mid-range phone. It is a flagship one.


    High refresh rate rare screen feature in 2018 was rare is a more common one now. In 2018 there was a total of 4 phones that were Android that had a screen faster than 60Hz.. That list there still some 2021 flagship phones that still don't have greater that 60Hz display but that has come rare,

    None of the displays you will find on any new phone is ideal for playing pal content. You will have judder/frame pacing issues caused by miss aligned screen refresh rate to video encoding frame rate. Of course the higher the monitor panel clock speed the less noticeable it will be.

    I find I don't notice the judder with Pal videos with displays running at 120Hz or higher but I really do have a annoying visible to me issue on 90 and less(that are not PAL Hz speeds) with some PAL vidoes. Its fine things like people know that wheels can appear to spin backwards due to frame-rate judder effect on that is wheel is now trying to spin both directions.

    For a long time I had only a 60Hz desktop monitor one of the big improvements moving to a 144Hz monitor was better video play back due to less of this problem. Of course I noticed a difference I went looking for why this lead me to all the information on what monitors real do these days.

    Lot of people talk about high Hz monitors for game play you don't see many reviewers talking about how the high Hz monitors in a lot of cases result in better video play back for PAL encoded content due to how many 60Hz monitors the panel freq is really locked at 60Hz. Basically tildearrow its not just your phone with the 60Hz and bad PAL playback. PAL content playing back badly on monitors and TVs is horrible common as well and its going to become move common in lower end monitors/tv as chipsets do broad range clocking of panel keeps on disappearing being replaced by PSR work around to advertise 50Hz but then map 50 into 60hz.

    Leave a comment:


  • tildearrow
    replied
    Originally posted by oiaohm View Post

    That can be true for new 2021 phones. Yes there are new 2021 phones that only have a 60Hz panel worse some really cheap ones only have a 30Hz panel. So you are not alone with this problem and its a lot more common that one thinks.
    This is not a low-end or mid-range phone. It is a flagship one.

    Leave a comment:


  • oiaohm
    replied
    Originally posted by tildearrow View Post
    Since when has this been the case? My phone from 2018 runs at 60Hz, and I have been unable to run it at 50Hz for PAL video playback.
    That can be true for new 2021 phones. Yes there are new 2021 phones that only have a 60Hz panel worse some really cheap ones only have a 30Hz panel. So you are not alone with this problem and its a lot more common that one thinks.

    Originally posted by Zan Lynx View Post
    I see that it is quite new. Android 11.

    https://developer.android.com/guide/...dia/frame-rate
    This is a good write up. This is written closer to real hardware. The reality is a lot of LCD/oled panels cannot do 50Hz at all even in desktop monitors.

    In that case, running the display at 120Hz will allow both the 60Hz surface and 24Hz surface to run with no pulldown required.

    This happens a lot more than what you would think where you request from a 120Hz monitor for a 50 Hz fixed rate and what really happened is the panel is running at 120Hz and its being monitor side using like VRR method to put 50Hz into 120Hz of course that is not 100 percent judder free but it small enough most humans don't notice. So yes you can have a monitor/tv exposing 50Hz mode on HDMI when in reality it cannot do that in the panel at all.

    We are not seeing LCD or oled panels with dynamic panel clocks in new devices instead we are seeing LCD/oled panels with static clocks the general list of panel clocks is 30,60,90,120, 240 and 360Hz of course none of those suite PAL perfectly but the higher you go the better alignment you get. A panel costs more to make for each extra clock speed it has to be certified for this is why you will find 60/120Hz panels and 30/120Hz panels with no other modes. Yes getting a phone what claims to have a 120Hz screen and you find yourself dropping back into 30Hz mode for general operations does not make a nice phone to use.

    What goes over a display port or a hdmi cable may have absolutely no alignment to what HZ the monitor/tv panel is really refreshing at these days.

    Leave a comment:


  • Zan Lynx
    replied
    I see that it is quite new. Android 11.

    Leave a comment:


  • tildearrow
    replied
    Originally posted by Zan Lynx View Post
    Much like Android uses VRR. Many phone displays now run at 0 FPS (as far as Surface Flinger is concerned anyway. the hardware does even more power saving than Intel PSR.) and burst to 90 or 120 Hz while scrolling.
    Since when has this been the case? My phone from 2018 runs at 60Hz, and I have been unable to run it at 50Hz for PAL video playback.

    Leave a comment:


  • oiaohm
    replied
    Originally posted by polarathene View Post
    All I know about it is that the framebuffer doesn't need to be pointlessly updated with the same output from GPU, the display just reuses the existing framebuffer from it's internal memory until the GPU has something new. And that PSR2 improves on that by being able to do so with subregions instead of an entire display update (or framebuffer data, something like that), eg only your cursor moving around, or some text being typed while the remaining area of the display is unchanged.
    This is close.



    PSR is memory in the panel of the screen that does have a HZ speed effecting its operation. Intel PSR is how they control the PSR not the PSR itself because the PSR is in the panel not in the Intel chipset. So its not a framebuffer as such but stored state in the LCD. PSR2 adds subregions its still modify memory/state in the panel.

    When that stored stated is updated pixels on the screen it self that the PSR/panel rate/clock/Hz is how fast this memory is being draw to pixels.

    There is a fun little issue with LCD and even oled.

    Lets take a basic problem that leads to flicker. I will use some bogus number here but they are based kind what happens. For the example we have a fiction 120hz panel that can be updated at different speeds what would be possible values to give same appearance brightness/functional brightness to end user the real numbers could look like 30Hz brightness level 70% 120 brightness level 100%. Why driving a panel at 30Hz needs lower brightness level here is a mechanical issue as a pixel be it LCD or led changes brightness its not instant the more often this happens the more light is blocked in the LCD case or in the LED pixel case the light is not generated results kind of the same.

    The simple result is different clock speed of panel drawing requires different brightness output value to get the same brightness to end user. Gets more complex with resistance and capacitance in the panel you could end up with a brain bending. In fiction panel here matching based off of real world you could have 30Hz 70% brightness, 60Hz 80% brightness 90Hz 70% brightness 120Hz 100% brightness. Please note on the fiction example I am making the diffeerences huge real panels you would be talking like 0.1-10 percent difference. The brightness value to the panel is not uniform across the panel clock speed. Worst this you have like 1000 panels from the same vendor meant to be the same specification and have not one in fact match when you test this.

    This issue means changing the panel clock that is really doing the output a lot is really simple to end up with a dangerous flicker. Remember 25 frames per second /25Hz savage flicker is enough to land a lot of people in hospital.

    VRR does not change the fact you have a PSR with panel clock between you and the pixels in most cases these days. Yes a LCD may not be for a laptop but in a desktop screen and it still have a PSR and the PSR is what the VRR data is being written into.

    VRR you are doing a usable 50 frames per second aligning those 50 frames to the 120hz/frames the monitor/panel will get that frame displayed to user faster than if the user was running the panel at 50hz. This does not mean the panel clock speed is changing with VRR or that you will be get appearance advantage over driving the panel at 120Hz.

    Panel clock changing with VRR was tried the result is dangerous flicker that is very hard to prevent due to all tight manufacturing tolerances required worse after the panels that first did this feature over time as parts of the LCD screens wore in the correct values to perform this in fact change. So you have a monitor changing panel clock aligned with VRR and you are using it in VRR mode its really only a matter of time until monitor developers a flicker and if you medically weak to flicker you could find yourself in really big trouble.

    Hard reality Panel /PSR clock will not be kept aligned with VRR because that is not safe. Yes a change every 5 seconds in panel clock speed or so is safe as the flcker caused by that is that slow that it does normally cause bad effects.

    Mechanical/medical limits means some of the things that were claimed when VRR first appeared we just should not have. Yes early claim that VRR directly changes Panel clock so gets the frame displayed as fast as possible is not true in the newer safe monitors yes it was done on some of the early VRR monitors before we knew better. In the newer safe monitor VRR frame displayed on the next panel clock and the panel clock if it is changing will be changing on a interval base way where its holding particular HZ speeds for reasonable amounts of time so very much like shifting gears this removes/reduces the flicker problem. Little bit of visual judder does not result in person on floor having a medical episode.

    Do note I said reduce flicker in the one part not all monitors are 100% flicker free by fixing the HZ for like 5 seconds or so intervals but if the flicker is slow enough it does not cause humans to have medical problems.

    Lets say us humans like learning by screwing it up.

    One of the fun things is 5 second flicker will not give you major medical episode but can increase you risk of getting motion sickness while playing a game. So a modern safe VRR monitor is not 100 percent safe for everyone. So some people will want their monitor driven at 120Hz/240Hz...(what ever the max is) with no VRR so monitor does not clock up at down at all so they don't get sick playing games.

    VRR is not as big of magic bullet as one would hope.

    Leave a comment:


  • polarathene
    replied
    Originally posted by oiaohm View Post

    PSR is the Panel Self Refresh rate. Surface Flinger reporting 0 FPS is the VRR reporting these two figures don't align. Allowing you to power down the GPU and have the LCD controller keep on drawing the screen does serous-ally save power.

    Intel PSR adjustment is not pure VRR. What you will see is PSR being a set of fixed speeds like 30, 60, 120.
    Any link on PSR refresh rates?

    All I know about it is that the framebuffer doesn't need to be pointlessly updated with the same output from GPU, the display just reuses the existing framebuffer from it's internal memory until the GPU has something new. And that PSR2 improves on that by being able to do so with subregions instead of an entire display update (or framebuffer data, something like that), eg only your cursor moving around, or some text being typed while the remaining area of the display is unchanged.

    I assumed refresh rates of the display was a separate matter unrelated to PSR.

    Leave a comment:

Working...
X