Report on Rebirth OpenPandora LCD response time: Tearing, Ghosting & Co


porg

Active Member
Joined
Oct 6, 2008
Messages
792
Location
Vienna, Austria
I had an Original Pandora, and within an RMA I upgraded to a Rebirth Pandora.

I had the impression that the screen of the Original was better (shorter refresh times) than that of the Rebirth.

Others in the community also wondered.

But I also considered that the supposed difference may only come from firmware/software differences,

although usually software gets rather better than worse over time.

And also another very human effect might have been at work:

The mental projection of "The good old days" — which they not necessarily were!

So I did what I always do, considered I have the necessary spare time, which I now had again after some very tense months:

An intensive software comparison test on my Rebirth Pandora concerning LCD refresh times (tearing, ghosting & other negative effects).

Definitions used throughout this report:

Vertical axis = up, down

Horizontal axis = left, right

Diagonal = a mixture of both vertical and horizontal movement in an arbitrary ratio (not necessarily 1:1)

GnGB with Gargoyle's Quest - Ghost 'n Goblins

A platformer, which centers the cam on the character vertically & horizontally,

thus the whole stage always moves, except at the very level beginning before reaching the right boundary.

Regardless of chosen scaling method, I observed this:

In all versions of GnGB:

Flickering in patterns

While movement on horizontal axis.

The backgrounds which have black to dark grey neighboring pixel patterns (piles of skulls) alternating at only 1 or 2 px width do flicker!

The backgrounds with white to light grey patterns do not flicker!

The current pixel column/row in the pattern is a) switched (pure human perception issue) or B) overlaid (if ghosting) with the previous neighboring column/row.

I don't know if this flickering comes from B) real LCD ghosting, or whether it is a) just a human perception issue.

Blocky scanline effect

GnGB as of ~2010 from the meanwhile defunct apps.OP.org

While movement on vertical axis (character falling down and stage moving with him, or introduction script moving up, particularly when fast forwarded via start key)

While diagonal movement (both vertical & horizontal)

Same FX as when moving on the vertical axis!

No staircase effect, which would be an indication for tearing.

GnGB version from 20120313 (presented in this thread)

The blocky scanline effect is gone!

Wars: Commando 1.0.1.1

A platformer, which centers the cam on the character vertically & horizontally,

thus the whole stage always moves, except at the very level beginning before reaching the right boundary.

Testing condition: Level 1 > Just move until the stage starts scrolling with you: Run to the right. Move over the first elevated platform. Fall down onto the next platform which is on the same height as the initial platform.

Move on horizontal axis ("patrol" (=run left and right) between the left gap and the right triangle-elevation) :

Quite some tearing: The staircase effect can be seen on the wall of the first elevation of the level which you just had overcome in the first step of this report.

The wall is just 2 sprites high (~1cm height of the screen height of approximately 6cm), and nevertheless I see 1 or 2 steps of the staircase on it!

A little ghosting:

Grass surface sprites: Starts to change its pattern a little bit: The tiny gradients (green in this shades: … , dark, middle, bright, middle, dark, …) are perceived as only 1 changing pattern (… , dark, bright, dark, …) and seem motion blurred.

Earth/mud sprites: The dots loose contrast on their background.

Opponent character: If you run into the opposite direction from him, you see his ghost (about half his width behind his body).

Move on vertical axis (jumping straight up: press key X without any directional keys) :

The same effect as with horizontal movement can be observed. Just some minor differences because of the nature of things:

Grass surface: Pattern perceived unchanged of course as the stripes are vertical.

Against the bright blue sky, the vertical baseline of the rather lighter grass surface seems to ghost stronger than the vertical baseline of the rather darker platform-earth sprite.

Moving diagonally (jumping left/right-wards):

The effects from vertical & horizontal seem to add up.

Here the ghosting of the enemy characters and the tearing of high vertical platform walls disturb the most, quite a lot.

Window movement in XFCE

Move the window quickly vertically, horizontally and diagonally

The window content is not moved, but a preview frame is moved accordingly

GhostingSome. On a 2.5cm movement I perceive 1 original + 2-3 ghosts

