<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Sep 11, 2014 at 3:53 PM, Dieter Nützel <span dir="ltr"><<a href="mailto:Dieter@nuetzel-hh.de" target="_blank">Dieter@nuetzel-hh.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Am 12.09.2014 00:31, schrieb Jason Ekstrand:<div><div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Thu, Sep 11, 2014 at 2:55 PM, Dieter Nützel <<a href="mailto:Dieter@nuetzel-hh.de" target="_blank">Dieter@nuetzel-hh.de</a>><br>
wrote:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Am 15.08.2014 04:50, schrieb Jason Ekstrand:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Aug 14, 2014 7:13 PM, "Dieter Nützel" <<a href="mailto:Dieter@nuetzel-hh.de" target="_blank">Dieter@nuetzel-hh.de</a>><br>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Am 15.08.2014 02:36, schrieb Dave Airlie:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 08/02/2014 02:11 PM, Jason Ekstrand wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
<br>
Most format conversion operations required by GL can be<br>
</blockquote></blockquote></blockquote></blockquote></blockquote>
performed by<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
converting one channel at a time, shuffling the channels<br>
</blockquote></blockquote></blockquote></blockquote></blockquote>
around, and<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
optionally filling missing channels with zeros and ones.<br>
</blockquote></blockquote></blockquote></blockquote></blockquote>
This<br>
adds a<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
function to do just that in a general, yet efficient, way.<br>
<br>
v2:<br>
* Add better comments including full docs for functions<br>
* Don't use __typeof__<br>
* Use inline helpers instead of writing out conversions<br>
</blockquote></blockquote></blockquote></blockquote></blockquote>
by<br>
hand,<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
* Force full loop unrolling for better performance<br>
<br>
</blockquote></blockquote></blockquote>
<br>
<br>
This file seems to anger gcc a lot.<br>
<br>
It seems to take upwards of a minute or two to compile here.<br>
<br>
gcc 4.8.3 on 32-bit x86.<br>
<br>
Dave.<br>
</blockquote>
<br>
<br>
For me (on our poor little Duron 1800/2 GB) it ran ~5<br>
</blockquote>
minutes...<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
gcc 4.8.1 on 32-bit x86.<br>
</blockquote>
<br>
If we'd like, the way the macros are set up, it would be easy to<br>
change it so that we do less unrolling in the cases where we are<br>
actually doing substantial format conversion and wouldn't notice<br>
the<br>
extra logic quite as much. I'll play with it a bit tomorrow or<br>
next<br>
week and see how how much of a hit we would actually take if we<br>
unrolled a little less in places.<br>
--Jason Ekstrand<br>
</blockquote>
<br>
Ping.<br>
<br>
In a second it took 11+ minutes , here...<br>
</blockquote>
<br>
11 minutes! What system are you running?  and are you using -03 or<br>
something?  Yes, we can do something to cut it down, but it will<br>
probably require a configure flag; the question is what flag.<br>
<br>
--Jason<br>
</blockquote>
<br></div></div>
See above, the old children's system... ;-)<br>
-O2 -m32 -march=athlon-mp -mtune=athlon-mp -m3dnow -msse -mmmx -mfpmath=sse,387 -pipe<br>
<br>
Bad? - Worked for ages on AthlonMP....8-)<br>
Maybe it is bad on Duron (the MP thing, much smaller cache and better GCC), now.<span class="HOEnZb"><font color="#888888"><br>
<br>
Dieter<br>
</font></span></blockquote></div><br></div><div class="gmail_extra">Yeah, my recommendation would be hacking the macros to not unroll and keep the patch locally.  If you've got a better idea as to how to organize the code so the compiler likes it, I'm open as long as we don't loose performance.<br></div><div class="gmail_extra">--Jason<br></div></div>