Hi !

> >  Yes basically, though a possible workaround would be to use some kind of 
> >  checksumming procedure that would try to autodetect the changed regions.

> Ahh.  I can see how that would be good when transfer time is a lot
> bigger than read time (e.g. over a network). 

Yeah.

> It won't work when transfer time is comparable to read time (e.g. tile 
> blitting into local framebuffers), right ?

Yep. Then it's rather slowing stuff down.

> One idea I was pondering was to use the MMU "dirty" bit to track which
> areas of the buffer had been modified -- prolly not possible in Linux

It is possible (we used it to detect a very strange race condition that 
can be triggered when using the auto-paging system scrdrv 0.7 had:

Place an unaligned access to video memory right across the page boundary.

This will cause the kernel to trap the access, as part 2 of the fb is involved.
The autopaging would then map in part2 (thus mapping out part1).
Now the x86 will stupidly restart the whole access which causes an endless 
loop.

We used the dirty bits to break that process, as the part2 area never gets 
written to.

> (IIRC the dirty bit is used by Linux for doing swapping stuff).

The main problem is that it would require kernel help, which is IMHO quite 
some overkill. Other than that I think its doable ...

CU, ANdy

-- 
Andreas Beck              |  Email :  <[EMAIL PROTECTED]>

Reply via email to