orca/ext/angle_install_notes.md

2.7 KiB

Angle install on macOS

  • Get ninja if needed: brew install ninja

  • Get the depot_toolsrepo: git clone https://chromium.googlesource.com/* chromium/tools/depot_tools.git

  • Set path: export PATH=/path/to/depot_tools:$PATH

  • Maybe necessary to fiddle with certificates here, otherwise fetch angle fails in the subsequent steps.

cd /Applications/Python\ 3.6
sudo ./Install\ Certificates.command
  • Fetch angle:
mkdir angle 
cd angle
fetch angle
  • Generate build config: gn gen out/Debug

    • To see available arguments: gn args out/Debug --list
    • To change arguments: gn args out/Debug

For example, to generate dwarf dsyms files, set:

enable_dsyms=true
use_debug_fission=true
symbol_level=2

We also need to set is_component_build=false in order to have self-contained librarries.

Then, build with autoninja -C out/Debugand wait until you pass out.

Angle install on windows

  • need Python3 (can install through win app store)

  • need Windows SDK

  • clone depot_tools: git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git or download and unzip bundle at https://storage.googleapis.com/chrome-infra/depot_tools.zip

  • set depot_tools in path env variable through control panel>System and security>system>advanced system settings

  • run gclient in a cmd shell

  • set DEPOT_TOOLS_WIN_TOOLCHAIN=0

  • mkdir angle

  • cd angle

  • fetch angle

  • wait a million years

  • if it fails when running python3 third_party/depot_tools/download_from_google_storage.py ... -> open DEPS and change third_party/depot_tools to ../depot_tools

  • run gclient sync to complete previous step

  • gn gen out/Debug

  • gn args out/Debug and edit arguments:

is_component_build = false
angle_build_tests = false
angle_enable_metal = false
angle_enable_d3d9 = false
angle_enable_gl = false
angle_enable_vulkan = false
  • ninja -C out/Debug
  • link with libEGL.dll.lib and libGLESv2.dll.lib
  • put libEGL.dll and libGLESv2.dll in same directory as executable

To get debugging kinda working with renderdoc:

Run gn args out/Debug and set * angle_enable_trace = true * angle_enable_annotator_run_time_checks = true

  • autoninja -C out/Debug
  • wait a while

In renderdoc, set env variables RENDERDOC_HOOK_EGL 0 (if you want to trace underlying native API) RENDERDOC_HOOK_EGL 1 (if you want to trace EGL calls. You also need to put libEGL in the renderdoc folder so it's found when capturing stuff. Unfortunately though, that seems to provoke crashes...)

ANGLE_ENABLE_DEBUG_MARKERS 1 (to turn on debug markers)