This site is no longer active and is available for archival purposes only. Registration and login is disabled.

The major bottleneck for Graphics Rendering on PocketPC?


The major bottleneck for Graphics Rendering on PocketPC?

Postby hugepants » Feb 21, 2003 @ 12:05pm

hugepants
 


Postby JoJo » Feb 21, 2003 @ 2:23pm

JoJo
pm Member
 
Posts: 25
Joined: Feb 12, 2003 @ 9:28pm
Location: Hong Kong


Postby refractor » Feb 21, 2003 @ 3:21pm

Writing to the "screen" is certainly a nasty bottle-neck on most PocketPC devices. The "problem" is that the screen buffer that GAPI passes you is generally unbuffered and uncached (so when the DMA reads it to plot to the screen there aren't "written" pixels waiting in the cache to be plotted/missed).

We've been over all this before - try searching the (entire) forum for "unbuffered" or "uncached".
User avatar
refractor
pm Insider
 
Posts: 2304
Joined: Feb 5, 2002 @ 1:12pm
Location: Luxembourg


Postby James S » Feb 21, 2003 @ 4:10pm

<img src="http://home.comcast.net/~sonne/james/tag.gif">
James S
pm Insider
 
Posts: 17064
Joined: Jan 12, 2002 @ 2:33pm
Location: Lexington, KY


Postby refractor » Feb 21, 2003 @ 4:26pm

Oh yeah, now I remember (reminded by Moose's post).

IIRC the 3800 series iPaq's actual LCD is "rotated" from the "old" iPaqs. So, to maintain compatability, the 3800's GAPI layer exposes an intermediary buffer and then *rotates* it into screen memory. Again, I'm sure you'll find lots about it by searching the forum.
User avatar
refractor
pm Insider
 
Posts: 2304
Joined: Feb 5, 2002 @ 1:12pm
Location: Luxembourg


Postby Dan East » Feb 21, 2003 @ 5:15pm

User avatar
Dan East
Site Admin
 
Posts: 5264
Joined: Jan 25, 2001 @ 5:19pm
Location: Virginia, USA


Postby hugepants » Feb 24, 2003 @ 9:43am

People, Thanks for all the really useful feedback.

Ive tried the following to write my image to the screen but it doesn't work (nothing happens!). Im using the 0xac0755a0 address as suggested and removed the begindraw() and enddraw()

my code is as follows (please dont laugh)

g_gxdp.cxWidth = 240;
g_gxdp.cyHeight = 320;
g_gxdp.cBPP = 16;
g_gxdp.ffFormat = 168;
g_gxdp.cbyPitch = 2;
g_gxdp.cbxPitch = -640;

unsigned short * pusLine = (unsigned short *) 0xac0755a0;

if (pusLine == NULL) return false; // NOT OK

for (unsigned int y = 0; y < g_gxdp.cyHeight; y++) {
unsigned short * pusDest = pusLine;
for (unsigned int x = 0; x < g_gxdp.cxWidth; x++) {
PixelCol = WarpedImage[y*imagewidth+x];
*pusDest = PixelCol;
pusDest += g_gxdp.cbxPitch >> 1;
}
pusLine += g_gxdp.cbyPitch >> 1;
}
Last edited by hugepants on Feb 25, 2003 @ 5:12am, edited 1 time in total.
hugepants
 


Postby Digby » Feb 25, 2003 @ 4:40am

Digby
pm Insider
 
Posts: 1011
Joined: Apr 29, 2001 @ 1:53pm


Postby hugepants » Feb 25, 2003 @ 7:44am

yes tried that. Stumped frankly. Is there any urls with source code examples on this topic anywhere?
hugepants
 


Postby Digby » Feb 25, 2003 @ 8:35am

What happens if you try to do a memset to video memory?

The starting address of display memory on the iPaq 3800 is 0xAC050020 (pixel location 239, 0). Try setting 153600 bytes, starting at that address, to 0xFF.

Is the resulting screen filled with white?
Digby
pm Insider
 
Posts: 1011
Joined: Apr 29, 2001 @ 1:53pm


Return to Windows Mobile


Sort


Forum Description

A discussion forum for mobile device developers on the Windows Mobile platform. Any platform specific topics are welcome.

Moderators:

Dan East, sponge, Digby, David Horn, Kevin Gelso, RICoder

Forum permissions

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum