koreader / koreader

An ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices
http://koreader.rocks/
GNU Affero General Public License v3.0
16.85k stars 1.26k forks source link

A slow-motion look at a flashing refresh on Kindle (MTK) #12179

Closed Fractalii closed 3 months ago

Fractalii commented 4 months ago

Issue

When you tap to close the dictionary pop-up the page inverts in colours to clear traces of the dialog, but for some reason when refresh is done the pop-up appears again to fade shortly after, so the refresh actually does nothing, and artefacts from the dictionary dialog remain on the screen. (The video is attached)

Looks like it works this way also with other UI elements, like top menu, but I noticed with dictionaries because use them quite often.

Steps to reproduce

Just open and close the dictionary pop-up (you might need slow motion recording to notice the problem)

https://github.com/user-attachments/assets/9057ca8a-5730-43c2-b01b-79725d328081

NiLuJe commented 4 months ago

Is that video slowed down and/or is the screen extremely cold?

Otherwise, that's roughly how eInk works, barring implementation details of a potentially funky collision handling in the kernel and/or magic anti-ghosting tricks.

In any case, there's no ghosting after the refresh, so whatever it's doing actually works ;). And knowing the PW5, it works really well ;).

For reference, which FW version is that PW5 running on?

NiLuJe commented 4 months ago

(Not actually a bug, I suspect it's just an artifact of how flashes are implemented on MTK/lab126).

I don't have the hardware to slow-mo capture, or I would have taken a look at possibly comparable implementations side-by-side (e.g., PW5 & Libra Colour, even though, not, really comparable, because the latter uses a Kaleido panel)

Commodore64user commented 4 months ago

Just in case you’re a bit sleep-deprived 😉, does your phone’s camera support slow motion? Mine can do 120fps and 240fps, which should be sufficient for this demonstration

AryaTwirl commented 4 months ago

Niluje, now that someone is talking about flashing refresh, I noticed that my libra 2 also does that, but then actually leaves the ghosting. But then, this happens only after sleeping device for quite sometime (but at random interval). Could be something during sleeping activity or the display just not firing up yet?

Restarting to nickel and opening koreader again will fix it (until it randomly happens again), and staying in nickel default reader does not exhibit the same behaviour.

Probably also happened on my PW5 but I don't think it ever did.

Fractalii commented 4 months ago

Is that video slowed down and/or is the screen extremely cold?

Yes, the video is slowed down

For reference, which FW version is that PW5 running on?

5.14.2

I have done some research about that problem and turned out that the same behaviour occurs in the default Kindle UI. I also checked some Kindle PW 2021 reviews where on speed x0,25 this effect is also noticeable, and found a video about KOReader on a Kobo device where the same behaviour was presented. So it seems like that is not a KOReader problem (if it is a problem at all, but I still can't imagine why it has to work like that). Sorry for bothering, I just don't know how KOReader works with such features as screen refresh and thought that such a behaviour might be unintended.

The actual reason why I even found this feature is some inconsistency in the screen refreshing after closing the dictionary pop-up (it just doesn't happen sometimes), which caused most of the ghosting I mentioned. (I noticed that after I created the issue).

Probably it would be nice if someone could add an option to disable refreshing only for dictionaries, because it consumes a lot of battery, but ghosting from it is not as noticeable as from the menus.

Frenzie commented 4 months ago

Under screen > eink settings there's avoid mandatory black flashes. I don't recall otoh if dictionary is affected but I prefer without. (Other people are more bothered by mild ghosting.)

NiLuJe commented 3 months ago

But then, this happens only after sleeping device for quite sometime (but at random interval).

Because eInk is affected by temperature (it affects the viscosity of the liquid in the ink capsules). The device is likely to be colder after being unused for a while.

Which is precisely why my first question was: "is that screen really cold?" ;).

NiLuJe commented 3 months ago

And because of that effect, temperature is also a factor in the waveform selection at runtime, which will affect the visual presentation of the refresh.

FWIW, historically, the sweet spot has been around 21 to 24°C (barring implementation failures, like some early FW on the K3, which were failing to read temperature properly).

NiLuJe commented 3 months ago

Under screen > eink settings there's avoid mandatory black flashes. I don't recall otoh if dictionary is affected but I prefer without. (Other people are more bothered by mild ghosting.)

IIRC, it's a flashui, so it should ;).

NiLuJe commented 3 months ago

because it consumes a lot of battery

That's also not particularly true. A flash consumes barely any more power than a standard REAGL refresh (and that's practically all of them on a PW5).

Frenzie commented 3 months ago

IIRC, it's a flashui, so it should ;).

Yeah, it's really just the button presses I don't want. For things like that it's good to prevent ghosting.

NiLuJe commented 3 months ago

There's a dedicated setting for buttons, too (or is that just for the virtual keyboard?).

(On that note, they don't actually show up most of time on a PW5, because of a quirk of the collision handling on MTK. Which, ironically, is also quirky on Kobo, but the other way around: they flicker... unless you're in nightmode, and then everything's fine -_-").

TL;DR: eInk is weird.