<div class="gmail_quote">On Mon, Nov 28, 2011 at 12:53 PM, Alex Deucher <span dir="ltr">&lt;<a href="mailto:alexdeucher@gmail.com">alexdeucher@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div class="im">On Mon, Nov 28, 2011 at 3:33 PM, Element Green<br>
&lt;<a href="mailto:element@elementsofsound.org">element@elementsofsound.org</a>&gt; wrote:<br>
&gt; Hello,<br>
&gt; I happened upon this thread when searching for information on slow<br>
&gt; performance with Kicad and the open source radeon driver.<br>
&gt; <a href="http://lists.x.org/archives/xorg-driver-ati/2011-August/021077.html" target="_blank">http://lists.x.org/archives/xorg-driver-ati/2011-August/021077.html</a><br>
&gt; I have a ATI/AMD HD 5800 series video card in my laptop.  I&#39;ve also been<br>
&gt; rather impressed with the open source driver, even compared to Catalyst<br>
&gt; (which seems to suffer from many problems, especially with gnome 3).  So I&#39;m<br>
&gt; very keen on getting Kicad to be usable with it.<br>
&gt; After doing a lot of profiling with sysprof, oprofile and gprof, I<br>
&gt; discovered that the open source radeon driver works acceptably when the<br>
&gt; radeon Kernel module is not loaded.  I discovered this when I was trying to<br>
&gt; switch back to the open source driver from Catalyst and there was an issue<br>
&gt; with the Kernel module loading.<br>
&gt; From what I can tell from /var/log/Xorg.0.log there is some rather<br>
&gt; significant initialization differences when the radeon Kernel module has not<br>
&gt; been loaded.  I tried disabling dri and dri2 to see if they were the<br>
&gt; culprit, but that makes Xorg non functional (weird square block for a mouse<br>
&gt; cursor over a black or corrupted display).  I also tried disabling many<br>
&gt; other extensions and modules (Render, glx, Composite), but none of them<br>
&gt; seemed to be causing the issue.<br>
&gt; Does this lend any information in regards to what could be causing the poor<br>
&gt; performance with Kicad?  Any ideas what different code paths could be<br>
<br>
</div>When you don&#39;t load KMS, you disable acceleration so you are getting<br>
software rendering.  Adding:<br>
Option &quot;NoAccel&quot; &quot;True&quot;<br>
to the device section of your xorg.conf should produce the same<br>
effect.  IIRC, Kicad uses certain operations that are not accelerated<br>
which causes a fallback to software rendering.  This ends up being<br>
slower than pure sw rendering due to ping-ponging between GPU and CPU<br>
memory and waiting for the gfx pipe to drain.<br>
<br>
Alex<br>
<div class="im"><br></div></blockquote><div><br></div><div>Hello Alex,</div><div><br></div><div>I just gave that a try just before getting your email (a diff between the 2 Xorg logs made it obvious) and it did indeed speed things up.  Previously using xtrace I got a list of X protocol drawing primitives being used (listed below, with the number of calls in my test run).  What extension or module would acceleration of these operations fall under?  EXA, Render, or ??  I&#39;m a pretty competent programmer, but have never worked with Xorg and find the sheer number of different extensions, deprecated extensions, etc to be rather confusing.  I&#39;d like to have a crack at adding acceleration for the missing operations.  Any idea why they are missing for this card?  Has AMD released enough info for this type of effort?  Also if you have any tips on how I can tell if a given operation is accelerated or not, that would be great.</div>

<div><br></div><div>Thanks for the helpful info!</div><div><br></div><div>Element Green</div><div><br></div><div><br></div><div>Some of the protocol operations gleaned using xtrace for Kicad test run:</div><div><div>   1035 CopyArea</div>

<div>   1072 op=Over(0x03)</div><div>   1168 GetInputFocus</div><div>   1193 FreePicture</div><div>   1231 CreatePicture</div><div>   1439 FillRectangles</div><div>   1616 FreePixmap</div><div>   1655 CreatePixmap</div><div>

   2064 coordinate-mode=Origin(0x00)</div><div>   3235 PolyFillArc</div><div>   4467 SetClipRectangles</div><div>   8443 FillPoly</div><div>   9526 PolyRectangle</div><div>  10374 PolyFillRectangle</div><div>  13094 PolyArc</div>

<div>  31302 PolySegment</div><div>  39269 PolyPoint</div><div>  54587 ChangeGC</div><div>  59700 PolyLine</div></div><div><br></div></div>