Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ab0a2da91f2a99faf20e88c51b33b2c064a75a12
https://github.com/WebKit/WebKit/commit/ab0a2da91f2a99faf20e88c51b33b2c064a75a12
Author: Mike Wyrzykowski <[email protected]>
Date: 2026-07-14 (Tue, 14 Jul 2026)
Changed paths:
M
LayoutTests/http/tests/webgpu/webgpu/shader/validation/uniformity/uniformity-expected.txt
M LayoutTests/platform/mac-wk2/TestExpectations
M Source/WebCore/Modules/WebGPU/GPUAdapter.cpp
M Source/WebCore/Modules/WebGPU/GPUAdapterInfo.h
M Source/WebCore/Modules/WebGPU/GPUAdapterInfo.idl
M Source/WebCore/Modules/WebGPU/GPUFeatureName.h
M Source/WebCore/Modules/WebGPU/GPUFeatureName.idl
M Source/WebCore/Modules/WebGPU/Implementation/WebGPUAdapterImpl.cpp
M
Source/WebCore/Modules/WebGPU/Implementation/WebGPUConvertToBackingContext.cpp
M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUAdapter.h
M Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUFeatureName.h
M Source/WebCore/Modules/WebGPU/WGSLLanguageFeatures.cpp
M Source/WebGPU/WGSL/ConstantFunctions.h
M Source/WebGPU/WGSL/Constraints.h
M Source/WebGPU/WGSL/IOValidator.cpp
M Source/WebGPU/WGSL/Metal/MetalFunctionWriter.cpp
M Source/WebGPU/WGSL/Parser.cpp
M Source/WebGPU/WGSL/TypeCheck.cpp
M Source/WebGPU/WGSL/TypeDeclarations.rb
M Source/WebGPU/WGSL/UniformityAnalysis.cpp
M Source/WebGPU/WGSL/WGSL.cpp
M Source/WebGPU/WGSL/WGSLEnums.h
M Source/WebGPU/WGSL/WGSLShaderModule.h
M Source/WebGPU/WGSL/generator/main.rb
M Source/WebGPU/WGSL/wgslc.cpp
M Source/WebGPU/WebGPU/Adapter.mm
M Source/WebGPU/WebGPU/HardwareCapabilities.mm
M Source/WebGPU/WebGPU/RenderPipeline.mm
M Source/WebGPU/WebGPU/ShaderModule.h
M Source/WebGPU/WebGPU/ShaderModule.mm
M Source/WebGPU/WebGPU/WebGPU.h
M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp
M Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPURequestAdapterResponse.h
M
Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPURequestAdapterResponse.serialization.in
M Source/WebKit/Shared/WebGPU/WebGPUFeatureName.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] Subgroups
https://bugs.webkit.org/show_bug.cgi?id=295343
rdar://154874391
Reviewed by Dan Glastonbury.
Implement subgroups and related builtins as specified in the WGSL specification.
Test: uniformity.html
*
LayoutTests/http/tests/webgpu/webgpu/shader/validation/uniformity/uniformity-expected.txt:
* Source/WebCore/Modules/WebGPU/GPUAdapter.cpp:
(WebCore::GPUAdapter::GPUAdapter):
(WebCore::convertFeatureNameToEnum):
(WebCore::GPUAdapter::requestDevice):
* Source/WebCore/Modules/WebGPU/GPUAdapterInfo.h:
(WebCore::GPUAdapterInfo::create):
(WebCore::GPUAdapterInfo::subgroupMinSize const):
(WebCore::GPUAdapterInfo::subgroupMaxSize const):
(WebCore::GPUAdapterInfo::GPUAdapterInfo):
* Source/WebCore/Modules/WebGPU/GPUAdapterInfo.idl:
* Source/WebCore/Modules/WebGPU/GPUFeatureName.h:
(WebCore::convertToBacking):
* Source/WebCore/Modules/WebGPU/GPUFeatureName.idl:
* Source/WebCore/Modules/WebGPU/Implementation/WebGPUAdapterImpl.cpp:
(WebCore::WebGPU::subgroupMinSize):
(WebCore::WebGPU::subgroupMaxSize):
(WebCore::WebGPU::AdapterImpl::AdapterImpl):
*
Source/WebCore/Modules/WebGPU/Implementation/WebGPUConvertToBackingContext.cpp:
(WebCore::WebGPU::ConvertToBackingContext::convertToBacking):
* Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUAdapter.h:
(WebCore::WebGPU::Adapter::subgroupMinSize const):
(WebCore::WebGPU::Adapter::subgroupMaxSize const):
(WebCore::WebGPU::Adapter::Adapter):
* Source/WebCore/Modules/WebGPU/InternalAPI/WebGPUFeatureName.h:
* Source/WebCore/Modules/WebGPU/WGSLLanguageFeatures.cpp:
(WebCore::WGSLLanguageFeatures::initializeSetLike const):
* Source/WebGPU/WGSL/ConstantFunctions.h:
(WGSL::VALIDATION_FUNCTION):
* Source/WebGPU/WGSL/Constraints.h:
* Source/WebGPU/WGSL/IOValidator.cpp:
(WGSL::IOValidator::validateBuiltinIO):
* Source/WebGPU/WGSL/Metal/MetalFunctionWriter.cpp:
(WGSL::Metal::FunctionDefinitionWriter::visit):
(WGSL::Metal::emitSubgroupBallot):
(WGSL::Metal::emitQuadSwap):
(WGSL::Metal::emitQuadSwapDiagonal):
(WGSL::Metal::emitQuadSwapX):
(WGSL::Metal::emitQuadSwapY):
* Source/WebGPU/WGSL/Parser.cpp:
(WGSL::Parser<Lexer>::parseEnableDirective):
(WGSL::Parser<Lexer>::parseRequireDirective):
* Source/WebGPU/WGSL/TypeCheck.cpp:
(WGSL::TypeChecker::visit):
* Source/WebGPU/WGSL/TypeDeclarations.rb:
* Source/WebGPU/WGSL/UniformityAnalysis.cpp:
* Source/WebGPU/WGSL/WGSL.cpp:
(WGSL::wgslExtensionToWebGPUFeatureName):
* Source/WebGPU/WGSL/WGSLEnums.h:
* Source/WebGPU/WGSL/WGSLShaderModule.h:
(WGSL::ShaderModule::requiredFeatures): Deleted.
* Source/WebGPU/WGSL/generator/main.rb:
* Source/WebGPU/WGSL/wgslc.cpp:
(runWGSL):
* Source/WebGPU/WebGPU/Adapter.mm:
(WebGPU::Adapter::getProperties):
* Source/WebGPU/WebGPU/HardwareCapabilities.mm:
(WebGPU::baseFeatures):
* Source/WebGPU/WebGPU/RenderPipeline.mm:
(WebGPU::errorValidatingInterstageShaderInterfaces):
* Source/WebGPU/WebGPU/ShaderModule.h:
* Source/WebGPU/WebGPU/ShaderModule.mm:
(WebGPU::ShaderModule::usesSubgroupInvocationIdInInput const):
(WebGPU::ShaderModule::usesSubgroupSizeInInput const):
(WebGPU::ShaderModule::populateFragmentInputs):
(wgpuAdapterFeatureName):
* Source/WebGPU/WebGPU/WebGPU.h:
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.cpp:
(WebKit::RemoteGPU::requestAdapter):
* Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPURequestAdapterResponse.h:
*
Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPURequestAdapterResponse.serialization.in:
* Source/WebKit/Shared/WebGPU/WebGPUFeatureName.serialization.in:
* Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteAdapterProxy.cpp:
(WebKit::WebGPU::RemoteAdapterProxy::RemoteAdapterProxy):
* 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/317145@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications