Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 756e76506075a07f145e541a5345bef05b432e3f
      
https://github.com/WebKit/WebKit/commit/756e76506075a07f145e541a5345bef05b432e3f
  Author: Pawel Lampe <[email protected]>
  Date:   2024-12-05 (Thu, 05 Dec 2024)

  Changed paths:
    M Source/WebCore/bindings/js/SerializedScriptValue.cpp
    M Source/WebCore/html/ImageBitmap.cpp
    M Source/WebCore/html/ImageBitmap.h
    M Source/WebCore/platform/graphics/ImageBuffer.cpp
    M Source/WebCore/platform/graphics/ImageBuffer.h
    M Source/WebCore/workers/DedicatedWorkerGlobalScope.cpp
    M Source/WebCore/workers/Worker.cpp

  Log Message:
  -----------
  [GTK][WPE][Skia] Allow cross-thread transfer of accelerated ImageBitmap
https://bugs.webkit.org/show_bug.cgi?id=283704

Reviewed by Nikolas Zimmermann and Carlos Garcia Campos.

When using skia, transferring ownership of accelerated ImageBitmaps causes 
GrDirectContext mismatches
that lead to problems with reading pixels, drawing etc. So far, to fix such 
problems, accelerated
ImageBitmaps were decelerated before transferring.

This change improves the above fix and allows the transfer of accelerated 
ImageBitmaps. To make such
ImageBitmaps working correctly, however, this change utilizes the code that 
re-wraps ImageBuffer with
a proper GrDirectContext. To make that operation safe, the fences are used.

* Source/WebCore/bindings/js/SerializedScriptValue.cpp:
(WebCore::CloneSerializer::dumpImageBitmap):
(WebCore::CloneDeserializer::readTransferredImageBitmap):
* Source/WebCore/html/ImageBitmap.cpp:
(WebCore::ImageBitmap::finalizeCrossThreadTransfer):
* Source/WebCore/html/ImageBitmap.h:
* Source/WebCore/platform/graphics/ImageBuffer.cpp:
(WebCore::ImageBuffer::sinkIntoImageBufferForCrossThreadTransfer):
(WebCore::ImageBuffer::sinkIntoImageBufferAfterCrossThreadTransfer):
* Source/WebCore/platform/graphics/ImageBuffer.h:
* Source/WebCore/workers/DedicatedWorkerGlobalScope.cpp:
(WebCore::DedicatedWorkerGlobalScope::postMessage):
* Source/WebCore/workers/Worker.cpp:
(WebCore::Worker::postMessage):

Canonical link: https://commits.webkit.org/287399@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to