On Thu, 19 Dec 2002, Brian S. Julin wrote:
> > On Tue, 17 Dec 2002, Rodolphe Ortalo wrote: > > Is it also the case for putc, puts (and possibly copybox)? I have some > > strange output with them. > > If the put* functions are implemented in software, yes, and indeed > the generic renderers do call PREPARE_FB before beginning to draw. > > An analysis of whether it is more efficient to copy the pixel data > into a texture buffer and transfer it to KGI for hw blitting would > be welcome here. I think if KGI drivers did so, it would neatly sidestep > the whole syncing issue (all ops would go through the accel, so > the only time syncing needs to be considered is with directbuffer) not > to mention possibly providing a speedup (DMA/AGP/whatever handles slow > VRAM bus accesses while the CPU simultaneuously runs at normal memory > bandwidth and allows the app to prepare the next commands.) I think there are also some specific functions for drawing characters in hardware using 8x8 font maps. (In fact, this reduces to a 64bits monochrome bitmap.) Of course it probably does not apply to antialised fonts, or different font sizes. In this case I guess going the texture way is probably easier. But maybe this would be more for libggi2d than for libggi per-se? I think Filip implemented the 8x8 fixed font accel for the Radeon accel sublib; I'll try soon myself. [...] > > I also have some strange things around clipping. It seems I need to call > > GGI_kgi_Gx00_idleaccel() myself from my GGI_kgi_Gx00_gcchanged() function > > as soon as some clipping modifications are involved. If I don't, some of > > the output of "./demo" is incorrect wrt hline, vline of box tests. > > Yeah, well if the card does that, then it must be handled correctly, > so you'll be needing to sync the accelerator before altering the > scissor registers. It's too bad that this is the case -- if I [...] It is not Matrox's fault! I had a bug in my accel library in fact, in some situations, the tail of a DMA buffer was not actually sent to the kernel. Only a few dwords were missed, but apparently enough to miss some of the clipping parameters.
