RESOLVED FIXED 179833
FETurbulence: compute all 4 channels at once
https://bugs.webkit.org/show_bug.cgi?id=179833
Summary FETurbulence: compute all 4 channels at once
Simon Fraser (smfr)
Reported 2017-11-17 11:41:28 PST
We can compute all 4 channels in one pass.
Attachments
Patch (12.12 KB, patch)
2017-11-17 11:42 PST, Simon Fraser (smfr)
no flags
Patch (20.24 KB, patch)
2017-11-17 17:40 PST, Simon Fraser (smfr)
sam: review+
Simon Fraser (smfr)
Comment 1 2017-11-17 11:42:17 PST
Created attachment 327203 [details] Patch This makes FETurbulence about 2x faster.
Simon Fraser (smfr)
Comment 2 2017-11-17 17:40:38 PST
Sam Weinig
Comment 3 2017-11-17 17:57:01 PST
Comment on attachment 327286 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=327286&action=review > Source/WebCore/platform/graphics/ColorUtilities.h:42 > + FloatComponents& operator +=(const FloatComponents& rhs) We don't usually put a space after 'operator'. > Source/WebCore/platform/graphics/ColorUtilities.h:51 > + FloatComponents operator +(float rhs) const We don't usually put a space after 'operator'. > Source/WebCore/platform/graphics/ColorUtilities.h:61 > + FloatComponents operator /(float denominator) const We don't usually put a space after 'operator'. > Source/WebCore/platform/graphics/ColorUtilities.h:71 > + FloatComponents operator *(float factor) const We don't usually put a space after 'operator'.
Simon Fraser (smfr)
Comment 4 2017-11-17 18:32:32 PST
Radar WebKit Bug Importer
Comment 5 2017-11-17 18:33:35 PST
Sam Weinig
Comment 6 2017-11-18 09:08:04 PST
I know I already reviewed this, but I wonder if this could get an even bigger speedup if we used something like GCC's: typedef float float4 __attribute__((__vector_size__(16))) or clangs: typedef __attribute__((__ext_vector_type__(4))) float float4;
Note You need to log in before you can comment on or make changes to this bug.