pcb drawing slow (eg redraw or zoom) in windows 7

Asked by Keith

I've used KiCad in XP with directX 9.0c and it was very quick to redraw a complete pcb layout. I've now moved to Windows 7 with DirectX 11 and and redraw speed is about 50 - 100 times slower. (speeds up if hardware acceleration is disabled!).
This speed degradation has been highlighted in 2D drawing tests performed by TomHardware.co.uk. I gather it may be due to some changes in GDI. I think GDI is not supported as well or has been superceeded by direct draw.
Do you use GDI?
I am not familiar with the graphics API but I wonder if KiCad needs updating to support the new directX methods.

Apart from this issue I think this is a great bit of software I've created 3 complex double sided boards which required very little board mods to get fully working. Thanks for all your time and effort in making this tool.

cheers

Keith

Question information

Language:
English Edit question
Status:
Answered
For:
KiCad Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Lorenzo Marcantonio (l-marcantonio) said :
#1

> This speed degradation has been highlighted in 2D drawing tests performed by TomHardware.co.uk. I gather it may be due to some changes in GDI. I think GDI is not supported as well or has been superceeded by direct draw.
> Do you use GDI?
> I am not familiar with the graphics API but I wonder if KiCad needs updating to support the new directX methods.

We're using wxWidget which, IIRC, only uses GDI. Yes, we are aware of
that performance issue :(((

In fact it seems that GDI under seven is *always* unaccelerated;
probably disabling acceleration removed some interlock between GDI and
DirectDraw causing it to be faster (just pondering...)

There is a development branch using OpenGL to draw but I have no idea
about its status

--
Lorenzo Marcantonio
Logos Srl

Revision history for this message
Keith (keith-r-baker) said :
#2

Thanks for the fast response.

Yes I thought that as well. There must be some wasted interaction between hardware to cause a slow down. It seems a bit silly considering I have an i7 with 4 cores which are mostly idle and I can see the screen update over a few seconds. ;/

An OpenGL version would be great.

Are you using wxPython / Pywin? Just done a quick google and there are some OpenGL python examples. I also have some wxPython apps - I guess they will be slower too :(

Apparently disabling visual themes on the compatibility options has a side effect of disabling 2d acceleration - I've not tried it yet but will let you know.

cheers

Keith

Revision history for this message
Keith (keith-r-baker) said :
#3

Hi Lorenzo

I've managed to speed it up a bit, at least to something useable.

In the program properties compatibility tab check the box "Disable desktop composition". Not sure what happens in the backgroud but it goes 5-10 x faster. Still not as quick as the old PC but an improvement.

Looking forward to the openGL version.

cheers, Keith

Revision history for this message
Lorenzo Marcantonio (l-marcantonio) said :
#4

On Thu, Jan 26, 2012 at 06:15:52PM -0000, Keith wrote:
> In the program properties compatibility tab check the box "Disable
> desktop composition". Not sure what happens in the backgroud but it
> goes 5-10 x faster. Still not as quick as the old PC but an
> improvement.

For desktop composition it needs to buffer all the operations and then use the result to compose the final image... probably you get to go directly to the window;

No idea on the OpenGL version, I don't follow that project.

This solution could go in the FAQ section IMHO

--
Lorenzo Marcantonio
Logos Srl

Can you help with this problem?

Provide an answer of your own, or ask Keith for more information if necessary.

To post a message you must log in.