Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 38c1a932abd17d996fea59205abd863c1db483c7
https://github.com/WebKit/WebKit/commit/38c1a932abd17d996fea59205abd863c1db483c7
Author: Youenn Fablet <[email protected]>
Date: 2025-10-10 (Fri, 10 Oct 2025)
Changed paths:
M Source/WebCore/platform/graphics/cocoa/AV1UtilitiesCocoa.h
M Source/WebCore/platform/graphics/cocoa/AV1UtilitiesCocoa.mm
M Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.h
M Source/WebCore/platform/graphics/cocoa/VP9UtilitiesCocoa.mm
M Source/WebKit/GPUProcess/GPUProcessCreationParameters.h
M Source/WebKit/GPUProcess/GPUProcessCreationParameters.serialization.in
M Source/WebKit/GPUProcess/cocoa/GPUProcessCocoa.mm
M Source/WebKit/UIProcess/GPU/GPUProcessProxy.cpp
Log Message:
-----------
Reduce calls to VTIsHardwareDecodeSupported(kCMVideoCodecType_VP9) in
GPUProcess
rdar://157511010
https://bugs.webkit.org/show_bug.cgi?id=300433
Reviewed by Chris Dumez.
Following on https://commits.webkit.org/300866@main which got reverted, we want
to reduce the number of calls to
VTIsHardwareDecodeSupported(kCMVideoCodecType_VP9) in GPUProcess.
https://commits.webkit.org/300866@main was reverted as it was buffering
VTIsHardwareDecodeSupported(kCMVideoCodecType_VP9) value.
The GPUProcess is first calling vp9HardwareDecoderAvailableInProcess() before
calling registerSupplementalVP9Decoder().
vp9HardwareDecoderAvailableInProcess() is always returning false before
registerSupplementalVP9Decoder() is called.
The buffering done in https://commits.webkit.org/300866@main would then forbid
the GPUProcess that it has VP9 HW support.
To fix that issue while keeping the buffering, we do the following approach:
- Given the UIProcess is buffering whether there is VP9 HW support, whenever
the GPUProcess gets that info, it stores it in a static value.
- The GPUProcess will use that value when set to answer to
vp9HardwareDecoderAvailableInProcess().
- In case of a registerSupplementalVP9Decoder() and GPUProcess thinks there is
no HW VP9 support, we clear the static value.
We do the same buffering for AV1.
This ensures that there will be at most:
- one VTIsHardwareDecodeSupported for AV1 for the lifetime of the UIProcess.
- two VTIsHardwareDecodeSupported for VP9 for the lifetime of the UIProcess.
Manually tested.
Canonical link: https://commits.webkit.org/301307@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