[webkit-changes] [WebKit/WebKit] ff5072: WebGPU should be exposed in DedicatedWorkers
mwyrzykowski
noreply at github.com
Fri Sep 29 23:12:45 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ff507241e7dd8c7bc6d01f11027c09e8e3f0dc1b
https://github.com/WebKit/WebKit/commit/ff507241e7dd8c7bc6d01f11027c09e8e3f0dc1b
Author: Mike Wyrzykowski <mwyrzykowski at apple.com>
Date: 2023-09-29 (Fri, 29 Sep 2023)
Changed paths:
M Source/JavaScriptCore/inspector/protocol/Canvas.json
M Source/WebCore/Modules/WebGPU/GPU.idl
M Source/WebCore/Modules/WebGPU/GPUAdapter.idl
M Source/WebCore/Modules/WebGPU/GPUAdapterInfo.idl
M Source/WebCore/Modules/WebGPU/GPUBindGroup.idl
M Source/WebCore/Modules/WebGPU/GPUBindGroupLayout.idl
M Source/WebCore/Modules/WebGPU/GPUBuffer.idl
M Source/WebCore/Modules/WebGPU/GPUBufferUsage.idl
M Source/WebCore/Modules/WebGPU/GPUColorWrite.idl
M Source/WebCore/Modules/WebGPU/GPUCommandBuffer.idl
M Source/WebCore/Modules/WebGPU/GPUCommandEncoder.idl
M Source/WebCore/Modules/WebGPU/GPUCompilationInfo.idl
M Source/WebCore/Modules/WebGPU/GPUCompilationMessage.idl
M Source/WebCore/Modules/WebGPU/GPUComputePassEncoder.idl
M Source/WebCore/Modules/WebGPU/GPUComputePipeline.idl
M Source/WebCore/Modules/WebGPU/GPUDevice.idl
M Source/WebCore/Modules/WebGPU/GPUDeviceLostInfo.idl
M Source/WebCore/Modules/WebGPU/GPUExternalTexture.idl
M Source/WebCore/Modules/WebGPU/GPUInternalError.idl
M Source/WebCore/Modules/WebGPU/GPUMapMode.idl
M Source/WebCore/Modules/WebGPU/GPUOutOfMemoryError.idl
M Source/WebCore/Modules/WebGPU/GPUPipelineLayout.idl
M Source/WebCore/Modules/WebGPU/GPUQuerySet.idl
M Source/WebCore/Modules/WebGPU/GPUQueue.idl
M Source/WebCore/Modules/WebGPU/GPURenderBundle.idl
M Source/WebCore/Modules/WebGPU/GPURenderBundleEncoder.idl
M Source/WebCore/Modules/WebGPU/GPURenderPassEncoder.idl
M Source/WebCore/Modules/WebGPU/GPURenderPipeline.idl
M Source/WebCore/Modules/WebGPU/GPUSampler.idl
M Source/WebCore/Modules/WebGPU/GPUShaderModule.idl
M Source/WebCore/Modules/WebGPU/GPUShaderStage.idl
M Source/WebCore/Modules/WebGPU/GPUSupportedFeatures.idl
M Source/WebCore/Modules/WebGPU/GPUSupportedLimits.idl
M Source/WebCore/Modules/WebGPU/GPUTexture.idl
M Source/WebCore/Modules/WebGPU/GPUTextureUsage.idl
M Source/WebCore/Modules/WebGPU/GPUTextureView.idl
M Source/WebCore/Modules/WebGPU/GPUUncapturedErrorEvent.idl
M Source/WebCore/Modules/WebGPU/GPUValidationError.idl
M Source/WebCore/html/OffscreenCanvas.cpp
M Source/WebCore/html/OffscreenCanvas.h
M Source/WebCore/html/OffscreenCanvas.idl
M Source/WebCore/html/canvas/GPUCanvasContext.idl
M Source/WebCore/html/canvas/GPUCanvasContextCocoa.h
M Source/WebCore/html/canvas/GPUCanvasContextCocoa.mm
M Source/WebCore/inspector/InspectorCanvas.cpp
M Source/WebCore/page/Chrome.cpp
M Source/WebCore/page/Chrome.h
M Source/WebCore/page/ChromeClient.h
M Source/WebCore/page/Navigator.cpp
M Source/WebCore/page/WorkerNavigator.cpp
M Source/WebCore/page/WorkerNavigator.h
M Source/WebCore/platform/GraphicsClient.h
M Source/WebKit/Shared/WTFArgumentCoders.serialization.in
M Source/WebKit/Shared/WebGPU/WebGPUIdentifier.h
M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.cpp
M Source/WebKit/WebProcess/WebCoreSupport/WebChromeClient.h
M Source/WebKit/WebProcess/WebCoreSupport/WebWorkerClient.cpp
M Source/WebKit/WebProcess/WebCoreSupport/WebWorkerClient.h
M Source/WebKitLegacy/mac/WebCoreSupport/WebChromeClient.h
M Source/WebKitLegacy/mac/WebCoreSupport/WebChromeClient.mm
Log Message:
-----------
WebGPU should be exposed in DedicatedWorkers
https://bugs.webkit.org/show_bug.cgi?id=232542>
<radar://85108397>
Reviewed by Tadeu Zagallo.
Allow WebGPU to render in a web worker.
This patch is mostly mechanical and doesn't implement copying
the buffer from OffscreenCavnas, so nothing is visible, but
GPU frame capture indicates the expected results are rendered.
* Source/JavaScriptCore/inspector/protocol/Canvas.json:
* Source/WebCore/Modules/WebGPU/GPU.idl:
* Source/WebCore/Modules/WebGPU/GPUAdapter.idl:
* Source/WebCore/Modules/WebGPU/GPUAdapterInfo.idl:
* Source/WebCore/Modules/WebGPU/GPUBindGroup.idl:
* Source/WebCore/Modules/WebGPU/GPUBindGroupLayout.idl:
* Source/WebCore/Modules/WebGPU/GPUBuffer.idl:
* Source/WebCore/Modules/WebGPU/GPUBufferUsage.idl:
* Source/WebCore/Modules/WebGPU/GPUColorWrite.idl:
* Source/WebCore/Modules/WebGPU/GPUCommandBuffer.idl:
* Source/WebCore/Modules/WebGPU/GPUCommandEncoder.idl:
* Source/WebCore/Modules/WebGPU/GPUCompilationInfo.idl:
* Source/WebCore/Modules/WebGPU/GPUCompilationMessage.idl:
* Source/WebCore/Modules/WebGPU/GPUComputePassEncoder.idl:
* Source/WebCore/Modules/WebGPU/GPUComputePipeline.idl:
* Source/WebCore/Modules/WebGPU/GPUDevice.idl:
* Source/WebCore/Modules/WebGPU/GPUDeviceLostInfo.idl:
* Source/WebCore/Modules/WebGPU/GPUExternalTexture.idl:
* Source/WebCore/Modules/WebGPU/GPUInternalError.idl:
* Source/WebCore/Modules/WebGPU/GPUMapMode.idl:
* Source/WebCore/Modules/WebGPU/GPUOutOfMemoryError.idl:
* Source/WebCore/Modules/WebGPU/GPUPipelineLayout.idl:
* Source/WebCore/Modules/WebGPU/GPUQuerySet.idl:
* Source/WebCore/Modules/WebGPU/GPUQueue.idl:
* Source/WebCore/Modules/WebGPU/GPURenderBundle.idl:
* Source/WebCore/Modules/WebGPU/GPURenderBundleEncoder.idl:
* Source/WebCore/Modules/WebGPU/GPURenderPassEncoder.idl:
* Source/WebCore/Modules/WebGPU/GPURenderPipeline.idl:
* Source/WebCore/Modules/WebGPU/GPUSampler.idl:
* Source/WebCore/Modules/WebGPU/GPUShaderModule.idl:
* Source/WebCore/Modules/WebGPU/GPUShaderStage.idl:
* Source/WebCore/Modules/WebGPU/GPUSupportedFeatures.idl:
* Source/WebCore/Modules/WebGPU/GPUSupportedLimits.idl:
* Source/WebCore/Modules/WebGPU/GPUTexture.idl:
* Source/WebCore/Modules/WebGPU/GPUTextureUsage.idl:
* Source/WebCore/Modules/WebGPU/GPUTextureView.idl:
* Source/WebCore/Modules/WebGPU/GPUUncapturedErrorEvent.idl:
* Source/WebCore/Modules/WebGPU/GPUValidationError.idl:
* Source/WebCore/html/OffscreenCanvas.cpp:
(WebCore::OffscreenCanvas::createContextWebGPU):
(WebCore::OffscreenCanvas::getContext):
* Source/WebCore/html/OffscreenCanvas.h:
* Source/WebCore/html/OffscreenCanvas.idl:
* Source/WebCore/html/canvas/GPUCanvasContext.idl:
* Source/WebCore/html/canvas/GPUCanvasContextCocoa.h:
* Source/WebCore/html/canvas/GPUCanvasContextCocoa.mm:
(WebCore::GPUCanvasContextCocoa::htmlOrOffscreenCanvas const):
(WebCore::GPUCanvasContextCocoa::GPUCanvasContextCocoa):
(WebCore::GPUCanvasContextCocoa::prepareForDisplayWithPaint):
(WebCore::GPUCanvasContextCocoa::paintRenderingResultsToCanvas):
(WebCore::GPUCanvasContextCocoa::canvas):
(WebCore::GPUCanvasContextCocoa::markContextChangedAndNotifyCanvasObservers):
* Source/WebCore/inspector/InspectorCanvas.cpp:
(WebCore::InspectorCanvas::buildObjectForCanvas):
* Source/WebCore/page/Chrome.h:
* Source/WebCore/page/WorkerNavigator.cpp:
(WebCore::WorkerNavigator::gpu):
* Source/WebCore/page/WorkerNavigator.h:
* Source/WebCore/platform/GraphicsClient.h:
* Source/WebKit/Shared/WebGPU/WebGPUIdentifier.h:
Changed to AtomicObjectIdentifier as workers will render off the main thread.
* Source/WebKit/WebProcess/WebCoreSupport/WebWorkerClient.cpp:
(WebKit::WebWorkerClient::WebWorkerClient):
(WebKit::WebWorkerClient::clone):
(WebKit::WebWorkerClient::createGraphicsContextGL const):
(WebKit::WebWorkerClient::createGPUForWebGPU const):
* Source/WebKit/WebProcess/WebCoreSupport/WebWorkerClient.h:
Canonical link: https://commits.webkit.org/268693@main
More information about the webkit-changes
mailing list