Bug 145719

Summary: [iOS] Don't force compositing layers for no-op 3D transforms on low-memory devices.
Product: WebKit Reporter: Andreas Kling <kling>
Component: Layout and RenderingAssignee: Andreas Kling <kling>
Status: REOPENED ---    
Severity: Normal CC: commit-queue, esprehn+autocc, ggaren, glenn, kling, kondapallykalyan, simon.fraser
Priority: P2 Keywords: InRadar, Performance
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on: 145723    
Bug Blocks:    
Attachments:
Description Flags
Patch ggaren: review+

Description Andreas Kling 2015-06-05 16:58:24 PDT
<rdar://problem/19973042>
Comment 1 Andreas Kling 2015-06-05 16:59:45 PDT
Created attachment 254398 [details]
Patch
Comment 2 WebKit Commit Bot 2015-06-05 17:01:46 PDT
Attachment 254398 [details] did not pass style-queue:


ERROR: Source/WebCore/rendering/RenderLayerCompositor.cpp:66:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 3 Geoffrey Garen 2015-06-05 17:15:54 PDT
Comment on attachment 254398 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=254398&action=review

r=me

> Source/WebCore/rendering/RenderLayerCompositor.cpp:2476
> +    static uint64_t memSize = ramSize() / 1024 / 1024;

Please call this ramSizeInMB.

> Source/WebCore/rendering/RenderLayerCompositor.cpp:2478
> +        // Special policy for low-memory devices: Don't require compositing just because there's a no-op 3D transform.

I really really really wish we did this all the time.
Comment 4 Andreas Kling 2015-06-05 19:22:20 PDT
(In reply to comment #3) 
> > Source/WebCore/rendering/RenderLayerCompositor.cpp:2478
> > +        // Special policy for low-memory devices: Don't require compositing just because there's a no-op 3D transform.
> 
> I really really really wish we did this all the time.

Me too, really x3.
Comment 5 Andreas Kling 2015-06-05 20:12:11 PDT
Committed r185284: <http://trac.webkit.org/changeset/185284>
Comment 6 WebKit Commit Bot 2015-06-06 01:39:47 PDT
Re-opened since this is blocked by bug 145723
Comment 7 Darin Adler 2015-06-06 09:58:20 PDT
Comment on attachment 254398 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=254398&action=review

>> Source/WebCore/rendering/RenderLayerCompositor.cpp:2476
>> +    static uint64_t memSize = ramSize() / 1024 / 1024;
> 
> Please call this ramSizeInMB.

If we are going to precompute and cache something, I suggest caching the boolean that indicates whether we should do the special policy. Not as good to instead cache a 64-bit number and keep comparing it against 512 over and over again.