Page 1 of 2
Flickering on Toshiba e750

Posted:
Mar 7, 2004 @ 5:20am
by j.edwards
Hi Thierry,
I have had a report of my game which uses PocketHAL flickering on an e750 by fast_rx:
From what is described it sounds like instead of writing to the back buffer it's drawing directly to the screen. Could it by the vsync flag on Swap()? I don't currently use it, but is it good practice to always use it?

Posted:
Mar 7, 2004 @ 5:33am
by Kzinti
VSYNC functionality is only available on devices that use the CPU built-in LCD controller (StrongARM or XScale). The E750 isn't one of them. The E750 has an Imageon 100 and all the screen will be updated all the time. Said another way, both swap flags won't do anything on the E750. Because of this, some (minor) flickering is inevitable. The situation is basically the same as using GAPI (altough PHAL will be running a little bit faster).
PHAL will operate in SWAP_COPY mode on the E750, so I really don't know what could be wrong.
Could you try the following: forcing a call to Display::GetBackBuffer() before rendering each frame and see what happens?

Posted:
Mar 7, 2004 @ 5:55am
by j.edwards
That was a fast response!
I am currently calling Display->GetBackBuffer()->GetPixels() at the beginning of every frame. Did you also want me to call it after each frame is rendered, but just before the swap?

Posted:
Mar 7, 2004 @ 6:02am
by Kzinti
Then you are doing it fine. I have no idea...

Posted:
Mar 7, 2004 @ 6:07am
by j.edwards

Posted:
Mar 9, 2004 @ 7:20am
by Guest

Posted:
Mar 9, 2004 @ 7:23am
by Kzinti

Posted:
Mar 10, 2004 @ 6:43am
by j.edwards

Posted:
Mar 10, 2004 @ 7:34am
by Kzinti

Posted:
Mar 10, 2004 @ 12:07pm
by j.edwards

Posted:
Mar 10, 2004 @ 5:03pm
by fast_rx

Posted:
Mar 10, 2004 @ 5:19pm
by Kzinti

Posted:
Mar 10, 2004 @ 5:28pm
by Kzinti
I just tried your latest version (on your web site) and sure enough the graphics are messed up on my iPAQ2215. This was working properly with an earlier version I still have (PHAL 0.6.0).
It does look like you are calling Swap() too often.
Could you also try to call BeginScene() at the start of each frame, before calling GetBackBuffer()->GetPixels()?

Posted:
Mar 10, 2004 @ 10:42pm
by j.edwards
Thanks for the tips. I have uploaded a new version:
I was not calling BeginScene(). With this version I have gone back to SWAP_DISCARD, no vsync, but calling BeginScene().

Posted:
Mar 10, 2004 @ 10:55pm
by j.edwards