On Sun, 22 Nov 2009 19:00:15 +0100 mobi phil <m...@mobiphil.com> wrote:
> I assume that you have a very good understanding of the 2D glamo > commands. I wonder if you would have time to write a short story how > the glamo register story works. I am looking at > xf86-video-glamo.git/src/glamo-draw.c, and it seems that for example > for drawing a solid (GLAMOExaSolid), different OUT_REG sequences are > used than in gdrm-waitq.c ... gdrm-waitq (also gdrm-burst-cmdq and Mesa) use burst commands instead of individual commands for sending instructions. A sequence of individual commands consists of a series of registers and contents - two 16-bit values per command. A burst command is a single register followed by a sequence of values, which go into consecutive registers. So to work out what the sequence does, look at the register list in the glamo-regs.h header, and start counting up from the address specified in glamoDRMStartBurst. A buffer object (glamoDRMAddBO) fills in two registers, hence four bytes (a high and low value is needed). To answer specifically: > glamoDRMAddData(gCtx, 960 & 0x7ff, 2); //?? This is the destination buffer pitch, which is the depth (in bytes) multiplied by the width. > glamoDRMAddData(gCtx, y2, 2); > glamoDRMAddData(gCtx, x2, 2); These should be the destination buffer width and height (in that order - not what you have currently). > glamoDRMAddData(gCtx, 640, 2); //?? Width and height of the rectangle. You seem to be missing the width., which should go before this. > glamoDRMAddData(gCtx, 0x0000, 2); //?? > glamoDRMAddData(gCtx, 0x0000, 2); //?? Pattern base address, which isn't used for now. If you did, you'd need to use a glamoDRMAddBO here. > glamoDRMAddData(gCtx, col, 2); Pattern foreground colour. Background colour would be next if you were using a pattern. Then there's a whole load of mask, rotation and clipping stuff, all currently unused. To avoid having to send a load of zeroes to the hardware, we just start a new burst submission for sending the actual command to do a bitblit. Sorry that you found the example program where I was lazy and didn't add comments to label the registers. Hope that explains it. Tom -- Thomas White <t...@bitwiz.org.uk> _______________________________________________ devel mailing list devel@lists.openmoko.org https://lists.openmoko.org/mailman/listinfo/devel