Open Bug 1881602 Opened 9 months ago Updated 9 months ago

Run Speedometer3 on WebKit nightly builds

Categories

(Testing :: Raptor, task, P2)

task

Tracking

(Not tracked)

People

(Reporter: jrmuizel, Unassigned)

References

Details

(Whiteboard: [fxp])

We should run the builds from https://webkit.org/build-archives/#mac-sonoma-x86_64%20arm64 in automation to match our Chromium-as-release builds.

These binaries are not signed which might make running them difficult. I also don't know how to connect selenium to them.

Severity: -- → S2
Component: Performance → Raptor
Priority: -- → P2
Whiteboard: [fxp]

These binaries are not signed which might make running them difficult.

Quite so!
The readme says "Please open run-webkit-archive using the context menu in Finder." but that's not enough - you get at least seven dialog boxes complaining about unsigned libraries, and dismissing them launches a Safari app that doesn't even use the downloaded WebKit.
You actually need to go into the System Settings Security panel and manually allow all the libraries. Then the Safari app launched by run-webkit-archive actually uses the WebKit build.

I wonder if we can avoid some trouble by self-signing the libraries locally. If we can list all the libraries, and run codesign --force --deep --sign - ./path/to/lib on them, then we might be able to avoid having to go into the System Settings.

See Also: → 1840660

I asked in the WebKit slack if these build use PGO and the answer was no. It probably makes sense to focus on getting Safari Technical Preview running first then.

