Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 7e3bfb4cf39ac035dfec7f0d4b12384f22a3d484
      
https://github.com/WebKit/WebKit/commit/7e3bfb4cf39ac035dfec7f0d4b12384f22a3d484
  Author: Myles C. Maxfield <[email protected]>
  Date:   2023-04-20 (Thu, 20 Apr 2023)

  Changed paths:
    M Source/WebCore/Modules/ShapeDetection/BarcodeDetector.cpp
    M Source/WebCore/Modules/ShapeDetection/BarcodeDetector.h
    M Source/WebCore/Modules/ShapeDetection/BarcodeDetector.idl
    M Source/WebCore/Modules/ShapeDetection/FaceDetector.cpp
    M Source/WebCore/Modules/ShapeDetection/FaceDetector.h
    M Source/WebCore/Modules/ShapeDetection/FaceDetector.idl
    M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/BarcodeDetectorImplementation.h
    M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/BarcodeDetectorImplementation.mm
    M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/FaceDetectorImplementation.h
    M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/FaceDetectorImplementation.mm
    M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/TextDetectorImplementation.h
    M 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/TextDetectorImplementation.mm
    M 
Source/WebCore/Modules/ShapeDetection/Interfaces/BarcodeDetectorInterface.h
    M Source/WebCore/Modules/ShapeDetection/Interfaces/FaceDetectorInterface.h
    M Source/WebCore/Modules/ShapeDetection/Interfaces/TextDetectorInterface.h
    M Source/WebCore/Modules/ShapeDetection/TextDetector.cpp
    M Source/WebCore/Modules/ShapeDetection/TextDetector.h
    M Source/WebCore/Modules/ShapeDetection/TextDetector.idl
    M Source/WebKit/GPUProcess/ShapeDetection/RemoteBarcodeDetector.cpp
    M Source/WebKit/GPUProcess/ShapeDetection/RemoteBarcodeDetector.h
    M Source/WebKit/GPUProcess/ShapeDetection/RemoteBarcodeDetector.messages.in
    M Source/WebKit/GPUProcess/ShapeDetection/RemoteFaceDetector.cpp
    M Source/WebKit/GPUProcess/ShapeDetection/RemoteFaceDetector.h
    M Source/WebKit/GPUProcess/ShapeDetection/RemoteFaceDetector.messages.in
    M Source/WebKit/GPUProcess/ShapeDetection/RemoteTextDetector.cpp
    M Source/WebKit/GPUProcess/ShapeDetection/RemoteTextDetector.h
    M Source/WebKit/GPUProcess/ShapeDetection/RemoteTextDetector.messages.in
    M Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp
    M Source/WebKit/WebProcess/GPU/ShapeDetection/RemoteBarcodeDetectorProxy.cpp
    M Source/WebKit/WebProcess/GPU/ShapeDetection/RemoteBarcodeDetectorProxy.h
    M Source/WebKit/WebProcess/GPU/ShapeDetection/RemoteFaceDetectorProxy.cpp
    M Source/WebKit/WebProcess/GPU/ShapeDetection/RemoteFaceDetectorProxy.h
    M Source/WebKit/WebProcess/GPU/ShapeDetection/RemoteTextDetectorProxy.cpp
    M Source/WebKit/WebProcess/GPU/ShapeDetection/RemoteTextDetectorProxy.h

  Log Message:
  -----------
  [Shape Detection] Plumb ImageBitmapSource to the GPU process
https://bugs.webkit.org/show_bug.cgi?id=255633
rdar://108232629

Reviewed by Dean Jackson.

This patch plumbs ImageBitmapSource to the GPU process by using the same 
technique as ImageBitmap uses.
When you say createImageBitmap(), what that actually does is it creates a new 
ImageBuffer and draws the
source object into the ImageBuffer's graphics context. The ImageBitmap is 
backed by the ImageBuffer.
The cool part about this is that sending the ImageBuffer to the GPU process is 
actually free, because
the context that draw into it is a remote context that actually performs the 
draw in the GPU process -
so the ImageBitmap is _already_ in the GPU process. If you want to send it to a 
new API call in the GPU
process, all you need to send is its identifier, and have the GPU process look 
it up from the
RemoteRenderingBackend.

No tests because there is no behavior change - I haven't actually hooked up the 
Vision framework to
actually implement any of the calls yet.

* Source/WebCore/Modules/ShapeDetection/BarcodeDetector.cpp:
(WebCore::BarcodeDetector::detect):
* Source/WebCore/Modules/ShapeDetection/BarcodeDetector.h:
* Source/WebCore/Modules/ShapeDetection/BarcodeDetector.idl:
* Source/WebCore/Modules/ShapeDetection/FaceDetector.cpp:
(WebCore::FaceDetector::detect):
* Source/WebCore/Modules/ShapeDetection/FaceDetector.h:
* Source/WebCore/Modules/ShapeDetection/FaceDetector.idl:
* 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/BarcodeDetectorImplementation.h:
* 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/BarcodeDetectorImplementation.mm:
(WebCore::ShapeDetection::BarcodeDetectorImpl::detect):
* 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/FaceDetectorImplementation.h:
* 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/FaceDetectorImplementation.mm:
(WebCore::ShapeDetection::FaceDetectorImpl::detect):
* 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/TextDetectorImplementation.h:
* 
Source/WebCore/Modules/ShapeDetection/Implementation/Cocoa/TextDetectorImplementation.mm:
(WebCore::ShapeDetection::TextDetectorImpl::detect):
* Source/WebCore/Modules/ShapeDetection/Interfaces/BarcodeDetectorInterface.h:
* Source/WebCore/Modules/ShapeDetection/Interfaces/FaceDetectorInterface.h:
* Source/WebCore/Modules/ShapeDetection/Interfaces/TextDetectorInterface.h:
* Source/WebCore/Modules/ShapeDetection/TextDetector.cpp:
(WebCore::TextDetector::detect):
* Source/WebCore/Modules/ShapeDetection/TextDetector.h:
* Source/WebCore/Modules/ShapeDetection/TextDetector.idl:
* Source/WebCore/html/ImageBitmap.cpp:
(WebCore::ImageBitmap::createCompletionHandler):
(WebCore::ImageBitmap::createPromise):
(WebCore::ImageBitmap::createBlankImageBuffer):
(WebCore::ImageBitmap::createFromBuffer):
(WebCore::ImageBitmap::resolveWithBlankImageBuffer): Deleted.
* Source/WebCore/html/ImageBitmap.h:
* Source/WebKit/GPUProcess/ShapeDetection/RemoteBarcodeDetector.cpp:
(WebKit::RemoteBarcodeDetector::RemoteBarcodeDetector):
(WebKit::RemoteBarcodeDetector::detect):
* Source/WebKit/GPUProcess/ShapeDetection/RemoteBarcodeDetector.h:
(WebKit::RemoteBarcodeDetector::create):
* Source/WebKit/GPUProcess/ShapeDetection/RemoteBarcodeDetector.messages.in:
* Source/WebKit/GPUProcess/ShapeDetection/RemoteFaceDetector.cpp:
(WebKit::RemoteFaceDetector::RemoteFaceDetector):
(WebKit::RemoteFaceDetector::detect):
* Source/WebKit/GPUProcess/ShapeDetection/RemoteFaceDetector.h:
(WebKit::RemoteFaceDetector::create):
* Source/WebKit/GPUProcess/ShapeDetection/RemoteFaceDetector.messages.in:
* Source/WebKit/GPUProcess/ShapeDetection/RemoteTextDetector.cpp:
(WebKit::RemoteTextDetector::RemoteTextDetector):
(WebKit::RemoteTextDetector::detect):
* Source/WebKit/GPUProcess/ShapeDetection/RemoteTextDetector.h:
(WebKit::RemoteTextDetector::create):
* Source/WebKit/GPUProcess/ShapeDetection/RemoteTextDetector.messages.in:
* Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::createRemoteBarcodeDetector):
(WebKit::RemoteRenderingBackend::createRemoteFaceDetector):
(WebKit::RemoteRenderingBackend::createRemoteTextDetector):
* Source/WebKit/WebProcess/GPU/ShapeDetection/RemoteBarcodeDetectorProxy.cpp:
(WebKit::ShapeDetection::RemoteBarcodeDetectorProxy::detect):
* Source/WebKit/WebProcess/GPU/ShapeDetection/RemoteBarcodeDetectorProxy.h:
* Source/WebKit/WebProcess/GPU/ShapeDetection/RemoteFaceDetectorProxy.cpp:
(WebKit::ShapeDetection::RemoteFaceDetectorProxy::detect):
* Source/WebKit/WebProcess/GPU/ShapeDetection/RemoteFaceDetectorProxy.h:
* Source/WebKit/WebProcess/GPU/ShapeDetection/RemoteTextDetectorProxy.cpp:
(WebKit::ShapeDetection::RemoteTextDetectorProxy::detect):
* Source/WebKit/WebProcess/GPU/ShapeDetection/RemoteTextDetectorProxy.h:

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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to