RESOLVED FIXED Bug 80256
Optimize for DARWIN in DirectConvolver::process()
https://bugs.webkit.org/show_bug.cgi?id=80256
Summary Optimize for DARWIN in DirectConvolver::process()
Xingnan Wang
Reported 2012-03-05 01:47:06 PST
conv() function in Accelerate.framework can be used.
Attachments
Patch (2.86 KB, patch)
2012-04-18 00:11 PDT, Xingnan Wang
no flags
Patch (2.86 KB, patch)
2012-04-18 01:24 PDT, Xingnan Wang
no flags
Patch (2.41 KB, patch)
2012-04-18 19:10 PDT, Xingnan Wang
no flags
Patch (2.70 KB, patch)
2012-04-18 23:19 PDT, Xingnan Wang
no flags
Chris Rogers
Comment 1 2012-04-05 00:28:17 PDT
Accelerate.framework conv() function may be optimized in DirectConvolver.cpp, but unlikely critical.
Xingnan Wang
Comment 2 2012-04-18 00:11:32 PDT
Build Bot
Comment 3 2012-04-18 00:47:26 PDT
Xingnan Wang
Comment 4 2012-04-18 01:24:41 PDT
Chris Rogers
Comment 5 2012-04-18 10:29:39 PDT
Comment on attachment 137659 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=137659&action=review Xingnan, thanks for doing this - looks reasonable, but I'd like to have a chance to try out the patch... > Source/WebCore/platform/audio/DirectConvolver.h:40 > +#endif Can we move this include to the .cpp file?
Chris Rogers
Comment 6 2012-04-18 14:39:50 PDT
Comment on attachment 137659 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=137659&action=review Seems to sound fine, passes layout tests, etc. just the two nits with the #include and the #if stuff: > Source/WebCore/platform/audio/DirectConvolver.cpp:88 > +#if OS(DARWIN) Instead of nesting the #if OS(DARWIN) inside of the #if USE(WEBAUDIO_IPP) can we instead use #elif #if USE(WEBAUDIO_IPP) #elif OS(DARWIN) #else #endif
Xingnan Wang
Comment 7 2012-04-18 19:10:28 PDT
Xingnan Wang
Comment 8 2012-04-18 19:13:00 PDT
Comment on attachment 137659 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=137659&action=review Updated the patch, thanks. >> Source/WebCore/platform/audio/DirectConvolver.cpp:88 >> +#if OS(DARWIN) > > Instead of nesting the #if OS(DARWIN) inside of the #if USE(WEBAUDIO_IPP) > can we instead use #elif > > #if USE(WEBAUDIO_IPP) > #elif OS(DARWIN) > #else > #endif Done. >> Source/WebCore/platform/audio/DirectConvolver.h:40 >> +#endif > > Can we move this include to the .cpp file? Done.
Chris Rogers
Comment 9 2012-04-18 20:32:58 PDT
Xingnan, I'm very sorry I didn't see this earlier. I now see that your original approach was better since it's able to share more common code with the un-optimized case. Can we try a new patch similar to patch #2, but with the header file fix? Sorry about that. Also, we *might* need to handle the macro insanity similar to what we do with some of the other vDSP functions in VectorMath.cpp - adding Jer Noble to verify...
Chris Rogers
Comment 10 2012-04-18 20:34:14 PDT
Jer, can you please have a look to see if we need the: #if defined(__ppc__) || defined(__i386__) stuff that some other vecLib functions need (in VectorMath.cpp Thanks!
Jer Noble
Comment 11 2012-04-18 22:31:00 PDT
(In reply to comment #10) > Jer, can you please have a look to see if we need the: > > #if defined(__ppc__) || defined(__i386__) > > stuff that some other vecLib functions need (in VectorMath.cpp > > Thanks! Yep. vDSP_conv() is defined as a macro in vDSP_translate.h on x86_64.
Xingnan Wang
Comment 12 2012-04-18 23:19:02 PDT
Xingnan Wang
Comment 13 2012-04-18 23:23:28 PDT
(In reply to comment #12) > Created an attachment (id=137852) [details] > Patch Updated the patch.
Chris Rogers
Comment 14 2012-04-19 00:12:43 PDT
Comment on attachment 137852 [details] Patch Thanks Xingnan!
WebKit Review Bot
Comment 15 2012-04-19 00:20:53 PDT
Comment on attachment 137852 [details] Patch Clearing flags on attachment: 137852 Committed r114621: <http://trac.webkit.org/changeset/114621>
WebKit Review Bot
Comment 16 2012-04-19 00:20:58 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.