Hi guys I wrote to the xorg mailing list about scaling an image in hardware. Since a gamoboy has native resolution of 160*144 pixel, we could scale it in glamo hardware easily. This would be unbelieveable faster then the current method since the image we neet to send the glamo would be only 1/4 of the size.
We can use this at other applications too. Answer from the xorg list: "as such though the freerunner has a stretchblit in its gfx hardware. its primitive and can only do a small subset of what xrender needs." Thats enough if it scale the image. Someone know how to use it? Greetz Rashid > > > Rashid wrote: > > > is there a way to scale a pixmap / image / frame buffer content with > > native xlib-Code. > > No. The core X protocol doesn't include this functionality. You need > to use an extension (e.g. XRender, Xv, GLX). actually it is possible to scale. 2 pass xcopyarea, 1 copy per row and column of output. first u scale it up in 1 dimension by (for example) reading each source column once and writing it out twice in the ouput, and then repeat for rows. it's not too cheap though. lots of cmds to the gpu, lots of protocol, and the column copies do nasty things to cachelines and memory fetches even on the gpu side. :) aside: as such though the freerunner has a stretchblit in its gfx hardware. its primitive and can only do a small subset of what xrender needs. the freerunner's gfx chip is like taking a good old ISA trident card and pushing it to run 32bpp @ 1600x1200 because someone managed to buy a nice monitor cheaply and wants lots of pixels and colors because it looks good on a spec sheet. let's just for now assume the good old trident ISA card could do such an output - for the sake of the analogy. the bus to and from the card is weenie small. the card itself is being pushed to its absolute outer limits in terms of display resolution and depth attached. you can try and move more stuff to the gfx chip side to alleviate load on the "ISA bus" but even over there life is very limited. where normally when your gfx chip is limited you just move the ops back to the cpu and blast them over when done, this comes with a big downside on the freerunner due to the "ISA bus". the problem is all the nice modern stuff people would like will need to go back to the cpu there. and any read of the gfx chip programming docs clearly shows it was intended for qvga on a good day, and vga output for the freerunner gfx chip is an outlier capability but not an optimal target). so no matter what - you'll always be pushing poo uphill with that gfx chip unless you drop back to qvga. :) _______________________________________________ Openmoko community mailing list community@lists.openmoko.org http://lists.openmoko.org/mailman/listinfo/community