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

Reply via email to