<div dir="ltr"><div>Did the patch 5 split / AVX fix work get merged at all, I didn't see any more mails about it?</div><div><br></div><div>Thanks!<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, 14 Jan 2020 at 21:34, Marcus Asteborg <<a href="mailto:xnorpx@outlook.com">xnorpx@outlook.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">




<div dir="ltr">
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Awesome thanks! Good comments.</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
Please apply patch 1-4 and I prepare another iteration on patch 5 for you too look at.</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
<br>
</div>
<div style="font-family:Calibri,Helvetica,sans-serif;font-size:12pt;color:rgb(0,0,0)">
//Marcus</div>
<div id="gmail-m_-2393946875692310092appendonsend"></div>
<hr style="display:inline-block;width:98%">
<div id="gmail-m_-2393946875692310092divRplyFwdMsg" dir="ltr"><font style="font-size:11pt" face="Calibri, sans-serif" color="#000000"><b>From:</b> Jean-Marc Valin <<a href="mailto:jmvalin@jmvalin.ca" target="_blank">jmvalin@jmvalin.ca</a>><br>
<b>Sent:</b> Tuesday, January 14, 2020 08:24<br>
<b>To:</b> Marcus Asteborg <<a href="mailto:xnorpx@outlook.com" target="_blank">xnorpx@outlook.com</a>><br>
<b>Cc:</b> Simon Jackson <<a href="mailto:simon.jackson@sonocent.com" target="_blank">simon.jackson@sonocent.com</a>><br>
<b>Subject:</b> Re: [opus] CMake patches</font>
<div> </div>
</div>
<div><font size="2"><span style="font-size:11pt">
<div>Hi Marcus,<br>
<br>
So I looked at the patches and have no issue with patches 1-4. For <br>
patches 5 I have a few comments/questions.<br>
<br>
- The patch should probably be split in 3 (alloca, fast-math, and <br>
SSE/AVX) to be clearer and easier to bisect if something goes wrong.<br>
- About the alloca part, I'm not sure I understand what's happening but <br>
it looks like alloca gets enabled only with MSVC and not gcc? That's <br>
fine if gcc gets VAR_ARRAYS instead, but otherwise it's suboptimal and <br>
may lead to problems.<br>
- About FLOAT_APPROX, this is not the same as -ffast-math. FLOAT_APPROX <br>
means that the code will approximate functions like exp() and log() by <br>
directly playing with the bits *assuming* that the float data is in IEEE <br>
754 format. That's the case for x86 and ARM, but there are odd <br>
architectures that implement non-754 float. Enabling FLOAT_APPROX on <br>
those would break Opus badly. So it would be best to only enable <br>
FLOAT_APPROX on archs that are known to have 754 float.<br>
- About SSE/AVX, I read the post about why MAY_HAVE could break with <br>
MSVC. Note that the Opus codebase uses static for every function defined <br>
in header files, so that part shouldn't be a problem. OTOH, the math.h <br>
problem may still be there. If you have a way to solve the math.h <br>
problem, cpu detection on MSVC might be an option though.<br>
<br>
Cheers,<br>
<br>
        Jean-Marc<br>
