Bug 183511 - [Nicosia] Add threaded PaintingEngine implementation
Summary: [Nicosia] Add threaded PaintingEngine implementation
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Zan Dobersek
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2018-03-09 04:15 PST by Zan Dobersek
Modified: 2018-03-09 06:04 PST (History)
2 users (show)

See Also:


Attachments
Patch (25.00 KB, patch)
2018-03-09 04:44 PST, Zan Dobersek
no flags Details | Formatted Diff | Diff
Patch for landing (25.01 KB, patch)
2018-03-09 05:52 PST, Zan Dobersek
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
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>