On 12/12/2010 01:57 PM, Lorenzo Marcantonio wrote:
> On Sun, 12 Dec 2010, Dick Hollenbeck wrote:
>
>> The problem with ORing the colors is that as you get more layers, eventually 
>> the
>> intersections all turn white, no?
>> (Ok, on a normal board, we don't have so many mutliple gerber layer 
>> intersections,
>> true.  But if it can go wrong it eventually will.)
> A couple of supply layers and two signal parallel or crossing is actually 
> pretty
> normal (in fact some stackups uses power layers to decouple parallel
> running traces on different layers).
>
> I think it will happen pretty soon:D
>
>> Let's assume the screen memory is slower than internal memory, this could be 
>> the
>> current bottleneck.  Plus I am seeing flicker with only two layers, let 
>> alone a full
>> stack of gerber layers.  This tends to support the theory.
> Blitting is slow, expecially under X.
>
>> I will spend some time and try buffering the screen memory in its own 
>> additional
>> wxMemoryDC until the very end.
> Another option would be to accumulate the image in a memory bitmap and
> then blit it. It all depends on the wxMemoryDC performance.


Well that is not another option than the one I suggested, please excuse my bad 
English.

I coded it up and it is faster, and the bottleneck has been located.  The 
blitting is
slow only when screen memory is in the picture (pardon the pun).  The one and 
only
final blit is now the bottleneck, so there is no point in persuing the path of
eliminating the monochromatic bitmap.

Often screen memory is of a different format than the internal RAM resident 
bitmaps,
and this can be a CPU intensive thing, to convert each pixel.

The last remaining opportunity to reduce the time spent doing the last screen 
blit is
to optimize on the dirty area alone.  If we could reduce the size of the dirty 
area,
this would *dramatically* improve speed.  I think this is only possible though 
on the
layer show/hide clicks, where a layer is coming or going.  On the resizing 
operations,
especially when grid is on screen, the entire screen needs to be redrawn, 
mandating a
full sized blit.

Dick


_______________________________________________
Mailing list: https://launchpad.net/~kicad-developers
Post to     : kicad-developers@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kicad-developers
More help   : https://help.launchpad.net/ListHelp

Reply via email to