(In reply to Jeff Muizelaar [:jrmuizel] from comment #2)

I asked in the WebKit slack if these build use PGO and the answer was no. It probably makes sense to focus on getting Safari Technical Preview running first then.

Thanks for checking - that I was wondering that detail as well. Because otherwise we'd end up in the same situation as the (former) chromium builds straight from trunk which were not PGO either

I am guessing Safari TP has PGO?

I will leave this bug open for the time being in case others have thoughts - otherwise I will close it sometime next week

(In reply to Kash Shampur [:kshampur] ⌚EST from comment #3)

I am guessing Safari TP has PGO?

Yes, Safari TP has PGO

I will leave this bug open for the time being in case others have thoughts - otherwise I will close it sometime next week

I think the long term we'd like to do something like Chromium-as-release and do our own PGO WebKit builds.

Some quick notes of things to revisit for the future if/when we return to building webkit ourselves. (note: I spent only a bit of time on looking at this more so out of curiosity)

Building locally is pretty seamless (and very quick compare to e.g. chromium) with the instructions (with the --release flag), though it is unclear how to add PGO ourselves.
I found this script which might be what we need? but running it is not straightforward so this needs a thorough look.
also unclear on this ominous message. Maybe because the default outputs to /Volumes?

building on CI on the 10.15.x machines has hit some snags as well with regards to the SDK. that we will need some looking into in the future
[1]

[task 2024-02-27T16:50:59.662Z] Tools/Scripts/build-webkit --release --architecture="arm64"
[task 2024-02-27T16:50:59.662Z] + Tools/Scripts/build-webkit --release --architecture=arm64
[task 2024-02-27T16:51:02.965Z] Command line invocation:
[task 2024-02-27T16:51:02.966Z]     /Applications/Xcode-12.2.app/Contents/Developer/usr/bin/xcodebuild -scheme "Everything up to WebKit + Tools" -UseSanitizedBuildSystemEnvironment=YES -ShowBuildOperationDuration=YES -workspace /opt/worker/tasks/task_169711821482996/webkit/WebKit/WebKit.xcworkspace -configuration Release -destination platform=macOS,devicetype=Mac,arch=arm64 SYMROOT=/opt/worker/tasks/task_169711821482996/webkit/WebKit/WebKitBuild OBJROOT=/opt/worker/tasks/task_169711821482996/webkit/WebKit/WebKitBuild SHARED_PRECOMPS_DIR=/opt/worker/tasks/task_169711821482996/webkit/WebKit/WebKitBuild/PrecompiledHeaders ARCHS=arm64 SDKROOT=macosx
[task 2024-02-27T16:51:02.966Z] 
[task 2024-02-27T16:51:02.966Z] User defaults from command line:
[task 2024-02-27T16:51:02.966Z]     ShowBuildOperationDuration = YES
[task 2024-02-27T16:51:02.966Z]     UseSanitizedBuildSystemEnvironment = YES
[task 2024-02-27T16:51:02.966Z] 
[task 2024-02-27T16:51:02.966Z] Build settings from command line:
[task 2024-02-27T16:51:02.966Z]     ARCHS = arm64
[task 2024-02-27T16:51:02.966Z]     OBJROOT = /opt/worker/tasks/task_169711821482996/webkit/WebKit/WebKitBuild
[task 2024-02-27T16:51:02.966Z]     SDKROOT = macosx
[task 2024-02-27T16:51:02.966Z]     SHARED_PRECOMPS_DIR = /opt/worker/tasks/task_169711821482996/webkit/WebKit/WebKitBuild/PrecompiledHeaders
[task 2024-02-27T16:51:02.966Z]     SYMROOT = /opt/worker/tasks/task_169711821482996/webkit/WebKit/WebKitBuild
[task 2024-02-27T16:51:02.966Z] 
[task 2024-02-27T16:51:04.906Z] 2024-02-27 16:51:04.906 xcodebuild[3566:55375] NOTE: Referenced project libavif was written by a newer Xcode version (56) -- temporarily downgrading it (without modifying project file)
[task 2024-02-27T16:51:04.929Z] 2024-02-27 16:51:04.929 xcodebuild[3566:55375] NOTE: Referenced project dav1d was written by a newer Xcode version (56) -- temporarily downgrading it (without modifying project file)
[task 2024-02-27T16:51:13.680Z] xcodebuild: error: Unable to find a destination matching the provided destination specifier:
[task 2024-02-27T16:51:13.680Z] 		{ platform:macOS, arch:arm64 }
[task 2024-02-27T16:51:13.680Z] 
[task 2024-02-27T16:51:13.680Z] 	Available destinations for the "Everything up to WebKit + Tools" scheme:
[task 2024-02-27T16:51:13.680Z] 		{ platform:macOS, arch:x86_64, id:2B764F5E-CF0E-5EDC-AC17-578768FB3195 }
[task 2024-02-27T16:51:13.680Z] 		{ platform:macOS, arch:x86_64, variant:Mac Catalyst, id:2B764F5E-CF0E-5EDC-AC17-578768FB3195 }
[task 2024-02-27T16:51:13.680Z] 
[task 2024-02-27T16:51:13.680Z] 	Ineligible destinations for the "Everything up to WebKit + Tools" scheme:
[task 2024-02-27T16:51:13.680Z] 		{ platform:iOS, id:dvtdevice-DVTiPhonePlaceholder-iphoneos:placeholder, name:Any iOS Device }
[task 2024-02-27T16:51:13.680Z] 		{ platform:iOS Simulator, id:dvtdevice-DVTiOSDeviceSimulatorPlaceholder-iphonesimulator:placeholder, name:Any iOS Simulator Device }
[task 2024-02-27T16:51:13.680Z] 		{ platform:macOS, name:Any Mac }
[task 2024-02-27T16:51:13.680Z] 		{ platform:macOS, variant:Mac Catalyst, name:Any Mac }
[task 2024-02-27T16:51:13.680Z] 		{ platform:tvOS, id:dvtdevice-DVTiOSDevicePlaceholder-appletvos:placeholder, name:Any tvOS Device }
[task 2024-02-27T16:51:13.680Z] 		{ platform:tvOS Simulator, id:dvtdevice-DVTiOSDeviceSimulatorPlaceholder-appletvsimulator:placeholder, name:Any tvOS Simulator Device }
[task 2024-02-27T16:51:13.680Z] 		{ platform:watchOS, id:dvtdevice-DVTiOSDevicePlaceholder-watchos:placeholder, name:Any watchOS Device }
[task 2024-02-27T16:51:13.680Z] 		{ platform:watchOS Simulator, id:dvtdevice-DVTiOSDeviceSimulatorPlaceholder-watchsimulator:placeholder, name:Any watchOS Simulator Device }

[2]

Couldn't determine platform name from Xcode SDK at /opt/worker/tasks/task_170896790059093/webkit/WebKit/Tools/Scripts/webkitdirs.pm line 921.

not sure if we can cross compile from x86_64 to arm64? (but locally it seems I can cross compile from arm64 to x86_64)
But also trying to build the x86_64 had issues in CI too. Could be something missing form the xcode/sdk we have

Anyway, going to focus on safari TP in the meantime as we've already discussed

You need to log in before you can comment on or make changes to this bug.