<br>
<br>
On 1/9/20 12:48 AM, Marcus Asteborg wrote:<br>
> Ping @Jean-Marc Valin <<a href="mailto:jmvalin@jmvalin.ca" target="_blank">mailto:jmvalin@jmvalin.ca</a>> !<br>
> ------------------------------------------------------------------------<br>
> *From:* Simon Jackson <<a href="mailto:simon.jackson@sonocent.com" target="_blank">simon.jackson@sonocent.com</a>><br>
> *Sent:* Wednesday, January 8, 2020 09:54<br>
> *To:* Marcus Asteborg <<a href="mailto:xnorpx@outlook.com" target="_blank">xnorpx@outlook.com</a>><br>
> *Cc:* <a href="mailto:opus@xiph.org" target="_blank">opus@xiph.org</a> <<a href="mailto:opus@xiph.org" target="_blank">opus@xiph.org</a>>; Jean-Marc Valin <<a href="mailto:jmvalin@jmvalin.ca" target="_blank">jmvalin@jmvalin.ca</a>><br>
> *Subject:* Re: [opus] CMake patches<br>
> Hi,<br>
> <br>
> This is great! I've literally run into the SSE/AVX issue over the past <br>
> two days and was about to start putting together a PR myself. When using <br>
> libopus compiled with the CMake toolchain on the Google Android <br>
> emulator, `-mavx` causes SIGILL because it's vectorising the variadic <br>
> function parameters and the emulator doesn't support AVX. I'd really <br>
> appreciate if these make their way into master quickly because this has <br>
> been causing me a bit of a headache.<br>
> <br>
> Thanks!<br>
> <br>
> On Wed, 18 Dec 2019 at 00:00, Marcus Asteborg <<a href="mailto:xnorpx@outlook.com" target="_blank">xnorpx@outlook.com</a> <br>
> <<a href="mailto:xnorpx@outlook.com" target="_blank">mailto:xnorpx@outlook.com</a>>> wrote:<br>
> <br>
>     Hi all,<br>
> <br>
>     With some downtime it's time for some CMake fixes.<br>
> <br>
>     Most critically is the SSE fixes to avoid crashes that is described<br>
>     in 154 and 132 in github. Patch 5 should address this and also<br>
>     adding APPROX-FLOAT option.<br>
>     Hopefully this can give some gains for those of us running on<br>
>     Windows servers.j<br>
> <br>
>     I went through the pull request and picked out a few that will ease<br>
>     up integration for consumers of Opus. Those patches are also added<br>
>     here with the original authors as commiters.<br>
> <br>
>     I will go through the rest of the CMake related pull requests as<br>
>     well later this week.<br>
> <br>
>     It would be nice to setup a CI-Pipeline with CMake builds whoever<br>
>     owns that on feel free to reach out to me and I can do the work needed.<br>
> <br>
>     //Marcus<br>
>     _______________________________________________<br>
>     opus mailing list<br>
>     <a href="mailto:opus@xiph.org" target="_blank">opus@xiph.org</a> <<a href="mailto:opus@xiph.org" target="_blank">mailto:opus@xiph.org</a>><br>
>     <a href="https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.xiph.org%2Fmailman%2Flistinfo%2Fopus&amp;data=02%7C01%7C%7Cc15671b24d8e491dc19508d7990e4df7%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637146159020540767&amp;sdata=GdeehvmtVJ2EIjN9ZbfFBhVVfQHR4jaOoQoqeHhhZAY%3D&amp;reserved=0" target="_blank">
https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.xiph.org%2Fmailman%2Flistinfo%2Fopus&amp;data=02%7C01%7C%7Cc15671b24d8e491dc19508d7990e4df7%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637146159020540767&amp;sdata=GdeehvmtVJ2EIjN9ZbfFBhVVfQHR4jaOoQoqeHhhZAY%3D&amp;reserved=0</a><br>
>     <<a href="https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.xiph.org%2Fmailman%2Flistinfo%2Fopus&amp;data=02%7C01%7C%7Cc15671b24d8e491dc19508d7990e4df7%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637146159020540767&amp;sdata=GdeehvmtVJ2EIjN9ZbfFBhVVfQHR4jaOoQoqeHhhZAY%3D&amp;reserved=0" target="_blank">https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Flists.xiph.org%2Fmailman%2Flistinfo%2Fopus&amp;data=02%7C01%7C%7Cc15671b24d8e491dc19508d7990e4df7%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637146159020540767&amp;sdata=GdeehvmtVJ2EIjN9ZbfFBhVVfQHR4jaOoQoqeHhhZAY%3D&amp;reserved=0</a>><br>
> <br>
</div>
</span></font></div>
</div>

</blockquote></div>