# Metal Backend Shaders ANGLE's Metal backend provides a couple of features for inspecting the Metal Shading Language (MSL) produced by ANGLE's shader translator. ## printMetalShaders The [`printMetalShaders` feature](https://chromium-review.googlesource.com/c/angle/angle/+/4480976), which can be enabled in Chromium via the command line argument `--enable-angle-features=printMetalShaders`, dumps the blob cache key and translated MSL for all shaders compiled by ANGLE. This is currently used to [regenerate precompiled shaders](https://crbug.com/1423136) shipped with Chrome. ## Environment variable Setting the environment variable `ANGLE_METAL_PRINT_MSL_ENABLE` to `1` indicates to the Metal backend to print the translated shaders as they're compiled: ``` export ANGLE_METAL_PRINT_MSL_ENABLE=1 /Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary --use-angle=metal ``` To pass this environment to WebKit / Safari's GPU process, set the environment variable `__XPC_ANGLE_METAL_PRINT_MSL_ENABLE` to `1`: ``` export __XPC_ANGLE_METAL_PRINT_MSL_ENABLE=1 /Applications/Safari\ Technology\ Preview.app/Contents/MacOS/Safari\ Technology\ Preview ```