[webkit-changes] [WebKit/WebKit] 403cf8: [WebGPU] Invalid limits do not result in device cr...
mwyrzykowski
noreply at github.com
Thu Feb 23 19:25:50 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 403cf88c8df73ed92e7626dd3c1e5511d9762b03
https://github.com/WebKit/WebKit/commit/403cf88c8df73ed92e7626dd3c1e5511d9762b03
Author: Mike Wyrzykowski <mwyrzykowski at apple.com>
Date: 2023-02-23 (Thu, 23 Feb 2023)
Changed paths:
M Source/WebCore/Modules/WebGPU/GPUAdapter.cpp
M Source/WebCore/Modules/WebGPU/GPUSupportedLimits.cpp
M Source/WebCore/Modules/WebGPU/GPUSupportedLimits.h
M Source/WebCore/Modules/WebGPU/GPUSupportedLimits.idl
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.cpp
M Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h
M Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUAdapter.h
M Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUSupportedLimits.h
M Source/WebGPU/WebGPU/Adapter.h
M Source/WebGPU/WebGPU/Adapter.mm
M Source/WebGPU/WebGPU/Buffer.mm
M Source/WebGPU/WebGPU/ComputePipeline.mm
M Source/WebGPU/WebGPU/HardwareCapabilities.mm
M Source/WebGPU/WebGPU/RenderPipeline.mm
M Source/WebGPU/WebGPU/ShaderModule.mm
M Source/WebGPU/WebGPU/WebGPU.h
M Source/WebGPU/WebGPU/WebGPUExt.h
M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteAdapter.cpp
M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp
M Source/WebKit/Shared/WebGPU/WebGPUSupportedLimits.cpp
M Source/WebKit/Shared/WebGPU/WebGPUSupportedLimits.h
M Source/WebKit/Shared/WebGPU/WebGPUSupportedLimits.serialization.in
M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.cpp
M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.h
M Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp
Log Message:
-----------
[WebGPU] Invalid limits do not result in device creation failure
https://bugs.webkit.org/show_bug.cgi?id=252700
<radar://105751730>
Reviewed by Myles C. Maxfield.
The specification says we should reject the promise of
GPUAdapter.requestDevice when the specified limits are invalid.
Achieve this by returning null on failure from requestDevice
and rejecting the promise in the GPUAdapter layer.
Also update WebGPU.h as maxColorAttachmentBytesPerSample was
missing from WGPULimits.
* Source/WebCore/Modules/WebGPU/GPUAdapter.cpp:
(WebCore::GPUAdapter::requestDevice):
* Source/WebCore/Modules/WebGPU/GPUSupportedLimits.cpp:
(WebCore::GPUSupportedLimits::maxBindingsPerBindGroup const):
(WebCore::GPUSupportedLimits::maxBufferSize const):
(WebCore::GPUSupportedLimits::maxInterStageShaderVariables const):
(WebCore::GPUSupportedLimits::maxColorAttachments const):
(WebCore::GPUSupportedLimits::maxColorAttachmentBytesPerSample const):
* Source/WebCore/Modules/WebGPU/GPUSupportedLimits.h:
* Source/WebCore/Modules/WebGPU/GPUSupportedLimits.idl:
* Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.cpp:
(PAL::WebGPU::supportedFeatures):
(PAL::WebGPU::supportedLimits):
(PAL::WebGPU::AdapterImpl::requestDevice):
* Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h:
* Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUAdapter.h:
* Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUSupportedLimits.h:
* Source/WebGPU/WGSL/Overload.cpp:
(WGSL::OverloadResolver::materialize const):
* Source/WebGPU/WebGPU/Adapter.mm:
(WebGPU::Adapter::requestInvalidDevice):
* Source/WebGPU/WebGPU/Buffer.mm:
(wgpuBufferGetMapState):
* Source/WebGPU/WebGPU/ComputePipeline.mm:
(WebGPU::Device::createComputePipelineAsync):
* Source/WebGPU/WebGPU/HardwareCapabilities.mm:
(WebGPU::apple3):
(WebGPU::apple4):
(WebGPU::apple5):
(WebGPU::apple6):
(WebGPU::apple7):
(WebGPU::mac2):
(WebGPU::mergeLimits):
(WebGPU::anyLimitIsBetterThan):
(WebGPU::defaultLimits):
* Source/WebGPU/WebGPU/RenderPipeline.mm:
(WebGPU::Device::createRenderPipelineAsync):
* Source/WebGPU/WebGPU/ShaderModule.mm:
(WebGPU::convertMessages):
* Source/WebGPU/WebGPU/WebGPU.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteAdapter.cpp:
(WebKit::RemoteAdapter::requestDevice):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp:
(WebKit::RemoteGPU::requestAdapter):
* Source/WebKit/Shared/WebGPU/WebGPUSupportedLimits.cpp:
(WebKit::WebGPU::ConvertToBackingContext::convertToBacking):
(WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking):
* Source/WebKit/Shared/WebGPU/WebGPUSupportedLimits.h:
* Source/WebKit/Shared/WebGPU/WebGPUSupportedLimits.serialization.in:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.cpp:
(WebKit::WebGPU::RemoteAdapterProxy::requestDevice):
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.h:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteGPUProxy.cpp:
(WebKit::RemoteGPUProxy::requestAdapter):
Canonical link: https://commits.webkit.org/260777@main
More information about the webkit-changes
mailing list