Diagonal screen tearing

General GBZ-related chat goes here. Share ideas, tips and tricks, or ask questions that don't fit into the hardware/software help forums.
Post Reply
clarkjohnken
Posts: 1
Joined: Wed Mar 11, 2020 9:40 pm

Diagonal screen tearing

Post by clarkjohnken » Wed Mar 11, 2020 9:46 pm

I've seen a lot of videos regarding mintypis and gb0s (HDMI screens, specifically). I've noticed that all of them exhibit diagonal screen tearing. I at one point had an HDMI screen in hopes of using it for a build. I scrapped that idea when I got my hands on it because it tore so much (not to mention the heat output). Is the tearing a fixable issue or is it just the nature of the panels? @bitbank's SPI drivers don't seem to tear diagonally (at least from what I've seen in his videos). Do you experience it on your builds and does it bother you? Have you found ways to fix it?

User avatar
infinitLoop
Posts: 420
Joined: Mon Dec 24, 2018 11:46 am
Location: Portland, OR
Has thanked: 183 times
Been thanked: 149 times
Contact:

Re: Diagonal screen tearing

Post by infinitLoop » Thu Mar 12, 2020 11:15 am

clarkjohnken wrote:
Wed Mar 11, 2020 9:46 pm
I've seen a lot of videos regarding mintypis and gb0s (HDMI screens, specifically). I've noticed that all of them exhibit diagonal screen tearing. I at one point had an HDMI screen in hopes of using it for a build. I scrapped that idea when I got my hands on it because it tore so much (not to mention the heat output). Is the tearing a fixable issue or is it just the nature of the panels? @bitbank's SPI drivers don't seem to tear diagonally (at least from what I've seen in his videos). Do you experience it on your builds and does it bother you? Have you found ways to fix it?
i haven't seen anything like diagonal tearing on the SPI screens i have used, including the mintypi, as long as you set it up properly.

hdmi is hit-or-miss depending on the driver board. a lot of those waveshare copies just plain suck, but some perform great. (but yeah, the heat, power, and control board size are all hindrances for getting them into a dmg or pocket).

maybe what you are seeing is just the refresh rate clashing on the screen vs. the camera recording it.

DavidRaid
Posts: 4
Joined: Fri Nov 08, 2019 5:12 pm
Has thanked: 3 times
Been thanked: 2 times

Re: Diagonal screen tearing

Post by DavidRaid » Thu Mar 12, 2020 4:37 pm

Long time board lurker here. I've never really posted but your post caught my eye and I couldn't ignore you.

I began my pi builds with a Freeplay Zero, a pi zero inside a Gameboy Advance, moved onto Gameboy Pocket pi zero builds using GalaxyGaming's PocketFEs, and I can tell you that... you are not wrong. It's there. Fighting the flicker has been a journey for me. It's been my biggest pet hate throughout any build I've worked with. This is a real issue. It's common to SPI displays. They can't refresh the entire screen's pixels simultaneously, only in a kind of (really fast) wave. It can be made diagonal or horizontal. Diagonal is the choice most make and is usually the default. It results in the flicker you've observed.

Many people argue that it isn't a problem and, to be fair, most of the time and during gameplay you do not see or notice it. You'll forget the screen has the problem. But you see it when launching a game, when opening the emulationstation menu and when games have sharp transitions. If a 'fade to black' has a fade then you won't see the flicker, if it's an immediate, sharp (no gradual fade whatsoever) to black, then you'll see it. It drove me crazy when trying to play the Pokemon gameboy games.

Now, if you're using a raspberry pi zero in your build, it's not going to get better. If you are using a CM3 or a full blown pi 3.. Then you can install the fbcp-ili9341 display driver. It requires more power than a pi zero really has but it reduces the impact of the flicker. Even makes 60fps gaming possible. I have a boxypixel GBA shell'd Freeplay CM3 now and I can happily say that this improved display driver makes a REAL difference in the flicker. (Though it also results in a weird lag in menus that is related to some kind of cpu idle setting in the driver. The Super Retropie image for the cm3, thankfully, fixes that issue letting you use the fbcp-ili9341 display driver without the lag. The creator of that image is awesome)

The flicker will still happen but it's far, FAR less jarring. But it's still there.

If you can live with that, you're going to adore your CM3 based build. If you can't.. then the only solution is to avoid SPI screens like the goddamn plague. DPI displays won't have this problem. The Retroflag Gameboy GPI case's screen is DPI and has no flicker whatsoever. (I love that thing but it's so thick.) Kite's Circuit Swords and Shields use DPI displays and won't have the problem. I'm REALLY surprised that you've observed it with HDMI connected screens. Makes no sense to me, I'd always assumed a HDMI connection would be perfect. I mean, that's a televison grade connection. That's incomprehensible to me.

I have a pre-order for the Circuit Shield and I'm giddy at the idea of a DPI display inside a pocket. I care more about that than the horsepower inside and the analogue stick. No flicker. I can't wait :lol:

User avatar
infinitLoop
Posts: 420
Joined: Mon Dec 24, 2018 11:46 am
Location: Portland, OR
Has thanked: 183 times
Been thanked: 149 times
Contact:

Re: Diagonal screen tearing

Post by infinitLoop » Thu Mar 12, 2020 4:46 pm

i use the fbcp driver in all my zero builds with spi with no problem, at or around 60fps. it's true the older driver looks horrible, at least in my opinion, but at least a few people around here use that newer one. spi does push the zero very hard tho, so 16bit games struggle more using it, but disabling wifi and bluetooth usually helps a lot.

dpi is definitely the best looking (and most expensive) - but check out tinkerboy's stuff, if you want to do that.
Last edited by infinitLoop on Thu Mar 12, 2020 4:50 pm, edited 1 time in total.

User avatar
infinitLoop
Posts: 420
Joined: Mon Dec 24, 2018 11:46 am
Location: Portland, OR
Has thanked: 183 times
Been thanked: 149 times
Contact:

Re: Diagonal screen tearing

Post by infinitLoop » Thu Mar 12, 2020 4:49 pm

that "weird lag" issue is the gpu throttling probably. since the spi screen runs on that, it seems like it takes it a second or two sometimes to throttle up to the proper speed.

DavidRaid
Posts: 4
Joined: Fri Nov 08, 2019 5:12 pm
Has thanked: 3 times
Been thanked: 2 times

Re: Diagonal screen tearing

Post by DavidRaid » Thu Mar 12, 2020 5:12 pm

I'm impressed you got it to work on the zeros, I never had any success there haha

Samual Kilgore, who made the Super RetroPie image for the Boxypixel Freeplay CM3, explained the lag to me as being due to some missing parameters in the driver compilation.

The display driver he uses in his image is the same one that Freeplay bases their experimental driver off of- juj's ili9341 driver, but compiled a bit differently.

Apparently, in the Freeplay CM3 image that was initially released, the experimental driver had the SLEEP WHEN IDLE parameters and a few others active. Then, in the following CM3 image, they added a NO SLEEP experimental driver that worked better, but still had hangs and now caused problems with OMX player. When it played videos, like a splash screen, it would crash the driver.

So, for instance, if you play a video splashscreen, or a gamelist video in ES with OMX as the active player, then the screen will go black, until you restart the driver or the system, and disable video playback via OMX- which the video splash must use in order to work.

Samual removed the idle/sleep parameters completely which entirely removed any lag, hangs (most noticeable at boot on the console list) or stutter, as well as re-enabling video playback with OMX. He fixed it completely.

Most of this is his actual words, I've paraphrased a lot here. It's thanks to him that I'm in love with my CM3 and can be happy with an spi display, though it remains to be seen it Kite's circuit shield will steal my heart.

User avatar
infinitLoop
Posts: 420
Joined: Mon Dec 24, 2018 11:46 am
Location: Portland, OR
Has thanked: 183 times
Been thanked: 149 times
Contact:

Re: Diagonal screen tearing

Post by infinitLoop » Thu Mar 12, 2020 6:30 pm

yeah, if you're adventurous, you can mess with a bunch of the build parameters. it's documented really well on their github. i have tried a few to try and maximize the performance, but it never really did much (aside from straight-up not working alot).

i don't think i've had the omx issues like that - at least that i've ever noticed. just that initial stutter/lag sometimes when it's first loaded something, but like i said, i figured it had to do with the gpu clock throttle that the pi does by default. it could definitely be something else - it doesn't bother me enough anymore to try and fix it, since the games generally run smooth after a couple seconds.

DavidRaid
Posts: 4
Joined: Fri Nov 08, 2019 5:12 pm
Has thanked: 3 times
Been thanked: 2 times

Re: Diagonal screen tearing

Post by DavidRaid » Fri Mar 13, 2020 1:26 am

infinitLoop wrote:
Thu Mar 12, 2020 6:30 pm
I figured it had to do with the gpu clock throttle that the pi does by default. it could definitely be something else - it doesn't bother me enough anymore to try and fix it, since the games generally run smooth after a couple seconds.
It's definitely the driver, Samual's image proved it. I totally agree that it was never an actual problem as did go away after a few seconds, but it drove me mad that the CM3 should hang like that when even the zero didn't. Compiling the driver with those parameters removed makes it act exactly as a standard pi 3 hooked up to a TV via HDMI or a pi zero. Buttery smooth from the moment of boot. Definitely not an inbuilt throttle the pi does itself, but a bug with this one display driver.

Btw, your builds are amazing! I love the attention to detail you've put into your BMO and the Millennium Falcon is just fantastic.


floppes
Posts: 39
Joined: Thu Apr 19, 2018 5:58 am
Has thanked: 2 times
Been thanked: 32 times

Re: Diagonal screen tearing

Post by floppes » Tue Mar 17, 2020 6:53 am

I can confirm screen tearing with some KeDei HDMI screens. The problem is not the HDMI interface but the display controller which isn't driving the LCD correctly.

DPI ist the best solution to avoid screen tearing. My daddelkischde 2 board features a 480x320 DPI screen and is on pre-sale right now at the ZeroBOY shop ;)

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest