PCB redraw slow on new machine - Page 1
Forum section: electronics / general

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: August 05, 2015, 11:58:46 am
content: I use PCAD2006. (I'm not expecting many PCAD experts out there, but guessing this may be some generic problem running older applications on newer grahics hardware. )I've just upgraded my PC to a recent spec with Win7 x64, 4 monitors, 2 on onboard Intel 4600, 2 on an Nvidia G210 board.While most things are a lot faster, including compute-heavy stuff like DRC and recalculating fills, time to redraw complex boards when panning & zooming is about 4x slower.I've tried running the system only on the onboard graphics, and only on the Nvidea, and with one monitor with no difference.2D graphics benchmarks show between 4 and 10x improvement on the new machine, apart from complex vectors whjich are only 10% faster.I know it's not a win7 or 64 bit thing as it runs fine on my laptop.Any clues as to what to look at in terms of settings etc. ?Are there any tools to help analyse graphics issues like this?

author: dr.diesel
author_rank: Super Contributor
timestamp: August 05, 2015, 12:07:20 pm
content: What's the resolution of the 4 monitors? You're probably asking way too much for 4 monitors onIPCIGP graphics and the really old G210.

author: wraper
author_rank: Unknown
timestamp: August 05, 2015, 12:17:40 pm
content: Integrated HD 4600 is much faster than G210, which is really old, and frankly saying was below the bottom end even when just came out

author: wraper
author_rank: Unknown
timestamp: August 05, 2015, 12:26:40 pm
content: Did you try with and without Aero enabled?

author: tszaboo
author_rank: Super Contributor
timestamp: August 05, 2015, 12:43:11 pm
content: Update DirectX to the newest version, even PCAD doesnt use it, a compatibility layer might or it can be even DirectDraw. Update also the graphich drivers for both cards. And I would try to run it on a virtual machine with XP or in compatibility mode.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: August 05, 2015, 12:54:12 pm
content: Already not using an aero theme, no difference with one.Monitors are all 1600x1200, but makes no difference running just one monitor.There is no noticeable difference when running fullscreen on a monitor connected to the onboard vs, the Nvidia.Further reading suggests that apps that use GDI for drawing are often slower on W7 as W7 uses the CPU more than hardware acceleration for 2D.http://www.tomshardware.co.uk/2d-windows-gdi,review-31795.htmlhttp://www.neowin.net/forum/topic/1036369-did-you-know-all-gdi-apps-render-slower-under-win7/Looking again at speed on my laptop, it's of a similar order to the new machine, so it seems that may explain a lot of the difference.So it looks like Win7 sucks for running older 2D graphics applications.The above article does suggest that some cards' drivers may be better than others at 2D acceleration.the reason for using the Nvidia 210 was it seemed a cheap way to get the extra 2 monitors, and I didn't need turbo-nutter 3d preformance with ridiculous cooling.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: August 05, 2015, 12:55:31 pm
content: Quote from: NANDBlog on August 05, 2015, 12:43:11 pmAlready tried compatibility mode. Surely running in VM would still hit the W7 graphics bottleneck?

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: August 05, 2015, 01:54:31 pm
content: It's only an annoyance on very complex boards, which I don't do very often - might try doing a W8 install on another disk to compare if I get a chance, but not being able to use unsigned driers is probably going to be more annoying overall.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: August 05, 2015, 03:57:32 pm
content: Reading some more, it seems that WDDM1.1 re-enables 2D HW acceleration, and I've confirmed using dxdiag that both graphics cards are using 1.1

author: edavid
author_rank: Super Contributor
timestamp: August 05, 2015, 04:18:06 pm
content: If it's a semi-dedicated ECAD machine, why not go with the flow and keep running WinXP?If the motherboard you bought doesn't support it, you could get a Core i5-2500K or i7-2600K instead, and get great performance with WinXP.BTW, even fairly fast 3D video cards have reasonable power requirements if you only do 2D with them.

author: Wilksey
author_rank: Super Contributor
timestamp: August 05, 2015, 04:23:53 pm
content: Did you physically remove the G210?What graphics chipset is on your laptop (which you say runs well)?Could it be a VRAM issue with the onboard graphics? Can you allocate more memory to it?On my laptop I can select the integrated graphics chip for running office or such, and the "high performance" nvidia chipset for running games etc.Just wondering if there is a clash somewhere with the drivers.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: August 05, 2015, 04:42:59 pm
content: Quote from: Wilksey on August 05, 2015, 04:23:53 pmYes.QuoteRe-testing it's actually fairly similar to the desktop.

author: xygor
author_rank: Regular Contributor
timestamp: August 05, 2015, 08:13:23 pm
content: Quote from: mikeselectricstuff on August 05, 2015, 12:55:31 pmDon't know if it's the same problem, but for me, Cadint refreshes the screen considerably (several octaves) faster in VirtualBox on the same machine (Win7-64). The virtual machine is WinXP-32.

author: IanJ
author_rank: Unknown
timestamp: August 05, 2015, 10:17:20 pm
content: Mike,In Win7 have you tried XP (SP3) compatibility mode (right click shortcut):- Check Disable visual themes- Check Disable desktop composition- Check Disable display scaling on high DPI settingsAlso try:Open control panel and click on System then click on Advanced System Settings to bring up the System Properties window then select the Advanced tab then click the Settings button in the Performance pane to bring up the Performance Options window under here check Adjust for best performance click Apply, wait for setting to apply it can take some time then click OK.Also if none of the above works you might want to re-install Direct X as Win 7,8,10 comes with an incomplete/stripped down version of Direct X which only caters for new stuff.The full directx can be got herehttp://www.microsoft.com/en-us/download/details.aspx?id=8109Ian.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: August 06, 2015, 08:29:46 am
content: Quote from: IanJ on August 05, 2015, 10:17:20 pmAlready tried thatQuoteNo differenceQuoteNo difference.

author: Psi
author_rank: Super Contributor
timestamp: August 06, 2015, 09:05:51 am
content: Could try changing the PCAD task priority to realtime.Probably wont work but easy to test.Maybe also try dropping the color depth to 16bit, see if that has an effect.Hell, even 256 colors would be fine as a temporary change when working on PCBs

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: August 06, 2015, 09:34:53 am
content: Quote from: Psi on August 06, 2015, 09:05:51 amhow?QuoteNo difference.As it's mostly obvious on designs with a huge number of vectors (like maybe 20-30K) I'm wondering if its not so much draw speed but some overhead on each draw operation.I don't know much about how graphics in Windows works, but something I do notice is that when it redraws everything prior to display (like on startup or if I change between quick and normal mode in PCAD, which switches between solid lines and outlines), it's quite a lot faster than for a zoom/pan redraw where you see elements being progressively drawn onscreen.I wonder if there is some sort of pipelining/buffering issue where it's drawing into a buffer then copying to the display on every vector, rather than drawing directly into the screen buffer.

author: Psi
author_rank: Super Contributor
timestamp: August 06, 2015, 09:41:07 am
content: Quote from: mikeselectricstuff on August 06, 2015, 09:34:53 amTask managerProcesses tabFind the PCAD application exe task in the listRight clickSet priority realtimeBut note that if PCAD ever freezes/locks-up with realtime priority set it will use 100% of the cpu cycles and there wont be any left for the basic windows operations needed to process a ctrl-alt-del event and kill the task.Realtime priority means the app gets all the cycles it wants, if it chooses to get stuck in a loop then its usually reset button timeUnless the loop it gets stuck inside has some callback to process windows messages.

author: Psi
author_rank: Super Contributor
timestamp: August 06, 2015, 09:45:03 am
content: Have you tried running PCAD when in windows safe mode? It uses a totally different video driver framework.Not that running it in safe mode is really a valid option, but it might be interesting to see if it has any effect.I always use the Safe Mode "with networking" option if i ever need safe mode, Just because i don't want internet withdrawal

author: Jeroen3
author_rank: Super Contributor
timestamp: August 06, 2015, 09:53:58 am
content: Have you tried telling Windows 7 to not clock down the cpu with speedstepping?Go to Advanced Energy option of (the high performance plan), go to "Processor Power Management", and set "Minimum Processor State" to 100%.Since scrolling is such an incidental event the speedstepping/turbo algorithm might not be fast enough.You can use ProcessLasso if you running the program with higher priority class helps. In there you can also change different priority levels (memory and io). Or, change the Scheduler to change the foreground/background ratio or time-slice time, which might help you get rid of audio glitches, but could also make these single-threaded applications run smoother.https://bitsum.com/processlasso/

author: Psi
author_rank: Super Contributor
timestamp: August 06, 2015, 09:56:52 am
content: I have a really bad idea. I wonder if it would be any faster running inside a winXP VM on top of win7.Could install virtualbox, install XP inside and give it a try.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: August 06, 2015, 10:17:22 am
content: QuoteNo differenceQuoteNo differenceQuoteToo much effort for something that's only a minor annoyance ATM.Might try it next time I have a monster PCB to do if I've not solved it.I have ordered a more powerful graphics card to try (Nvida GTX 285) but from what I can tell the onboard Intel 6400 should be pretty much state-of-the-art for 2D so would be surprised if it makes a difference.From what I read, the WDDM1.1 stuff should restore most of the GDI slowness seen with Vista and W7, but doesn't appear to in this case.

author: Psi
author_rank: Super Contributor
timestamp: August 06, 2015, 10:29:01 am
content: Tried right click, run as administrator ?

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: August 06, 2015, 11:02:11 am
content: Quote from: Psi on August 06, 2015, 10:29:01 amYep.

author: Psi
author_rank: Super Contributor
timestamp: August 06, 2015, 11:26:39 am
content: I'm out of ideas then.

author: nitro2k01
author_rank: Frequent Contributor
timestamp: August 06, 2015, 11:34:58 am
content: Another shot in the dark: Try right clicking the process in the task manager, set affinity, and select only CPU 0.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: August 06, 2015, 11:53:34 am
content: Quote from: Psi on August 06, 2015, 11:26:39 amOK thanks for the suggestions anywayQuoteNo difference

author: IanJ
author_rank: Unknown
timestamp: August 07, 2015, 04:39:49 am
content: could be a DirectX 8.1 issue though, if the app was designed for 8.1 which was discontinued and replaced with DirectX 9 which was meant to be backwards compatible with 8.1 but wasn't fully so any incorrectly written 8.1 app would exhibit some weird issues when run against the more modern DirectX.you might also want to try installing DirectX 8.1 from herehttp://www.oldversion.com/windows/directx-8-1Ian.

author: Psi
author_rank: Super Contributor
timestamp: August 07, 2015, 06:50:12 am
content: Maybe try buying a Tesla model SIt won't fix the PCAD problem but it will take your mind off it.

author: firewalker
author_rank: Super Contributor
timestamp: August 07, 2015, 07:11:59 am
content: Does PCAD offer support?Alexander.

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: August 07, 2015, 08:00:04 am
content: Quote from: firewalker on August 07, 2015, 07:11:59 amNope - Altium dropped it many years ago. They wouldn't even take my money to upgrade from the layer/part limited version I had at the time.

author: Jeroen3
author_rank: Super Contributor
timestamp: August 08, 2015, 07:16:30 pm
content: Did you try the Power Profile method yet.https://www.eevblog.com/forum/eda/pcb-redraw-slow-on-new-machine/msg725142/#msg725142Eagle zooms notably slower when the cpu is idling at a low multiplier.(I don't think eagle utilizes the gpu)You can use process explorer to see if it utilizes gpu.https://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

author: wreeve
author_rank: Unknown
timestamp: August 09, 2015, 03:53:25 pm
content: Try Windows 10. I remember Protel99SE was a big sluggish with 3D rendering on windows 7.8.1 and 10 are fine, it flies, but I suspect that was an OpenGL issue rather than a 2d draw issue.I went from integrated graphics in a Haswell i7 to a dedicated Nvidia 750Ti graphics card and it made zero difference in Protel (the odd 3d game was a different matter!!!).

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: August 09, 2015, 04:01:49 pm
content: Quote from: Jeroen3 on August 08, 2015, 07:16:30 pmJust tried - no difference

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: August 09, 2015, 04:02:59 pm
content: Quote from: wreeve on August 09, 2015, 03:53:25 pmI'd rather put up with it, or try an XP VM on the occasional huge board than risk W10!

author: nitro2k01
author_rank: Frequent Contributor
timestamp: August 09, 2015, 05:48:09 pm
content: Have you confirmed that it actually uses (plain) GDI and not OpenGL? If it does use OpenGL, the problem could simply be that your driver no longer supports OpenGL, or has worse support than the driver you used on XP. Try running the OpenGL extension viewer and see what options you have in the dropdown box at the top.Another thing you can try is using Dependency Walker to see if OpenGL32.dll is imported by the application. But this can be a rough edged sword since the DLL may be imported by a library DLL, or conditionally in which case it won't show up.If you find out that the program is using OpenGL, and that your driver lacks proper OpenGl support, you can try scouting for a different driver that does. If no better driver is offered, you may consider trying TitaniumGL, which emulates OpenGL through Direct3D.The relevant links:http://www.realtech-vr.com/glview/http://www.dependencywalker.com/http://titaniumgl.tk/

author: mikeselectricstuff
author_rank: Super Contributor
timestamp: August 09, 2015, 06:28:04 pm
content: Quote from: nitro2k01 on August 09, 2015, 05:48:09 pmDependency walker shows no opengl, but does show GDI32.DLL, which I assume is to do with it.The SW dates back to at least 1997 and I don't think any major changes in graphics were made before its demise in 2007 or so . I believe it was written in Delphi.I'm not totally convinced that it is purely a GDI issue, as from what I've read, Vista really broke GDI, but WDDM1.1 put a lot of the hardware acceleration back again, though apparently it is now more down to what the card manufacturers choose to implement. I've seen some discussions around 2012 mentioning that ATI and Nvidia have "only recently" added support.Maybe there are some corner cases where it is still poor.As mentioned, there is a substantial difference in speed (like 10x) between when it does a "hidden" redraw (startup and changing display mode from outline to solid) vs when it does it prograssively onscreen (panning & zooming).I don't know enough about PC graphics architecture to understand the process, but I suspect something to do with how images are rendered then displayed.Other PCAD users have reported similar slowdowns, but added that turning Aero off helps, however if I turn Aero on, it doesn't seem to get any slower for me, so I wonder if there may still be some Aero related thing that's persisting even after switching to the Windows Classic theme I use.

author: TerminalJack505
author_rank: Super Contributor
timestamp: August 09, 2015, 07:20:44 pm
content: We still use a crusty version of Borland C++Builder at work (C++Builder is pretty much just Delphi) and there is a very noticeable improvement in screen redraw speed of Borland apps on Windows 7 when Aero is disabled so I'm surprised that that didn't do the trick.Checking the "Disable desktop composition" checkbox on the app's Compatibility page should be all that is necessary to disable Aero. (Launching the app. will cause the OS to disable Aero.)If you have changed the OS DPI setting to something other than 96 DPI then you might switch back to 96 DPI and see if it helps. Your application is likely not DPI-aware so Windows will do all of the application's screen drawing in an off-screen buffer before displaying it. Old apps like yours assumed the screen resolution was 96 DPI so setting the OS's screen resolution to 96 DPI will prevent the OS from "virtualizing" the app's resolution.

author: nitro2k01
author_rank: Frequent Contributor
timestamp: August 09, 2015, 08:10:26 pm
content: Quote from: mikeselectricstuff on August 09, 2015, 06:28:04 pmThat means nothingper se. Every graphical Windows application links to GDI32.dll. But, I was just looking for obvious hints that it might be using OpenGL for rendering.Quote from: mikeselectricstuff on August 09, 2015, 06:28:04 pmAnother shot in the dark, then: Control Panel, Administrative Tools, Services. Look for the Themes service and stop it if it is started.

author: Warhawk
author_rank: Frequent Contributor
timestamp: August 11, 2015, 11:36:46 am
content: Quote from: wreeve on August 09, 2015, 03:53:25 pmI though that Protel 99SE is not stable under windows 7 although you install it in a compatibility mode. Or is it ?

author: wreeve
author_rank: Unknown
timestamp: August 11, 2015, 11:39:37 am
content: Quote from: Warhawk on August 11, 2015, 11:36:46 amYes, what ever you do don't use the set-up under windows 7 and above it screws with the OS in a strange way! What you do is install on XP and just copy all the files over by hand. You have to mess around with the .ini files to get the libraries in and register a few .dll from memory but once up and running it runs very well.

author: Warhawk
author_rank: Frequent Contributor
timestamp: August 13, 2015, 11:15:39 am
content: Quote from: wreeve on August 11, 2015, 11:39:37 amWow ! Excellent information !

author: free_electron
author_rank: Super Contributor
timestamp: August 13, 2015, 02:10:17 pm
content: OpenGL ?