Tearing: Not observed. It requires an object filling almost the complete height (vsync). (Or width, if there was something as a hsync issue. Does this occur with LCDs? Whats their refresh order? Row by row or column by column? And if so, are the row/column indeed a line (1px) or rather multiple pixels thick? Or even blockwise order, such as "a1 a2 a3 b1 b2 b3 c1 …"). Therefore I make the window almost fullscreen, then move it very quickly: vertically, horizontally (as precise as this is manually possible) and diagonally (real manual intention). I cannot observe tearing. But usually tearing manifests not with lines (such as of the frame) but blocks (would require window content movement animation as well).

Cursor (moise pointer) movement (regardless which direction)

Tearing: Differs! Cursor above…

XFCE desktop background (aka wallpaper) with grey color or gradient: Horrible! The black mouse pointer's ghost is 6-7mm off, with a very strong opacity — almost as black the original!

File browser Thunar: Little. In list view: On the grey stripes the black mouse pointer is noticable a little, on white barely.

Web browser Chrome: Started with no network connection, getting a white error message box on grey background. On both white and grey the ghost is noticable, but not disturbing. 

Playback in PanPlayer of a video with suited test content

From this 

https://www.youtube.com/embed/2wVC-ZLhIHI?feature=oembed h264) transcoded to a supposedly easy codec (avoid CPU/GPU glitches; MPEG-4 Visual @ 25 FPS @ VBR with avg 3000 Kbits/sec) and native Pandora size (no scaling artefacts; 800x448).


PanPlayer both versions

Ghosting: Some. The shrinking of the ~6cm RGB bars takes ~1.25 secs, giving a speed of ~4.8cm/sec. While the shrinking (and also the growing) I notice a ghost of about 2-4mm. By this I can recompute how many frames of ghosting I perceive (probably occur).

0.06/1.25:0.0480 -- speed in m/sec

0.003/#:0.0625   -- necessary time for passing observed 2-4mm

1/#:16.0000      -- in herz

50/#:3.1250      -- depending on wether the LCD refresh rate is a multiple of the video's FPS (50 or 60 hz) means so many frames of ghosting can be seen

Considering the variables (ghost dimensional perception, LCD rate) the result is that 2-5 frames of ghosting are perceived.

PanPlayer Beta 1 (Beta 1 probably? ID through either defunct apps.OP.org link or MD5 checksum c8cf74468a3f702f354dc5eeee1048f6)

Tearing: Differs.

White bars staircase effect differs depending on the Pandora's manually set LCD refresh rate (via op_lcdrate.sh):

Pandora LCD@50hz for 25fps video: White bars show 2 steps on the staircase.

Pandora LCD@60hz for 25fps video: White bars show 4 steps on the staircase.

If you stop and continue playback, the position of the steps (=tearing zones) will change, depending in which sync phase the LCD currently is!

In theory 1 step means no tearing, as the staircase would then be a single rectangle (for differing it needs at least 2 steps)

PanPlayer 0.1.5.1

No tearing can be observed, both under LCD @ 50 or 60 hz.

Ghosting (& indirectly perceived tearing): The flashing RGB bars seem to not flash evenly synchronized among their "background flesh", seem different in about thirds of their height (about every 2cm). But the flashing is so short, that perception is not conscious, but rather subconscious, therefore vague.

Conclusion:

Tearing can be eliminated with software which uses the right buffering methods (ie: notaz improved SDL), but the operating system settings (see: op_lcdrate.sh) can under circumstances unluckily overrule (?) if the software does not care about this itself (see PanPlayer Beta1 description of this report, seems to be the case there).

Ghosting seems to appear more on the Rebirth than the Original Pandora in my memory, but this might be a false memory! On the Rebirth it occurs. It is likely that this is mostly a perception issue. If I move a window in a comparable speed as on my Pandora (in real cm/second) on my MacBook Pro Late 2006 with Mac OS X 10.6.8, where the entire window manager runs on the GPU, which has more than enough power for drawing as fast as the LCD can draw at maximum, and the LCD is surely also quite ok, I also perceive a ghost.

Overall: It is mostly ok. But in certain apps it really bothers me! I.e: Wars: Commando, or the black mouse pointer on the grey desktop background.
 
Last edited by a moderator:
GnGB is very out of date and should not be used. Try that game again with GBC.emu, gambatte, or visual boy advance.
 
Back
Top