Bug 183511

Summary: [Nicosia] Add threaded PaintingEngine implementation
Product: WebKit Reporter: Zan Dobersek <zan>
Component: New BugsAssignee: Zan Dobersek <zan>
Status: RESOLVED FIXED    
Severity: Normal CC: cgarcia, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch
none
Patch for landing none

Description Zan Dobersek 2018-03-09 04:15:31 PST
[Nicosia] Add threaded PaintingEngine implementation
Comment 1 Zan Dobersek 2018-03-09 04:44:22 PST
Created attachment 335421 [details]
Patch
Comment 2 Carlos Garcia Campos 2018-03-09 05:15:17 PST
Comment on attachment 335421 [details]
Patch

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

> Source/WebCore/platform/graphics/nicosia/NicosiaPaintingEngineThreaded.cpp:49
> +    auto* taskData = static_cast<TaskData*>(data);

We could adopt the data here using unique_ptr.

> Source/WebCore/platform/graphics/nicosia/NicosiaPaintingEngineThreaded.cpp:97
> +            paintLayer(context, layer, sourceRect, mappedSourceRect, targetRect,
> +                contentsScale, buffer->supportsAlpha());

I think this could be one line

> Source/WebCore/platform/graphics/nicosia/NicosiaPaintingEngineThreaded.cpp:100
> +    g_thread_pool_push(m_threadPool, new TaskData { WTFMove(buffer), WTFMove(paintingOperations) }, nullptr);

I guess this happens a lot, can we make TaskData fast allocated?
Comment 3 Zan Dobersek 2018-03-09 05:20:26 PST
Comment on attachment 335421 [details]
Patch

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

>> Source/WebCore/platform/graphics/nicosia/NicosiaPaintingEngineThreaded.cpp:49
>> +    auto* taskData = static_cast<TaskData*>(data);
> 
> We could adopt the data here using unique_ptr.

OK.

>> Source/WebCore/platform/graphics/nicosia/NicosiaPaintingEngineThreaded.cpp:97
>> +                contentsScale, buffer->supportsAlpha());
> 
> I think this could be one line

OK.

>> Source/WebCore/platform/graphics/nicosia/NicosiaPaintingEngineThreaded.cpp:100
>> +    g_thread_pool_push(m_threadPool, new TaskData { WTFMove(buffer), WTFMove(paintingOperations) }, nullptr);
> 
> I guess this happens a lot, can we make TaskData fast allocated?

Makes sense.
Comment 4 Zan Dobersek 2018-03-09 05:52:25 PST
Created attachment 335424 [details]
Patch for landing
Comment 5 Zan Dobersek 2018-03-09 06:03:28 PST
Comment on attachment 335424 [details]
Patch for landing

Clearing flags on attachment: 335424

Committed r229460: <https://trac.webkit.org/changeset/229460>
Comment 6 Zan Dobersek 2018-03-09 06:03:32 PST
All reviewed patches have been landed.  Closing bug.
Comment 7 Radar WebKit Bug Importer 2018-03-09 06:04:18 PST
<rdar://problem/38300730>