Skip to content

Instantly share code, notes, and snippets.

@slimbuck
Created May 13, 2024 08:47
Show Gist options
  • Save slimbuck/ec4500afaec6b2c5368c22a37153826d to your computer and use it in GitHub Desktop.
Save slimbuck/ec4500afaec6b2c5368c22a37153826d to your computer and use it in GitHub Desktop.
Capturing WebGPU metal trace on MacOS
1) Clone and build WebKit
git clone https://github.com/WebKit/WebKit.git WebKit
cd WebKit
Tools/Scripts/build-webkit -cmakeargs="-DENABLE_WEBGPU_BY_DEFAULT=1" --debug
2) Run your app
__XPC_METAL_CAPTURE_ENABLED=1 Tools/Scripts/run-minibrowser --debug --url http://localhost:5000/index.html#/loaders/gsplat
3) While app is running invoke WebGPU capture from a new terminal
notifyutil -p com.apple.WebKit.WebGPU.CaptureFrame
4) File is written to HD, WebKit terminal displays the path.
5) Load the file into xcode (file open) and profit.
@brandon-lb
Copy link

Huh, even though I compiled successfully with the full command including -cmakeargs="-DENABLE_WEBGPU_BY_DEFAULT=1", I get "Error: WebGPU is not supported (no navigator.gpu)" when I launch my app with __XPC_METAL_CAPTURE_ENABLED=1 Tools/Scripts/run-minibrowser --debug --url example.com

I'm on Sequoia 15.0.1 and can confirm that WebGPU works normally with the WebGPU feature flag set on the included version of Safari.

@brandon-lb
Copy link

Oh, I got it working by finding the flag in the minibrowser menu and enabling it! Onto the next steps

@brandon-lb
Copy link

So even though I got it working on macOS 15.0.1 on one computer, on another one with the same OS, I cannot get it to compile properly. I've tried deleting/re-cloning, restarting, it always fails at:

** BUILD FAILED **


The following build commands failed:
	PhaseScriptExecution Run\ Script /Users/brandon/Files/WebKit/WebKitBuild/WebKitLegacy.build/Debug/Generate\ Unified\ Sources.build/Script-5C9D925722D7E849008E9266.sh (in target 'Generate Unified Sources' from project 'WebKitLegacy')
	Building workspace WebKit with scheme Everything up to WebKit + Tools and configuration Debug
(2 failures)

Anyone run into something similar? I've had this computer for over a year, while the one where it worked is basically a fresh install with only Xcode on it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment