Full Code of rib/gputop for AI

master 01d2fd4fad3e cached
167 files
13.0 MB
3.4M tokens
2308 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (13,665K chars total). Download the full file to get everything.
Repository: rib/gputop
Branch: master
Commit: 01d2fd4fad3e
Files: 167
Total size: 13.0 MB

Directory structure:
gitextract_e5ud6w3z/

├── .gitignore
├── .travis.yml
├── README.md
├── data/
│   ├── .gitignore
│   ├── Makefile.xml
│   ├── README.md
│   ├── gputop.proto
│   ├── guids.xml
│   ├── oa-bdw.xml
│   ├── oa-bxt.xml
│   ├── oa-cflgt2.xml
│   ├── oa-cflgt3.xml
│   ├── oa-chv.xml
│   ├── oa-cnl.xml
│   ├── oa-glk.xml
│   ├── oa-hsw.xml
│   ├── oa-icl.xml
│   ├── oa-kblgt2.xml
│   ├── oa-kblgt3.xml
│   ├── oa-lkf.xml
│   ├── oa-sklgt2.xml
│   ├── oa-sklgt3.xml
│   ├── oa-sklgt4.xml
│   └── oa-tgl.xml
├── docker/
│   ├── travis-build-environment-centos/
│   │   ├── Dockerfile
│   │   ├── README.md
│   │   └── build-travis-docker-image.sh
│   └── travis-build-environment-ubuntu/
│       ├── Dockerfile
│       ├── README.md
│       └── build-travis-docker-image.sh
├── gputop.doap
├── lib/
│   ├── gputop-client-context.c
│   ├── gputop-client-context.h
│   ├── gputop-log.h
│   ├── gputop-network.h
│   ├── gputop-oa-counters.c
│   ├── gputop-oa-counters.h
│   ├── gputop-oa-metrics.c
│   ├── gputop-oa-metrics.h
│   ├── gputop-util.h
│   ├── meson.build
│   └── tracepoint_format.leg
├── mesa/
│   ├── include/
│   │   ├── c11/
│   │   │   ├── threads.h
│   │   │   ├── threads_posix.h
│   │   │   └── threads_win32.h
│   │   ├── c99_alloca.h
│   │   ├── c99_compat.h
│   │   ├── c99_math.h
│   │   ├── drm-uapi/
│   │   │   ├── README
│   │   │   ├── drm.h
│   │   │   ├── drm_fourcc.h
│   │   │   ├── drm_mode.h
│   │   │   ├── i915_drm.h
│   │   │   └── vc4_drm.h
│   │   ├── no_extern_c.h
│   │   └── pci_ids/
│   │       ├── i965_pci_ids.h
│   │       └── iris_pci_ids.h
│   ├── meson.build
│   └── src/
│       ├── compiler/
│       │   └── shader_enums.h
│       ├── intel/
│       │   ├── common/
│       │   │   └── gen_gem.h
│       │   └── dev/
│       │       ├── gen_device_info.c
│       │       └── gen_device_info.h
│       ├── mesa/
│       │   └── main/
│       │       ├── compiler.h
│       │       └── hash.h
│       └── util/
│           ├── bitscan.c
│           ├── bitscan.h
│           ├── bitset.h
│           ├── hash_table.c
│           ├── hash_table.h
│           ├── list.h
│           ├── macros.h
│           ├── ralloc.c
│           └── ralloc.h
├── meson.build
├── meson_options.txt
├── scripts/
│   ├── deploy-demo-site.sh
│   ├── gen-template.py
│   ├── gputop-oa-codegen.py
│   ├── i915-perf-kernelgen.py
│   ├── mdapi-xml-convert.py
│   ├── meson-cross/
│   │   ├── emscripten-docker-debug.txt
│   │   └── emscripten-docker-release.txt
│   ├── pylibs/
│   │   ├── .gitignore
│   │   ├── __init__.py
│   │   ├── codegen/
│   │   │   └── __init__.py
│   │   └── oa_guid_registry/
│   │       └── __init__.py
│   ├── travis-ci-build.sh
│   ├── travis-ci-prep-docker-centos.sh
│   ├── travis-ci-prep-docker-ubuntu.sh
│   ├── travis-ci-test.sh
│   └── update-guids.py
├── server/
│   ├── gputop-cpu.c
│   ├── gputop-cpu.h
│   ├── gputop-debugfs.c
│   ├── gputop-debugfs.h
│   ├── gputop-gl.c
│   ├── gputop-gl.h
│   ├── gputop-ioctl.c
│   ├── gputop-log.c
│   ├── gputop-main.c
│   ├── gputop-mainloop.h
│   ├── gputop-ncurses.c
│   ├── gputop-perf.c
│   ├── gputop-perf.h
│   ├── gputop-server.c
│   ├── gputop-server.h
│   ├── gputop-string.c
│   ├── gputop-string.h
│   ├── gputop-system.c
│   ├── gputop-sysutil.c
│   ├── gputop-sysutil.h
│   ├── meson.build
│   ├── registry/
│   │   ├── .gitignore
│   │   ├── egl.xml
│   │   ├── genapis.py
│   │   ├── gl.xml
│   │   ├── glx.xml
│   │   └── reg.py
│   └── stdatomic.h
├── subprojects/
│   ├── .gitignore
│   ├── h2o.wrap
│   ├── libuv.wrap
│   ├── packagecache/
│   │   └── .gitignore
│   ├── peg.wrap
│   ├── protobuf-c.wrap
│   ├── protobuf.wrap
│   └── wslay.wrap
├── ui/
│   ├── gputop-emscripten-network.c
│   ├── gputop-soup-network.c
│   ├── gputop-ui-main.cpp
│   ├── gputop-ui-multilines.cpp
│   ├── gputop-ui-multilines.h
│   ├── gputop-ui-piechart.cpp
│   ├── gputop-ui-piechart.h
│   ├── gputop-ui-plots.cpp
│   ├── gputop-ui-plots.h
│   ├── gputop-ui-timeline.cpp
│   ├── gputop-ui-timeline.h
│   ├── gputop-ui-topology.cpp
│   ├── gputop-ui-topology.h
│   ├── gputop-ui-utils.cpp
│   ├── gputop-ui-utils.h
│   ├── gputop-ui.css
│   ├── gputop-uv-network.c
│   ├── imgui/
│   │   ├── LICENSE.txt
│   │   ├── imconfig.h
│   │   ├── imgui.cpp
│   │   ├── imgui.h
│   │   ├── imgui_demo.cpp
│   │   ├── imgui_draw.cpp
│   │   ├── imgui_impl_glfw_gl3.cpp
│   │   ├── imgui_impl_glfw_gl3.h
│   │   ├── imgui_impl_gtk3_cogl.cpp
│   │   ├── imgui_impl_gtk3_cogl.h
│   │   ├── imgui_impl_sdl_gles2.cpp
│   │   ├── imgui_impl_sdl_gles2.h
│   │   ├── imgui_internal.h
│   │   ├── stb_rect_pack.h
│   │   ├── stb_textedit.h
│   │   └── stb_truetype.h
│   ├── index.html
│   └── meson.build
├── utils/
│   ├── gputop-configs.c
│   └── meson.build
└── wrapper/
    ├── gputop-uv-network.c
    ├── gputop-wrapper-main.c
    └── meson.build

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
build
**.dir-locals.el


================================================
FILE: .travis.yml
================================================
sudo: required

services:
    - docker

language: c

os:
    - linux

compiler:
    - gcc

env:
    global:
        # GH_TOKEN scope=public_repo, for pushing to gh-pages demo site,
        # limited to builds of the rib/gputop repo
        - secure: "CXTLgHD8PYC3OQO88QHFaCu6tfF4Pp/fHvn9cguOptBUrkOad5IKq43r4wNv+VFKl9f99K4tvBThHOLAryi+2OFDwkKIiIHfhyaEewLQKFOxGlXLQf6JlKslzVU8/r5BeKt1KH1fuNmaqGqyv39snVmBE0HGmHntpY8U0CtISwL8riS8fQWT/Ae3vUVDnkCaHen6QfCvOQtwZey7GwFp2+Dn7lVC4xviOTR2zEydMzRnvhzwO4NkeCtigqgY5jEW6Irmk72Ng/27UTYY/ps+/dvtLeL2xGWziPRWf92z6qMGJAuX6CfAkwPHF4G/MNnOSQ2R3YZPDPzSLitpz/ThXnpfUlJMpa7fV/RZMp9+WjbSvyfi4mUG+fyvWPS3oXkF05U5rmZn5LHrTvjFUXt7lj3n/Ugkk2+1dTFxwHE1HzV85C1kNgOIgwhJLvfddyhUncwBHKMUs6q5w9sha+5zMF0YTttG8EJFwHKqjCdwycJ5g1/i0mmj6qzTFosUmH0N+3bIPAO/ca6DjUXzoH1f0BeL22M3Uy3CEeWgfn7X87fRGK8pgHE6d3VYb6VdO8ys17Cz3SkRn4S71VwXqZg6nl462C/nUR23Rpi/ijYWhPYAqXVGPUsCOAzUl1PTBMDsHqWk2hUto2WEXCnVhpBoq5FkJ0RhV03tPyAZCtoCNcw="
    matrix:
        - CONFIG_OPTS="--buildtype=debug" PREP_SCRIPT="scripts/travis-ci-prep-docker-ubuntu.sh" BASE_IMAGE="djdeath/gputop-travis-ci-ubuntu16.04-18.01.09"
        - CONFIG_OPTS="--buildtype=release" PREP_SCRIPT="scripts/travis-ci-prep-docker-ubuntu.sh" BASE_IMAGE="djdeath/gputop-travis-ci-ubuntu16.04-18.01.09"
        - CONFIG_OPTS="--buildtype=debug -Dnative_ui=true" PREP_SCRIPT="scripts/travis-ci-prep-docker-ubuntu.sh" BASE_IMAGE="djdeath/gputop-travis-ci-ubuntu16.04-18.01.09"
        - CONFIG_OPTS="--buildtype=release -Dnative_ui=true" PREP_SCRIPT="scripts/travis-ci-prep-docker-ubuntu.sh" BASE_IMAGE="djdeath/gputop-travis-ci-ubuntu16.04-18.01.09"
        - CONFIG_OPTS="--buildtype=debug --cross=scripts/meson-cross/emscripten-docker-debug.txt -Dwebui=true" PREP_SCRIPT="scripts/travis-ci-prep-docker-ubuntu.sh" BASE_IMAGE="djdeath/gputop-travis-ci-ubuntu16.04-18.01.09"
        - CONFIG_OPTS="--buildtype=release --cross=scripts/meson-cross/emscripten-docker-release.txt -Dwebui=true" PREP_SCRIPT="scripts/travis-ci-prep-docker-ubuntu.sh" BASE_IMAGE="djdeath/gputop-travis-ci-ubuntu16.04-18.01.09"
        - CONFIG_OPTS="--buildtype=debug" PREP_SCRIPT="scripts/travis-ci-prep-docker-centos.sh" BASE_IMAGE="djdeath/gputop-travis-ci-centos7-18.01.08"
        - CONFIG_OPTS="--buildtype=release" PREP_SCRIPT="scripts/travis-ci-prep-docker-centos.sh" BASE_IMAGE="djdeath/gputop-travis-ci-centos7-18.01.08"
        - CONFIG_OPTS="--buildtype=debug -Dnative_ui=true" PREP_SCRIPT="scripts/travis-ci-prep-docker-centos.sh" BASE_IMAGE="djdeath/gputop-travis-ci-centos7-18.01.08"
        - CONFIG_OPTS="--buildtype=release -Dnative_ui=true" PREP_SCRIPT="scripts/travis-ci-prep-docker-centos.sh" BASE_IMAGE="djdeath/gputop-travis-ci-centos7-18.01.08"

before_install:
    - docker pull $BASE_IMAGE
    - $PREP_SCRIPT $BASE_IMAGE final-travis-ci-image

script:
    - sudo docker run -t -i -v $TRAVIS_BUILD_DIR:/home/$USER/build -e TRAVIS_BUILD_DIR="/home/$USER/build" -e CONFIG_OPTS="$CONFIG_OPTS" final-travis-ci-image scripts/travis-ci-build.sh
    - sudo docker run -t -i -v $TRAVIS_BUILD_DIR:/home/$USER/build -e TRAVIS_BUILD_DIR="/home/$USER/build" -e CONFIG_OPTS="$CONFIG_OPTS" final-travis-ci-image scripts/travis-ci-test.sh

deploy:
    provider: script
    script: ./scripts/deploy-demo-site.sh
    skip_cleanup: true
    on:
        condition: $CONFIG_OPTS = "--buildtype=release --cross=scripts/meson-cross/emscripten-docker-release.txt -Dwebui=true"
        branch: master


================================================
FILE: README.md
================================================
[![Build Status](https://travis-ci.org/rib/gputop.svg?branch=master)](https://travis-ci.org/rib/gputop)

# gputop

GPU Top is a tool to help developers understand GPU performance counters and provide graphical and machine readable data for the performance analysis of drivers and applications. GPU Top is compatible with all GPU programming apis such as OpenGL, OpenCL or Vulkan since it primarily deals with capturing periodic sampled metrics.

GPU Top so far includes a web based interactive UI as well as a non-interactive CSV logging tool suited to being integrated into continuous regression testing systems. Both of these tools can capture metrics from a remote system so as to try an minimize their impact on the system being profiled.

GPUs supported so far include: Haswell, Broadwell, Cherryview, Skylake, Broxton, Apollo Lake, Kabylake, Cannonlake and Coffeelake.

It's not necessary to build the web UI from source to use it since the latest tested version is automatically deployed to http://gputop.github.io

If you want to try out GPU Top on real hardware please follow these [build Instructions](https://github.com/rib/gputop/wiki/Build-Instructions) and give feedback [here](https://github.com/rib/gputop/issues).

# Web UI Screenshot

![](https://raw.githubusercontent.com/wiki/rib/gputop/images/webui-imgui-screenshot.png)

# Starting the GPU Top server

Before you can use one of the clients, you need to start the GPU Top server. Since GPU Top is primarily a system wide analysis tool, you need to launch the server as root so that you can access information about any of the running processes using the GPU. You can done so by running :

```
sudo gputop
```

# CSV output example

Here's an example from running `gputop-wrapper` like:

```
gputop-wrapper -m RenderBasic -c GpuCoreClocks,EuActive,L3Misses,GtiL3Throughput,EuFpuBothActive
```

Firstly the tool prints out a header that you might want to share with others to help ensure your comparing apples to apples when looking at metrics from different systems:

```
Server: localhost:7890
Sampling period: 1 s
Monitoring system wide
Connected

System info:
	Kernel release: 4.15.0-rc4+
	Kernel build: #49 SMP Tue Dec 19 12:17:49 GMT 2017
CPU info:
	CPU model: Intel(R) Core(TM) i7-7500U CPU @ 2.70GHz
	CPU cores: 4
GPU info:
	GT name: Kabylake GT2 (Gen 9, PCI 0x5916)
	Topology: 168 threads, 24 EUs, 1 slices, 3 subslices
	GT frequency range: 0.0MHz / 0.0MHz
	CS timestamp frequency: 12000000 Hz / 83.33 ns
OA info:
	OA Hardware Sampling Exponent: 22
	OA Hardware Period: 699050666 ns / 699.1 ms
```

And then compactly prints the data collected. In this case the output was to a terminal and so the data is presented to be easily human readable. When output to a file then it will be a plain CSV file and numbers aren't rounded.

```
    Timestamp  GpuCoreClocks  EuActive      L3Misses  GtiL3Throughput  EuFpuBothActive
         (ns)     (cycles/s)       (%)  (messages/s)              (B)              (%)
 285961912416,770.9 M cycles,  0.919 %,   1473133.00,       89.91 MiB,         0.256 %
 286992496416,900.1 M cycles,   1.04 %,   2036968.00,       124.3 MiB,         0.316 %
 288190601500,521.4 M cycles,   1.81 %,   2030997.00,         124 MiB,         0.537 %
 289519269500,1.028 G cycles,   11.8 %,  33181879.00,       1.978 GiB,          3.82 %
 290562176250,1.007 G cycles,   11.1 %,  30115582.00,       1.795 GiB,          3.66 %
 291569408333,905.9 M cycles,     10 %,  24534419.00,       1.462 GiB,          3.18 %
 292590314500,762.4 M cycles,   6.89 %,  10934947.00,       667.4 MiB,          2.31 %
 293954678166,538.5 M cycles,   1.72 %,   2034698.00,       124.2 MiB,         0.543 %
 295323480416,751.6 M cycles,   1.28 %,   2034477.00,       124.2 MiB,         0.356 %
```

# Building GPU Top

## Dependencies

GPUTop uses the meson build system. On a recent distribution you can install meson with :

```
sudo apt-get install meson
```

Alternatively you can use the pip distribution mechanism :

```
sudo pip3 install meson
```

GPU Top without UI tools has minimal dependencies :

```
sudo apt-get install libssl-dev
pip2 install --user mako
```

If you want to build the GLFW UI, also install the following dependencies :

```
sudo apt-get install libgl1-mesa-dev libegl1-mesa-dev libglfw3-dev libepoxy-dev
```

A Gtk+ backend is also available for the UI (users with retina displays will want to use this), you'll need the following dependencies :

```
sudo apt-get install libsoup2.4-dev libcogl-dev libgtk-3-dev
```

## Configuring the GPU Top build

Without UI :

```
meson . build
```

With GLFW UI :

```
meson . build -Dnative_ui=true
```

With Gtk+ UI :

```
meson . build -Dnative_ui_gtk=true
```

## Building GPU Top

```
ninja -C build
ninja -C build install
```

## Building GPU Top Web UI

First make sure to have emscripten installed. GPU Top is currently
only tested with version 1.37.27 of the emscripten SDK. Instructions
to download the SDK are available here :

https://kripken.github.io/emscripten-site/docs/getting_started/downloads.html

After having run :

```
./emsdk update
```

Install the tested version :

```
./emsdk activate sdk-1.37.27-64bit
./emsdk install sdk-1.37.27-64bit
```

Then configure GPU Top to build the Web UI (in that mode it'll only
build the UI, you'll need to build the server in the different build
directory).

```
meson . build-webui -Dwebui=true --cross=scripts/meson-cross/emscripten-docker-debug.txt
```

Create a directory to serve the UI and copy the files needed :

```
mkdir webui
cp ui/*.html ui/*.css ui/favicon.ico webui/
cp build-webui/ui/*.js build-webui/ui/*.wasm* build-webui/ui/gputop-ui.wast webui/
```

You should now be able to serve the UI from the webui/ directory.


================================================
FILE: data/.gitignore
================================================
gputop-???.xml
gputop-???gt?.xml
i915_oa_*.[ch]
package.json

================================================
FILE: data/Makefile.xml
================================================
data_dir = .
script_dir = ../scripts

oa_xml_files = \
	oa-hsw.xml \
	oa-bdw.xml \
	oa-chv.xml \
	oa-sklgt2.xml \
	oa-sklgt3.xml \
	oa-sklgt4.xml \
	oa-bxt.xml \
	oa-kblgt2.xml \
	oa-kblgt3.xml \
	oa-glk.xml \
	oa-cflgt2.xml \
	oa-cflgt3.xml \
	oa-cnl.xml \
	oa-icl.xml \
	oa-lkf.xml \
	oa-tgl.xml

drm_files = $(oa_xml_files:oa-%.xml=i915_oa_%.c)
drm_files += $(oa_xml_files:oa-%.xml=i915_oa_%.h)

gputop_xml_files = $(oa_xml_files:oa-%.xml=gputop-%.xml)

CONVERT_ARGS =
KERNELGEN_ARGS =

hsw_xml = mdapi/MetricsXML_HSW.xml
bdw_xml = mdapi/MetricsXML_BDW.xml
chv_xml = mdapi/MetricsXML_CHV.xml
sklgt2_xml = mdapi/MetricsXML_SKL_GT2.xml
sklgt3_xml = mdapi/MetricsXML_SKL_GT3.xml
sklgt4_xml = mdapi/MetricsXML_SKL_GT4.xml
bxt_xml = mdapi/MetricsXML_BXT.xml
kblgt2_xml = mdapi/MetricsXML_KBL_GT2.xml
kblgt3_xml = mdapi/MetricsXML_KBL_GT3.xml
glk_xml = mdapi/MetricsXML_GLK.xml
cflgt2_xml = mdapi/MetricsXML_CFL_GT2.xml
cflgt3_xml = mdapi/MetricsXML_CFL_GT3.xml
cnl_xml = mdapi/MetricsXML_CNL.xml
icl_xml = mdapi/MetricsXML_ICL.xml
lkf_xml = mdapi/MetricsXML_LKF.xml
tgl_xml = mdapi/MetricsXML_TGL.xml

INTERNAL=0
ifeq ($(INTERNAL), 1)
hsw_xml += mdapi/MetricsXML_HSW_internal.xml
bdw_xml += mdapi/MetricsXML_BDW_internal.xml
chv_xml += mdapi/MetricsXML_CHV_internal.xml
bxt_xml += mdapi/MetricsXML_BXT_internal.xml
endif

ifdef WHITELIST
CONVERT_ARGS += --whitelist="$(WHITELIST)"
KERNELGEN_ARGS += --whitelist="$(WHITELIST)"
endif

ifdef BLACKLIST
CONVERT_ARGS += --blacklist="$(BLACKLIST)"
KERNELGEN_ARGS += --blacklist="$(BLACKLIST)"
endif

SYSFS=1
ifeq ($(SYSFS), 1)
KERNELGEN_ARGS += --sysfs
endif

GUIDS=$(data_dir)/guids.xml

all: $(oa_xml_files) $(drm_files)
oa-%.xml: mdapi/*.xml $(script_dir)/mdapi-xml-convert.py
	$(script_dir)/mdapi-xml-convert.py --guids=$(GUIDS) $(CONVERT_ARGS) $($(*)_xml) > $@

i915_oa_%.c i915_oa_%.h: oa-%.xml $(script_dir)/i915-perf-kernelgen.py
	$(script_dir)/i915-perf-kernelgen.py \
	    --guids=$(GUIDS) \
	    --chipset=$(*) \
	    --c-out=i915_oa_$(*).c \
	    --h-out=i915_oa_$(*).h \
	    $(KERNELGEN_ARGS) \
	    $(data_dir)/oa-$(*).xml

distclean:
	-rm -f i915_oa_*

clean:
	-rm -f i915_oa_*


================================================
FILE: data/README.md
================================================
# About guids.xml

This is the authoritive registry of unique identifers for different OA unit
hardware configurations. Userspace can reliably use these identifiers to map a
configuration to corresponding normalization equations and counter meta data.

If a hardware configuration ever changes in a backwards incompatible way
(changing the semantics and/or layout of the raw counters) then it must be
given a new GUID.

mdapi-xml-convert.py will match metric sets with a GUID from this file based on
an md5 hash of the hardware register configuration and skip a metric set with a
warning if no GUID could be found.

All new metric sets need to be allocated a GUID here before
mdapi-xml-convert.py or i915-perf-kernelgen.py will output anything for that
metric set. This ensures we don't automatically import new metric sets without
some explicit review that that's appropriate.

A failure to find a GUID for an older metric set most likely implies that the
register configuration was changed. It's possible that the change is benign
(e.g. a comment change) and in that case the mdapi_config_hash for the
corresponding metric set below can be updated.

The update-guids.py script is the recommended way of managing updates to this
file by generate a temporary file with proposed updates that you can compare
with the current guids.xml.


# update-guids.xml

update-guids.py can help with:

* Recognising new metrics from VPG's MDAPI XML files

  *(NOTE: new guids.xml entries will initially be missing the
  config_hash=MD5_HASH attribute until mdapi-xml-convert.py is used to generate
  a corresponding oa-*.xml config description)*

* Adding a config_hash=MD5_HASH attribute to recently added guids.xml entries
  after mdapi-xml-convert.py has been run.

* Allocating a GUID for a custom metric that doesn't have a counterpart in
  VPG's MDAPI XML files.

  For this case you can add a stub entry with only a name like `<guid
  name="Foo">` to guids.xml and then running update-guids.py will output a
  corresponding line with the addition of an id=UUID attribute.


# How to sync the oa-\*.xml files with latest internal MDAPI XML files

1. E.g. copy a new `MetricsXML_BDW.xml` to `mdapi/MetricsXML_BDW.xml`

*Note: that the `mdapi-xml-convert.py` script will only convert configs that
have a corresponding GUID entry within `guids.xml`. This check helps avoid
unintentionally publishing early, work-in-progress/pre-production configs.*

The `guids.xml` registry maps each, complex OA unit register configuration to a
unique ID that userspace can recognise and trust the semantics of raw counters
read using that configuration. (Just for reference, this is particularly
valuable for tools that capture raw metrics for later, offline processing since
the IDs effectively provide a compressed description of how to interpret the
data by providing an index into a database of high-level counter descriptions.)

The registry associates each ID with a hash of the HW register config as found in
MDAPI XML files ('mdapi_config_hash') and also with a hash of the HW config as
found in oa-\*.xml files ('config_hash'). The hashes used for lookups in the
registry also help detect when the register config for a pre-existing metric set
is updated. Note: these hashes are only for the low-level hardware configuration
so updates to counter descriptions used by fronted UIs won't affect indexing
here.

There is a chicken and egg situation when updating or adding new entries to
guids.xml since we can't hash the configs in oa-\*.xml until successfully running
mdapi-xml-convert.py which depends on a guids.xml registry entry first. The
update-guids.xml script will output registry entries without an oa-\*.xml config
hash if not available and can be re-run after mdapi-xml-convert.py to add the
missing hashes.

2. Now run:
```
../scripts/update-guids.py --guids=guids.xml mdapi/MetricsXML_BDW.xml > guids.xml2
```
*(note the script expects to find oa-\*.xml files in the current directory)*

Diff `guids.xml` and `guilds.xml2` (easiest with a side-by-side diff editor) and
review the registry changes. *Note: many lines will have a warning like `"Not
found in MDAPI XML file[s]..."` if `update-guids.xml` wasn't given all known
MDAPI XML files but in this case they can be ignored for all non-BDW configs.*

*Note: for any config that is already supported upstream in the i915 perf driver
we need to be careful if the hash for a metric set changes in case the semantics
for any raw counters were changed. The semantics of raw counters associated with
a given GUID form part of the drm i915 perf uapi contract and must remain
backwards compatible.*

If the diff shows any `mdapi_config_hash` changes for pre-existing (especially
upstream) configs you should review the MDAPI XML changes for the metric set and
verify the change just relates to a bug fix. If more substantial changes were
made which could mean we need to treat it as a new config. Handling the later
case is left as an exercise to the reader, since it hasn't happened so far :-D.
Assuming all the changes and new entries look good they can be copied into
`guids.xml`, removing any trailing comment left by `update-guids.py`.

3. Now run mdapi-xml-convert.py:
```
../scripts/mdapi-xml-convert.py --guids=guids.xml mdapi/MetricsXML_BDW.xml > oa-bdw.xml
```

4. We can now update new entries in guids.xml with a 'config_hash':
```
../scripts/update-guids.py --guids=guids.xml mdapi/MetricsXML_BDW.xml > guids.xml2
```
*(and again diff, check the changes and copy across)*

At this point other codegen can be done based on the update oa-\*.xml files such
as genreating new i915 perf configs:

```
../scripts/i915-perf-kernelgen.py --guids=guids.xml --chipset=bdw --c-out=i915_oa_bdw.c --h-out=i915_oa_bdw.h --sysfs oa-bdw.xml
```




================================================
FILE: data/gputop.proto
================================================
syntax = "proto2";

package gputop;

/*
 * To Browser
 */

enum EngineClass
{
    OTHER = 0;
    RENDER = 1;
    COPY = 2;
    VIDEO = 3;
    VIDEO_ENHANCE = 4;
}

message DevTopology
{
    required uint32 max_slices = 1;
    required uint32 max_subslices = 2;
    required uint32 max_eus_per_subslice = 3;
    required uint32 n_threads_per_eu = 4;
    required bytes slices_mask = 5;
    required bytes subslices_mask = 6;
    required bytes eus_mask = 7;

    repeated uint32 engines = 8;
}

message DevInfo
{
    required uint32 devid = 1;
    required uint32 gen = 2;
    required uint64 timestamp_frequency = 3;
    required uint64 gt_min_freq = 4;
    required uint64 gt_max_freq = 5;
    required string devname = 6;
    required string prettyname = 7;
    required DevTopology topology = 8;
}

enum GLCounterType
{
    RAW = 1;
    DURATION_RAW = 2;
    DURATION_NORM = 3;
    EVENT = 4;
    THROUGHPUT = 5;
    TIMESTAMP = 6;
}

enum GLCounterDataType
{
    UINT64 = 1;
    UINT32 = 2;
    DOUBLE = 3;
    FLOAT = 4;
    BOOL32 = 5;
}

message GLCounter
{
    required uint32 id = 1;
    required string name = 2;
    required string description = 3;
    required GLCounterType type = 4;
    required uint32 data_offset = 5;
    required GLCounterDataType data_type = 6;
    required uint64 maximum = 7;
}

message GLQueryInfo
{
    required uint32 id = 1;
    required string name = 2;
    repeated GLCounter counters = 3;
    required uint32 data_size = 4;
}

message Features
{
    required DevInfo devinfo = 1;
    required bool has_gl_performance_query = 2; /* implies single context view */
    required bool has_i915_oa = 3;
    repeated GLQueryInfo gl_queries = 4;
    /* NB: Available OA queries are inferred from devinfo */

    required uint32 n_cpus = 5;
    required string cpu_model = 6;
    required string kernel_release = 7;
    required string kernel_build = 8;
    required bool fake_mode = 9;
    repeated string supported_oa_uuids = 10;
    repeated string tracepoints = 11;
    repeated string notices = 12;
    required int32 server_pid = 13;
    repeated string events = 14;
    required bool has_i915_oa_cpu_timestamps = 15;
    required bool has_i915_oa_gpu_timestamps = 16;
}

message ProcessInfo
{
    required uint32 pid = 1;
    required string cmd_line = 2;
    required string comm = 3;
}

message LogEntry
{
  required uint32 log_level = 1;
  required string log_message = 2;
  //optional uint64 timestamp = 3;
}

message Log
{
  repeated LogEntry entries = 1;
}

message CloseNotify
{
    required uint32 id=1;
}

message BufferFillNotify
{
    required uint32 stream_id=1;
    required uint32 fill_percentage=2;
}

message CpuStats
{
    required uint64 timestamp = 1;
    required uint32 user = 2;
    required uint32 nice = 3;
    required uint32 system = 4;
    required uint32 idle = 5;
    required uint32 iowait = 6;
    required uint32 irq = 7;
    required uint32 softirq = 8;
    required uint32 steal = 9;
    required uint32 guest = 10;
    required uint32 guest_nice = 11;
}

message CpuStatsSet
{
    required uint32 id = 1; /* handle used to open stream */
    repeated CpuStats cpus = 2;
}

message TracepointInfo
{
    required uint32 event_id = 1;
    required string sample_format = 2;
}


message Message
{
    optional string reply_uuid = 1;

    oneof cmd {
        string error = 2;
        bool ack = 3;
        Features features = 4;
        Log log = 5;
        CloseNotify close_notify = 6;
        BufferFillNotify fill_notify = 7;
        ProcessInfo process_info = 8;
        CpuStatsSet cpu_stats = 9;
        TracepointInfo tracepoint_info = 10;
    }
}

/*
 * From Browser
 */
message OAStreamInfo
{
    required string uuid = 1;
    //required uint32 format = 2;
    required uint32 period_exponent = 3;
    //TODO: allow specifying a specific context to profile
    required bool per_ctx_mode = 4;
    // Adds GPU timestamps in the i915 perf reports
    required bool gpu_timestamps = 5;
    // Adds CPU timestamps in the i915 perf reports
    required bool cpu_timestamps = 6;
}

message TracepointConfig
{
    required int32 pid = 1;
    required int32 cpu = 2;
    required uint32 id = 3;
}

message GenericEventInfo
{
    required int32 pid = 1;
    required int32 cpu = 2;
    required uint64 type = 3; //E.g. _TYPE_SOFTWARE or _TYPE_HARDWARE
    required uint64 config = 4; //E.g _COUNT_SW_CONTEXT_SWITCHES
}

message CpuStatsInfo
{
    required uint32 sample_period_ms = 1;
}

message OpenStream
{
    required uint32 id = 1;

    oneof type {
        uint32 gl_query = 2;
        OAStreamInfo oa_stream = 3;
        TracepointConfig tracepoint = 4;
        GenericEventInfo generic = 5;
        CpuStatsInfo cpu_stats = 9;
    }
    required bool overwrite = 6;
    required bool live_updates = 7;
}

message Request
{
    required string uuid = 1;

    oneof req {
        bool get_features = 2;
        OpenStream open_stream = 3;
        uint32 close_stream = 4;
        uint32 get_process_info = 5;
        string test_log=6;
        string get_tracepoint_info = 7;
    }
}


================================================
FILE: data/guids.xml
================================================
<!--
    This is the authoritive registry of unique identifers for different OA unit
    hardware configurations. Userspace can reliably use these identifiers to
    map a configuration to corresponding normalization equations and counter
    meta data.

    Most maintenance is done using the update-guids.py helper script to generate
    a temporary guids.xml.update file which should then be manually compared with
    a visual diff tool to cherry pick the final changes into guids.xml.

    See README.md for more details.
-->
<guids>
    <guid id="2f01b241-7014-42a7-9eb6-a925cad3daba" chipset="all" name="MDAPI" />
    <guid config_hash="b96ab550dbb61fa1d1a98b2d6f938e9c" mdapi_config_hash="c675607e7d1b0083729e4b1621fd25f8" id="a490e9d2-55b3-4db0-8dab-53011032c5f3" chipset="hsw" name="RenderBasic" />
    <guid config_hash="3b656e19962cf1990cfb253a59946266" mdapi_config_hash="09199618ca154304fd42ca5ee19187f4" id="b344c8cb-a291-4cbf-aa9c-b40213bfc96f" chipset="hsw" name="ComputeBasic" />
    <guid config_hash="bb978ccd4f1eca6d7806f304a42fb10f" mdapi_config_hash="77524b565825e61259436f526848c1e1" id="480f9795-cf6a-4204-a9e3-cd7015515f8d" chipset="hsw" name="ComputeExtended" />
    <guid config_hash="890e4b72a09b71cb9c4522fbd8f7e45a" mdapi_config_hash="28d4ec8839e660bac90c3fbfa815ce45" id="399d3001-97d6-4240-b065-4fb843138e17" chipset="hsw" name="MemoryReads" />
    <guid config_hash="904374d80088ec4941ab3c1dbed1aac0" mdapi_config_hash="6a8cbc42da4822a17d3de385d6811c1a" id="f3c1ff4b-d0da-4ffa-8780-2c6b98f3f2d5" chipset="hsw" name="MemoryWrites" />
    <guid config_hash="35111d939881fd8e2367f89f86b43d19" mdapi_config_hash="4f8c749ea23ece9349cf690908159b6b" id="e111cda4-19c3-41ee-b326-f99ac44ebf78" chipset="hsw" name="SamplerBalance" />
    <guid mdapi_config_hash="3c2ee9a97141f36bc13828aeda30e477" id="ce81ddfb-573f-4100-8b9a-8dc93a5e5c8c" chipset="hsw" name="RenderBalance" />
    <guid mdapi_config_hash="7ffc6e4d3d2284ea76e9390b0fd8aaf1" id="2fbbb85b-0f33-4aeb-9d92-35256de2662f" chipset="hsw" name="MemoryReadsOnWritePort" />
    <guid mdapi_config_hash="ff6824b311096312105547bbe5e65758" id="a1476140-3af3-4556-b5fe-501e2df8b963" chipset="hsw" name="StencilPmaHold" />
    <guid mdapi_config_hash="414afdc7b2570bbbe07406ec675f3040" id="b3d5350e-32ba-4c72-96c2-0a504e86eda3" chipset="hsw" name="MediaMemoryReads" />
    <guid mdapi_config_hash="cf80117b63d376e87735b73e8f5ebc5b" id="69b42918-c915-439a-9e4b-a82fe3c9e1a3" chipset="hsw" name="MediaMemoryWrites" />
    <guid mdapi_config_hash="3566f20e9e3707cb9aefccff3ead7572" id="18024740-aa68-4d25-877e-082c9fdcb895" chipset="hsw" name="MediaVmePipe" />
    <guid config_hash="240f9cd7a6699b44ff0bf22b24449ac0" mdapi_config_hash="961180e14745136637cfd0253c6c0a63" id="d6de6f55-e526-4f79-a6a6-d7315c09044e" chipset="bdw" name="TestOa" />
    <guid config_hash="9c4955c220cbcc5f9ff3ce6e7af64cf5" mdapi_config_hash="7f7918e87f574f62cc4e8d37f660abc5" id="b541bd57-0e0f-4154-b4c0-5858010a2bf7" chipset="bdw" name="RenderBasic" />
    <guid config_hash="35d980685774e3631a7e5eb4d23a0013" mdapi_config_hash="ea406bf4dc4e4edd5e29cce12bef1778" id="35fbc9b2-a891-40a6-a38d-022bb7057552" chipset="bdw" name="ComputeBasic" />
    <guid config_hash="d17b0801f998c4b119c63b0467e8f9b5" mdapi_config_hash="fbde7829568089b44b53a1eefbad9b0e" id="8fb61ba2-2fbb-454c-a136-2dec5a8a595e" chipset="bdw" name="ComputeExtra" />
    <guid config_hash="1bb1be4885c0568bf0d3bd5df9fe4a7a" mdapi_config_hash="f0c3b043834e63d21ba6be573df02e32" id="233d0544-fff7-4281-8291-e02f222aff72" chipset="bdw" name="RenderPipeProfile" />
    <guid config_hash="9147786065e1562d254a1dc82c14b4f9" mdapi_config_hash="fa121c59e98aa4f860c797bfab097cd7" id="2b255d48-2117-4fef-a8f7-f151e1d25a2c" chipset="bdw" name="MemoryReads" />
    <guid config_hash="13cadf5e130b16bf6cf777e34ff54fcf" mdapi_config_hash="7e324f6f7cb980832735ada1e12f7905" id="f7fd3220-b466-4a4d-9f98-b0caf3f2394c" chipset="bdw" name="MemoryWrites" />
    <guid config_hash="552b53f8d91428cec6eab6bff62ae8af" mdapi_config_hash="6ba093cf3feb68f521e579169ad689cf" id="e99ccaca-821c-4df9-97a7-96bdb7204e43" chipset="bdw" name="ComputeExtended" />
    <guid config_hash="2cf68f22eadf4cb430a7e2a76fab3632" mdapi_config_hash="e9913c0dd30d6ccab98c5dec58dc7162" id="27a364dc-8225-4ecb-b607-d6f1925598d9" chipset="bdw" name="ComputeL3Cache" />
    <guid config_hash="15d5387219cda641a8964b9edeb86b6d" mdapi_config_hash="fc357f19e2a77465c3232693f3bb1444" id="857fc630-2f09-4804-85f1-084adfadd5ab" chipset="bdw" name="DataPortReadsCoalescing" />
    <guid config_hash="95a2d953682c60ee0213c41892067b94" mdapi_config_hash="be3980a5f0e6057e641b884fc56b07ff" id="343ebc99-4a55-414c-8c17-d8e259cf5e20" chipset="bdw" name="DataPortWritesCoalescing" />
    <guid config_hash="9004a46b9728e0f12232ce8b151d3224" mdapi_config_hash="715fe2c431914b6b369970c0b897f7e2" id="e1743ca0-7fc8-410b-a066-de7bbb9280b7" chipset="bdw" name="VMEPipe" />
    <guid config_hash="bb8d49db81e7bd822188ed5a958b4863" mdapi_config_hash="f94fd6ba5bfa83bb965705f1c69f1d37" id="78490af2-10fa-430b-ae3c-94ec04d5214e" chipset="bdw" name="HDCAndSF" />
    <guid config_hash="19924ef1563f10e386755b531d44a3fb" mdapi_config_hash="a5589479b360f6d4f5c8f70fe78b0e1d" id="c0abdd97-3b13-4cad-814c-bd178804e02c" chipset="bdw" name="L3_1" />
    <guid config_hash="41217f1f74d9e181726736ab9af57c32" mdapi_config_hash="0fc152bfbb920f90b16ed0445afe9e48" id="ad665281-a7cf-483a-bd10-0e07c43f61c7" chipset="bdw" name="L3_2" />
    <guid config_hash="f17717dae4348688c670212b507d451a" mdapi_config_hash="2afc3cdd7ffbb021fc0ae99681b138ab" id="930a15aa-4300-4fce-a9ba-edb0b9e880be" chipset="bdw" name="L3_3" />
    <guid config_hash="71232cf595afad2b53666f6c233447e8" mdapi_config_hash="032c9ab7c2c6d056da82e4ee1b159c18" id="d7793b26-b5e3-4f0f-ad78-7ebc9d0b4c7d" chipset="bdw" name="L3_4" />
    <guid config_hash="b8a474b7965b6d9ec62641732d0d479b" mdapi_config_hash="b2454e1eef8d38d83cb95ba2b3d85431" id="da0f7875-1143-4d73-a39c-9128a951c46a" chipset="bdw" name="RasterizerAndPixelBackend" />
    <guid config_hash="f8f05a9f4ce4bd928f1343180584f7de" mdapi_config_hash="6fb026e2926fbd3a507e55a7bf0a3687" id="52c186e4-39e3-4534-87cd-41bd47763df9" chipset="bdw" name="Sampler_1" />
    <guid config_hash="30ee983d5ba223ad552acc3debc13c00" mdapi_config_hash="e38e63da0d875958bc88a9deb8d529ba" id="edcb8c31-764d-451a-9ecd-c9c89fb54f8d" chipset="bdw" name="Sampler_2" />
    <guid config_hash="bbc70da24570ab578fb1416217fc0834" mdapi_config_hash="c905876bdf561cc26c64363ced258c64" id="729fc3f4-ccff-4902-be6b-f1a22cc92c02" chipset="bdw" name="TDL_1" />
    <guid config_hash="803ca6eb4feef4090332003b65607c95" mdapi_config_hash="0000753d7f52fb3a0b0baa6b44052cff" id="29598975-4785-43ab-a981-1dfa58d0e835" chipset="bdw" name="TDL_2" />
    <guid config_hash="c45ebb398888eabb889be632432550eb" mdapi_config_hash="a3c52d64b6d187b02de43af112abc509" id="0a9eb7be-feee-4275-a139-6d9cedf0fdb0" chipset="bdw" name="GpuBusyness" />
    <guid config_hash="13a7f7de484592659ef4d346901bde25" mdapi_config_hash="59cd2454083f4855dca14637425d733c" id="e713f347-953e-4d8c-b02f-6be31df2db2b" chipset="bdw" name="STC_PmaStall" />
    <guid config_hash="867e736ad8c49a9f4cd17b58f1b0b0cc" mdapi_config_hash="d996104bf7531170226275d44a3602b6" id="4a534b07-cba3-414d-8d60-874830e883aa" chipset="chv" name="TestOa" />
    <guid config_hash="4fe7c53a36b24f621e11a1487d46e325" mdapi_config_hash="089852d3f5babff2175457f57214ce57" id="9d8a3af5-c02c-4a4a-b947-f1672469e0fb" chipset="chv" name="RenderBasic" />
    <guid config_hash="6472c5788ff47d2f8f88b86b7314c09e" mdapi_config_hash="60375bf6570a28320cce512ab6d024e0" id="f522a89c-ecd1-4522-8331-3383c54af5f5" chipset="chv" name="ComputeBasic" />
    <guid config_hash="532bafcf355d5812242ab50a362bf934" mdapi_config_hash="1466be3c679aeeb0627be174ead35e58" id="a9ccc03d-a943-4e6b-9cd6-13e063075927" chipset="chv" name="RenderPipeProfile" />
    <guid config_hash="bb8d49db81e7bd822188ed5a958b4863" mdapi_config_hash="f94fd6ba5bfa83bb965705f1c69f1d37" id="33af8252-7a51-4aa3-b0ba-1b946f209d7b" chipset="chv" name="HDCAndSF" />
    <guid config_hash="19924ef1563f10e386755b531d44a3fb" mdapi_config_hash="a5589479b360f6d4f5c8f70fe78b0e1d" id="78f52900-5317-4417-8067-966fbf215a1f" chipset="chv" name="L3_1" />
    <guid config_hash="41217f1f74d9e181726736ab9af57c32" mdapi_config_hash="0fc152bfbb920f90b16ed0445afe9e48" id="0db4fe4a-2648-4064-bd6a-89c06d0c27b3" chipset="chv" name="L3_2" />
    <guid config_hash="f17717dae4348688c670212b507d451a" mdapi_config_hash="2afc3cdd7ffbb021fc0ae99681b138ab" id="0de6539e-33b4-4aee-83c4-9ab45a579b94" chipset="chv" name="L3_3" />
    <guid config_hash="71232cf595afad2b53666f6c233447e8" mdapi_config_hash="032c9ab7c2c6d056da82e4ee1b159c18" id="be74c9d6-268f-4d7f-b2e8-8d91d4441883" chipset="chv" name="L3_4" />
    <guid config_hash="b8a474b7965b6d9ec62641732d0d479b" mdapi_config_hash="b2454e1eef8d38d83cb95ba2b3d85431" id="31bc1ff3-8d09-4497-9d79-59c4f943b502" chipset="chv" name="RasterizerAndPixelBackend" />
    <guid config_hash="f8f05a9f4ce4bd928f1343180584f7de" mdapi_config_hash="6fb026e2926fbd3a507e55a7bf0a3687" id="05450fec-bb5c-4b0a-8995-e03631168a34" chipset="chv" name="Sampler_1" />
    <guid config_hash="30ee983d5ba223ad552acc3debc13c00" mdapi_config_hash="e38e63da0d875958bc88a9deb8d529ba" id="883c8a56-8767-4de8-beec-a99462c6674b" chipset="chv" name="Sampler_2" />
    <guid config_hash="bbc70da24570ab578fb1416217fc0834" mdapi_config_hash="c905876bdf561cc26c64363ced258c64" id="eb97e523-d9ac-48a9-b7f8-9cc909ddbf14" chipset="chv" name="TDL_1" />
    <guid config_hash="803ca6eb4feef4090332003b65607c95" mdapi_config_hash="0000753d7f52fb3a0b0baa6b44052cff" id="dff6158e-8409-452c-be76-91c9946330bd" chipset="chv" name="TDL_2" />
    <guid mdapi_config_hash="5cc4d10d745060d0672ffb4ebf0d1687" id="22480aac-b81a-40ce-8770-1061ce51dff7" chipset="chv" name="StencilPmaHold" />
    <guid mdapi_config_hash="f3ae7e16e9b6aadac98179bc4c847246" id="f8315f64-668e-405e-a6d6-c52e4d9e8f1c" chipset="chv" name="MediaMemoryReads" />
    <guid mdapi_config_hash="ea98859ab4afdda2589be697455c7dc8" id="6df9f4c3-4775-4f47-be6a-991fba7a02c7" chipset="chv" name="MediaMemoryWrites" />
    <guid mdapi_config_hash="179e6a40c74a8401597b82383dacfd70" id="e7b839a6-6045-4ec7-aaa5-f6aab87a55aa" chipset="chv" name="MediaVmePipe" />
    <guid mdapi_config_hash="3ed20c9f7071cef87fd28d2f899c9e6c" id="aa7d6b37-3e8f-46a4-ab50-e58f8efbdab9" chipset="chv" name="HdcUrbCoalescing" />
    <guid mdapi_config_hash="b39b58578bb37520010084d2fb489c47" id="d991c4b4-7c8b-43a9-b187-7b143cb903cc" chipset="chv" name="L3" />
    <guid mdapi_config_hash="36c6e4beda33281c27a79f4134ea9f80" id="531d4a91-df08-4dd4-8c5c-0158321a9ee0" chipset="chv" name="SamplerAndHDCAndTDL" />
    <guid mdapi_config_hash="959a0f3d993feb51a3ce93ea3b61d726" id="ca514a15-e550-4277-ba52-b7cfa4929e25" chipset="chv" name="TDL" />
    <guid mdapi_config_hash="f1232ea7b1a2bc5b0cfc7d640528e5b2" id="2a933a92-bddc-44dd-a06a-672391972b5e" chipset="chv" name="ComputeL3Cache" />
    <guid config_hash="e018d083414e4d28e0ed481554128883" mdapi_config_hash="dce59e977ffff25a57f2486f5d9a7c60" id="5ee72f5c-092f-421e-8b70-225f7c3e9612" chipset="bxt" name="TestOa" />
    <guid config_hash="203852243e7fde6887b1db92862d5eee" mdapi_config_hash="9bf85c8db90bbb173411dd8fbf2c9d90" id="22b9519a-e9ba-4c41-8b54-f4f8ca14fa0a" chipset="bxt" name="RenderBasic" />
    <guid config_hash="cde046a01aba9c56d6fa44bf2c0f26c2" mdapi_config_hash="86794812560853ea5531d6eb816c7bfa" id="012d72cf-82a9-4d25-8ddf-74076fd30797" chipset="bxt" name="ComputeBasic" />
    <guid config_hash="a19a55aad269ccc1ed4380314eda4bed" mdapi_config_hash="ac34c2028f3f4fae92e58aae1496901b" id="fa6ecf21-2cb8-4d0b-9308-6e4a7b4ca87a" chipset="bxt" name="ComputeExtra" />
    <guid config_hash="1669463a6836f6d057cbf3e41506923b" mdapi_config_hash="c4b66b414f42b7e6f1b9941b445f79f2" id="ce416533-e49e-4211-80af-ec513590a914" chipset="bxt" name="RenderPipeProfile" />
    <guid config_hash="f9eee3f0c9653ffd05e4876be0ea44d5" mdapi_config_hash="f707783ff8ea456ddc55fbaeb1a3bc0a" id="398e2452-18d7-42d0-b241-e4d0a9148ada" chipset="bxt" name="MemoryReads" />
    <guid config_hash="03e840f1d8597b3c6c4015792243ce7d" mdapi_config_hash="b7e416688493d93c6a319a39c1c91fda" id="d324a0d6-7269-4847-a5c2-6f71ddc7fed5" chipset="bxt" name="MemoryWrites" />
    <guid config_hash="39a03c065f1fdb5bf680207dc520cdb2" mdapi_config_hash="c90ecb54cbe7609fc6743f5273b68962" id="caf3596a-7bb1-4dec-b3b3-2a080d283b49" chipset="bxt" name="ComputeExtended" />
    <guid config_hash="c241c2999f487dc995cecdb35b01197b" mdapi_config_hash="03f5a72e5e1ce82b6e3e14855298bf3d" id="49b956e2-d5b9-47e0-9d8a-cee5e8cec527" chipset="bxt" name="ComputeL3Cache" />
    <guid config_hash="37dc8ae76c2554b11ecea682f1349ece" mdapi_config_hash="16b7f908edc7ee5ddb797c6fb1932fa6" id="ad9d9bc2-ccb7-4f5d-adbb-b4e67e615efd" chipset="bxt" name="HDCAndSF" />
    <guid config_hash="543b9bdb10f681d516d8d9e2195221cd" mdapi_config_hash="87f92d7860a6674bf05428c26523755b" id="bde7b434-349c-4aad-8596-eb23c0352168" chipset="bxt" name="L3_1" />
    <guid config_hash="1dc29cbbceb8e2e1a78d679ead80a27b" mdapi_config_hash="c7ec60f268b8efa00960e96dc9491517" id="f3d845e6-bfc3-4ffe-b0e5-dddc80c21f07" chipset="bxt" name="RasterizerAndPixelBackend" />
    <guid config_hash="0b9e45ed32513193354be363e288b6a6" mdapi_config_hash="ad512c0f8b7457df8edca72ddea75e64" id="a53d620b-c14e-49df-bd27-e076b3fb98f3" chipset="bxt" name="Sampler" />
    <guid config_hash="3f01b8d28fa285e7a496081574de4c1b" mdapi_config_hash="963e6d32bfe8cee347a8ae14d677c11c" id="8a44b172-6e1d-445f-8937-c06cc487ba39" chipset="bxt" name="TDL_1" />
    <guid config_hash="0c77cba2d8886c18df9f382ce90eac66" mdapi_config_hash="a66f0092b99ca3a8ce29e0ce4be513ff" id="9d4643f8-aa05-482e-8193-070a8ab0d117" chipset="bxt" name="TDL_2" />
    <guid config_hash="e6d52ba7af730de63eeaa8d727b36ed7" mdapi_config_hash="6898bc10a62600907cc6c47d1f7004a0" id="c9f5fa3a-d14f-400c-a89a-211206b00ee7" chipset="bxt" name="GpuBusyness" />
    <guid config_hash="6d13f443205926fd1351ae5adeae8965" mdapi_config_hash="24f384a77963d7d64c324b3d89eeb498" id="d49cd0d8-8c7f-4465-94fc-51e08c9050bc" chipset="bxt" name="PMA_Stall" />
    <guid config_hash="fc79f102b841df08ac154ddebc634bf6" mdapi_config_hash="3c97b92455702ca6f6a6f846dcc1ebd3" id="07b25942-d9fd-4fce-bd58-e29abd66b7de" chipset="sklgt2" name="RenderBasic" />
    <guid config_hash="3e0e14aef4a2cf7e61098928c034caff" mdapi_config_hash="ecb641130c942e71d5a9de8adb51c7f6" id="00b80b4c-d215-4378-9015-da3dda3b61ea" chipset="sklgt2" name="ComputeBasic" />
    <guid config_hash="d757768d43838dd04e2db7e9928c87d9" mdapi_config_hash="79c6baee9374a6c43b8e0fabda2c1a39" id="2a0c0933-37e7-427c-9951-ded42a78bb27" chipset="sklgt2" name="RenderPipeProfile" />
    <guid config_hash="15938384237d1b01ceb07bc97edd12a9" mdapi_config_hash="22327f250c6079d5d5f9f1a70829dc05" id="246b35f1-44e0-4d03-8936-e452e291d064" chipset="sklgt2" name="MemoryReads" />
    <guid config_hash="a0c0e0b3ad6e0960c9e3c626e9943c3b" mdapi_config_hash="5dcf9b09ab723e2f4ed17171a2b54a59" id="e0d3da02-00bf-4a96-9795-b48158c73a68" chipset="sklgt2" name="MemoryWrites" />
    <guid config_hash="31bc9b67c237e4be9469d38ba69ec374" mdapi_config_hash="37e00c6654e34eaab18b6f3b2c606a16" id="c26b1fda-2752-4a33-a448-4c8718366846" chipset="sklgt2" name="ComputeExtended" />
    <guid config_hash="a142f4714f9189816e129d2bf7ddd060" mdapi_config_hash="cdf98d85d93792dc203d2bfd7ae7559c" id="9fb22842-e708-43f7-9752-e0e41670c39e" chipset="sklgt2" name="ComputeL3Cache" />
    <guid config_hash="977641d9cac7a2eb62c1c6cc844db2b5" mdapi_config_hash="a70cc632725191096cec1d685119aeb6" id="b4aa5e13-2d25-418f-827d-421f5cc4c43b" chipset="sklgt2" name="HDCAndSF" />
    <guid config_hash="45aaf271f503f5d5d152b6d97c11412d" mdapi_config_hash="6b111ab20f6929a385eee8d283768ac1" id="504000e8-64f2-4aac-8301-51b81aa60d45" chipset="sklgt2" name="L3_1" />
    <guid config_hash="6221743043a92819571c49bde5e09582" mdapi_config_hash="0b87bde0336f1d126527c9d8b0e6fa3c" id="f542479b-6685-4670-ad8e-9fe282a2eb5b" chipset="sklgt2" name="L3_2" />
    <guid config_hash="b6320b7867895a125dec55805a8da286" mdapi_config_hash="7eae454eee816d64ff0fbb991ad4e9b9" id="1cbf1e9f-c2de-4cc2-8d1c-2c33c25a2332" chipset="sklgt2" name="L3_3" />
    <guid config_hash="35f7405d36fe5767f4c1e80b322243d1" mdapi_config_hash="78b90bbcc0137b2c6e516cb32d44747c" id="b4e54cc8-a3a0-4ccd-9990-65d3184e5a38" chipset="sklgt2" name="RasterizerAndPixelBackend" />
    <guid config_hash="6e2319f2ca15bfb049b2d1be6d1a0844" mdapi_config_hash="73ceeb4df0d124c61328ecf2c0207503" id="efe7eba4-fd9e-4a09-a92b-334970b5de57" chipset="sklgt2" name="Sampler" />
    <guid config_hash="90eff0b1f381a2f187bd54f2047ce0f2" mdapi_config_hash="e0913ff09629a32c435487a69f6683b9" id="e9bd0bbb-c7b7-4a26-a27a-246987354776" chipset="sklgt2" name="TDL_1" />
    <guid config_hash="c41684d2ccbe553874fb9cdbd8fd0229" mdapi_config_hash="6b1a9dc8dd375bf367313ad9b0531580" id="0a7accbf-8c55-455f-9984-23e9fb0b826d" chipset="sklgt2" name="TDL_2" />
    <guid config_hash="483a06910590c1753a0266ef8b9f9b70" mdapi_config_hash="4be337ed83e3c95aebf66553ed685602" id="41a24047-7484-4ead-ae37-de907e5ff2b2" chipset="sklgt2" name="ComputeExtra" />
    <guid config_hash="784698b7fb41dad7bc4bf13fac46657b" mdapi_config_hash="2fe32bdaf82fc66774ee95c33a23ea88" id="95910492-943f-44bd-9461-390240f243fd" chipset="sklgt2" name="VMEPipe" />
    <guid config_hash="d2e36c07c43f128370fe1112d4de1181" mdapi_config_hash="d569893983ce055b9021b64420894431" id="1651949f-0ac0-4cb1-a06f-dafd74a407d1" chipset="sklgt2" name="TestOa" />
    <guid config_hash="ee7996e47cdaf7722422397285763cdc" mdapi_config_hash="ada812fc71ebbabd1e746dbab67881b1" id="c44a5cf7-886d-477b-bebd-2d738923e4c3" chipset="sklgt2" name="GpuBusyness" />
    <guid config_hash="cec6202194db96d6a09fed71808bb7de" mdapi_config_hash="df4b9b85ed61f457a0b71b03299b282d" id="e0b2aae4-9b8f-4211-8df0-f8e8cb203209" chipset="sklgt2" name="FfBottlenecks" />
    <guid config_hash="8ae5bda74271c473f88f13e57d6f6828" mdapi_config_hash="e7f3f72cad542f3a17c09686e65487fc" id="27871149-2fa9-40ba-aa73-350d60c03a09" chipset="sklgt2" name="PMA_Stall" />
    <guid config_hash="a7f1b241b23898785166ab10ca4ce1bf" mdapi_config_hash="ae3528402606bbb21a08da7ef5ea1530" id="21fef15a-83f4-4ffa-bb81-7da6e38b8e4b" chipset="sklgt3" name="RenderBasic" />
    <guid config_hash="ede53df6549f788495f7fca90475b6dd" mdapi_config_hash="87390c127ce809c3cfab64388ddebd14" id="4320492b-fd03-42ac-922f-dbe1ef3b7b58" chipset="sklgt3" name="ComputeBasic" />
    <guid config_hash="0f8eee02ed3e457362ffdc38ed10036c" mdapi_config_hash="2d95f03caa28b40e2a25f3bc8ac38b55" id="bd2d9cae-b9ec-4f5b-9d2f-934bed398a2d" chipset="sklgt3" name="RenderPipeProfile" />
    <guid config_hash="0a75401250565ee5a0e555b47bc9e5b4" mdapi_config_hash="5218add4f4b16f3db5c92225871eb44c" id="4ca0f3fe-7fd3-4924-98cb-1807d9879767" chipset="sklgt3" name="MemoryReads" />
    <guid config_hash="2ed5869dae575556e0895b0d0081555c" mdapi_config_hash="adc8e37f86eda900faf1fdb41f5dc3ee" id="a0c0172c-ee13-403d-99ff-2bdf6936cf14" chipset="sklgt3" name="MemoryWrites" />
    <guid config_hash="6566c55fdf1de8ae73008029a674ecc9" mdapi_config_hash="f3ce984974a95b391e835b3a75aa7813" id="52435e0b-f188-42ea-8680-21a56ee20dee" chipset="sklgt3" name="ComputeExtended" />
    <guid config_hash="f660e82bbeca0b5d2d31a98dac8eb940" mdapi_config_hash="7b6f81c79c79fb31b0fe5eea542e479f" id="27076eeb-49f3-4fed-8423-c66506005c63" chipset="sklgt3" name="ComputeL3Cache" />
    <guid config_hash="2c6650c2422869aa2624b26f7a7c51bc" mdapi_config_hash="1ce5fbfd5db4183dfc3ab6bf4badfd59" id="a1b8363b-b986-47b6-929a-847afde3dec8" chipset="sklgt3" name="HDCAndSF" />
    <guid config_hash="3ead5919c426a00ef6697e21df33ef07" mdapi_config_hash="269534866dc93d83e1e5934bd4900a89" id="fa857069-7f95-44c9-a3e0-cb8ccbc35abb" chipset="sklgt3" name="L3_1" />
    <guid config_hash="2d0a88cdba58ddf18642fde563edb4d8" mdapi_config_hash="745f63effe3156a5f358999d45bd66c6" id="9830a5f3-a5e2-4773-a49d-6371407c382a" chipset="sklgt3" name="L3_2" />
    <guid config_hash="d3972886309fa3701f3d3ae185f57cbe" mdapi_config_hash="b46614ab9a28c8a7fe88897cd72437bd" id="59452ceb-24bb-4878-87ec-87aab7b4f9db" chipset="sklgt3" name="L3_3" />
    <guid config_hash="90ecbd5ae5ae6d3c0f756c7411351c85" mdapi_config_hash="7d797e538b84f6682caacdfb299145d9" id="d2249ff7-34b4-4203-b474-7c11546f9dae" chipset="sklgt3" name="RasterizerAndPixelBackend" />
    <guid config_hash="5a628cbf246226c19fed41479cf17de1" mdapi_config_hash="1db0203064f7e2f8cb02901fe29a1d33" id="c9cf7c63-0065-4226-941e-98590bad8f75" chipset="sklgt3" name="Sampler" />
    <guid config_hash="f48609e1a79093073b96726c3c4c63a6" mdapi_config_hash="781425b1a57e4ea0010105f565567161" id="e3bb1501-89ca-43fb-8668-9d96159e10a2" chipset="sklgt3" name="TDL_1" />
    <guid config_hash="93ab6cf80fefdfca540a3ac101925411" mdapi_config_hash="66d2a4df7b3190be8bd9643e1cb14f99" id="29194a55-7e75-4152-a71f-ef34b1ae4cca" chipset="sklgt3" name="TDL_2" />
    <guid config_hash="3ca2784da64d161a998b7d8f6d4e0235" mdapi_config_hash="5796dcc1e154e567d7758854bb621bcb" id="2d80a648-7b5a-4e92-bbe7-3b5c76f2e221" chipset="sklgt3" name="ComputeExtra" />
    <guid config_hash="54b2a9ae72018dd99e63c2ecd9c92901" mdapi_config_hash="6ae821fe8ac78f4b387f9eec605ac900" id="cfae9232-6ffc-42cc-a703-9790016925f0" chipset="sklgt3" name="VMEPipe" />
    <guid config_hash="cca1580576ffa8e25aa271ebdac68cc7" mdapi_config_hash="d05fe58178a1882edcb81d86070551e3" id="2b985803-d3c9-4629-8a4f-634bfecba0e8" chipset="sklgt3" name="TestOa" />
    <guid config_hash="6124b939906bc3cda3621544aabfd890" mdapi_config_hash="24ef7b4026d1ac159bb663946df0e9b0" id="0c5058ff-fdf4-4e0d-81fb-c0310fb76525" chipset="sklgt3" name="GpuBusyness" />
    <guid config_hash="8ae5bda74271c473f88f13e57d6f6828" mdapi_config_hash="4d9fb617c64406cc8b372808461dd3e3" id="c889fd93-8dc7-4ba5-9451-de34a8b5ea3f" chipset="sklgt3" name="PMA_Stall" />
    <guid config_hash="0a80b2a2caa3386ecce110a7904eb1c1" mdapi_config_hash="61d002ce457b9ce087613d986e6b0544" id="95322a71-bb05-4437-bc27-f7dd7b27d136" chipset="sklgt4" name="RenderBasic" />
    <guid config_hash="898ee42bb4b359d4c0eb97c5919cfd7f" mdapi_config_hash="d596d8f326e5378b871b825eb954e95c" id="7277228f-e7f3-4743-945a-6a2049d11377" chipset="sklgt4" name="ComputeBasic" />
    <guid config_hash="48b5556f95fc27dceb10c65556a16613" mdapi_config_hash="95e3f2b556fe9795e0d0e0d3b0c5ee00" id="463c668c-3f60-49b6-8f85-d995b635b3b2" chipset="sklgt4" name="RenderPipeProfile" />
    <guid config_hash="0a75401250565ee5a0e555b47bc9e5b4" mdapi_config_hash="d39a578cdf930d109c992f4abd7f83cb" id="3ae6e74c-72c3-4040-9bd0-7961430b8cc8" chipset="sklgt4" name="MemoryReads" />
    <guid config_hash="2ed5869dae575556e0895b0d0081555c" mdapi_config_hash="603b987097b9d84c53eb55c60272b286" id="055f256d-4052-467c-8dec-6064a4806433" chipset="sklgt4" name="MemoryWrites" />
    <guid config_hash="6566c55fdf1de8ae73008029a674ecc9" mdapi_config_hash="26c920eddaf1b7e2d58c37a96d4076bd" id="753972d4-87cd-4460-824d-754463ac5054" chipset="sklgt4" name="ComputeExtended" />
    <guid config_hash="96d8e8d820ebad84b71c222f3c448ec5" mdapi_config_hash="182cd4a00f7a24a0c844bf9f8435419e" id="4e4392e9-8f73-457b-ab44-b49f7a0c733b" chipset="sklgt4" name="ComputeL3Cache" />
    <guid config_hash="25ad6a99a2b00414d4747035af7fac94" mdapi_config_hash="f69a28470a231f8d0c20e3173274cf88" id="75f56991-b149-4122-ade9-d9c0c80c733b" chipset="sklgt4" name="HDCAndSF" />
    <guid config_hash="3ead5919c426a00ef6697e21df33ef07" mdapi_config_hash="52b2279e32293bfe3cf97e443940215a" id="0d4cda70-da83-466f-b61e-7a064fe6a232" chipset="sklgt4" name="L3_1" />
    <guid config_hash="2d0a88cdba58ddf18642fde563edb4d8" mdapi_config_hash="1541624f29b55f8abf422eaa813657e7" id="20137ace-b110-4341-883f-1094c820093c" chipset="sklgt4" name="L3_2" />
    <guid config_hash="d3972886309fa3701f3d3ae185f57cbe" mdapi_config_hash="c734154b7a9bd205b8bfb176211873c3" id="d3a6b05e-46ef-44a8-96c3-9bd3e58acbe6" chipset="sklgt4" name="L3_3" />
    <guid config_hash="90ecbd5ae5ae6d3c0f756c7411351c85" mdapi_config_hash="0fbb2b2f53429b0a25a6628c1fb21b32" id="4081b948-63f1-4b1a-abaa-6017cb77a63b" chipset="sklgt4" name="RasterizerAndPixelBackend" />
    <guid config_hash="5a628cbf246226c19fed41479cf17de1" mdapi_config_hash="032dea8a40f7c0bbe2c9e0a238df248d" id="eae6bbb1-0e2b-478d-bd9e-f10ded2178f9" chipset="sklgt4" name="Sampler" />
    <guid config_hash="f48609e1a79093073b96726c3c4c63a6" mdapi_config_hash="39a8e4da917b0874b8e697f203a641ff" id="1bba4bd2-81d4-45ec-847f-bc363e17e14d" chipset="sklgt4" name="TDL_1" />
    <guid config_hash="93ab6cf80fefdfca540a3ac101925411" mdapi_config_hash="60b1253d54ce38bb6678d9a3eaa10305" id="a4b3106c-cfec-49f5-8e26-470470379e66" chipset="sklgt4" name="TDL_2" />
    <guid config_hash="19cb1c38ee83566f630015215532efa5" mdapi_config_hash="f9ae90355e5abe786bf5e81f1c4222c0" id="a5aa857d-e8f0-4dfa-8981-ce340fa748fd" chipset="sklgt4" name="ComputeExtra" />
    <guid config_hash="b28f9fef3bf5699c217d634bffa57fbc" mdapi_config_hash="cafc4d5abc6807434093d4f47fe83292" id="0e8d8b86-4ee7-4cdd-aaaa-58adc92cb29e" chipset="sklgt4" name="VMEPipe" />
    <guid config_hash="cca1580576ffa8e25aa271ebdac68cc7" mdapi_config_hash="051007cbfaffa4151d7c9365edde7bff" id="882fa433-1f4a-4a67-a962-c741888fe5f5" chipset="sklgt4" name="TestOa" />
    <guid config_hash="6124b939906bc3cda3621544aabfd890" mdapi_config_hash="24ef7b4026d1ac159bb663946df0e9b0" id="4e5b1599-5b01-4b3d-89fa-6b26a25fe02b" chipset="sklgt4" name="GpuBusyness" />
    <guid config_hash="8ae5bda74271c473f88f13e57d6f6828" mdapi_config_hash="4d9fb617c64406cc8b372808461dd3e3" id="befe9fd6-474e-4a3d-b98e-cd793715cf91" chipset="sklgt4" name="PMA_Stall" />
    <guid config_hash="afbe2cb999a8303f52eea075f3b8687e" mdapi_config_hash="966416aaaf33b0bce90c0daa51217242" id="99c1a40e-a090-4354-86e3-4d068bb1917e" chipset="kblgt2" name="RenderBasic" />
    <guid config_hash="e337295245fb93eccf7b096f2728ca98" mdapi_config_hash="86040ee918c1b39c616b777101369f16" id="e17fc42a-e614-41b6-90c4-1074841a6c77" chipset="kblgt2" name="ComputeBasic" />
    <guid config_hash="01f86f590b9b0c0371b0075a5e73b902" mdapi_config_hash="7ee27e7f11eea3282e62abde604b61a2" id="d7a17a3a-ca71-40d2-a919-ace80d50633f" chipset="kblgt2" name="RenderPipeProfile" />
    <guid config_hash="0a75401250565ee5a0e555b47bc9e5b4" mdapi_config_hash="0779bba85f8be3baef98ecc5c66fd369" id="57b59202-172b-477a-87de-33f85572c589" chipset="kblgt2" name="MemoryReads" />
    <guid config_hash="2ed5869dae575556e0895b0d0081555c" mdapi_config_hash="26eb749438ad7d42e34342048c1019c5" id="3addf8ef-8e9b-40f5-a448-3dbb5d5128b0" chipset="kblgt2" name="MemoryWrites" />
    <guid config_hash="6566c55fdf1de8ae73008029a674ecc9" mdapi_config_hash="aa2dd4e7d446e3ce29dfeaf8f393243e" id="4af0400a-81c3-47db-a6b6-deddbd75680e" chipset="kblgt2" name="ComputeExtended" />
    <guid config_hash="33bdd2160049aa831e025e1be7a453c5" mdapi_config_hash="2770df840fca647230d55b79f686ae11" id="0e22f995-79ca-4f67-83ab-e9d9772488d8" chipset="kblgt2" name="ComputeL3Cache" />
    <guid config_hash="5736948ed298fd6e8cc80222e1e03077" mdapi_config_hash="c056251351b0b1f5beb4f6863484854b" id="fb149d66-fad2-4230-b0d7-4d689b9116d3" chipset="kblgt2" name="HDCAndSF" />
    <guid config_hash="3ead5919c426a00ef6697e21df33ef07" mdapi_config_hash="17d38bff109de8e5622ff29bead0bbcf" id="f889f8cc-4c93-4ac8-b75f-551c0b9b87f7" chipset="kblgt2" name="L3_1" />
    <guid config_hash="2d0a88cdba58ddf18642fde563edb4d8" mdapi_config_hash="1a88f6816aea2c42dae9f10d4233cb74" id="6d344efd-8e9e-42d4-a29e-1011c29f82c2" chipset="kblgt2" name="L3_2" />
    <guid config_hash="d3972886309fa3701f3d3ae185f57cbe" mdapi_config_hash="ae28a594b1a6fd3864272da8dbe873f5" id="e3b386ae-c195-47d5-af29-8a1afa0ae2bf" chipset="kblgt2" name="L3_3" />
    <guid config_hash="90ecbd5ae5ae6d3c0f756c7411351c85" mdapi_config_hash="d1b2421e43a489ffcdfeeaf271b2f12f" id="f9954679-a055-4862-9f57-9d66e3ebf81c" chipset="kblgt2" name="RasterizerAndPixelBackend" />
    <guid config_hash="5a628cbf246226c19fed41479cf17de1" mdapi_config_hash="8d5f977be4f4d21e97e9e67786958495" id="4ed5e27e-fd1a-4f11-ad8f-9374e128c697" chipset="kblgt2" name="Sampler" />
    <guid config_hash="f48609e1a79093073b96726c3c4c63a6" mdapi_config_hash="cbef2ea0f1c6e30bd37cea22a87e8373" id="9eaf384d-8f53-41b8-a71d-108308780fbc" chipset="kblgt2" name="TDL_1" />
    <guid config_hash="93ab6cf80fefdfca540a3ac101925411" mdapi_config_hash="b685ab8fe6fc020e85f189f55fdf6e05" id="a00cbdf2-eabd-4240-9a89-86e2ac1ca1e4" chipset="kblgt2" name="TDL_2" />
    <guid config_hash="483a06910590c1753a0266ef8b9f9b70" mdapi_config_hash="4be337ed83e3c95aebf66553ed685602" id="aa7a3fb9-22fb-43ff-a32d-0ab6c13bbd16" chipset="kblgt2" name="ComputeExtra" />
    <guid config_hash="784698b7fb41dad7bc4bf13fac46657b" mdapi_config_hash="2fe32bdaf82fc66774ee95c33a23ea88" id="398a4268-ef6f-4ffc-b55f-3c7b5363ce61" chipset="kblgt2" name="VMEPipe" />
    <guid config_hash="cca1580576ffa8e25aa271ebdac68cc7" mdapi_config_hash="5f4afc2f159098e96b8fd90a85979ae3" id="baa3c7e4-52b6-4b85-801e-465a94b746dd" chipset="kblgt2" name="TestOa" />
    <guid config_hash="d36b63d76294172be0ad5e6530109d06" mdapi_config_hash="aa4c1ab961a066b0bc98bf914735b6af" id="6c66fe6e-2988-454a-bfae-7fca3bbcbec2" chipset="kblgt2" name="GpuBusyness" />
    <guid config_hash="8ae5bda74271c473f88f13e57d6f6828" mdapi_config_hash="4d9fb617c64406cc8b372808461dd3e3" id="b49aa434-4958-4d98-9e6f-443ff27ca74d" chipset="kblgt2" name="PMA_Stall" />
    <guid config_hash="73805d7acd1298aa6d81d3e2278ee411" mdapi_config_hash="9111e46468492c1c14a331510c18a49b" id="17b4f3e0-d578-4ae3-b7a8-98d756d1e0df" chipset="kblgt3" name="RenderBasic" />
    <guid config_hash="e337295245fb93eccf7b096f2728ca98" mdapi_config_hash="f56077c263fafefe554173ce024b2827" id="9823aaa1-b06f-40ce-884b-cd798c79f0c2" chipset="kblgt3" name="ComputeBasic" />
    <guid config_hash="01f86f590b9b0c0371b0075a5e73b902" mdapi_config_hash="808e46d786103380f58d1e8f91402c4c" id="c7c735f3-ce58-45cf-aa04-30b183f1faff" chipset="kblgt3" name="RenderPipeProfile" />
    <guid config_hash="0a75401250565ee5a0e555b47bc9e5b4" mdapi_config_hash="f810d7343822b3a3b9e50820708bfcb3" id="96ec2219-040b-428a-856a-6bc03363a057" chipset="kblgt3" name="MemoryReads" />
    <guid config_hash="2ed5869dae575556e0895b0d0081555c" mdapi_config_hash="af6cd36da93a8ec66d57ba6b504b601f" id="03372b64-4996-4d3b-aa18-790e75eeb9c2" chipset="kblgt3" name="MemoryWrites" />
    <guid config_hash="6566c55fdf1de8ae73008029a674ecc9" mdapi_config_hash="c4d070800ff5b65caff35d40adb52d04" id="31b4ce5a-bd61-4c1f-bb5d-f2e731412150" chipset="kblgt3" name="ComputeExtended" />
    <guid config_hash="33bdd2160049aa831e025e1be7a453c5" mdapi_config_hash="dcedeef0d1a6b20eaa3f3ee546b048ed" id="2ce0911a-27fc-4887-96f0-11084fa807c3" chipset="kblgt3" name="ComputeL3Cache" />
    <guid config_hash="c8739d6465605b9228ec2ff3ebde2ba3" mdapi_config_hash="3a893043b806be4b00179663f8f4695e" id="b128f45f-bfa2-4991-aadc-05be7898e398" chipset="kblgt3" name="HDCAndSF" />
    <guid config_hash="3ead5919c426a00ef6697e21df33ef07" mdapi_config_hash="b97b4654b688f69b1df22e7d9cd08f2b" id="f3566b55-9c13-47bf-8327-4a887af75262" chipset="kblgt3" name="L3_1" />
    <guid config_hash="2d0a88cdba58ddf18642fde563edb4d8" mdapi_config_hash="f8870bc48196bdc7c3d08bf0dba3e377" id="7b21aa68-9076-4ab4-8a84-e45a06c8eac6" chipset="kblgt3" name="L3_2" />
    <guid config_hash="d3972886309fa3701f3d3ae185f57cbe" mdapi_config_hash="2091a23cf2f835375430e16328f73c7b" id="71b4b9dd-ae28-48ce-9a1a-5431e1f23afd" chipset="kblgt3" name="L3_3" />
    <guid config_hash="90ecbd5ae5ae6d3c0f756c7411351c85" mdapi_config_hash="6c748481e5e43019bbeb0557c309b65e" id="52c646ca-52da-4853-877e-8645e73ed330" chipset="kblgt3" name="RasterizerAndPixelBackend" />
    <guid config_hash="5a628cbf246226c19fed41479cf17de1" mdapi_config_hash="c1ea12cf95f7c8be3ca32c6670c15a27" id="c4bb682f-677c-4875-990b-005230be87b4" chipset="kblgt3" name="Sampler" />
    <guid config_hash="f48609e1a79093073b96726c3c4c63a6" mdapi_config_hash="20f9812e7c1c94a2b24dbb6a0596b5e1" id="ade8521b-5e72-45d4-8c25-d9f0da774899" chipset="kblgt3" name="TDL_1" />
    <guid config_hash="93ab6cf80fefdfca540a3ac101925411" mdapi_config_hash="25e39a0a38a1fdbf4e2ff677aad30fc6" id="9df2815d-4e9e-417f-bde1-3788dc6e1ea1" chipset="kblgt3" name="TDL_2" />
    <guid config_hash="f543908db2541ef48f35603e35c379bd" mdapi_config_hash="41ebe4b58e504d63d60141faa9d45c18" id="efc497ac-884e-4ee4-a4a8-15fba22aaf21" chipset="kblgt3" name="ComputeExtra" />
    <guid config_hash="16c6718fd82aaa5e1187df8d88ace152" mdapi_config_hash="d0ce6de1ad831394a048015990e82864" id="bfd9764d-2c5b-4c16-bfc1-89de3ca10917" chipset="kblgt3" name="VMEPipe" />
    <guid config_hash="cca1580576ffa8e25aa271ebdac68cc7" mdapi_config_hash="817cb7526b5399e772ed721e062325b3" id="f1792f32-6db2-4b50-b4b2-557128f1688d" chipset="kblgt3" name="TestOa" />
    <guid config_hash="de8530fdc36d260415e78771e8cc6929" mdapi_config_hash="3f82064fe17d6d7005b6e5c4bb828c5a" id="b55ecba1-2aa9-422e-89ff-b9e30f03d447" chipset="kblgt3" name="GpuBusyness" />
    <guid config_hash="8ae5bda74271c473f88f13e57d6f6828" mdapi_config_hash="4d9fb617c64406cc8b372808461dd3e3" id="85bc2e4f-2563-4388-921b-dc0dad879cf3" chipset="kblgt3" name="PMA_Stall" />
    <guid config_hash="c01efa1ec2a11ea9aaab8b0a8e548174" mdapi_config_hash="7867725687bd177e4e8b8b8443b04355" id="d72df5c7-5b4a-4274-a43f-00b0fd51fc68" chipset="glk" name="RenderBasic" />
    <guid config_hash="cde046a01aba9c56d6fa44bf2c0f26c2" mdapi_config_hash="84d270fda538f1061067316b19b9cac9" id="814285f6-354d-41d2-ba49-e24e622714a0" chipset="glk" name="ComputeBasic" />
    <guid config_hash="1669463a6836f6d057cbf3e41506923b" mdapi_config_hash="66b8f785edc91d1cf3952fc842114671" id="07d397a6-b3e6-49f6-9433-a4f293d55978" chipset="glk" name="RenderPipeProfile" />
    <guid config_hash="f9eee3f0c9653ffd05e4876be0ea44d5" mdapi_config_hash="1056f30306a4c2d08d57e4faa86f983a" id="1a356946-5428-450b-a2f0-89f8783a302d" chipset="glk" name="MemoryReads" />
    <guid config_hash="03e840f1d8597b3c6c4015792243ce7d" mdapi_config_hash="3a432ab2a6296f25755c1846385fae55" id="5299be9d-7a61-4c99-9f81-f87e6c5aaca9" chipset="glk" name="MemoryWrites" />
    <guid config_hash="39a03c065f1fdb5bf680207dc520cdb2" mdapi_config_hash="ed01dd3479766a5fb38dd8e9e064786e" id="bc9bcff2-459a-4cbc-986d-a84b077153f3" chipset="glk" name="ComputeExtended" />
    <guid config_hash="c241c2999f487dc995cecdb35b01197b" mdapi_config_hash="3a74134eedb02e201197da17e0940351" id="88ec931f-5b4a-453a-9db6-a61232b6143d" chipset="glk" name="ComputeL3Cache" />
    <guid config_hash="37dc8ae76c2554b11ecea682f1349ece" mdapi_config_hash="fd61133e8762cb61d142a12604442177" id="0329ea02-ebb8-43f1-bf89-c5bdcccd3eb4" chipset="glk" name="HDCAndSF" />
    <guid config_hash="d159b7f14e97660ae2887e4b610d2721" mdapi_config_hash="fe48f1232b010e9d10ab1bff0e6efb75" id="5e57a25a-1d18-4e94-b84b-08ea66751b8c" chipset="glk" name="L3_1" />
    <guid config_hash="1dc29cbbceb8e2e1a78d679ead80a27b" mdapi_config_hash="2a635538209cc68b2c489d2326017539" id="f0652373-d361-426f-b36d-9ffec288bdc6" chipset="glk" name="RasterizerAndPixelBackend" />
    <guid config_hash="0b9e45ed32513193354be363e288b6a6" mdapi_config_hash="593e37453b96243ac7752d9c45672c63" id="6ac97d12-ce13-428a-b20c-6902bde2608b" chipset="glk" name="Sampler" />
    <guid config_hash="3f01b8d28fa285e7a496081574de4c1b" mdapi_config_hash="af87c7792e604a645dacdadb99c4afd2" id="59ea703a-9a35-4aed-a985-0d9ab7aceaba" chipset="glk" name="TDL_1" />
    <guid config_hash="0c77cba2d8886c18df9f382ce90eac66" mdapi_config_hash="2e2beadb54378ff4d79bf4cf15bffd90" id="f2d6d718-e7b1-48f4-9624-45230d2fe2a0" chipset="glk" name="TDL_2" />
    <guid config_hash="a19a55aad269ccc1ed4380314eda4bed" mdapi_config_hash="ac34c2028f3f4fae92e58aae1496901b" id="15274c82-27d2-4819-876a-7cb1a2c59ba4" chipset="glk" name="ComputeExtra" />
    <guid config_hash="e018d083414e4d28e0ed481554128883" mdapi_config_hash="dce59e977ffff25a57f2486f5d9a7c60" id="dd3fd789-e783-4204-8cd0-b671bbccb0cf" chipset="glk" name="TestOa" />
    <guid config_hash="6d13f443205926fd1351ae5adeae8965" mdapi_config_hash="24f384a77963d7d64c324b3d89eeb498" id="e6868953-fb47-431d-a060-f785916558fc" chipset="glk" name="PMA_Stall" />
    <guid config_hash="afbe2cb999a8303f52eea075f3b8687e" mdapi_config_hash="8e8f1f5eb1b0a95dada8e3ddd78f4dd8" id="7fa796a4-0c7a-4201-afc6-cff0b2f528a2" chipset="cflgt2" name="RenderBasic" />
    <guid config_hash="e337295245fb93eccf7b096f2728ca98" mdapi_config_hash="9d5a7e8dd6290726416c3b40bba653ff" id="dc8cf7ea-26b4-4478-ac93-dab174f92ac0" chipset="cflgt2" name="ComputeBasic" />
    <guid config_hash="01f86f590b9b0c0371b0075a5e73b902" mdapi_config_hash="f9a35b936db9a2f76b69d7b5bd5d10ec" id="2221e4d5-ed7b-445e-b2cc-3de1b97f4d42" chipset="cflgt2" name="RenderPipeProfile" />
    <guid config_hash="0a75401250565ee5a0e555b47bc9e5b4" mdapi_config_hash="8b1e5617e61646d7d7d0361107ec2b67" id="82096a90-e2fa-4f38-ac14-562b2496933a" chipset="cflgt2" name="MemoryReads" />
    <guid config_hash="2ed5869dae575556e0895b0d0081555c" mdapi_config_hash="2cd637a11aacc15af119c9dba70c5f1d" id="9f638880-02e9-4a8d-896a-7670a3bf0d35" chipset="cflgt2" name="MemoryWrites" />
    <guid config_hash="6566c55fdf1de8ae73008029a674ecc9" mdapi_config_hash="5311aa266d0d85e7b67695731408ec3e" id="8d4ad934-7c16-43d5-845a-51067a4c8e2f" chipset="cflgt2" name="ComputeExtended" />
    <guid config_hash="33bdd2160049aa831e025e1be7a453c5" mdapi_config_hash="019cd29f8fe235d7dca74e7860dafc08" id="4389cf07-1424-4963-b2d2-64fcec75406d" chipset="cflgt2" name="ComputeL3Cache" />
    <guid config_hash="5736948ed298fd6e8cc80222e1e03077" mdapi_config_hash="4118768c8cfd35668067034b646a99ea" id="ac544b3a-ff78-46ea-9808-ee6fef0978b4" chipset="cflgt2" name="HDCAndSF" />
    <guid config_hash="3ead5919c426a00ef6697e21df33ef07" mdapi_config_hash="fe8bb34c7f8bb873a55e7b7046ec4507" id="a35c5867-0ab8-4d45-8fc1-eb0906f0eff5" chipset="cflgt2" name="L3_1" />
    <guid config_hash="2d0a88cdba58ddf18642fde563edb4d8" mdapi_config_hash="d4b1fe90832f2ab808b5dc6d6f2de431" id="bb4bcce9-2cbb-4818-9e49-67ce2c99cd25" chipset="cflgt2" name="L3_2" />
    <guid config_hash="d3972886309fa3701f3d3ae185f57cbe" mdapi_config_hash="0a733ec395a9f95c9a4c7a53639352aa" id="9e1229f8-d87f-4f44-b067-3544e17195aa" chipset="cflgt2" name="L3_3" />
    <guid config_hash="90ecbd5ae5ae6d3c0f756c7411351c85" mdapi_config_hash="86e99a03089772a7bff973a24bbcb21f" id="3e91908a-1c70-4004-b2ab-a10ef14f24f9" chipset="cflgt2" name="RasterizerAndPixelBackend" />
    <guid config_hash="5a628cbf246226c19fed41479cf17de1" mdapi_config_hash="07cab9aa8c9c07b346ce2e8976ef87fa" id="9a6ba957-7955-4a09-a8ce-083030ba3c1f" chipset="cflgt2" name="Sampler" />
    <guid config_hash="f48609e1a79093073b96726c3c4c63a6" mdapi_config_hash="8e2985ac9a60942987f94a397bfeb2ff" id="c54e7ca3-c60c-4396-ac3d-f9899c9a6ee4" chipset="cflgt2" name="TDL_1" />
    <guid config_hash="93ab6cf80fefdfca540a3ac101925411" mdapi_config_hash="775f1d07ed4d225976adf356e8dc9df5" id="e438cd5d-1da7-46c6-9823-4780f370d11d" chipset="cflgt2" name="TDL_2" />
    <guid config_hash="483a06910590c1753a0266ef8b9f9b70" mdapi_config_hash="4be337ed83e3c95aebf66553ed685602" id="5f679fb0-909e-4c0e-b4b2-8e801f83e71b" chipset="cflgt2" name="ComputeExtra" />
    <guid config_hash="784698b7fb41dad7bc4bf13fac46657b" mdapi_config_hash="2fe32bdaf82fc66774ee95c33a23ea88" id="0d09ba9a-1d1c-457d-83e2-74ac448014d6" chipset="cflgt2" name="VMEPipe" />
    <guid config_hash="d36b63d76294172be0ad5e6530109d06" mdapi_config_hash="aa4c1ab961a066b0bc98bf914735b6af" id="e2f162ae-5732-4af0-8b11-69510f57094a" chipset="cflgt2" name="GpuBusyness" />
    <guid config_hash="cca1580576ffa8e25aa271ebdac68cc7" mdapi_config_hash="5f4afc2f159098e96b8fd90a85979ae3" id="74fb4902-d3d3-4237-9e90-cbdc68d0a446" chipset="cflgt2" name="TestOa" />
    <guid config_hash="8ae5bda74271c473f88f13e57d6f6828" mdapi_config_hash="4d9fb617c64406cc8b372808461dd3e3" id="5ccbf9fb-6bf2-456b-a749-bdff7b1aff13" chipset="cflgt2" name="PMA_Stall" />
    <guid config_hash="73805d7acd1298aa6d81d3e2278ee411" mdapi_config_hash="5d3d4bcf1e36569409cfd84a7e137ade" id="b316bcab-212f-4228-97de-af6b5a1a2ea1" chipset="cflgt3" name="RenderBasic" />
    <guid config_hash="e337295245fb93eccf7b096f2728ca98" mdapi_config_hash="0860a8d90a0aa24c5e766b1062dc9af6" id="607f9cc8-e026-4d5f-bfad-45c77eabc150" chipset="cflgt3" name="ComputeBasic" />
    <guid config_hash="01f86f590b9b0c0371b0075a5e73b902" mdapi_config_hash="498feca145a69e7fcec55b79d239d005" id="9875e050-b1bc-45e6-a6ab-665594601df9" chipset="cflgt3" name="RenderPipeProfile" />
    <guid config_hash="0a75401250565ee5a0e555b47bc9e5b4" mdapi_config_hash="610a6fcb593c50362beb8c0e2172685a" id="49c65f34-e625-4ca4-86b7-88693e624d4c" chipset="cflgt3" name="MemoryReads" />
    <guid config_hash="2ed5869dae575556e0895b0d0081555c" mdapi_config_hash="d3b21fcad90e080ef31d74b9ebd6f9ba" id="45c9e8ee-2998-4d83-88e8-9cb7e03287bf" chipset="cflgt3" name="MemoryWrites" />
    <guid config_hash="6566c55fdf1de8ae73008029a674ecc9" mdapi_config_hash="7c26cd39edceac6865beb355592d2bea" id="bac415ce-d7a2-4f8d-9b16-834deba7330e" chipset="cflgt3" name="ComputeExtended" />
    <guid config_hash="33bdd2160049aa831e025e1be7a453c5" mdapi_config_hash="1013698045cad3a9935f5cd76ceb8331" id="a8cfca44-0e74-4338-9e57-3daad98957dd" chipset="cflgt3" name="ComputeL3Cache" />
    <guid config_hash="c8739d6465605b9228ec2ff3ebde2ba3" mdapi_config_hash="6c4d2ca081899cddb7c730b7c9e11b35" id="c4bee67c-0de6-4bc2-9900-5388dcc8adca" chipset="cflgt3" name="HDCAndSF" />
    <guid config_hash="3ead5919c426a00ef6697e21df33ef07" mdapi_config_hash="74d87a1c8c2eb43fc0d481a88e635cc4" id="2f77a650-54a6-4777-98dc-e49000c13ceb" chipset="cflgt3" name="L3_1" />
    <guid config_hash="2d0a88cdba58ddf18642fde563edb4d8" mdapi_config_hash="e2ccd67d442ca19acc63a9b3556ce2cb" id="61cf6b31-9ddd-4deb-bae5-7339dd1f63b3" chipset="cflgt3" name="L3_2" />
    <guid config_hash="d3972886309fa3701f3d3ae185f57cbe" mdapi_config_hash="fda9efbaddee05cf0c58b0b5ba63267a" id="1421ea8b-a4c9-4383-922a-60ba96c42f24" chipset="cflgt3" name="L3_3" />
    <guid config_hash="90ecbd5ae5ae6d3c0f756c7411351c85" mdapi_config_hash="04d6c2564113599d8375138bcf87e0a5" id="6e1f0a90-c65f-4da9-86d0-c79b3c0063f6" chipset="cflgt3" name="RasterizerAndPixelBackend" />
    <guid config_hash="5a628cbf246226c19fed41479cf17de1" mdapi_config_hash="9aa750e153f190ac1aeb54a87f778c8f" id="7cb05eab-0857-4189-93bc-09326d298637" chipset="cflgt3" name="Sampler" />
    <guid config_hash="f48609e1a79093073b96726c3c4c63a6" mdapi_config_hash="88333263dd73a05cb7df643794d2eefa" id="05a06d02-0c12-486b-bb1d-9be053848980" chipset="cflgt3" name="TDL_1" />
    <guid config_hash="93ab6cf80fefdfca540a3ac101925411" mdapi_config_hash="6750a43049c53c8cb8f966764bf7cf8f" id="cddbd1dc-41a2-4fe4-8b05-3d2773120814" chipset="cflgt3" name="TDL_2" />
    <guid config_hash="f543908db2541ef48f35603e35c379bd" mdapi_config_hash="e3197d98aa86acaf090f1bffde854586" id="e61ae394-9d9e-4204-a735-1dad7e44d953" chipset="cflgt3" name="ComputeExtra" />
    <guid config_hash="16c6718fd82aaa5e1187df8d88ace152" mdapi_config_hash="d0ce6de1ad831394a048015990e82864" id="94272ad9-45ee-4e34-b7a7-51546cd6405c" chipset="cflgt3" name="VMEPipe" />
    <guid config_hash="de8530fdc36d260415e78771e8cc6929" mdapi_config_hash="3f82064fe17d6d7005b6e5c4bb828c5a" id="22b7e0c2-cade-425f-b099-34479768c72a" chipset="cflgt3" name="GpuBusyness" />
    <guid config_hash="cca1580576ffa8e25aa271ebdac68cc7" mdapi_config_hash="228710e94277d74bd4be0c2536a3edd4" id="577e8e2c-3fa0-4875-8743-3538d585e3b0" chipset="cflgt3" name="TestOa" />
    <guid config_hash="8ae5bda74271c473f88f13e57d6f6828" mdapi_config_hash="4d9fb617c64406cc8b372808461dd3e3" id="c11af8d1-858b-4f8b-98fb-8d683ba8bda0" chipset="cflgt3" name="PMA_Stall" />
    <guid config_hash="428ad0859c9dac4ba85dd73106f5b2de" mdapi_config_hash="7baf473e87d0838b628bd2ed289f4783" id="2d975e19-7130-41d2-b06f-79d74f91e7c8" chipset="cnl" name="RenderBasic" />
    <guid config_hash="7365cff2873ed22304dcb350ca19d834" mdapi_config_hash="174f9ff2125d06a7886a258304ba4eae" id="eed14f91-5f03-4e3a-8281-ac38030ac573" chipset="cnl" name="ComputeBasic" />
    <guid config_hash="1878c620a9f0cc5100fba47c83a1457c" mdapi_config_hash="f1baa55e099488db74fd02c9560df40b" id="0666ccac-f5aa-4dc2-aa12-c6e058f383f3" chipset="cnl" name="RenderPipeProfile" />
    <guid config_hash="10d83436d03f71bc19e6b83739072556" mdapi_config_hash="7f0796f55071a69b76c0a0615b2171e6" id="3500dcfd-837b-4ec8-b5cf-fe58b966263f" chipset="cnl" name="MemoryReads" />
    <guid config_hash="e1c4bd09bd777f97d6c6491bf921ec6b" mdapi_config_hash="92754b4c69ef3427efdee08033daf7e2" id="63d18ead-3cfc-4972-a640-5e98b688dfee" chipset="cnl" name="MemoryWrites" />
    <guid config_hash="01c5575fa201196b2a4b708001ef810f" mdapi_config_hash="f7fc9c2349a53c37bd020660a0990356" id="1b4d1280-6bbd-4d57-90c6-a03ed6059688" chipset="cnl" name="ComputeExtended" />
    <guid config_hash="21c0efc6587cd42844e23251b3712b72" mdapi_config_hash="c3d136f1cda81821d08595bc4c29973a" id="f3b31b5a-00b3-4fb4-81fd-6446e505534c" chipset="cnl" name="ComputeL3Cache" />
    <guid config_hash="0813a24fac91efc4f1dfb7dbb578f08d" mdapi_config_hash="417896f2fec55d50f844eb2344287731" id="890094c5-8615-4f69-a8b9-706c5bcbd713" chipset="cnl" name="HDCAndSF" />
    <guid config_hash="fb9e04dafcf3519c30c215cb2094a881" mdapi_config_hash="65bd9bbb664fd329464d18e07dd9ac47" id="e56f7dd7-ff55-4bae-89a1-a526a2e3b0d6" chipset="cnl" name="L3_1" />
    <guid config_hash="28ade5f07e44ef07814f7a307a06470c" mdapi_config_hash="24f525009f45d22253ff7c09951733c9" id="918834e2-a1a4-4d77-9f3a-0c229f8d803f" chipset="cnl" name="L3_2" />
    <guid config_hash="7f9fb1f70df8efb8cbd236ee8920c349" mdapi_config_hash="20e9d5975e60292c3aaecfc766d2d960" id="2e95713a-c6d8-47a9-9207-eba3e208be51" chipset="cnl" name="RasterizerAndPixelBackend" />
    <guid config_hash="c6bda99f4d7656d8b1b613c17c2d53da" mdapi_config_hash="2c48df889c497b3f97d5a350827d8f05" id="9bcf4ff2-c15f-4bea-8ec8-8db87791942e" chipset="cnl" name="Sampler" />
    <guid config_hash="4bfffb81b9376af931bad919fc66ef3f" mdapi_config_hash="33d7ba5d98519f3038ed07f273fe5f91" id="c46c7bb5-f26d-4634-b491-902394af85b1" chipset="cnl" name="TDL_1" />
    <guid config_hash="e5419b6c232500a6a824c2c58f3b7d32" mdapi_config_hash="b9a01044b9befe9fcf952f26ba4fcc4e" id="aa2d6ab4-99b3-42f8-94d6-4a9aa2baedaf" chipset="cnl" name="TDL_2" />
    <guid config_hash="ccb9fdae1fe1f44c4c32bdc69befc160" mdapi_config_hash="9cf34989f5e721e734d4edf26036c2c5" id="db41edd4-d8e7-4730-ad11-b9a2d6833503" chipset="cnl" name="TestOa" />
    <guid config_hash="eaaf4df3ac5e9b4fd52d980f0be72dbf" mdapi_config_hash="8ef6088f425f2a97b01bed560ad6e2b3" id="193093b2-da24-49bf-b407-442c213b71b4" chipset="icl" name="RenderBasic" />
    <guid config_hash="11c7fb86063dfdf42fb447e1ed4b448d" mdapi_config_hash="15a37c1a208ec5a9f3f66e5d6123bd60" id="5c99b520-174d-4e94-a95e-5392e9b2a944" chipset="icl" name="ComputeBasic" />
    <guid config_hash="3b6635eb3709f346076901ea88ec1f2b" mdapi_config_hash="402f156b276dfaaaf84eb09ec5347515" id="43eb7fc1-dc5e-45e2-a90a-0053f5397271" chipset="icl" name="ComputeExtended" />
    <guid config_hash="0e47ea7e90aac987097968a231d2dada" mdapi_config_hash="08ff26b1c2405cc1061e71940cf558b5" id="05d5e01f-0800-4975-b36b-7b169cad3fab" chipset="icl" name="ComputeL3Cache" />
    <guid config_hash="34c5bc89788487e6d32ea9894929b1ae" mdapi_config_hash="0b8dc07dcfe3a03bf65771ee8404fa10" id="03c7a167-2abc-4ba6-878a-f1d80082abca" chipset="icl" name="RenderPipeProfile" />
    <guid config_hash="dfb00108bfdc1c652f9550bf5ec9262f" mdapi_config_hash="9b4b61a06cf60de356d48995441e6724" id="c5cbc488-6569-41dd-9128-42bf6f0d317c" chipset="icl" name="HDCAndSF" />
    <guid config_hash="8818a97d48d99673e220075b0ba71eb3" mdapi_config_hash="d3e8cc994e923fc2f79f086273b62ece" id="0316ce4f-e03f-4738-8262-13528fce8eea" chipset="icl" name="RasterizerAndPixelBackend" />
    <guid config_hash="e1436790af3b1bbea5a0262704c213b1" mdapi_config_hash="7b7377687e294a3c2ee88e0715a65f01" id="21d69ec3-91e1-48a8-acd6-c0c4ec6e819a" chipset="icl" name="L3_1" />
    <guid config_hash="5ef586cc746e34ab542586805cb26c8e" mdapi_config_hash="06190180046d22f3155558f2211abc30" id="e60e9155-6830-4aec-baf2-1c3c15a73869" chipset="icl" name="L3_2" />
    <guid config_hash="abdae7b3820fd860c6fec7a98f9654bf" mdapi_config_hash="5cf54f89d0c9ebeeebc46bfde154fdf2" id="47c364d5-1799-4d17-9447-add9358c6451" chipset="icl" name="L3_3" />
    <guid config_hash="8b3ca983367a86a4dc4c80fe2a4cfbbb" mdapi_config_hash="397319e33a2d28c3602837be8737b559" id="e5ab5c08-3130-4469-8eaf-b23d3dc817d4" chipset="icl" name="L3_4" />
    <guid config_hash="c5b76b0b898d48bd6305b7208f338584" mdapi_config_hash="9870c08d2dbb2de9836e8effdc5074a8" id="6cdf23c1-f725-414c-959a-c90fa5571b1f" chipset="icl" name="L3_5" />
    <guid config_hash="667224b11f675b2ac565e18624fad738" mdapi_config_hash="e49091662060a5c502da58bd613abc7f" id="51a2eb6d-9fad-4489-8f22-ab845fe7882a" chipset="icl" name="Sampler_1" />
    <guid config_hash="e6910b0739c288d68194e64933845380" mdapi_config_hash="d55ee03d24efe992a4029534908c2550" id="afc0f021-8c33-4d60-803d-93487f96c7c1" chipset="icl" name="Sampler_2" />
    <guid config_hash="525a9fe5285599f695330c45ba2e8b62" mdapi_config_hash="6aa36798625267734b4d066d9090c0bd" id="eddc2f32-b196-4a72-9bf8-21770e35f8bd" chipset="icl" name="TDL_1" />
    <guid config_hash="b141825840f912e9d7c98a13ae34d600" mdapi_config_hash="af8ee9d86606564460ce2928023e47a5" id="c6d3af7b-037b-4656-95e1-4f838f0a2c14" chipset="icl" name="TDL_2" />
    <guid config_hash="d2188fa3c865ef430532b127a3fd87a5" mdapi_config_hash="ff33e47c767f6f81d9a779153aae6fdb" id="fd25ec19-3ed1-40c9-8648-1d2387449a92" chipset="icl" name="TDL_3" />
    <guid config_hash="b421b29d8557dbbf0fe3068c82b3d8dd" mdapi_config_hash="cc850ab4463c23e6017f069d67785c31" id="40dc79f2-88c8-47c6-8f86-f509e39fbe5d" chipset="icl" name="GpuBusyness" />
    <guid config_hash="7480125fc0806a347f975dc714568e92" mdapi_config_hash="c6b1c7a22e3c2f456cbfdae1bfe394ac" id="3c0bf614-5d67-4326-887f-a24eb8a58244" chipset="icl" name="TestOa" />
    <guid config_hash="a64c5a38ba7bb9eec5332f3d616d68bf" mdapi_config_hash="11a8cb1a931abb4d83d2cfc8065eac95" id="519a832e-a682-4ef6-a7ac-b12d68116fd7" chipset="tgl" name="RenderBasic" />
    <guid config_hash="81c21706a1628634edbed8a2d7d5c82f" mdapi_config_hash="94282b74b1429d9f2bb9cd5e178cc2fa" id="c46cfe86-469f-4499-8452-f44012b68dab" chipset="tgl" name="ComputeBasic" />
    <guid config_hash="87de7aad82eabfb9e8ca28470298c833" mdapi_config_hash="b340b1eac0b354f04e9767f14a42a6e6" id="77ae98cf-9a9e-4e35-be85-597b09ffbe53" chipset="tgl" name="RenderPipeProfile" />
    <guid config_hash="4bd795338e2cf42726894fedccdd223f" mdapi_config_hash="d6c3023d3da8fda32655bfa1fad4e514" id="dedd95cd-1bd4-4e65-be7f-1fd7aa43fe12" chipset="tgl" name="HDCAndSF" />
    <guid config_hash="36994d80bab156fab0dbe815184a7303" mdapi_config_hash="739afc9fff139a9b9c8a2d72297abb78" id="a889ccb3-5ebd-437f-b5c6-e951fba822f5" chipset="tgl" name="RasterizerAndPixelBackend" />
    <guid config_hash="54690c67418eb1b8fb23d9c6b47f07d2" mdapi_config_hash="745b6634b3b72399f738761f4565e924" id="feee2629-03a8-4d31-ab4d-7d16572163fb" chipset="tgl" name="L3_1" />
    <guid config_hash="13cfb577c221a881210d1f31600a2207" mdapi_config_hash="4b527bab2ce2a95aeeb7764f1d4abf23" id="5266f235-1711-4eef-9493-ebdf0238d512" chipset="tgl" name="L3_2" />
    <guid config_hash="6402b8deefae23be4db362c3fd853b89" mdapi_config_hash="b21101ed0007ddb167044b476654bd8f" id="9c2cd379-bf93-4ded-b481-f64efd534c4a" chipset="tgl" name="L3_3" />
    <guid config_hash="9f9021d53f1970e1c9f7e4ea1a8ba24d" mdapi_config_hash="71f1cc0729c56e695307c981f0f410a6" id="6a68185d-0056-4891-a5f6-29aa1e1d81ae" chipset="tgl" name="L3_4" />
    <guid config_hash="b23742dad95e7fc75edd65fa4dc367b7" mdapi_config_hash="7198d15717542985e3ba8308fa95b3a2" id="3f17a326-ae8b-4869-9f5a-3bccf793e287" chipset="tgl" name="L3_5" />
    <guid config_hash="6c0871403663ab1617a98afa14b01e42" mdapi_config_hash="0383f07caf50fd4f6818a2138f418409" id="d312c40a-9fb7-489a-9a1a-9cd80aac6d61" chipset="tgl" name="L3_6" />
    <guid config_hash="b1c971413433261918b4de26d99a4388" mdapi_config_hash="b6833e7b89fc08aa05b8e5c8d200071d" id="f0f255a4-535c-43ed-9d6b-85958cef6c1c" chipset="tgl" name="Sampler_1" />
    <guid config_hash="8f5e405d5ece3fbd0586a1ca279db170" mdapi_config_hash="44f2a86d917ab0a44332d027036d9c32" id="f47c6b97-fc10-4962-bb67-d623e9d6219b" chipset="tgl" name="Sampler_2" />
    <guid config_hash="185968c3897d41bcf4b84a5bf23187bb" mdapi_config_hash="64c55773613e6a431df5436de5ff8e8c" id="2e49d25e-93e8-4e2b-b91b-51731f5fb315" chipset="tgl" name="TDL_1" />
    <guid config_hash="8f99569076014439129d68470313013b" mdapi_config_hash="0ff455e43a1ef70d60afc871bd7a1293" id="2a42ff25-99b1-4048-a121-f0664ed42c90" chipset="tgl" name="TDL_2" />
    <guid config_hash="d1c4956992d95bf782ae915e306a5343" mdapi_config_hash="3ca22a297940fee9b8d8d78106a93003" id="b763fa13-834e-4468-bba6-5f0d40db9813" chipset="tgl" name="TDL_3" />
    <guid config_hash="e9992e7e1c679eec0ac61356a3905731" mdapi_config_hash="9328c3e2f515349dd60c6468bad254c7" id="cc935a3e-8d96-4b47-bc46-3d84247e9a3a" chipset="tgl" name="GpuBusyness" />
    <guid config_hash="09ab4edae45392490c625f2d80f24cd7" mdapi_config_hash="3f5aa997ec9df8552e585ccd7aed9b0c" id="80a833f0-2504-4321-8894-e9277844ce7b" chipset="tgl" name="TestOa" />
    <guid config_hash="25380f09a9ab454374c78f1b5d1c4ddf" mdapi_config_hash="4d28665f4702ddf38239e5c47384dc15" id="807f52f4-e457-4da4-b2b6-9a7b6dc2b1ed" chipset="lkf" name="RenderBasic" />
    <guid config_hash="bf521fa74e9f5285bc3e9a7215cdadd2" mdapi_config_hash="bf085a519814344b241b08064f256921" id="5706829a-b9f3-4d0f-aa88-420f452540bf" chipset="lkf" name="ComputeBasic" />
    <guid config_hash="9b6d58e5047c130f47999e04b92151e8" mdapi_config_hash="7bf6ffff6913e5536d4ad4dc4fa3b03b" id="2ab52087-3700-4db4-8dda-f73b77edfd93" chipset="lkf" name="ComputeExtended" />
    <guid config_hash="1819d0fc7e1274aaed4dc79670eb4d33" mdapi_config_hash="6ff2fcd2498448af0ed284e69be555a8" id="498aa71d-ae5c-4523-a246-33fb2769a386" chipset="lkf" name="ComputeL3Cache" />
    <guid config_hash="93df26813118e45063763661ffce6b77" mdapi_config_hash="d15e72e9d0ba0a4a94ed6985c86690ef" id="045dbb74-1e1a-499c-9a50-bac498e34699" chipset="lkf" name="RenderPipeProfile" />
    <guid config_hash="91cd4922309b1259d26360831c966532" mdapi_config_hash="bc3b779c816e5763231752dff01b698c" id="63af815c-30f9-4dd5-81fa-351ad6b69b4b" chipset="lkf" name="HDCAndSF" />
    <guid config_hash="8a7c6d0c784cc13fcb65d3baa8bb44e0" mdapi_config_hash="9aa273f8a120f0a31667c247704bbf6b" id="20df0e83-535f-457f-a08b-76aee88c1e0e" chipset="lkf" name="RasterizerAndPixelBackend" />
    <guid config_hash="9d588e74e635377125299c5f3aa5c7d6" mdapi_config_hash="ae9e960222e31c486205e0c0f0603138" id="c7d3dc5c-975d-4d3a-a4c8-86fb0085743b" chipset="lkf" name="L3_1" />
    <guid config_hash="3310298c4729cef20b0f20ddc8658a86" mdapi_config_hash="97d31df77e8723b93d1d215b5e596bd5" id="04003388-30ef-45d6-ae89-86f71ee596f4" chipset="lkf" name="L3_2" />
    <guid config_hash="5d08c5947d680f307e1a3956cf87b818" mdapi_config_hash="375da2b23bb646620d82fae96f76ceb2" id="12f706a4-3761-4448-83dc-63495da010ff" chipset="lkf" name="L3_3" />
    <guid config_hash="7ba4d260cd6343472d1e740970b0e7f3" mdapi_config_hash="78e18bf4b7860da80dbdffdef1a57d38" id="b03ae6f7-fdc0-4879-9e65-5b221ac9625f" chipset="lkf" name="L3_4" />
    <guid config_hash="3890a445c8e58c9d7cefd7c3dcdd07a3" mdapi_config_hash="fd720998c18a22560a36fbf0ebc7346c" id="cdec4315-3c8d-416f-b3ae-33f7590e1439" chipset="lkf" name="L3_5" />
    <guid config_hash="afa077ca791b2e4ee74ddfaf006d8fe2" mdapi_config_hash="f89f6cde18683374b31354a1a0eb6738" id="377c06c4-5f41-465a-bf2e-60d95200ba94" chipset="lkf" name="Sampler_1" />
    <guid config_hash="e14383b58aeecf5a983d6ec57e3b2558" mdapi_config_hash="d8162037057cd1550568345e71f20e72" id="58326100-b3e7-4554-b612-592e16dc6fd1" chipset="lkf" name="Sampler_2" />
    <guid config_hash="dd6e1a4c0aaaa84a36f83bb3772e26f6" mdapi_config_hash="7f0d9b461ff5b0fd927051c95b8f80b1" id="4c71735a-dfbf-4ebe-9df3-6c3db344a466" chipset="lkf" name="TDL_1" />
    <guid config_hash="39c75fae3e4bc24fce0759413caac64d" mdapi_config_hash="7d8add695c157a7908abfef46b767e28" id="80e75f86-f8bc-4903-bf0f-38fd26cca636" chipset="lkf" name="TDL_2" />
    <guid config_hash="79df0b5785c2464bedddf7c2ea34fae9" mdapi_config_hash="011bb38aa81c2e56de1e7cf9653a4047" id="9c517add-e263-4cbe-b7f8-9986f737e68a" chipset="lkf" name="TDL_3" />
    <guid config_hash="051a88dbb1037b1e96ab8742322d5195" mdapi_config_hash="8f1f14586a4a4cbd9603488b87f3a571" id="c3103887-8c7c-482a-b923-3d68dd340598" chipset="lkf" name="GpuBusyness" />
    <guid config_hash="2f735b47a388ee4876e999e2fe1fdaff" mdapi_config_hash="8d9471fa5f2e9d9ef3bb3be89fbc0372" id="82b6b321-f93e-445a-a285-f30391ef1dc5" chipset="lkf" name="TestOa" />
</guids>


================================================
FILE: data/oa-bdw.xml
================================================
<?xml version="1.0"?>
<metrics version="1562317147" merge_md5="">
  <set name="Render Metrics Basic Gen8"
       mdapi_supported_apis="OGL OCL IO BB"
       underscore_name="render_basic"
       hw_config_guid="b541bd57-0e0f-4154-b4c0-5858010a2bf7"
       chipset="BDW"
       symbol_name="RenderBasic"
       >
    <counter name="GPU Core Clocks"
             description="The total number of GPU core clocks elapsed during the measurement."
             data_type="uint64"
             equation="GPU_CLOCK 0 READ"
             underscore_name="gpu_core_clocks"
             units="cycles"
             symbol_name="GpuCoreClocks"
             semantic_type="event"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier1 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="GPU"
             />
    <counter name="EU Active"
             description="The percentage of time in which the Execution Units were actively processing."
             data_type="float"
             max_equation="100"
             equation="A 7 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="eu_active"
             units="percent"
             symbol_name="EuActive"
             semantic_type="duration"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
             mdapi_group="EU Array"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="L3 Misses"
             description="The total number of L3 misses."
             data_type="uint64"
             equation="C 4 READ"
             underscore_name="l3_misses"
             units="messages"
             symbol_name="L3Misses"
             semantic_type="event"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="L3/TAG"
             />
    <counter name="GTI L3 Throughput"
             description="The total number of GPU memory bytes transferred between L3 caches and GTI."
             data_type="uint64"
             max_equation="$GpuCoreClocks 64 UMUL $EuSlicesTotalCount UMUL"
             equation="$L3Misses 64 UMUL"
             underscore_name="gti_l3_throughput"
             units="bytes"
             symbol_name="GtiL3Throughput"
             semantic_type="throughput"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier2 Frame Batch Draw"
             mdapi_group="GTI/L3"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="EU Both FPU Pipes Active"
             description="The percentage of time in which both EU FPU pipelines were actively processing."
             data_type="float"
             max_equation="100"
             equation="A 9 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="eu_fpu_both_active"
             units="percent"
             symbol_name="EuFpuBothActive"
             semantic_type="duration"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
             mdapi_group="EU Array/Pipes"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="Sampler Cache Misses"
             description="The total number of sampler cache misses in all LODs in all sampler units."
             data_type="uint64"
             equation="B 4 READ B 5 READ UADD 8 UMUL"
             underscore_name="sampler_l1_misses"
             units="messages"
             symbol_name="SamplerL1Misses"
             semantic_type="event"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier3 Overview Batch Frame Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="Sampler/Sampler Cache"
             />
    <counter name="VS Send Pipe Active"
             description="The percentage of time in which EU send pipeline was actively processing a vertex shader instruction."
             data_type="float"
             max_equation="100"
             equation="A 12 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="vs_send_active"
             units="percent"
             symbol_name="VsSendActive"
             semantic_type="duration"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
             mdapi_group="EU Array/Vertex Shader"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="Sampler 1 Bottleneck"
             low_watermark="5"
             description="The percentage of time in which Sampler 1 has been slowing down the pipe when processing EU requests."
             data_type="float"
             high_watermark="15"
             equation="B 3 READ 100 UMUL $GpuCoreClocks FDIV"
             max_equation="100"
             underscore_name="sampler1_bottleneck"
             units="percent"
             symbol_name="Sampler1Bottleneck"
             availability="$SubsliceMask 0x12 AND"
             semantic_type="duration"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier3 Indicate Draw"
             mdapi_group="Sampler"
             mdapi_hw_unit_type="subslice"
             />
    <counter name="VS FPU1 Pipe Active"
             description="The percentage of time in which EU FPU1 pipeline was actively processing a vertex shader instruction."
             data_type="float"
             max_equation="100"
             equation="A 11 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="vs_fpu1_active"
             units="percent"
             symbol_name="VsFpu1Active"
             semantic_type="duration"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
             mdapi_group="EU Array/Vertex Shader"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="GS Threads Dispatched"
             description="The total number of geometry shader hardware threads dispatched."
             data_type="uint64"
             equation="A 5 READ"
             underscore_name="gs_threads"
             units="threads"
             symbol_name="GsThreads"
             semantic_type="event"
             mdapi_supported_apis="OGL4 IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="EU Array/Geometry Shader"
             />
    <counter name="L3 Sampler Throughput"
             description="The total number of GPU memory bytes transferred between samplers and L3 caches."
             data_type="uint64"
             max_equation="$GpuCoreClocks 64 UMUL $EuSubslicesTotalCount UMUL"
             equation="$SamplerL1Misses 64 UMUL"
             underscore_name="l3_sampler_throughput"
             units="bytes"
             symbol_name="L3SamplerThroughput"
             semantic_type="throughput"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier2 Frame Batch Draw"
             mdapi_group="L3/Sampler"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="Early Hi-Depth Test Fails"
             description="The total number of pixels dropped on early hierarchical depth test."
             data_type="uint64"
             equation="A 22 READ 4 UMUL"
             underscore_name="hi_depth_test_fails"
             units="pixels"
             symbol_name="HiDepthTestFails"
             semantic_type="event"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="3D Pipe/Rasterizer/Hi-Depth Test"
             />
    <counter name="FS Both FPU Active"
             description="The percentage of time in which fragment shaders were processed actively on the both FPUs."
             data_type="float"
             max_equation="100"
             equation="A 18 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="ps_eu_both_fpu_active"
             units="percent"
             symbol_name="PsEuBothFpuActive"
             semantic_type="duration"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier4 Frame Batch Draw"
             mdapi_group="3D Pipe/Fragment Shader"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="VS Threads Dispatched"
             description="The total number of vertex shader hardware threads dispatched."
             data_type="uint64"
             equation="A 1 READ"
             underscore_name="vs_threads"
             units="threads"
             symbol_name="VsThreads"
             semantic_type="event"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="EU Array/Vertex Shader"
             />
    <counter name="FS Threads Dispatched"
             description="The total number of fragment shader hardware threads dispatched."
             data_type="uint64"
             equation="A 6 READ"
             underscore_name="ps_threads"
             units="threads"
             symbol_name="PsThreads"
             semantic_type="event"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="EU Array/Fragment Shader"
             />
    <counter name="Sampler 0 Busy"
             description="The percentage of time in which Sampler 0 has been processing EU requests."
             data_type="float"
             max_equation="100"
             equation="B 0 READ 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="sampler0_busy"
             units="percent"
             symbol_name="Sampler0Busy"
             availability="$SubsliceMask 0x09 AND"
             semantic_type="duration"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier3 Batch Frame Draw"
             mdapi_group="Sampler"
             mdapi_hw_unit_type="subslice"
             />
    <counter name="Sampler 1 Busy"
             description="The percentage of time in which Sampler 1 has been processing EU requests."
             data_type="float"
             max_equation="100"
             equation="B 1 READ 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="sampler1_busy"
             units="percent"
             symbol_name="Sampler1Busy"
             availability="$SubsliceMask 0x12 AND"
             semantic_type="duration"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier3 Batch Frame Draw"
             mdapi_group="Sampler"
             mdapi_hw_unit_type="subslice"
             />
    <counter name="Samplers Busy"
             description="The percentage of time in which samplers have been processing EU requests."
             data_type="float"
             max_equation="100"
             equation="$Sampler0Busy $Sampler1Busy FMAX"
             underscore_name="samplers_busy"
             units="percent"
             symbol_name="SamplersBusy"
             semantic_type="duration"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
             mdapi_group="Sampler"
             mdapi_hw_unit_type="slice"
             />
    <counter name="GTI Fixed Pipe Throughput"
             description="The total number of GPU memory bytes transferred between 3D Pipeline (Command Dispatch, Input Assembly and Stream Output) and GTI."
             data_type="uint64"
             max_equation="$GpuCoreClocks 64 UMUL"
             equation="B 6 READ B 7 READ UADD 64 UMUL"
             underscore_name="gti_vf_throughput"
             units="bytes"
             symbol_name="GtiVfThroughput"
             semantic_type="throughput"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier2 Frame Batch Draw"
             mdapi_group="GTI/3D Pipe"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="Shader Barrier Messages"
             description="The total number of shader barrier messages."
             data_type="uint64"
             equation="A 35 READ"
             underscore_name="shader_barriers"
             units="messages"
             symbol_name="ShaderBarriers"
             semantic_type="event"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="EU Array/Barrier"
             />
    <counter name="Sampler 0 Bottleneck"
             low_watermark="5"
             description="The percentage of time in which Sampler 0 has been slowing down the pipe when processing EU requests."
             data_type="float"
             high_watermark="15"
             equation="B 2 READ 100 UMUL $GpuCoreClocks FDIV"
             max_equation="100"
             underscore_name="sampler0_bottleneck"
             units="percent"
             symbol_name="Sampler0Bottleneck"
             availability="$SubsliceMask 0x09 AND"
             semantic_type="duration"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier3 Indicate Draw"
             mdapi_group="Sampler"
             mdapi_hw_unit_type="subslice"
             />
    <counter name="Sampler Texels"
             description="The total number of texels seen on input (with 2x2 accuracy) in all sampler units."
             data_type="uint64"
             equation="A 28 READ 4 UMUL"
             underscore_name="sampler_texels"
             units="texels"
             symbol_name="SamplerTexels"
             semantic_type="event"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier3 Overview Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="Sampler/Sampler Input"
             />
    <counter name="Pixels Failing Tests"
             description="The total number of pixels dropped on post-FS alpha, stencil, or depth tests."
             data_type="uint64"
             equation="A 25 READ 4 UMUL"
             underscore_name="pixels_failing_post_ps_tests"
             units="pixels"
             symbol_name="PixelsFailingPostPsTests"
             semantic_type="event"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="3D Pipe/Output Merger"
             />
    <counter name="GPU Time Elapsed"
             description="Time elapsed on the GPU during the measurement."
             data_type="uint64"
             equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
             underscore_name="gpu_time"
             units="ns"
             symbol_name="GpuTime"
             semantic_type="duration"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="GPU"
             />
    <counter name="AVG GPU Core Frequency"
             description="Average GPU Core Frequency in the measurement."
             data_type="uint64"
             max_equation="$GpuMaxFrequency"
             equation="$GpuCoreClocks 1000000000 UMUL $GpuTime UDIV"
             underscore_name="avg_gpu_core_frequency"
             units="hz"
             symbol_name="AvgGpuCoreFrequency"
             semantic_type="event"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
             mdapi_group="GPU"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="Sampler Texels Misses"
             description="The total number of texels lookups (with 2x2 accuracy) that missed L1 sampler cache."
             data_type="uint64"
             equation="A 29 READ 4 UMUL"
             underscore_name="sampler_texel_misses"
             units="texels"
             symbol_name="SamplerTexelMisses"
             semantic_type="event"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier3 Batch Frame Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="Sampler/Sampler Cache"
             />
    <counter name="CS Threads Dispatched"
             description="The total number of compute shader hardware threads dispatched."
             data_type="uint64"
             equation="A 4 READ"
             underscore_name="cs_threads"
             units="threads"
             symbol_name="CsThreads"
             semantic_type="event"
             mdapi_supported_apis="OGL4 OCL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="EU Array/Compute Shader"
             />
    <counter name="Shader Memory Accesses"
             description="The total number of shader memory accesses to L3."
             data_type="uint64"
             equation="A 32 READ"
             underscore_name="shader_memory_accesses"
             units="messages"
             symbol_name="ShaderMemoryAccesses"
             semantic_type="event"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="L3/Data Port"
             />
    <counter name="L3 Lookup Accesses w/o IC"
             description="The total number of L3 cache lookup accesses w/o IC."
             data_type="uint64"
             equation="$SamplerL1Misses $ShaderMemoryAccesses UADD"
             underscore_name="l3_lookups"
             units="messages"
             symbol_name="L3Lookups"
             semantic_type="event"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="L3/TAG"
             />
    <counter name="SLM Bytes Read"
             description="The total number of GPU memory bytes read from shared local memory."
             data_type="uint64"
             max_equation="$GpuCoreClocks 64 UMUL $EuSubslicesTotalCount UMUL"
             equation="A 30 READ 64 UMUL"
             underscore_name="slm_bytes_read"
             units="bytes"
             symbol_name="SlmBytesRead"
             semantic_type="throughput"
             mdapi_supported_apis="OGL4 OCL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_group="L3/Data Port/SLM"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="GTI Read Throughput"
             description="The total number of GPU memory bytes read from GTI."
             data_type="uint64"
             max_equation="$GpuCoreClocks 64 UMUL"
             equation="C 6 READ 64 UMUL"
             underscore_name="gti_read_throughput"
             units="bytes"
             symbol_name="GtiReadThroughput"
             semantic_type="throughput"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
             mdapi_group="GTI"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="PS FPU1 Pipe Active"
             description="The percentage of time in which EU FPU1 pipeline was actively processing a pixel shader instruction."
             data_type="float"
             max_equation="100"
             equation="A 16 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="ps_fpu1_active"
             units="percent"
             symbol_name="PsFpu1Active"
             semantic_type="duration"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
             mdapi_group="EU Array/Pixel Shader"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="PS Send Pipeline Active"
             description="The percentage of time in which EU send pipeline was actively processing a pixel shader instruction."
             data_type="float"
             max_equation="100"
             equation="A 17 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="ps_send_active"
             units="percent"
             symbol_name="PsSendActive"
             semantic_type="duration"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
             mdapi_group="EU Array/Pixel Shader"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="Rasterized Pixels"
             description="The total number of rasterized pixels."
             data_type="uint64"
             equation="A 21 READ 4 UMUL"
             underscore_name="rasterized_pixels"
             units="pixels"
             symbol_name="RasterizedPixels"
             semantic_type="event"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="3D Pipe/Rasterizer"
             />
    <counter name="GPU Busy"
             description="The percentage of time in which the GPU has been processing GPU commands."
             data_type="float"
             max_equation="100"
             equation="A 0 READ 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="gpu_busy"
             units="percent"
             symbol_name="GpuBusy"
             semantic_type="duration"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier1 Overview System Frame"
             mdapi_group="GPU"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="GTI Depth Throughput"
             description="The total number of GPU memory bytes transferred between depth caches and GTI."
             data_type="uint64"
             max_equation="$GpuCoreClocks 64 UMUL $EuSlicesTotalCount UMUL"
             equation="C 0 READ C 1 READ UADD 64 UMUL"
             underscore_name="gti_depth_throughput"
             units="bytes"
             symbol_name="GtiDepthThroughput"
             semantic_type="throughput"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier2 Frame Batch Draw"
             mdapi_group="GTI/Depth Cache"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="VS FPU0 Pipe Active"
             description="The percentage of time in which EU FPU0 pipeline was actively processing a vertex shader instruction."
             data_type="float"
             max_equation="100"
             equation="A 10 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="vs_fpu0_active"
             units="percent"
             symbol_name="VsFpu0Active"
             semantic_type="duration"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
             mdapi_group="EU Array/Vertex Shader"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="PS FPU0 Pipe Active"
             description="The percentage of time in which EU FPU0 pipeline was actively processing a pixel shader instruction."
             data_type="float"
             max_equation="100"
             equation="A 15 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="ps_fpu0_active"
             units="percent"
             symbol_name="PsFpu0Active"
             semantic_type="duration"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
             mdapi_group="EU Array/Pixel Shader"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="DS Threads Dispatched"
             description="The total number of domain shader hardware threads dispatched."
             data_type="uint64"
             equation="A 3 READ"
             underscore_name="ds_threads"
             units="threads"
             symbol_name="DsThreads"
             semantic_type="event"
             mdapi_supported_apis="OGL4 IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="EU Array/Domain Shader"
             />
    <counter name="Samples Written"
             description="The total number of samples or pixels written to all render targets."
             data_type="uint64"
             equation="A 26 READ 4 UMUL"
             underscore_name="samples_written"
             units="pixels"
             symbol_name="SamplesWritten"
             semantic_type="event"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Overview Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="3D Pipe/Output Merger"
             />
    <counter name="EU Stall"
             description="The percentage of time in which the Execution Units were stalled."
             data_type="float"
             max_equation="100"
             equation="A 8 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="eu_stall"
             units="percent"
             symbol_name="EuStall"
             semantic_type="duration"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
             mdapi_group="EU Array"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="Samples Blended"
             description="The total number of blended samples or pixels written to all render targets."
             data_type="uint64"
             equation="A 27 READ 4 UMUL"
             underscore_name="samples_blended"
             units="pixels"
             symbol_name="SamplesBlended"
             semantic_type="event"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Overview Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="3D Pipe/Output Merger"
             />
    <counter name="Early Depth Test Fails"
             description="The total number of pixels dropped on early depth test."
             data_type="uint64"
             equation="A 23 READ 4 UMUL"
             underscore_name="early_depth_test_fails"
             units="pixels"
             symbol_name="EarlyDepthTestFails"
             semantic_type="event"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="3D Pipe/Rasterizer/Early Depth Test"
             />
    <counter name="Samplers Bottleneck"
             low_watermark="5"
             description="The percentage of time in which samplers have been slowing down the pipe when processing EU requests."
             data_type="float"
             high_watermark="15"
             equation="$Sampler0Bottleneck $Sampler1Bottleneck FMAX"
             max_equation="100"
             underscore_name="sampler_bottleneck"
             units="percent"
             symbol_name="SamplerBottleneck"
             semantic_type="duration"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier3 Overview Indicate System Frame Batch Draw"
             mdapi_group="Sampler"
             mdapi_hw_unit_type="slice"
             />
    <counter name="GTI HDC TLB Lookup Throughput"
             description="The total number of GPU memory bytes transferred between GTI and HDC, when HDC is doing TLB lookups."
             data_type="uint64"
             max_equation="$GpuCoreClocks 64 UMUL $EuSlicesTotalCount UMUL"
             equation="C 5 READ 64 UMUL"
             underscore_name="gti_hdc_lookups_throughput"
             units="bytes"
             symbol_name="GtiHdcLookupsThroughput"
             semantic_type="throughput"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier2 Frame Batch Draw"
             mdapi_group="GTI/L3"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="GTI RCC Throughput"
             description="The total number of GPU memory bytes transferred between render color caches and GTI."
             data_type="uint64"
             max_equation="$GpuCoreClocks 64 UMUL $EuSlicesTotalCount UMUL"
             equation="C 2 READ C 3 READ UADD 64 UMUL"
             underscore_name="gti_rcc_throughput"
             units="bytes"
             symbol_name="GtiRccThroughput"
             semantic_type="throughput"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier2 Frame Batch Draw"
             mdapi_group="GTI/Color Cache"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="HS Threads Dispatched"
             description="The total number of hull shader hardware threads dispatched."
             data_type="uint64"
             equation="A 2 READ"
             underscore_name="hs_threads"
             units="threads"
             symbol_name="HsThreads"
             semantic_type="event"
             mdapi_supported_apis="OGL4 IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="EU Array/Hull Shader"
             />
    <counter name="GTI Write Throughput"
             description="The total number of GPU memory bytes written to GTI."
             data_type="uint64"
             max_equation="$GpuCoreClocks 32 UMUL"
             equation="C 7 READ 64 UMUL"
             underscore_name="gti_write_throughput"
             units="bytes"
             symbol_name="GtiWriteThroughput"
             semantic_type="throughput"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
             mdapi_group="GTI"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="SLM Bytes Written"
             description="The total number of GPU memory bytes written into shared local memory."
             data_type="uint64"
             max_equation="$GpuCoreClocks 64 UMUL $EuSubslicesTotalCount UMUL"
             equation="A 31 READ 64 UMUL"
             underscore_name="slm_bytes_written"
             units="bytes"
             symbol_name="SlmBytesWritten"
             semantic_type="throughput"
             mdapi_supported_apis="OGL4 OCL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_group="L3/Data Port/SLM"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="L3 Shader Throughput"
             description="The total number of GPU memory bytes transferred between shaders and L3 caches w/o URB."
             data_type="uint64"
             max_equation="$GpuCoreClocks 64 UMUL 2 UMUL $EuSubslicesTotalCount UMUL"
             equation="A 30 READ  A 31 READ $ShaderMemoryAccesses UADD UADD 64 UMUL"
             underscore_name="l3_shader_throughput"
             units="bytes"
             symbol_name="L3ShaderThroughput"
             semantic_type="throughput"
             mdapi_supported_apis="OGL4 OCL IO BB"
             mdapi_usage_flags="Tier2 Frame Batch Draw"
             mdapi_group="L3/Data Port"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="Samples Killed in FS"
             description="The total number of samples or pixels dropped in fragment shaders."
             data_type="uint64"
             equation="A 24 READ 4 UMUL"
             underscore_name="samples_killed_in_ps"
             units="pixels"
             symbol_name="SamplesKilledInPs"
             semantic_type="event"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier4 Overview Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="3D Pipe/Fragment Shader"
             />
    <counter name="Shader Atomic Memory Accesses"
             description="The total number of shader atomic memory accesses."
             data_type="uint64"
             equation="A 34 READ"
             underscore_name="shader_atomics"
             units="messages"
             symbol_name="ShaderAtomics"
             semantic_type="event"
             mdapi_supported_apis="OGL4 OCL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="L3/Data Port/Atomics"
             />
    <register_config type="NOA"
                     availability="$SliceMask 0x01 AND"
                     priority="0"
                     >
        <register type="NOA" address="0x00009840" value="0x000000A0" />
        <register type="NOA" address="0x00009888" value="0x143F000F" />
        <register type="NOA" address="0x00009888" value="0x14110014" />
        <register type="NOA" address="0x00009888" value="0x14310014" />
        <register type="NOA" address="0x00009888" value="0x14BF000F" />
        <register type="NOA" address="0x00009888" value="0x118A0317" />
        <register type="NOA" address="0x00009888" value="0x13837BE0" />
        <register type="NOA" address="0x00009888" value="0x3B800060" />
        <register type="NOA" address="0x00009888" value="0x3D800005" />
        <register type="NOA" address="0x00009888" value="0x005C4000" />
        <register type="NOA" address="0x00009888" value="0x065C8000" />
        <register type="NOA" address="0x00009888" value="0x085CC000" />
        <register type="NOA" address="0x00009888" value="0x003D8000" />
        <register type="NOA" address="0x00009888" value="0x183D0800" />
        <register type="NOA" address="0x00009888" value="0x0A3F0023" />
        <register type="NOA" address="0x00009888" value="0x103F0000" />
        <register type="NOA" address="0x00009888" value="0x00584000" />
        <register type="NOA" address="0x00009888" value="0x08584000" />
        <register type="NOA" address="0x00009888" value="0x0A5A4000" />
        <register type="NOA" address="0x00009888" value="0x005B4000" />
        <register type="NOA" address="0x00009888" value="0x0E5B8000" />
        <register type="NOA" address="0x00009888" value="0x185B2400" />
        <register type="NOA" address="0x00009888" value="0x0A1D4000" />
        <register type="NOA" address="0x00009888" value="0x0C1F0800" />
        <register type="NOA" address="0x00009888" value="0x0E1FAA00" />
        <register type="NOA" address="0x00009888" value="0x00384000" />
        <register type="NOA" address="0x00009888" value="0x0E384000" />
        <register type="NOA" address="0x00009888" value="0x16384000" />
        <register type="NOA" address="0x00009888" value="0x18380001" />
        <register type="NOA" address="0x00009888" value="0x00392000" />
        <register type="NOA" address="0x00009888" value="0x06398000" />
        <register type="NOA" address="0x00009888" value="0x0839A000" />
        <register type="NOA" address="0x00009888" value="0x0A391000" />
        <register type="NOA" address="0x00009888" value="0x00104000" />
        <register type="NOA" address="0x00009888" value="0x08104000" />
        <register type="NOA" address="0x00009888" value="0x00110030" />
        <register type="NOA" address="0x00009888" value="0x08110031" />
        <register type="NOA" address="0x00009888" value="0x10110000" />
        <register type="NOA" address="0x00009888" value="0x00134000" />
        <register type="NOA" address="0x00009888" value="0x16130020" />
        <register type="NOA" address="0x00009888" value="0x06308000" />
        <register type="NOA" address="0x00009888" value="0x08308000" />
        <register type="NOA" address="0x00009888" value="0x06311800" />
        <register type="NOA" address="0x00009888" value="0x08311880" />
        <register type="NOA" address="0x00009888" value="0x10310000" />
        <register type="NOA" address="0x00009888" value="0x0E334000" />
        <register type="NOA" address="0x00009888" value="0x16330080" />
        <register type="NOA" address="0x00009888" value="0x0ABF1180" />
        <register type="NOA" address="0x00009888" value="0x10BF0000" />
        <register type="NOA" address="0x00009888" value="0x0ADA8000" />
        <register type="NOA" address="0x00009888" value="0x0A9D8000" />
        <register type="NOA" address="0x00009888" value="0x109F0002" />
        <register type="NOA" address="0x00009888" value="0x0AB94000" />
        <register type="NOA" address="0x00009888" value="0x0D888000" />
        <register type="NOA" address="0x00009888" value="0x038A0380" />
        <register type="NOA" address="0x00009888" value="0x058A000E" />
        <register type="NOA" address="0x00009888" value="0x018A8000" />
        <register type="NOA" address="0x00009888" value="0x0F8A8000" />
        <register type="NOA" address="0x00009888" value="0x198A8000" />
        <register type="NOA" address="0x00009888" value="0x1B8A00A0" />
        <register type="NOA" address="0x00009888" value="0x078A0000" />
        <register type="NOA" address="0x00009888" value="0x098A0000" />
        <register type="NOA" address="0x00009888" value="0x238B2820" />
        <register type="NOA" address="0x00009888" value="0x258B2550" />
        <register type="NOA" address="0x00009888" value="0x198C1000" />
        <register type="NOA" address="0x00009888" value="0x0B8D8000" />
        <register type="NOA" address="0x00009888" value="0x1F85AA80" />
        <register type="NOA" address="0x00009888" value="0x2185AAA0" />
        <register type="NOA" address="0x00009888" value="0x2385002A" />
        <register type="NOA" address="0x00009888" value="0x0D831021" />
        <register type="NOA" address="0x00009888" value="0x0F83572F" />
        <register type="NOA" address="0x00009888" value="0x01835680" />
        <register type="NOA" address="0x00009888" value="0x0383002C" />
        <register type="NOA" address="0x00009888" value="0x11830000" />
        <register type="NOA" address="0x00009888" value="0x19835400" />
        <register type="NOA" address="0x00009888" value="0x1B830001" />
        <register type="NOA" address="0x00009888" value="0x05830000" />
        <register type="NOA" address="0x00009888" value="0x07834000" />
        <register type="NOA" address="0x00009888" value="0x09834000" />
        <register type="NOA" address="0x00009888" value="0x0184C000" />
        <register type="NOA" address="0x00009888" value="0x07848000" />
        <register type="NOA" address="0x00009888" value="0x0984C000" />
        <register type="NOA" address="0x00009888" value="0x0B84C000" />
        <register type="NOA" address="0x00009888" value="0x0D84C000" />
        <register type="NOA" address="0x00009888" value="0x0F84C000" />
        <register type="NOA" address="0x00009888" value="0x0384C000" />
        <register type="NOA" address="0x00009888" value="0x05844000" />
        <register type="NOA" address="0x00009888" value="0x1B80C137" />
        <register type="NOA" address="0x00009888" value="0x1D80C147" />
        <register type="NOA" address="0x00009888" value="0x21800000" />
        <register type="NOA" address="0x00009888" value="0x1180C000" />
        <register type="NOA" address="0x00009888" value="0x17808000" />
        <register type="NOA" address="0x00009888" value="0x1980C000" />
        <register type="NOA" address="0x00009888" value="0x1F80C000" />
        <register type="NOA" address="0x00009888" value="0x1380C000" />
        <register type="NOA" address="0x00009888" value="0x15804000" />
        <register type="NOA" address="0x00009888" value="0x4D801110" />
        <register type="NOA" address="0x00009888" value="0x4F800331" />
        <register type="NOA" address="0x00009888" value="0x43800802" />
        <register type="NOA" address="0x00009888" value="0x51800000" />
        <register type="NOA" address="0x00009888" value="0x45801465" />
        <register type="NOA" address="0x00009888" value="0x53801111" />
        <register type="NOA" address="0x00009888" value="0x478014A5" />
        <register type="NOA" address="0x00009888" value="0x31800000" />
        <register type="NOA" address="0x00009888" value="0x3F800CA5" />
        <register type="NOA" address="0x00009888" value="0x41800003" />
        <register type="NOA" address="0x00009840" value="0x00000080" />
    </register_config>
    <register_config type="NOA"
                     availability="$SliceMask 0x02 AND"
                     priority="1"
                     >
        <register type="NOA" address="0x00009840" value="0x000000A0" />
        <register type="NOA" address="0x00009888" value="0x143F000F" />
        <register type="NOA" address="0x00009888" value="0x14BF000F" />
        <register type="NOA" address="0x00009888" value="0x14910014" />
        <register type="NOA" address="0x00009888" value="0x14B10014" />
        <register type="NOA" address="0x00009888" value="0x118A0317" />
        <register type="NOA" address="0x00009888" value="0x13837BE0" />
        <register type="NOA" address="0x00009888" value="0x3B800060" />
        <register type="NOA" address="0x00009888" value="0x3D800005" />
        <register type="NOA" address="0x00009888" value="0x0A3F0023" />
        <register type="NOA" address="0x00009888" value="0x103F0000" />
        <register type="NOA" address="0x00009888" value="0x0A5A4000" />
        <register type="NOA" address="0x00009888" value="0x0A1D4000" />
        <register type="NOA" address="0x00009888" value="0x0E1F8000" />
        <register type="NOA" address="0x00009888" value="0x0A391000" />
        <register type="NOA" address="0x00009888" value="0x00DC4000" />
        <register type="NOA" address="0x00009888" value="0x06DC8000" />
        <register type="NOA" address="0x00009888" value="0x08DCC000" />
        <register type="NOA" address="0x00009888" value="0x00BD8000" />
        <register type="NOA" address="0x00009888" value="0x18BD0800" />
        <register type="NOA" address="0x00009888" value="0x0ABF1180" />
        <register type="NOA" address="0x00009888" value="0x10BF0000" />
        <register type="NOA" address="0x00009888" value="0x00D84000" />
        <register type="NOA" address="0x00009888" value="0x08D84000" />
        <register type="NOA" address="0x00009888" value="0x0ADA8000" />
        <register type="NOA" address="0x00009888" value="0x00DB4000" />
        <register type="NOA" address="0x00009888" value="0x0EDB8000" />
        <register type="NOA" address="0x00009888" value="0x18DB2400" />
        <register type="NOA" address="0x00009888" value="0x0A9D8000" />
        <register type="NOA" address="0x00009888" value="0x0C9F0800" />
        <register type="NOA" address="0x00009888" value="0x0E9F2A00" />
        <register type="NOA" address="0x00009888" value="0x109F0002" />
        <register type="NOA" address="0x00009888" value="0x00B84000" />
        <register type="NOA" address="0x00009888" value="0x0EB84000" />
        <register type="NOA" address="0x00009888" value="0x16B84000" />
        <register type="NOA" address="0x00009888" value="0x18B80001" />
        <register type="NOA" address="0x00009888" value="0x00B92000" />
        <register type="NOA" address="0x00009888" value="0x06B98000" />
        <register type="NOA" address="0x00009888" value="0x08B9A000" />
        <register type="NOA" address="0x00009888" value="0x0AB94000" />
        <register type="NOA" address="0x00009888" value="0x00904000" />
        <register type="NOA" address="0x00009888" value="0x08904000" />
        <register type="NOA" address="0x00009888" value="0x00910030" />
        <register type="NOA" address="0x00009888" value="0x08910031" />
        <register type="NOA" address="0x00009888" value="0x10910000" />
        <register type="NOA" address="0x00009888" value="0x00934000" />
        <register type="NOA" address="0x00009888" value="0x16930020" />
        <register type="NOA" address="0x00009888" value="0x06B08000" />
        <register type="NOA" address="0x00009888" value="0x08B08000" />
        <register type="NOA" address="0x00009888" value="0x06B11800" />
        <register type="NOA" address="0x00009888" value="0x08B11880" />
        <register type="NOA" address="0x00009888" value="0x10B10000" />
        <register type="NOA" address="0x00009888" value="0x0EB34000" />
        <register type="NOA" address="0x00009888" value="0x16B30080" />
        <register type="NOA" address="0x00009888" value="0x01888000" />
        <register type="NOA" address="0x00009888" value="0x0D88B800" />
        <register type="NOA" address="0x00009888" value="0x038A0380" />
        <register type="NOA" address="0x00009888" value="0x058A000E" />
        <register type="NOA" address="0x00009888" value="0x1B8A0080" />
        <register type="NOA" address="0x00009888" value="0x078A0000" />
        <register type="NOA" address="0x00009888" value="0x098A0000" />
        <register type="NOA" address="0x00009888" value="0x238B2840" />
        <register type="NOA" address="0x00009888" value="0x258B26A0" />
        <register type="NOA" address="0x00009888" value="0x018C4000" />
        <register type="NOA" address="0x00009888" value="0x0F8C4000" />
        <register type="NOA" address="0x00009888" value="0x178C2000" />
        <register type="NOA" address="0x00009888" value="0x198C1100" />
        <register type="NOA" address="0x00009888" value="0x018D2000" />
        <register type="NOA" address="0x00009888" value="0x078D8000" />
        <register type="NOA" address="0x00009888" value="0x098DA000" />
        <register type="NOA" address="0x00009888" value="0x0B8D8000" />
        <register type="NOA" address="0x00009888" value="0x1F85AA80" />
        <register type="NOA" address="0x00009888" value="0x2185AAA0" />
        <register type="NOA" address="0x00009888" value="0x2385002A" />
        <register type="NOA" address="0x00009888" value="0x0D831021" />
        <register type="NOA" address="0x00009888" value="0x0F83572F" />
        <register type="NOA" address="0x00009888" value="0x01835680" />
        <register type="NOA" address="0x00009888" value="0x0383002C" />
        <register type="NOA" address="0x00009888" value="0x11830000" />
        <register type="NOA" address="0x00009888" value="0x19835400" />
        <register type="NOA" address="0x00009888" value="0x1B830001" />
        <register type="NOA" address="0x00009888" value="0x05830000" />
        <register type="NOA" address="0x00009888" value="0x07834000" />
        <register type="NOA" address="0x00009888" value="0x09834000" />
        <register type="NOA" address="0x00009888" value="0x0184C000" />
        <register type="NOA" address="0x00009888" value="0x07848000" />
        <register type="NOA" address="0x00009888" value="0x0984C000" />
        <register type="NOA" address="0x00009888" value="0x0B84C000" />
        <register type="NOA" address="0x00009888" value="0x0D84C000" />
        <register type="NOA" address="0x00009888" value="0x0F84C000" />
        <register type="NOA" address="0x00009888" value="0x0384C000" />
        <register type="NOA" address="0x00009888" value="0x05844000" />
        <register type="NOA" address="0x00009888" value="0x1B80C137" />
        <register type="NOA" address="0x00009888" value="0x1D80C147" />
        <register type="NOA" address="0x00009888" value="0x21800000" />
        <register type="NOA" address="0x00009888" value="0x1180C000" />
        <register type="NOA" address="0x00009888" value="0x17808000" />
        <register type="NOA" address="0x00009888" value="0x1980C000" />
        <register type="NOA" address="0x00009888" value="0x1F80C000" />
        <register type="NOA" address="0x00009888" value="0x1380C000" />
        <register type="NOA" address="0x00009888" value="0x15804000" />
        <register type="NOA" address="0x00009888" value="0x4D801550" />
        <register type="NOA" address="0x00009888" value="0x4F800331" />
        <register type="NOA" address="0x00009888" value="0x43800802" />
        <register type="NOA" address="0x00009888" value="0x51800400" />
        <register type="NOA" address="0x00009888" value="0x458004A1" />
        <register type="NOA" address="0x00009888" value="0x53805555" />
        <register type="NOA" address="0x00009888" value="0x47800421" />
        <register type="NOA" address="0x00009888" value="0x31800000" />
        <register type="NOA" address="0x00009888" value="0x3F801421" />
        <register type="NOA" address="0x00009888" value="0x41800845" />
        <register type="NOA" address="0x00009840" value="0x00000080" />
    </register_config>
    <register_config type="OA">
        <register type="OA" address="0x00002710" value="0x00000000" />
        <register type="OA" address="0x00002714" value="0x00800000" />
        <register type="OA" address="0x00002720" value="0x00000000" />
        <register type="OA" address="0x00002724" value="0x00800000" />
        <register type="OA" address="0x00002740" value="0x00000000" />
    </register_config>
    <register_config type="FLEX">
        <register type="FLEX" address="0x0000E458" value="0x00005004" />
        <register type="FLEX" address="0x0000E558" value="0x00010003" />
        <register type="FLEX" address="0x0000E658" value="0x00012011" />
        <register type="FLEX" address="0x0000E758" value="0x00015014" />
        <register type="FLEX" address="0x0000E45C" value="0x00051050" />
        <register type="FLEX" address="0x0000E55C" value="0x00053052" />
        <register type="FLEX" address="0x0000E65C" value="0x00055054" />
    </register_config>
  </set>

  <set name="Compute Metrics Basic Gen8"
       mdapi_supported_apis="OGL4 OCL IO BB"
       underscore_name="compute_basic"
       hw_config_guid="35fbc9b2-a891-40a6-a38d-022bb7057552"
       chipset="BDW"
       symbol_name="ComputeBasic"
       >
    <counter name="GPU Core Clocks"
             description="The total number of GPU core clocks elapsed during the measurement."
             data_type="uint64"
             equation="GPU_CLOCK 0 READ"
             underscore_name="gpu_core_clocks"
             units="cycles"
             symbol_name="GpuCoreClocks"
             semantic_type="event"
             mdapi_supported_apis="OGL OCL IO BB"
             mdapi_usage_flags="Tier1 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="GPU"
             />
    <counter name="EU Active"
             description="The percentage of time in which the Execution Units were actively processing."
             data_type="float"
             max_equation="100"
             equation="A 7 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="eu_active"
             units="percent"
             symbol_name="EuActive"
             semantic_type="duration"
             mdapi_supported_apis="OGL OCL IO BB"
             mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
             mdapi_group="EU Array"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="Untyped Bytes Read"
             description="The total number of typed memory bytes read via Data Port."
             data_type="uint64"
             max_equation="$GpuCoreClocks 64 UMUL $EuSlicesTotalCount UMUL"
             equation="B 6 READ B 7 READ C 0 READ UADD UADD $EuSlicesTotalCount 64 UMUL UMUL"
             underscore_name="untyped_bytes_read"
             units="bytes"
             symbol_name="UntypedBytesRead"
             semantic_type="throughput"
             mdapi_supported_apis="OGL4 OCL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_group="L3/Data Port"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="EU Both FPU Pipes Active"
             description="The percentage of time in which both EU FPU pipelines were actively processing."
             data_type="float"
             max_equation="100"
             equation="A 9 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="eu_fpu_both_active"
             units="percent"
             symbol_name="EuFpuBothActive"
             semantic_type="duration"
             mdapi_supported_apis="OGL OCL IO BB"
             mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
             mdapi_group="EU Array/Pipes"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="Typed Bytes Written"
             description="The total number of typed memory bytes written via Data Port."
             data_type="uint64"
             max_equation="$GpuCoreClocks 64 UMUL $EuSlicesTotalCount UMUL"
             equation="B 3 READ B 4 READ B 5 READ UADD UADD $EuSlicesTotalCount 64 UMUL UMUL"
             underscore_name="typed_bytes_written"
             units="bytes"
             symbol_name="TypedBytesWritten"
             semantic_type="throughput"
             mdapi_supported_apis="OGL4 OCL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_group="L3/Data Port"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="EU FPU0 Pipe Active"
             description="The percentage of time in which EU FPU0 pipeline was actively processing."
             data_type="float"
             max_equation="100"
             equation="A 10 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="fpu0_active"
             units="percent"
             symbol_name="Fpu0Active"
             semantic_type="duration"
             mdapi_supported_apis="OGL OCL IO BB"
             mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
             mdapi_group="EU Array/Pipes"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="EU FPU1 Pipe Active"
             description="The percentage of time in which EU FPU1 pipeline was actively processing."
             data_type="float"
             max_equation="100"
             equation="A 11 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="fpu1_active"
             units="percent"
             symbol_name="Fpu1Active"
             semantic_type="duration"
             mdapi_supported_apis="OGL OCL IO BB"
             mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
             mdapi_group="EU Array/Pipes"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="EU AVG IPC Rate"
             description="The average rate of IPC calculated for 2 FPU pipelines."
             data_type="float"
             max_equation="2"
             equation="A 9 READ  A 10 READ  A 11 READ UADD  A 9 READ USUB FDIV 1 FADD"
             underscore_name="eu_avg_ipc_rate"
             units="number"
             symbol_name="EuAvgIpcRate"
             semantic_type="ratio"
             mdapi_supported_apis="OGL OCL IO BB"
             mdapi_usage_flags="Tier4 Overview System Frame Batch Draw"
             mdapi_group="EU Array"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="GS Threads Dispatched"
             description="The total number of geometry shader hardware threads dispatched."
             data_type="uint64"
             equation="A 5 READ"
             underscore_name="gs_threads"
             units="threads"
             symbol_name="GsThreads"
             semantic_type="event"
             mdapi_supported_apis="OGL4 IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="EU Array/Geometry Shader"
             />
    <counter name="Early Hi-Depth Test Fails"
             description="The total number of pixels dropped on early hierarchical depth test."
             data_type="uint64"
             equation="A 22 READ 4 UMUL"
             underscore_name="hi_depth_test_fails"
             units="pixels"
             symbol_name="HiDepthTestFails"
             semantic_type="event"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="3D Pipe/Rasterizer/Hi-Depth Test"
             />
    <counter name="VS Threads Dispatched"
             description="The total number of vertex shader hardware threads dispatched."
             data_type="uint64"
             equation="A 1 READ"
             underscore_name="vs_threads"
             units="threads"
             symbol_name="VsThreads"
             semantic_type="event"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="EU Array/Vertex Shader"
             />
    <counter name="FS Threads Dispatched"
             description="The total number of fragment shader hardware threads dispatched."
             data_type="uint64"
             equation="A 6 READ"
             underscore_name="ps_threads"
             units="threads"
             symbol_name="PsThreads"
             semantic_type="event"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="EU Array/Fragment Shader"
             />
    <counter name="Shader Barrier Messages"
             description="The total number of shader barrier messages."
             data_type="uint64"
             equation="A 35 READ"
             underscore_name="shader_barriers"
             units="messages"
             symbol_name="ShaderBarriers"
             semantic_type="event"
             mdapi_supported_apis="OGL OCL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="EU Array/Barrier"
             />
    <counter name="Sampler Texels"
             description="The total number of texels seen on input (with 2x2 accuracy) in all sampler units."
             data_type="uint64"
             equation="A 28 READ 4 UMUL"
             underscore_name="sampler_texels"
             units="texels"
             symbol_name="SamplerTexels"
             semantic_type="event"
             mdapi_supported_apis="OGL OCL IO BB"
             mdapi_usage_flags="Tier3 Overview Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="Sampler/Sampler Input"
             />
    <counter name="Pixels Failing Tests"
             description="The total number of pixels dropped on post-FS alpha, stencil, or depth tests."
             data_type="uint64"
             equation="A 25 READ 4 UMUL"
             underscore_name="pixels_failing_post_ps_tests"
             units="pixels"
             symbol_name="PixelsFailingPostPsTests"
             semantic_type="event"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="3D Pipe/Output Merger"
             />
    <counter name="GPU Time Elapsed"
             description="Time elapsed on the GPU during the measurement."
             data_type="uint64"
             equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
             underscore_name="gpu_time"
             units="ns"
             symbol_name="GpuTime"
             semantic_type="duration"
             mdapi_supported_apis="OGL OCL IO BB"
             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="GPU"
             />
    <counter name="AVG GPU Core Frequency"
             description="Average GPU Core Frequency in the measurement."
             data_type="uint64"
             max_equation="$GpuMaxFrequency"
             equation="$GpuCoreClocks 1000000000 UMUL $GpuTime UDIV"
             underscore_name="avg_gpu_core_frequency"
             units="hz"
             symbol_name="AvgGpuCoreFrequency"
             semantic_type="event"
             mdapi_supported_apis="OGL OCL IO BB"
             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
             mdapi_group="GPU"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="Sampler Texels Misses"
             description="The total number of texels lookups (with 2x2 accuracy) that missed L1 sampler cache."
             data_type="uint64"
             equation="A 29 READ 4 UMUL"
             underscore_name="sampler_texel_misses"
             units="texels"
             symbol_name="SamplerTexelMisses"
             semantic_type="event"
             mdapi_supported_apis="OGL OCL IO BB"
             mdapi_usage_flags="Tier3 Batch Frame Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="Sampler/Sampler Cache"
             />
    <counter name="CS Threads Dispatched"
             description="The total number of compute shader hardware threads dispatched."
             data_type="uint64"
             equation="A 4 READ"
             underscore_name="cs_threads"
             units="threads"
             symbol_name="CsThreads"
             semantic_type="event"
             mdapi_supported_apis="OGL4 OCL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="EU Array/Compute Shader"
             />
    <counter name="SLM Bytes Read"
             description="The total number of GPU memory bytes read from shared local memory."
             data_type="uint64"
             max_equation="$GpuCoreClocks 64 UMUL $EuSubslicesTotalCount UMUL"
             equation="A 30 READ 64 UMUL"
             underscore_name="slm_bytes_read"
             units="bytes"
             symbol_name="SlmBytesRead"
             semantic_type="throughput"
             mdapi_supported_apis="OGL4 OCL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_group="L3/Data Port/SLM"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="GTI Read Throughput"
             description="The total number of GPU memory bytes read from GTI."
             data_type="uint64"
             max_equation="$GpuCoreClocks 64 UMUL"
             equation="C 4 READ 64 UMUL"
             underscore_name="gti_read_throughput"
             units="bytes"
             symbol_name="GtiReadThroughput"
             semantic_type="throughput"
             mdapi_supported_apis="OGL OCL IO BB"
             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
             mdapi_group="GTI"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="Untyped Writes"
             description="The total number of untyped memory bytes written via Data Port."
             data_type="uint64"
             max_equation="$GpuCoreClocks 64 UMUL $EuSlicesTotalCount UMUL"
             equation="C 1 READ C 2 READ C 3 READ UADD UADD $EuSlicesTotalCount 64 UMUL UMUL"
             underscore_name="untyped_bytes_written"
             units="bytes"
             symbol_name="UntypedBytesWritten"
             semantic_type="throughput"
             mdapi_supported_apis="OGL4 OCL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_group="L3/Data Port"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="GPU Busy"
             description="The percentage of time in which the GPU has been processing GPU commands."
             data_type="float"
             max_equation="100"
             equation="A 0 READ 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="gpu_busy"
             units="percent"
             symbol_name="GpuBusy"
             semantic_type="duration"
             mdapi_supported_apis="OGL OCL IO BB"
             mdapi_usage_flags="Tier1 Overview System Frame"
             mdapi_group="GPU"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="Rasterized Pixels"
             description="The total number of rasterized pixels."
             data_type="uint64"
             equation="A 21 READ 4 UMUL"
             underscore_name="rasterized_pixels"
             units="pixels"
             symbol_name="RasterizedPixels"
             semantic_type="event"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="3D Pipe/Rasterizer"
             />
    <counter name="Typed Bytes Read"
             description="The total number of typed memory bytes read via Data Port."
             data_type="uint64"
             max_equation="$GpuCoreClocks 64 UMUL $EuSlicesTotalCount UMUL"
             equation="B 0 READ B 1 READ B 2 READ UADD UADD $EuSlicesTotalCount 64 UMUL UMUL"
             underscore_name="typed_bytes_read"
             units="bytes"
             symbol_name="TypedBytesRead"
             semantic_type="throughput"
             mdapi_supported_apis="OGL4 OCL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_group="L3/Data Port"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="DS Threads Dispatched"
             description="The total number of domain shader hardware threads dispatched."
             data_type="uint64"
             equation="A 3 READ"
             underscore_name="ds_threads"
             units="threads"
             symbol_name="DsThreads"
             semantic_type="event"
             mdapi_supported_apis="OGL4 IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="EU Array/Domain Shader"
             />
    <counter name="EU Thread Occupancy"
             description="The percentage of time in which hardware threads occupied EUs."
             data_type="float"
             max_equation="100"
             equation="A 13 READ 8 UMUL $EuCoresTotalCount UDIV $EuThreadsCount UDIV 100 UMUL  $GpuCoreClocks FDIV"
             underscore_name="eu_thread_occupancy"
             units="percent"
             symbol_name="EuThreadOccupancy"
             semantic_type="duration"
             mdapi_supported_apis="OGL OCL IO BB"
             mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
             mdapi_group="EU Array"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="EU Stall"
             description="The percentage of time in which the Execution Units were stalled."
             data_type="float"
             max_equation="100"
             equation="A 8 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="eu_stall"
             units="percent"
             symbol_name="EuStall"
             semantic_type="duration"
             mdapi_supported_apis="OGL OCL IO BB"
             mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
             mdapi_group="EU Array"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="Samples Blended"
             description="The total number of blended samples or pixels written to all render targets."
             data_type="uint64"
             equation="A 27 READ 4 UMUL"
             underscore_name="samples_blended"
             units="pixels"
             symbol_name="SamplesBlended"
             semantic_type="event"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Overview Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="3D Pipe/Output Merger"
             />
    <counter name="Early Depth Test Fails"
             description="The total number of pixels dropped on early depth test."
             data_type="uint64"
             equation="A 23 READ 4 UMUL"
             underscore_name="early_depth_test_fails"
             units="pixels"
             symbol_name="EarlyDepthTestFails"
             semantic_type="event"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="3D Pipe/Rasterizer/Early Depth Test"
             />
    <counter name="Shader Memory Accesses"
             description="The total number of shader memory accesses to L3."
             data_type="uint64"
             equation="A 32 READ"
             underscore_name="shader_memory_accesses"
             units="messages"
             symbol_name="ShaderMemoryAccesses"
             semantic_type="event"
             mdapi_supported_apis="OGL OCL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="L3/Data Port"
             />
    <counter name="HS Threads Dispatched"
             description="The total number of hull shader hardware threads dispatched."
             data_type="uint64"
             equation="A 2 READ"
             underscore_name="hs_threads"
             units="threads"
             symbol_name="HsThreads"
             semantic_type="event"
             mdapi_supported_apis="OGL4 IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="EU Array/Hull Shader"
             />
    <counter name="GTI Write Throughput"
             description="The total number of GPU memory bytes written to GTI."
             data_type="uint64"
             max_equation="$GpuCoreClocks 32 UMUL"
             equation="C 5 READ 64 UMUL"
             underscore_name="gti_write_throughput"
             units="bytes"
             symbol_name="GtiWriteThroughput"
             semantic_type="throughput"
             mdapi_supported_apis="OGL OCL IO BB"
             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
             mdapi_group="GTI"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="SLM Bytes Written"
             description="The total number of GPU memory bytes written into shared local memory."
             data_type="uint64"
             max_equation="$GpuCoreClocks 64 UMUL $EuSubslicesTotalCount UMUL"
             equation="A 31 READ 64 UMUL"
             underscore_name="slm_bytes_written"
             units="bytes"
             symbol_name="SlmBytesWritten"
             semantic_type="throughput"
             mdapi_supported_apis="OGL4 OCL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_group="L3/Data Port/SLM"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="L3 Shader Throughput"
             description="The total number of GPU memory bytes transferred between shaders and L3 caches w/o URB."
             data_type="uint64"
             max_equation="$GpuCoreClocks 64 UMUL 2 UMUL $EuSubslicesTotalCount UMUL"
             equation="A 30 READ  A 31 READ $ShaderMemoryAccesses UADD UADD 64 UMUL"
             underscore_name="l3_shader_throughput"
             units="bytes"
             symbol_name="L3ShaderThroughput"
             semantic_type="throughput"
             mdapi_supported_apis="OGL4 OCL IO BB"
             mdapi_usage_flags="Tier2 Frame Batch Draw"
             mdapi_group="L3/Data Port"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="Samples Killed in FS"
             description="The total number of samples or pixels dropped in fragment shaders."
             data_type="uint64"
             equation="A 24 READ 4 UMUL"
             underscore_name="samples_killed_in_ps"
             units="pixels"
             symbol_name="SamplesKilledInPs"
             semantic_type="event"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier4 Overview Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="3D Pipe/Fragment Shader"
             />
    <counter name="Samples Written"
             description="The total number of samples or pixels written to all render targets."
             data_type="uint64"
             equation="A 26 READ 4 UMUL"
             underscore_name="samples_written"
             units="pixels"
             symbol_name="SamplesWritten"
             semantic_type="event"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Overview Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="3D Pipe/Output Merger"
             />
    <counter name="Shader Atomic Memory Accesses"
             description="The total number of shader atomic memory accesses."
             data_type="uint64"
             equation="A 34 READ"
             underscore_name="shader_atomics"
             units="messages"
             symbol_name="ShaderAtomics"
             semantic_type="event"
             mdapi_supported_apis="OGL OCL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="L3/Data Port/Atomics"
             />
    <counter name="EU Send Pipe Active"
             description="The percentage of time in which EU send pipeline was actively processing."
             data_type="float"
             max_equation="100"
             equation="A 12 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="eu_send_active"
             units="percent"
             symbol_name="EuSendActive"
             semantic_type="duration"
             mdapi_supported_apis="OGL OCL IO BB"
             mdapi_usage_flags="Tier3 Overview System Frame Batch Draw"
             mdapi_group="EU Array/Pipes"
             mdapi_hw_unit_type="gpu"
             />
    <register_config type="NOA"
                     availability="$SliceMask 0x01 AND"
                     priority="0"
                     >
        <register type="NOA" address="0x00009840" value="0x000000A0" />
        <register type="NOA" address="0x00009888" value="0x105C00E0" />
        <register type="NOA" address="0x00009888" value="0x105800E0" />
        <register type="NOA" address="0x00009888" value="0x103800E0" />
        <register type="NOA" address="0x00009888" value="0x3580001A" />
        <register type="NOA" address="0x00009888" value="0x3B800060" />
        <register type="NOA" address="0x00009888" value="0x3D800005" />
        <register type="NOA" address="0x00009888" value="0x065C2100" />
        <register type="NOA" address="0x00009888" value="0x0A5C0041" />
        <register type="NOA" address="0x00009888" value="0x0C5C6600" />
        <register type="NOA" address="0x00009888" value="0x005C6580" />
        <register type="NOA" address="0x00009888" value="0x085C8000" />
        <register type="NOA" address="0x00009888" value="0x0E5C8000" />
        <register type="NOA" address="0x00009888" value="0x00580042" />
        <register type="NOA" address="0x00009888" value="0x08582080" />
        <register type="NOA" address="0x00009888" value="0x0C58004C" />
        <register type="NOA" address="0x00009888" value="0x0E582580" />
        <register type="NOA" address="0x00009888" value="0x005B4000" />
        <register type="NOA" address="0x00009888" value="0x185B1000" />
        <register type="NOA" address="0x00009888" value="0x1A5B0104" />
        <register type="NOA" address="0x00009888" value="0x0C1FA800" />
        <register type="NOA" address="0x00009888" value="0x0E1FAA00" />
        <register type="NOA" address="0x00009888" value="0x101F02AA" />
        <register type="NOA" address="0x00009888" value="0x08380042" />
        <register type="NOA" address="0x00009888" value="0x0A382080" />
        <register type="NOA" address="0x00009888" value="0x0E38404C" />
        <register type="NOA" address="0x00009888" value="0x0238404B" />
        <register type="NOA" address="0x00009888" value="0x00384000" />
        <register type="NOA" address="0x00009888" value="0x16380000" />
        <register type="NOA" address="0x00009888" value="0x18381145" />
        <register type="NOA" address="0x00009888" value="0x04380000" />
        <register type="NOA" address="0x00009888" value="0x0039A000" />
        <register type="NOA" address="0x00009888" value="0x06398000" />
        <register type="NOA" address="0x00009888" value="0x0839A000" />
        <register type="NOA" address="0x00009888" value="0x0A39A000" />
        <register type="NOA" address="0x00009888" value="0x0C39A000" />
        <register type="NOA" address="0x00009888" value="0x0E39A000" />
        <register type="NOA" address="0x00009888" value="0x02392000" />
        <register type="NOA" address="0x00009888" value="0x018A8000" />
        <register type="NOA" address="0x00009888" value="0x0F8A8000" />
        <register type="NOA" address="0x00009888" value="0x198A8000" />
        <register type="NOA" address="0x00009888" value="0x1B8AAAA0" />
        <register type="NOA" address="0x00009888" value="0x1D8A0002" />
        <register type="NOA" address="0x00009888" value="0x038A8000" />
        <register type="NOA" address="0x00009888" value="0x058A8000" />
        <register type="NOA" address="0x00009888" value="0x238B02A0" />
        <register type="NOA" address="0x00009888" value="0x258B5550" />
        <register type="NOA" address="0x00009888" value="0x278B0015" />
        <register type="NOA" address="0x00009888" value="0x1F850A80" />
        <register type="NOA" address="0x00009888" value="0x2185AAA0" />
        <register type="NOA" address="0x00009888" value="0x2385002A" />
        <register type="NOA" address="0x00009888" value="0x01834000" />
        <register type="NOA" address="0x00009888" value="0x0F834000" />
        <register type="NOA" address="0x00009888" value="0x19835400" />
        <register type="NOA" address="0x00009888" value="0x1B830155" />
        <register type="NOA" address="0x00009888" value="0x03834000" />
        <register type="NOA" address="0x00009888" value="0x05834000" />
        <register type="NOA" address="0x00009888" value="0x0184C000" />
        <register type="NOA" address="0x00009888" value="0x07848000" />
        <register type="NOA" address="0x00009888" value="0x0984C000" />
        <register type="NOA" address="0x00009888" value="0x0B84C000" />
        <register type="NOA" address="0x00009888" value="0x0D84C000" />
        <register type="NOA" address="0x00009888" value="0x0F84C000" />
        <register type="NOA" address="0x00009888" value="0x03844000" />
        <register type="NOA" address="0x00009888" value="0x17808137" />
        <register type="NOA" address="0x00009888" value="0x1980C147" />
        <register type="NOA" address="0x00009888" value="0x1B80C0E5" />
        <register type="NOA" address="0x00009888" value="0x1D80C0E3" />
        <register type="NOA" address="0x00009888" value="0x21800000" />
        <register type="NOA" address="0x00009888" value="0x1180C000" />
        <register type="NOA" address="0x00009888" value="0x1F80C000" />
        <register type="NOA" address="0x00009888" value="0x13804000" />
        <register type="NOA" address="0x00009888" value="0x15800000" />
        <register type="NOA" address="0x00000D24" value="0x00000000" />
        <register type="NOA" address="0x00009888" value="0x4D801000" />
        <register type="NOA" address="0x00009888" value="0x4F800111" />
        <register type="NOA" address="0x00009888" value="0x43800062" />
        <register type="NOA" address="0x00009888" value="0x51800000" />
        <register type="NOA" address="0x00009888" value="0x45800062" />
        <register type="NOA" address="0x00009888" value="0x53800000" />
        <register type="NOA" address="0x00009888" value="0x47800062" />
        <register type="NOA" address="0x00009888" value="0x31800000" />
        <register type="NOA" address="0x00009888" value="0x3F801062" />
        <register type="NOA" address="0x00009888" value="0x41801084" />
        <register type="NOA" address="0x00009840" value="0x00000080" />
    </register_config>
    <register_config type="NOA"
                     availability="$SliceMask 0x02 AND"
                     priority="2"
                     >
        <register type="NOA" address="0x00009840" value="0x000000A0" />
        <register type="NOA" address="0x00009888" value="0x10DC00E0" />
        <register type="NOA" address="0x00009888" value="0x10D800E0" />
        <register type="NOA" address="0x00009888" value="0x10B800E0" />
        <register type="NOA" address="0x00009888" value="0x3580001A" />
        <register type="NOA" address="0x00009888" value="0x3B800060" />
        <register type="NOA" address="0x00009888" value="0x3D800005" />
        <register type="NOA" address="0x00009888" value="0x06DC2100" />
        <register type="NOA" address="0x00009888" value="0x0ADC0041" />
        <register type="NOA" address="0x00009888" value="0x0CDC6600" />
        <register type="NOA" address="0x00009888" value="0x00DC6580" />
        <register type="NOA" address="0x00009888" value="0x08DC8000" />
        <register type="NOA" address="0x00009888" value="0x0EDC8000" />
        <register type="NOA" address="0x00009888" value="0x00D80042" />
        <register type="NOA" address="0x00009888" value="0x08D82080" />
        <register type="NOA" address="0x00009888" value="0x0CD8004C" />
        <register type="NOA" address="0x00009888" value="0x0ED82580" />
        <register type="NOA" address="0x00009888" value="0x00DB4000" />
        <register type="NOA" address="0x00009888" value="0x18DB1000" />
        <register type="NOA" address="0x00009888" value="0x1ADB0104" />
        <register type="NOA" address="0x00009888" value="0x0C9FA800" />
        <register type="NOA" address="0x00009888" value="0x0E9FAA00" />
        <register type="NOA" address="0x00009888" value="0x109F02AA" />
        <register type="NOA" address="0x00009888" value="0x08B80042" />
        <register type="NOA" address="0x00009888" value="0x0AB82080" />
        <register type="NOA" address="0x00009888" value="0x0EB8404C" />
        <register type="NOA" address="0x00009888" value="0x02B8404B" />
        <register type="NOA" address="0x00009888" value="0x00B84000" />
        <register type="NOA" address="0x00009888" value="0x16B80000" />
        <register type="NOA" address="0x00009888" value="0x18B81145" />
        <register type="NOA" address="0x00009888" value="0x04B80000" />
        <register type="NOA" address="0x00009888" value="0x00B9A000" />
        <register type="NOA" address="0x00009888" value="0x06B98000" />
        <register type="NOA" address="0x00009888" value="0x08B9A000" />
        <register type="NOA" address="0x00009888" value="0x0AB9A000" />
        <register type="NOA" address="0x00009888" value="0x0CB9A000" />
        <register type="NOA" address="0x00009888" value="0x0EB9A000" />
        <register type="NOA" address="0x00009888" value="0x02B92000" />
        <register type="NOA" address="0x00009888" value="0x01888000" />
        <register type="NOA" address="0x00009888" value="0x0D88F800" />
        <register type="NOA" address="0x00009888" value="0x0F88000F" />
        <register type="NOA" address="0x00009888" value="0x03888000" />
        <register type="NOA" address="0x00009888" value="0x05888000" />
        <register type="NOA" address="0x00009888" value="0x238B0540" />
        <register type="NOA" address="0x00009888" value="0x258BAAA0" />
        <register type="NOA" address="0x00009888" value="0x278B002A" />
        <register type="NOA" address="0x00009888" value="0x018C4000" />
        <register type="NOA" address="0x00009888" value="0x0F8C4000" />
        <register type="NOA" address="0x00009888" value="0x178C2000" />
        <register type="NOA" address="0x00009888" value="0x198C5500" />
        <register type="NOA" address="0x00009888" value="0x1B8C0015" />
        <register type="NOA" address="0x00009888" value="0x038C4000" />
        <register type="NOA" address="0x00009888" value="0x058C4000" />
        <register type="NOA" address="0x00009888" value="0x018DA000" />
        <register type="NOA" address="0x00009888" value="0x078D8000" />
        <register type="NOA" address="0x00009888" value="0x098DA000" />
        <register type="NOA" address="0x00009888" value="0x0B8DA000" />
        <register type="NOA" address="0x00009888" value="0x0D8DA000" />
        <register type="NOA" address="0x00009888" value="0x0F8DA000" />
        <register type="NOA" address="0x00009888" value="0x038D2000" />
        <register type="NOA" address="0x00009888" value="0x1F850A80" />
        <register type="NOA" address="0x00009888" value="0x2185AAA0" />
        <register type="NOA" address="0x00009888" value="0x2385002A" />
        <register type="NOA" address="0x00009888" value="0x01834000" />
        <register type="NOA" address="0x00009888" value="0x0F834000" />
        <register type="NOA" address="0x00009888" value="0x19835400" />
        <register type="NOA" address="0x00009888" value="0x1B830155" />
        <register type="NOA" address="0x00009888" value="0x03834000" />
        <register type="NOA" address="0x00009888" value="0x05834000" />
        <register type="NOA" address="0x00009888" value="0x0184C000" />
        <register type="NOA" address="0x00009888" value="0x07848000" />
        <register type="NOA" address="0x00009888" value="0x0984C000" />
        <register type="NOA" address="0x00009888" value="0x0B84C000" />
        <register type="NOA" address="0x00009888" value="0x0D84C000" />
        <register type="NOA" address="0x00009888" value="0x0F84C000" />
        <register type="NOA" address="0x00009888" value="0x03844000" />
        <register type="NOA" address="0x00009888" value="0x17808137" />
        <register type="NOA" address="0x00009888" value="0x1980C147" />
        <register type="NOA" address="0x00009888" value="0x1B80C0E5" />
        <register type="NOA" address="0x00009888" value="0x1D80C0E3" />
        <register type="NOA" address="0x00009888" value="0x21800000" />
        <register type="NOA" address="0x00009888" value="0x1180C000" />
        <register type="NOA" address="0x00009888" value="0x1F80C000" />
        <register type="NOA" address="0x00009888" value="0x13804000" />
        <register type="NOA" address="0x00009888" value="0x15800000" />
        <register type="NOA" address="0x00000D24" value="0x00000000" />
        <register type="NOA" address="0x00009888" value="0x4D805000" />
        <register type="NOA" address="0x00009888" value="0x4F800555" />
        <register type="NOA" address="0x00009888" value="0x43800062" />
        <register type="NOA" address="0x00009888" value="0x51800000" />
        <register type="NOA" address="0x00009888" value="0x45800062" />
        <register type="NOA" address="0x00009888" value="0x53800000" />
        <register type="NOA" address="0x00009888" value="0x47800062" />
        <register type="NOA" address="0x00009888" value="0x31800000" />
        <register type="NOA" address="0x00009888" value="0x3F800062" />
        <register type="NOA" address="0x00009888" value="0x41800000" />
        <register type="NOA" address="0x00009840" value="0x00000080" />
    </register_config>
    <register_config type="OA">
        <register type="OA" address="0x00002710" value="0x00000000" />
        <register type="OA" address="0x00002714" value="0x00800000" />
        <register type="OA" address="0x00002720" value="0x00000000" />
        <register type="OA" address="0x00002724" value="0x00800000" />
        <register type="OA" address="0x00002740" value="0x00000000" />
    </register_config>
    <register_config type="FLEX">
        <register type="FLEX" address="0x0000E458" value="0x00005004" />
        <register type="FLEX" address="0x0000E558" value="0x00000003" />
        <register type="FLEX" address="0x0000E658" value="0x00002001" />
        <register type="FLEX" address="0x0000E758" value="0x00778008" />
        <register type="FLEX" address="0x0000E45C" value="0x00088078" />
        <register type="FLEX" address="0x0000E55C" value="0x00808708" />
        <register type="FLEX" address="0x0000E65C" value="0x00A08908" />
    </register_config>
  </set>

  <set name="Render Metrics for 3D Pipeline Profile"
       mdapi_supported_apis="OGL OCL IO BB"
       underscore_name="render_pipe_profile"
       hw_config_guid="233d0544-fff7-4281-8291-e02f222aff72"
       chipset="BDW"
       symbol_name="RenderPipeProfile"
       >
    <counter name="GPU Core Clocks"
             description="The total number of GPU core clocks elapsed during the measurement."
             data_type="uint64"
             equation="GPU_CLOCK 0 READ"
             underscore_name="gpu_core_clocks"
             units="cycles"
             symbol_name="GpuCoreClocks"
             semantic_type="event"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier1 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="GPU"
             />
    <counter name="EU Active"
             description="The percentage of time in which the Execution Units were actively processing."
             data_type="float"
             max_equation="100"
             equation="A 7 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="eu_active"
             units="percent"
             symbol_name="EuActive"
             semantic_type="duration"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
             mdapi_group="EU Array"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="VS Bottleneck"
             low_watermark="10"
             description="The percentage of time in which vertex shader pipeline stage was slowing down the 3D pipeline."
             data_type="float"
             high_watermark="30"
             equation="B 0 READ 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="vs_bottleneck"
             units="percent"
             symbol_name="VsBottleneck"
             semantic_type="duration"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Indicate Draw"
             mdapi_group="3D Pipe/Vertex Shader"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="Hi-Depth Bottleneck"
             low_watermark="5"
             description="The percentage of time in which early hierarchical depth test pipeline stage was slowing down the 3D pipeline."
             data_type="float"
             high_watermark="15"
             equation="C 6 READ 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="hi_depth_bottleneck"
             units="percent"
             symbol_name="HiDepthBottleneck"
             semantic_type="duration"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Indicate Draw"
             mdapi_group="3D Pipe/Rasterizer/Hi-Depth Test"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="GS Bottleneck"
             low_watermark="5"
             description="The percentage of time in which geometry shader pipeline stage was slowing down the 3D pipeline."
             data_type="float"
             high_watermark="15"
             equation="B 3 READ 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="gs_bottleneck"
             units="percent"
             symbol_name="GsBottleneck"
             semantic_type="duration"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Indicate Draw"
             mdapi_group="3D Pipe/Geometry Shader"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="GS Threads Dispatched"
             description="The total number of geometry shader hardware threads dispatched."
             data_type="uint64"
             equation="A 5 READ"
             underscore_name="gs_threads"
             units="threads"
             symbol_name="GsThreads"
             semantic_type="event"
             mdapi_supported_apis="OGL4 IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="EU Array/Geometry Shader"
             />
    <counter name="Early Hi-Depth Test Fails"
             description="The total number of pixels dropped on early hierarchical depth test."
             data_type="uint64"
             equation="A 22 READ 4 UMUL"
             underscore_name="hi_depth_test_fails"
             units="pixels"
             symbol_name="HiDepthTestFails"
             semantic_type="event"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="3D Pipe/Rasterizer/Hi-Depth Test"
             />
    <counter name="VS Threads Dispatched"
             description="The total number of vertex shader hardware threads dispatched."
             data_type="uint64"
             equation="A 1 READ"
             underscore_name="vs_threads"
             units="threads"
             symbol_name="VsThreads"
             semantic_type="event"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="EU Array/Vertex Shader"
             />
    <counter name="FS Threads Dispatched"
             description="The total number of fragment shader hardware threads dispatched."
             data_type="uint64"
             equation="A 6 READ"
             underscore_name="ps_threads"
             units="threads"
             symbol_name="PsThreads"
             semantic_type="event"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="EU Array/Fragment Shader"
             />
    <counter name="BC Bottleneck"
             low_watermark="5"
             description="The percentage of time in which barycentric coordinates calculation pipeline stage was slowing down the 3D pipeline."
             data_type="float"
             high_watermark="15"
             equation="C 7 READ 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="bc_bottleneck"
             units="percent"
             symbol_name="BcBottleneck"
             semantic_type="duration"
             mdapi_supported_apis="OGL IO"
             mdapi_usage_flags="Tier3 Indicate Draw"
             mdapi_group="3D Pipe/Rasterizer/Barycentric Calc"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="HS Stall"
             description="The percentage of time in which hull stall pipeline stage was stalled."
             data_type="float"
             equation="C 1 READ 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="hs_stall"
             units="percent"
             symbol_name="HsStall"
             semantic_type="duration"
             mdapi_supported_apis="OGL4 IO BB"
             mdapi_usage_flags="Tier4 Correlate Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="3D Pipe/Hull Shader"
             />
    <counter name="Shader Barrier Messages"
             description="The total number of shader barrier messages."
             data_type="uint64"
             equation="A 35 READ"
             underscore_name="shader_barriers"
             units="messages"
             symbol_name="ShaderBarriers"
             semantic_type="event"
             mdapi_supported_apis="OGL4 OCL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="EU Array/Barrier"
             />
    <counter name="Sampler Texels"
             description="The total number of texels seen on input (with 2x2 accuracy) in all sampler units."
             data_type="uint64"
             equation="A 28 READ 4 UMUL"
             underscore_name="sampler_texels"
             units="texels"
             symbol_name="SamplerTexels"
             semantic_type="event"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier3 Overview Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="Sampler/Sampler Input"
             />
    <counter name="Pixels Failing Tests"
             description="The total number of pixels dropped on post-FS alpha, stencil, or depth tests."
             data_type="uint64"
             equation="A 25 READ 4 UMUL"
             underscore_name="pixels_failing_post_ps_tests"
             units="pixels"
             symbol_name="PixelsFailingPostPsTests"
             semantic_type="event"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="3D Pipe/Output Merger"
             />
    <counter name="GPU Time Elapsed"
             description="Time elapsed on the GPU during the measurement."
             data_type="uint64"
             equation="GPU_TIME 0 READ 1000000000 UMUL $GpuTimestampFrequency UDIV"
             underscore_name="gpu_time"
             units="ns"
             symbol_name="GpuTime"
             semantic_type="duration"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="GPU"
             />
    <counter name="AVG GPU Core Frequency"
             description="Average GPU Core Frequency in the measurement."
             data_type="uint64"
             max_equation="$GpuMaxFrequency"
             equation="$GpuCoreClocks 1000000000 UMUL $GpuTime UDIV"
             underscore_name="avg_gpu_core_frequency"
             units="hz"
             symbol_name="AvgGpuCoreFrequency"
             semantic_type="event"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier1 Overview System Frame Batch Draw"
             mdapi_group="GPU"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="Sampler Texels Misses"
             description="The total number of texels lookups (with 2x2 accuracy) that missed L1 sampler cache."
             data_type="uint64"
             equation="A 29 READ 4 UMUL"
             underscore_name="sampler_texel_misses"
             units="texels"
             symbol_name="SamplerTexelMisses"
             semantic_type="event"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier3 Batch Frame Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="Sampler/Sampler Cache"
             />
    <counter name="CS Threads Dispatched"
             description="The total number of compute shader hardware threads dispatched."
             data_type="uint64"
             equation="A 4 READ"
             underscore_name="cs_threads"
             units="threads"
             symbol_name="CsThreads"
             semantic_type="event"
             mdapi_supported_apis="OGL4 OCL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="EU Array/Compute Shader"
             />
    <counter name="VF Bottleneck"
             low_watermark="5"
             description="The percentage of time in which vertex fetch pipeline stage was slowing down the 3D pipeline."
             data_type="float"
             high_watermark="15"
             equation="C 0 READ 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="vf_bottleneck"
             units="percent"
             symbol_name="VfBottleneck"
             semantic_type="duration"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Indicate Draw"
             mdapi_group="3D Pipe/Input Assembler"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="SLM Bytes Read"
             description="The total number of GPU memory bytes read from shared local memory."
             data_type="uint64"
             max_equation="$GpuCoreClocks 64 UMUL $EuSubslicesTotalCount UMUL"
             equation="A 30 READ 64 UMUL"
             underscore_name="slm_bytes_read"
             units="bytes"
             symbol_name="SlmBytesRead"
             semantic_type="throughput"
             mdapi_supported_apis="OGL4 OCL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_group="L3/Data Port/SLM"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="Strip-Fans Bottleneck"
             low_watermark="5"
             description="The percentage of time in which strip-fans pipeline stage was slowing down the 3D pipeline."
             data_type="float"
             high_watermark="10"
             equation="B 6 READ 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="sf_bottleneck"
             units="percent"
             symbol_name="SfBottleneck"
             semantic_type="duration"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Indicate Draw"
             mdapi_group="3D Pipe/Rasterizer/Strip-Fans"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="Sampler Accesses"
             description="The total number of messages send to samplers."
             data_type="uint64"
             equation="A 28 READ"
             underscore_name="sampler_accesses"
             units="messages"
             symbol_name="SamplerAccesses"
             semantic_type="event"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier3 Batch Frame Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="Sampler"
             />
    <counter name="SF Stall"
             description="The percentage of time in which strip-fans pipeline stage was stalled."
             data_type="float"
             equation="C 5 READ 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="sf_stall"
             units="percent"
             symbol_name="SfStall"
             semantic_type="duration"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier4 Correlate Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="3D Pipe/Rasterizer/Strip-Fans"
             />
    <counter name="GPU Busy"
             description="The percentage of time in which the GPU has been processing GPU commands."
             data_type="float"
             max_equation="100"
             equation="A 0 READ 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="gpu_busy"
             units="percent"
             symbol_name="GpuBusy"
             semantic_type="duration"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier1 Overview System Frame"
             mdapi_group="GPU"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="HS Bottleneck"
             low_watermark="3"
             description="The percentage of time in which hull shader pipeline stage was slowing down the 3D pipeline."
             data_type="float"
             high_watermark="9"
             equation="B 1 READ 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="hs_bottleneck"
             units="percent"
             symbol_name="HsBottleneck"
             semantic_type="duration"
             mdapi_supported_apis="OGL4 IO BB"
             mdapi_usage_flags="Tier3 Indicate Draw"
             mdapi_group="3D Pipe/Hull Shader"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="CL Stall"
             description="The percentage of time in which clipper pipeline stage was stalled."
             data_type="float"
             equation="C 4 READ 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="cl_stall"
             units="percent"
             symbol_name="ClStall"
             semantic_type="duration"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier4 Correlate Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="3D Pipe/Clipper"
             />
    <counter name="SO Bottleneck"
             low_watermark="5"
             description="The percentage of time in which stream output pipeline stage was slowing down the 3D pipeline."
             data_type="float"
             high_watermark="15"
             equation="B 4 READ 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="so_bottleneck"
             units="percent"
             symbol_name="SoBottleneck"
             semantic_type="duration"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Indicate Draw"
             mdapi_group="3D Pipe/Stream Output"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="Rasterized Pixels"
             description="The total number of rasterized pixels."
             data_type="uint64"
             equation="A 21 READ 4 UMUL"
             underscore_name="rasterized_pixels"
             units="pixels"
             symbol_name="RasterizedPixels"
             semantic_type="event"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="3D Pipe/Rasterizer"
             />
    <counter name="DS Threads Dispatched"
             description="The total number of domain shader hardware threads dispatched."
             data_type="uint64"
             equation="A 3 READ"
             underscore_name="ds_threads"
             units="threads"
             symbol_name="DsThreads"
             semantic_type="event"
             mdapi_supported_apis="OGL4 IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="EU Array/Domain Shader"
             />
    <counter name="Samples Written"
             description="The total number of samples or pixels written to all render targets."
             data_type="uint64"
             equation="A 26 READ 4 UMUL"
             underscore_name="samples_written"
             units="pixels"
             symbol_name="SamplesWritten"
             semantic_type="event"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Overview Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="3D Pipe/Output Merger"
             />
    <counter name="DS Bottleneck"
             low_watermark="5"
             description="The percentage of time in which domain shader pipeline stage was slowing down the 3D pipeline."
             data_type="float"
             high_watermark="15"
             equation="B 2 READ 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="ds_bottleneck"
             units="percent"
             symbol_name="DsBottleneck"
             semantic_type="duration"
             mdapi_supported_apis="OGL4 IO BB"
             mdapi_usage_flags="Tier3 Indicate Draw"
             mdapi_group="3D Pipe/Domain Shader"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="EU Stall"
             description="The percentage of time in which the Execution Units were stalled."
             data_type="float"
             max_equation="100"
             equation="A 8 READ $EuCoresTotalCount UDIV 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="eu_stall"
             units="percent"
             symbol_name="EuStall"
             semantic_type="duration"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier2 Overview System Frame Batch Draw"
             mdapi_group="EU Array"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="Clipper Bottleneck"
             low_watermark="10"
             description="The percentage of time in which clipper pipeline stage was slowing down the 3D pipeline."
             data_type="float"
             high_watermark="30"
             equation="B 5 READ 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="cl_bottleneck"
             units="percent"
             symbol_name="ClBottleneck"
             semantic_type="duration"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Indicate Draw"
             mdapi_group="3D Pipe/Clipper"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="DS Stall"
             description="The percentage of time in which domain shader pipeline stage was stalled."
             data_type="float"
             equation="C 2 READ 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="ds_stall"
             units="percent"
             symbol_name="DsStall"
             semantic_type="duration"
             mdapi_supported_apis="OGL4 IO BB"
             mdapi_usage_flags="Tier4 Correlate Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="3D Pipe/Domain Shader"
             />
    <counter name="Early Depth Bottleneck"
             low_watermark="10"
             description="The percentage of time in which early depth test pipeline stage was slowing down the 3D pipeline."
             data_type="float"
             high_watermark="30"
             equation="B 7 READ 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="early_depth_bottleneck"
             units="percent"
             symbol_name="EarlyDepthBottleneck"
             semantic_type="duration"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Indicate Draw"
             mdapi_group="3D Pipe/Rasterizer/Early Depth Test"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="Samples Blended"
             description="The total number of blended samples or pixels written to all render targets."
             data_type="uint64"
             equation="A 27 READ 4 UMUL"
             underscore_name="samples_blended"
             units="pixels"
             symbol_name="SamplesBlended"
             semantic_type="event"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Overview Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="3D Pipe/Output Merger"
             />
    <counter name="Early Depth Test Fails"
             description="The total number of pixels dropped on early depth test."
             data_type="uint64"
             equation="A 23 READ 4 UMUL"
             underscore_name="early_depth_test_fails"
             units="pixels"
             symbol_name="EarlyDepthTestFails"
             semantic_type="event"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="3D Pipe/Rasterizer/Early Depth Test"
             />
    <counter name="Shader Memory Accesses"
             description="The total number of shader memory accesses to L3."
             data_type="uint64"
             equation="A 32 READ"
             underscore_name="shader_memory_accesses"
             units="messages"
             symbol_name="ShaderMemoryAccesses"
             semantic_type="event"
             mdapi_supported_apis=""
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="L3/Data Port"
             />
    <counter name="HS Threads Dispatched"
             description="The total number of hull shader hardware threads dispatched."
             data_type="uint64"
             equation="A 2 READ"
             underscore_name="hs_threads"
             units="threads"
             symbol_name="HsThreads"
             semantic_type="event"
             mdapi_supported_apis="OGL4 IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="EU Array/Hull Shader"
             />
    <counter name="SLM Bytes Written"
             description="The total number of GPU memory bytes written into shared local memory."
             data_type="uint64"
             max_equation="$GpuCoreClocks 64 UMUL $EuSubslicesTotalCount UMUL"
             equation="A 31 READ 64 UMUL"
             underscore_name="slm_bytes_written"
             units="bytes"
             symbol_name="SlmBytesWritten"
             semantic_type="throughput"
             mdapi_supported_apis="OGL4 OCL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_group="L3/Data Port/SLM"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="L3 Shader Throughput"
             description="The total number of GPU memory bytes transferred between shaders and L3 caches w/o URB."
             data_type="uint64"
             max_equation="$GpuCoreClocks 64 UMUL 2 UMUL $EuSubslicesTotalCount UMUL"
             equation="A 30 READ  A 31 READ $ShaderMemoryAccesses UADD UADD 64 UMUL"
             underscore_name="l3_shader_throughput"
             units="bytes"
             symbol_name="L3ShaderThroughput"
             semantic_type="throughput"
             mdapi_supported_apis="OGL4 OCL IO BB"
             mdapi_usage_flags="Tier2 Frame Batch Draw"
             mdapi_group="L3/Data Port"
             mdapi_hw_unit_type="gpu"
             />
    <counter name="Samples Killed in FS"
             description="The total number of samples or pixels dropped in fragment shaders."
             data_type="uint64"
             equation="A 24 READ 4 UMUL"
             underscore_name="samples_killed_in_ps"
             units="pixels"
             symbol_name="SamplesKilledInPs"
             semantic_type="event"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier4 Overview Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="3D Pipe/Fragment Shader"
             />
    <counter name="SO Stall"
             description="The percentage of time in which stream-output pipeline stage was stalled."
             data_type="float"
             equation="C 3 READ 100 UMUL $GpuCoreClocks FDIV"
             underscore_name="so_stall"
             units="percent"
             symbol_name="SoStall"
             semantic_type="duration"
             mdapi_supported_apis="OGL IO BB"
             mdapi_usage_flags="Tier4 Correlate Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="3D Pipe/Stream Output"
             />
    <counter name="Shader Atomic Memory Accesses"
             description="The total number of shader atomic memory accesses."
             data_type="uint64"
             equation="A 34 READ"
             underscore_name="shader_atomics"
             units="messages"
             symbol_name="ShaderAtomics"
             semantic_type="event"
             mdapi_supported_apis="OGL4 OCL IO BB"
             mdapi_usage_flags="Tier3 Frame Batch Draw"
             mdapi_hw_unit_type="gpu"
             mdapi_group="L3/Data Port/Atomics"
             />
    <register_config type="NOA">
        <register type="NOA" address="0x00009840" value="0x000000A0" />
        <register type="NOA" address="0x00009888" value="0x0A1E0000" />
        <register type="NOA" address="0x00009888" value="0x0C1F000F" />
        <register type="NOA" address="0x00009888" value="0x10176800" />
        <register type="NOA" address="0x00009888" value="0x1191001F" />
        <register type="NOA" address="0x00009888" value="0x0B880320" />
        <register type="NOA" address="0x00009888" value="0x01890C40" />
        <register type="NOA" address="0x00009888" value="0x118A1C00" />
        <register type="NOA" address="0x00009888" value="0x118D7C00" />
        <register type="NOA" address="0x00009888" value="0x118E0020" />
        <register type="NOA" address="0x00009888" value="0x118F4C00" />
        <register type="NOA" address="0x00009888" value="0x11900000" />
        <register type="NOA" address="0x00009888" value="0x13900001" />
        <register type="NOA" address="0x00009888" value="0x065C4000" />
        <register type="NOA" address="0x00009888" value="0x0C3D8000" />
        <register type="NOA" address="0x00009888" value="0x06584000" />
        <register type="NOA" address="0x00009888" value="0x0C5B4000" />
        <register type="NOA" address="0x00009888" value="0x081E0040" />
        <register type="NOA" address="0x00009888" value="0x0E1E0000" />
        <register type="NOA" address="0x00009888" value="0x021F5400" />
        <register type="NOA" address="0x00009888" value="0x001F0000" />
        <register type="NOA" address="0x00009888" value="0x101F0010" />
        <register type="NOA" address="0x00009888" value="0x0E1F0080" />
        <register type="NOA" address="0x00009888" value="0x0C384000" />
        <register type="NOA" address="0x00009888" value="0x06392000" />
        <register type="NOA" address="0x00009888" value="0x0C13C000" />
        <register type="NOA" address="0x00009888" value="0x06164000" />
        <register type="NOA" address="0x00009888" value="0x06170012" />
        <register type="NOA" address="0x00009888" value="0x00170000" />
        <register type="NOA" address="0x00009888" value="0x01910005" />
        <register type="NOA" address="0x00009888" value="0x07880002" />
        <register type="NOA" address="0x00009888" value="0x01880C00" />
        <register type="NOA" address="0x00009888" value="0x0F880000" />
        <register type="NOA" address="0x00009888" value="0x0D880000" />
        <register type="NOA" address="0x00009888" value="0x05880000" />
        <register type="NOA" address="0x00009888" value="0x09890032" />
        <register type="NOA" address="0x00009888" value="0x078A0800" />
        <register type="NOA" address="0x00009888" value="0x0F8A0A00" />
        <register type="NOA" address="0x00009888" value="0x198A4000" />
        <register type="NOA" address="0x00009888" value="0x1B8A2000" />
        <register type="NOA" address="0x00009888" value="0x1D8A0000" />
        <register type="NOA" address="0x00009888" value="0x038A4000" />
        <register type="NOA" address="0x00009888" value="0x0B8A8000" />
        <register type="NOA" address="0x00009888" value="0x0D8A8000" />
        <register type="NOA" address="0x00009888" value="0x238B54C0" />
        <register type="NOA" address="0x00009888" value="0x258BAA55" />
        <register type="NOA" address="0x00009888" value="0x278B0019" />
        <register type="NOA" address="0x00009888" value="0x198C0100" />
        <register type="NOA" address="0x00009888" value="0x058C4000" />
        <register type="NOA" address="0x00009888" value="0x0F8D0015" />
        <register type="NOA" address="0x00009888" value="0x018D1000" />
        <register type="NOA" address="0x00009888" value="0x098D8000" />
        <register type="NOA" address="0x00009888" value="0x0B8DF000" />
        <register type="NOA" address="0x00009888" value="0x0D8D3000" />
        <register type="NOA" address="0x00009888" value="0x038DE000" />
        <register type="NOA" address="0x00009888" value="0x058D3000" />
        <register type="NOA" address="0x00009888" value="0x0D8E0004" />
        <register type="NOA" address="0x00009888" value="0x058E000C" />
        <register type="NOA" address="0x00009888" value="0x098E0000" />
        <register type="NOA" address="0x00009888" value="0x078E0000" />
        <register type="NOA" address="0x00009888" value="0x038E0000" />
        <register type="NOA" address="0x00009888" value="0x0B8F0020" />
        <register type="NOA" address="0x00009888" value="0x198F0C00" />
        <register type="NOA" address="0x00009888" value="0x078F8000" />
        <register type="NOA" address="0x000098
Download .txt
gitextract_e5ud6w3z/

├── .gitignore
├── .travis.yml
├── README.md
├── data/
│   ├── .gitignore
│   ├── Makefile.xml
│   ├── README.md
│   ├── gputop.proto
│   ├── guids.xml
│   ├── oa-bdw.xml
│   ├── oa-bxt.xml
│   ├── oa-cflgt2.xml
│   ├── oa-cflgt3.xml
│   ├── oa-chv.xml
│   ├── oa-cnl.xml
│   ├── oa-glk.xml
│   ├── oa-hsw.xml
│   ├── oa-icl.xml
│   ├── oa-kblgt2.xml
│   ├── oa-kblgt3.xml
│   ├── oa-lkf.xml
│   ├── oa-sklgt2.xml
│   ├── oa-sklgt3.xml
│   ├── oa-sklgt4.xml
│   └── oa-tgl.xml
├── docker/
│   ├── travis-build-environment-centos/
│   │   ├── Dockerfile
│   │   ├── README.md
│   │   └── build-travis-docker-image.sh
│   └── travis-build-environment-ubuntu/
│       ├── Dockerfile
│       ├── README.md
│       └── build-travis-docker-image.sh
├── gputop.doap
├── lib/
│   ├── gputop-client-context.c
│   ├── gputop-client-context.h
│   ├── gputop-log.h
│   ├── gputop-network.h
│   ├── gputop-oa-counters.c
│   ├── gputop-oa-counters.h
│   ├── gputop-oa-metrics.c
│   ├── gputop-oa-metrics.h
│   ├── gputop-util.h
│   ├── meson.build
│   └── tracepoint_format.leg
├── mesa/
│   ├── include/
│   │   ├── c11/
│   │   │   ├── threads.h
│   │   │   ├── threads_posix.h
│   │   │   └── threads_win32.h
│   │   ├── c99_alloca.h
│   │   ├── c99_compat.h
│   │   ├── c99_math.h
│   │   ├── drm-uapi/
│   │   │   ├── README
│   │   │   ├── drm.h
│   │   │   ├── drm_fourcc.h
│   │   │   ├── drm_mode.h
│   │   │   ├── i915_drm.h
│   │   │   └── vc4_drm.h
│   │   ├── no_extern_c.h
│   │   └── pci_ids/
│   │       ├── i965_pci_ids.h
│   │       └── iris_pci_ids.h
│   ├── meson.build
│   └── src/
│       ├── compiler/
│       │   └── shader_enums.h
│       ├── intel/
│       │   ├── common/
│       │   │   └── gen_gem.h
│       │   └── dev/
│       │       ├── gen_device_info.c
│       │       └── gen_device_info.h
│       ├── mesa/
│       │   └── main/
│       │       ├── compiler.h
│       │       └── hash.h
│       └── util/
│           ├── bitscan.c
│           ├── bitscan.h
│           ├── bitset.h
│           ├── hash_table.c
│           ├── hash_table.h
│           ├── list.h
│           ├── macros.h
│           ├── ralloc.c
│           └── ralloc.h
├── meson.build
├── meson_options.txt
├── scripts/
│   ├── deploy-demo-site.sh
│   ├── gen-template.py
│   ├── gputop-oa-codegen.py
│   ├── i915-perf-kernelgen.py
│   ├── mdapi-xml-convert.py
│   ├── meson-cross/
│   │   ├── emscripten-docker-debug.txt
│   │   └── emscripten-docker-release.txt
│   ├── pylibs/
│   │   ├── .gitignore
│   │   ├── __init__.py
│   │   ├── codegen/
│   │   │   └── __init__.py
│   │   └── oa_guid_registry/
│   │       └── __init__.py
│   ├── travis-ci-build.sh
│   ├── travis-ci-prep-docker-centos.sh
│   ├── travis-ci-prep-docker-ubuntu.sh
│   ├── travis-ci-test.sh
│   └── update-guids.py
├── server/
│   ├── gputop-cpu.c
│   ├── gputop-cpu.h
│   ├── gputop-debugfs.c
│   ├── gputop-debugfs.h
│   ├── gputop-gl.c
│   ├── gputop-gl.h
│   ├── gputop-ioctl.c
│   ├── gputop-log.c
│   ├── gputop-main.c
│   ├── gputop-mainloop.h
│   ├── gputop-ncurses.c
│   ├── gputop-perf.c
│   ├── gputop-perf.h
│   ├── gputop-server.c
│   ├── gputop-server.h
│   ├── gputop-string.c
│   ├── gputop-string.h
│   ├── gputop-system.c
│   ├── gputop-sysutil.c
│   ├── gputop-sysutil.h
│   ├── meson.build
│   ├── registry/
│   │   ├── .gitignore
│   │   ├── egl.xml
│   │   ├── genapis.py
│   │   ├── gl.xml
│   │   ├── glx.xml
│   │   └── reg.py
│   └── stdatomic.h
├── subprojects/
│   ├── .gitignore
│   ├── h2o.wrap
│   ├── libuv.wrap
│   ├── packagecache/
│   │   └── .gitignore
│   ├── peg.wrap
│   ├── protobuf-c.wrap
│   ├── protobuf.wrap
│   └── wslay.wrap
├── ui/
│   ├── gputop-emscripten-network.c
│   ├── gputop-soup-network.c
│   ├── gputop-ui-main.cpp
│   ├── gputop-ui-multilines.cpp
│   ├── gputop-ui-multilines.h
│   ├── gputop-ui-piechart.cpp
│   ├── gputop-ui-piechart.h
│   ├── gputop-ui-plots.cpp
│   ├── gputop-ui-plots.h
│   ├── gputop-ui-timeline.cpp
│   ├── gputop-ui-timeline.h
│   ├── gputop-ui-topology.cpp
│   ├── gputop-ui-topology.h
│   ├── gputop-ui-utils.cpp
│   ├── gputop-ui-utils.h
│   ├── gputop-ui.css
│   ├── gputop-uv-network.c
│   ├── imgui/
│   │   ├── LICENSE.txt
│   │   ├── imconfig.h
│   │   ├── imgui.cpp
│   │   ├── imgui.h
│   │   ├── imgui_demo.cpp
│   │   ├── imgui_draw.cpp
│   │   ├── imgui_impl_glfw_gl3.cpp
│   │   ├── imgui_impl_glfw_gl3.h
│   │   ├── imgui_impl_gtk3_cogl.cpp
│   │   ├── imgui_impl_gtk3_cogl.h
│   │   ├── imgui_impl_sdl_gles2.cpp
│   │   ├── imgui_impl_sdl_gles2.h
│   │   ├── imgui_internal.h
│   │   ├── stb_rect_pack.h
│   │   ├── stb_textedit.h
│   │   └── stb_truetype.h
│   ├── index.html
│   └── meson.build
├── utils/
│   ├── gputop-configs.c
│   └── meson.build
└── wrapper/
    ├── gputop-uv-network.c
    ├── gputop-wrapper-main.c
    └── meson.build
Download .txt
SYMBOL INDEX (2308 symbols across 87 files)

FILE: lib/gputop-client-context.c
  type gputop_client_context (line 14) | struct gputop_client_context
  type gputop_client_context (line 15) | struct gputop_client_context
  type hash_entry (line 16) | struct hash_entry
  function gputop_client_pretty_print_value (line 18) | int
  function gputop_client_context_max_value (line 66) | double gputop_client_context_max_value(struct gputop_client_context *ctx,
  function gputop_client_context_pretty_print_max (line 103) | int
  function generate_uuid (line 117) | static void
  type protobuf_msg_closure (line 125) | struct protobuf_msg_closure
  function send_pb_message (line 127) | static void
  type gputop_process_info (line 142) | struct gputop_process_info
  type gputop_client_context (line 143) | struct gputop_client_context
  type hash_entry (line 145) | struct hash_entry
  type gputop_process_info (line 149) | struct gputop_process_info
  type gputop_process_info (line 151) | struct gputop_process_info
  type gputop_process_info (line 151) | struct gputop_process_info
  function update_hw_contexts_process_info (line 166) | static void
  function put_i915_perf_chunk (line 181) | static void
  type gputop_i915_perf_chunk (line 191) | struct gputop_i915_perf_chunk
  type gputop_client_context (line 192) | struct gputop_client_context
  type gputop_i915_perf_chunk (line 195) | struct gputop_i915_perf_chunk
  type gputop_i915_perf_chunk (line 196) | struct gputop_i915_perf_chunk
  type gputop_i915_perf_chunk (line 207) | struct gputop_i915_perf_chunk
  type gputop_i915_perf_chunk (line 208) | struct gputop_i915_perf_chunk
  function i915_perf_timestamp (line 214) | static uint64_t
  function open_stream (line 240) | static void
  function close_stream (line 255) | static void
  function is_stream_opened (line 271) | static bool
  type gputop_stream (line 277) | struct gputop_stream
  type gputop_client_context (line 278) | struct gputop_client_context
  type gputop_stream (line 280) | struct gputop_stream
  type gputop_perf_tracepoint (line 290) | struct gputop_perf_tracepoint
  type gputop_client_context (line 291) | struct gputop_client_context
  type hash_entry (line 293) | struct hash_entry
  type gputop_perf_tracepoint (line 296) | struct gputop_perf_tracepoint
  type gputop_perf_tracepoint (line 298) | struct gputop_perf_tracepoint
  type gputop_perf_tracepoint (line 299) | struct gputop_perf_tracepoint
  function gputop_client_context_print_tracepoint_data (line 322) | void
  type parser_ctx (line 398) | struct parser_ctx {
  function update_tracepoint (line 419) | static void
  function add_tracepoint_stream_data (line 453) | static void
  function close_perf_tracepoint (line 524) | static void
  function open_perf_tracepoint (line 537) | static void
  function gputop_client_context_remove_tracepoint (line 567) | void
  function gputop_client_context_calc_busyness (line 584) | double
  function gputop_client_context_convert_gt_timestamp (line 595) | uint64_t
  type gputop_accumulated_samples (line 622) | struct gputop_accumulated_samples
  type gputop_client_context (line 623) | struct gputop_client_context
  type gputop_i915_perf_chunk (line 624) | struct gputop_i915_perf_chunk
  type drm_i915_perf_record_header (line 625) | struct drm_i915_perf_record_header
  type gputop_client_context (line 627) | struct gputop_client_context
  type gputop_accumulated_samples (line 628) | struct gputop_accumulated_samples
  function hw_context_update_process (line 630) | static void
  type gputop_hw_context (line 646) | struct gputop_hw_context
  type gputop_client_context (line 647) | struct gputop_client_context
  type hash_entry (line 649) | struct hash_entry
  type gputop_hw_context (line 652) | struct gputop_hw_context
  type gputop_hw_context (line 654) | struct gputop_hw_context
  type gputop_hw_context (line 662) | struct gputop_hw_context
  function put_hw_context (line 684) | static void
  function hw_context_add_time (line 710) | static void
  function hw_context_record_for_time (line 718) | static void
  type gputop_accumulated_samples (line 757) | struct gputop_accumulated_samples
  type gputop_client_context (line 758) | struct gputop_client_context
  type gputop_i915_perf_chunk (line 759) | struct gputop_i915_perf_chunk
  type drm_i915_perf_record_header (line 760) | struct drm_i915_perf_record_header
  type gputop_accumulated_samples (line 763) | struct gputop_accumulated_samples
  type gputop_accumulated_samples (line 766) | struct gputop_accumulated_samples
  function put_accumulated_sample (line 792) | static void
  function gputop_accumulated_samples_print (line 803) | void
  function gputop_client_context_read_counter_value (line 868) | double
  function i915_perf_record_for_time (line 892) | static void
  function i915_perf_record_for_hw_id (line 920) | static void
  function i915_perf_accumulate (line 953) | static void
  type gputop_metric_set (line 1065) | struct gputop_metric_set
  type gputop_client_context (line 1066) | struct gputop_client_context
  type hash_entry (line 1068) | struct hash_entry
  type gputop_metric_set (line 1070) | struct gputop_metric_set
  type gputop_metric_set (line 1073) | struct gputop_metric_set
  type gputop_client_context (line 1074) | struct gputop_client_context
  type gputop_metric_set (line 1077) | struct gputop_metric_set
  function build_equations_variables (line 1085) | static void
  function register_platform_metrics (line 1150) | static void
  function close_i915_perf_stream (line 1219) | static void
  function open_i915_perf_stream (line 1226) | static void
  function open_perf_events_streams (line 1263) | static void
  function close_perf_events_streams (line 1271) | static void
  function open_perf_tracepoints_streams (line 1280) | static void
  function close_perf_tracepoints_streams (line 1290) | static void
  function request_features (line 1299) | static void
  function add_cpu_stats (line 1311) | static bool
  function open_cpu_stats_stream (line 1346) | static void
  function gputop_client_context_update_cpu_stream (line 1370) | void gputop_client_context_update_cpu_stream(struct gputop_client_contex...
  function gputop_client_context_stop_sampling (line 1381) | void
  function gputop_client_context_start_sampling (line 1394) | void
  function handle_perf_data (line 1413) | static void
  function handle_i915_perf_data (line 1437) | static void
  function log_add (line 1450) | static void
  function handle_protobuf_message (line 1467) | static void
  function gputop_client_context_handle_data (line 1559) | void gputop_client_context_handle_data(struct gputop_client_context *ctx,
  function i915_perf_empty_samples (line 1588) | static void
  function delete_process_entry (line 1629) | static void
  function clear_perf_tracepoints_data (line 1638) | static void
  function gputop_client_context_clear_logs (line 1649) | void
  function gputop_client_context_init (line 1657) | void
  function gputop_client_context_reset (line 1703) | void

FILE: lib/gputop-client-context.h
  type gputop_i915_perf_chunk (line 47) | struct gputop_i915_perf_chunk {
  type gputop_accumulated_samples (line 56) | struct gputop_accumulated_samples
  type gputop_process_info (line 57) | struct gputop_process_info
  type gputop_hw_context (line 59) | struct gputop_hw_context {
  type gputop_accumulated_samples (line 85) | struct gputop_accumulated_samples {
  type gputop_cpu_stat (line 103) | struct gputop_cpu_stat {
  type gputop_stream (line 109) | struct gputop_stream {
  type gputop_perf_event (line 116) | struct gputop_perf_event {
  type gputop_perf_event_data (line 125) | struct gputop_perf_event_data {
  type gputop_perf_event_stream (line 135) | struct gputop_perf_event_stream {
  type gputop_perf_data_tracepoint (line 146) | struct gputop_perf_data_tracepoint {
  type gputop_perf_tracepoint (line 157) | struct gputop_perf_tracepoint {
  type gputop_perf_tracepoint_stream (line 183) | struct gputop_perf_tracepoint_stream {
  type gputop_perf_tracepoint_data (line 192) | struct gputop_perf_tracepoint_data {
  type gputop_process_info (line 202) | struct gputop_process_info {
  type gputop_client_context (line 210) | struct gputop_client_context
  type gputop_client_context (line 212) | struct gputop_client_context
  type gputop_hw_context (line 213) | struct gputop_hw_context
  type gputop_client_context (line 215) | struct gputop_client_context {
  type gputop_client_context (line 302) | struct gputop_client_context
  type gputop_metric_set_counter (line 303) | struct gputop_metric_set_counter
  type gputop_client_context (line 305) | struct gputop_client_context
  type gputop_metric_set_counter (line 306) | struct gputop_metric_set_counter
  type gputop_client_context (line 309) | struct gputop_client_context
  type gputop_client_context (line 310) | struct gputop_client_context
  type gputop_client_context (line 313) | struct gputop_client_context
  type gputop_client_context (line 316) | struct gputop_client_context
  type gputop_client_context (line 319) | struct gputop_client_context
  type gputop_client_context (line 320) | struct gputop_client_context
  type gputop_client_context (line 322) | struct gputop_client_context
  type gputop_metric_set (line 324) | struct gputop_metric_set
  type gputop_client_context (line 325) | struct gputop_client_context
  type gputop_metric_set (line 327) | struct gputop_metric_set
  type gputop_client_context (line 328) | struct gputop_client_context
  type gputop_perf_tracepoint (line 331) | struct gputop_perf_tracepoint
  type gputop_client_context (line 332) | struct gputop_client_context
  type gputop_client_context (line 334) | struct gputop_client_context
  type gputop_perf_tracepoint (line 335) | struct gputop_perf_tracepoint
  type gputop_client_context (line 337) | struct gputop_client_context
  type gputop_perf_tracepoint_data (line 339) | struct gputop_perf_tracepoint_data
  type gputop_client_context (line 342) | struct gputop_client_context
  type gputop_accumulated_samples (line 343) | struct gputop_accumulated_samples
  type gputop_metric_set_counter (line 344) | struct gputop_metric_set_counter
  type gputop_client_context (line 346) | struct gputop_client_context
  type gputop_client_context (line 349) | struct gputop_client_context
  type gputop_client_context (line 351) | struct gputop_client_context
  type gputop_accumulated_samples (line 352) | struct gputop_accumulated_samples
  type gputop_record_iterator (line 355) | struct gputop_record_iterator {
  function gputop_record_iterator_init (line 362) | static inline void
  function gputop_record_iterator_next (line 372) | static inline bool

FILE: lib/gputop-log.h
  type list_head (line 59) | struct list_head
  type gputop_log_level (line 61) | enum gputop_log_level {
  type gputop_log_entry (line 68) | struct gputop_log_entry {

FILE: lib/gputop-network.h
  type gputop_connection_t (line 37) | typedef struct _gputop_connection_t gputop_connection_t;

FILE: lib/gputop-oa-counters.c
  function gputop_time_to_oa_exponent (line 44) | uint32_t
  function gputop_u32_clock_init (line 58) | static void
  function gputop_u32_clock_get_time (line 69) | static uint64_t
  function gputop_u32_clock_progress (line 75) | static void
  function accumulate_uint32 (line 87) | static void
  function accumulate_uint40 (line 95) | static void
  function gputop_cc_oa_accumulate_reports (line 117) | bool
  function gputop_cc_oa_accumulator_clear (line 184) | void EMSCRIPTEN_KEEPALIVE
  function gputop_cc_oa_accumulator_init (line 192) | void

FILE: lib/gputop-oa-counters.h
  type gputop_u32_clock (line 45) | struct gputop_u32_clock {
  type gputop_cc_oa_accumulator (line 53) | struct gputop_cc_oa_accumulator
  type gputop_cc_oa_accumulator (line 67) | struct gputop_cc_oa_accumulator
  type gputop_devinfo (line 68) | struct gputop_devinfo
  type gputop_metric_set (line 69) | struct gputop_metric_set
  type gputop_cc_oa_accumulator (line 72) | struct gputop_cc_oa_accumulator
  type gputop_cc_oa_accumulator (line 73) | struct gputop_cc_oa_accumulator
  function gputop_time_scale_timebase (line 77) | static inline uint64_t
  function gputop_timebase_scale_ns (line 83) | static inline uint64_t
  function gputop_oa_exponent_to_period_ns (line 89) | static inline uint64_t
  type gputop_devinfo (line 95) | struct gputop_devinfo
  function gputop_cc_oa_report_ctx_is_valid (line 97) | static inline bool
  function gputop_cc_oa_report_get_ctx_id (line 114) | static inline uint32_t
  function gputop_cc_oa_report_get_timestamp (line 123) | static inline uint64_t
  type gputop_devinfo (line 130) | struct gputop_devinfo
  type gputop_i915_perf_configuration (line 155) | struct gputop_i915_perf_configuration {
  type gputop_i915_perf_field (line 161) | enum gputop_i915_perf_field {
  function gputop_i915_perf_record_max_size (line 167) | static inline uint64_t
  type gputop_i915_perf_configuration (line 183) | struct gputop_i915_perf_configuration
  type drm_i915_perf_record_header (line 184) | struct drm_i915_perf_record_header
  type gputop_i915_perf_field (line 185) | enum gputop_i915_perf_field
  function gputop_i915_perf_record_timestamp (line 209) | static inline uint32_t
  type gputop_i915_perf_configuration (line 223) | struct gputop_i915_perf_configuration
  type gputop_devinfo (line 224) | struct gputop_devinfo
  type drm_i915_perf_record_header (line 225) | struct drm_i915_perf_record_header

FILE: lib/gputop-oa-metrics.c
  type gputop_gen (line 34) | struct gputop_gen
  type gen_device_info (line 35) | struct gen_device_info
  type gputop_devinfo (line 37) | struct gputop_devinfo
  type gputop_counter_group (line 90) | struct gputop_counter_group
  type gputop_gen (line 91) | struct gputop_gen
  type gputop_counter_group (line 92) | struct gputop_counter_group
  type gputop_counter_group (line 95) | struct gputop_counter_group
  type gputop_gen (line 110) | struct gputop_gen
  type gputop_gen (line 113) | struct gputop_gen
  function gputop_gen_add_counter (line 125) | void
  function gputop_gen_add_metric_set (line 162) | void

FILE: lib/gputop-oa-metrics.h
  type gputop_devtopology (line 39) | struct gputop_devtopology {
  type gputop_devinfo (line 53) | struct gputop_devinfo {
  type gputop_counter_data_type_t (line 84) | typedef enum {
  type gputop_counter_type_t (line 92) | typedef enum {
  type gputop_counter_units_t (line 101) | typedef enum {
  type gputop_metric_set (line 139) | struct gputop_metric_set
  type gputop_metric_set_counter (line 140) | struct gputop_metric_set_counter {
  type gputop_register_prog (line 169) | struct gputop_register_prog {
  type gputop_metric_set (line 174) | struct gputop_metric_set {
  type gputop_counter_group (line 204) | struct gputop_counter_group {
  type gputop_gen (line 213) | struct gputop_gen {
  type gputop_gen (line 223) | struct gputop_gen
  type gen_device_info (line 223) | struct gen_device_info
  type gputop_gen (line 225) | struct gputop_gen
  type gputop_gen (line 227) | struct gputop_gen
  type gputop_metric_set_counter (line 228) | struct gputop_metric_set_counter
  type gputop_gen (line 231) | struct gputop_gen
  type gputop_metric_set (line 232) | struct gputop_metric_set

FILE: lib/gputop-util.h
  type array (line 79) | struct array
  type array (line 91) | struct array
  type array (line 94) | struct array
  type array (line 94) | struct array
  type array (line 94) | struct array
  function array_free (line 104) | static inline void
  function array_set_len (line 111) | static inline void
  function array_remove_fast (line 125) | static inline void
  function array_append (line 140) | static inline void
  function string_rstrip (line 153) | static inline void

FILE: mesa/include/c11/threads_posix.h
  type pthread_cond_t (line 65) | typedef pthread_cond_t  cnd_t;
  type pthread_t (line 66) | typedef pthread_t       thrd_t;
  type pthread_key_t (line 67) | typedef pthread_key_t   tss_t;
  type pthread_mutex_t (line 68) | typedef pthread_mutex_t mtx_t;
  type pthread_once_t (line 69) | typedef pthread_once_t  once_flag;
  type impl_thrd_param (line 77) | struct impl_thrd_param {
  type impl_thrd_param (line 85) | struct impl_thrd_param
  type impl_thrd_param (line 85) | struct impl_thrd_param
  function call_once (line 93) | static inline void
  function cnd_broadcast (line 102) | static inline int
  function cnd_destroy (line 110) | static inline void
  function cnd_init (line 118) | static inline int
  function cnd_signal (line 126) | static inline int
  function cnd_timedwait (line 134) | static inline int
  function cnd_wait (line 150) | static inline int
  function mtx_destroy (line 161) | static inline void
  function mtx_init (line 195) | static inline int
  function mtx_lock (line 219) | static inline int
  function mtx_timedlock (line 233) | static inline int
  function mtx_trylock (line 262) | static inline int
  function mtx_unlock (line 270) | static inline int
  function thrd_create (line 280) | static inline int
  function thrd_t (line 297) | static inline thrd_t
  function thrd_detach (line 304) | static inline int
  function thrd_equal (line 311) | static inline int
  function thrd_exit (line 318) | static inline void
  function thrd_join (line 325) | static inline int
  function thrd_sleep (line 337) | static inline void
  function thrd_yield (line 345) | static inline void
  function tss_create (line 354) | static inline int
  function tss_delete (line 362) | static inline void
  function tss_set (line 376) | static inline int
  function timespec_get (line 386) | static inline int

FILE: mesa/include/c11/threads_win32.h
  type cnd_t (line 95) | typedef struct cnd_t {
  type HANDLE (line 108) | typedef HANDLE thrd_t;
  type DWORD (line 110) | typedef DWORD tss_t;
  type CRITICAL_SECTION (line 112) | typedef CRITICAL_SECTION mtx_t;
  type INIT_ONCE (line 115) | typedef INIT_ONCE once_flag;
  type once_flag (line 117) | typedef struct once_flag_t {
  type impl_thrd_param (line 137) | struct impl_thrd_param {
  function impl_thrd_routine (line 142) | static unsigned __stdcall impl_thrd_routine(void *p)
  function DWORD (line 153) | static DWORD impl_timespec2msec(const struct timespec *ts)
  type impl_call_once_param (line 159) | struct impl_call_once_param { void (*func)(void); }
  function BOOL (line 160) | static BOOL CALLBACK impl_call_once_callback(PINIT_ONCE InitOnce, PVOID ...
  function impl_cond_do_signal (line 175) | static void impl_cond_do_signal(cnd_t *cond, int broadcast)
  function impl_cond_do_wait (line 213) | static int impl_cond_do_wait(cnd_t *cond, mtx_t *mtx, const struct times...
  type impl_tss_dtor_entry (line 266) | struct impl_tss_dtor_entry {
  function impl_tss_dtor_register (line 271) | static int impl_tss_dtor_register(tss_t key, tss_dtor_t dtor)
  function impl_tss_dtor_invoke (line 285) | static void impl_tss_dtor_invoke()
  function call_once (line 300) | static inline void
  function cnd_broadcast (line 326) | static inline int
  function cnd_destroy (line 339) | static inline void
  function cnd_init (line 353) | static inline int
  function cnd_signal (line 371) | static inline int
  function cnd_timedwait (line 384) | static inline int
  function cnd_wait (line 398) | static inline int
  function mtx_destroy (line 413) | static inline void
  function mtx_init (line 421) | static inline int
  function mtx_lock (line 435) | static inline int
  function mtx_timedlock (line 444) | static inline int
  function mtx_trylock (line 462) | static inline int
  function mtx_unlock (line 470) | static inline int
  function thrd_create (line 481) | static inline int
  function thrd_t (line 503) | static inline thrd_t
  function thrd_detach (line 543) | static inline int
  function thrd_equal (line 551) | static inline int
  function thrd_exit (line 558) | static inline void
  function thrd_join (line 566) | static inline int
  function thrd_sleep (line 585) | static inline void
  function thrd_yield (line 594) | static inline void
  function tss_create (line 603) | static inline int
  function tss_delete (line 618) | static inline void
  function tss_set (line 632) | static inline int
  function timespec_get (line 642) | static inline int

FILE: mesa/include/c99_math.h
  function lrint (line 52) | static inline long int
  function lrintf (line 65) | static inline long int
  function llrint (line 78) | static inline long long int
  function llrintf (line 91) | static inline long long int
  function exp2f (line 104) | static inline float
  function exp2 (line 110) | static inline double
  function fpclassify (line 157) | static inline enum {FP_NAN, FP_INFINITE, FP_ZERO, FP_SUBNORMAL, FP_NORMAL}

FILE: mesa/include/drm-uapi/drm.h
  type drm_handle_t (line 43) | typedef unsigned int drm_handle_t;
  type __s8 (line 54) | typedef int8_t   __s8;
  type __u8 (line 55) | typedef uint8_t  __u8;
  type __s16 (line 56) | typedef int16_t  __s16;
  type __u16 (line 57) | typedef uint16_t __u16;
  type __s32 (line 58) | typedef int32_t  __s32;
  type __u32 (line 59) | typedef uint32_t __u32;
  type __s64 (line 60) | typedef int64_t  __s64;
  type __u64 (line 61) | typedef uint64_t __u64;
  type __kernel_size_t (line 62) | typedef size_t   __kernel_size_t;
  type drm_handle_t (line 63) | typedef unsigned long drm_handle_t;
  type drm_context_t (line 82) | typedef unsigned int drm_context_t;
  type drm_drawable_t (line 83) | typedef unsigned int drm_drawable_t;
  type drm_magic_t (line 84) | typedef unsigned int drm_magic_t;
  type drm_clip_rect (line 95) | struct drm_clip_rect {
  type drm_drawable_info (line 105) | struct drm_drawable_info {
  type drm_tex_region (line 113) | struct drm_tex_region {
  type drm_hw_lock (line 128) | struct drm_hw_lock {
  type drm_version (line 138) | struct drm_version {
  type drm_unique (line 155) | struct drm_unique {
  type drm_list (line 160) | struct drm_list {
  type drm_block (line 165) | struct drm_block {
  type drm_control (line 174) | struct drm_control {
  type drm_map_type (line 187) | enum drm_map_type {
  type drm_map_flags (line 199) | enum drm_map_flags {
  type drm_ctx_priv_map (line 210) | struct drm_ctx_priv_map {
  type drm_map (line 221) | struct drm_map {
  type drm_client (line 235) | struct drm_client {
  type drm_stat_type (line 244) | enum drm_stat_type {
  type drm_stats (line 267) | struct drm_stats {
  type drm_lock_flags (line 278) | enum drm_lock_flags {
  type drm_lock (line 295) | struct drm_lock {
  type drm_dma_flags (line 308) | enum drm_dma_flags {
  type drm_buf_desc (line 334) | struct drm_buf_desc {
  type drm_buf_info (line 355) | struct drm_buf_info {
  type drm_buf_free (line 363) | struct drm_buf_free {
  type drm_buf_pub (line 373) | struct drm_buf_pub {
  type drm_buf_map (line 383) | struct drm_buf_map {
  type drm_dma (line 400) | struct drm_dma {
  type drm_ctx_flags (line 413) | enum drm_ctx_flags {
  type drm_ctx (line 423) | struct drm_ctx {
  type drm_ctx_res (line 431) | struct drm_ctx_res {
  type drm_draw (line 439) | struct drm_draw {
  type drm_drawable_info_type_t (line 446) | typedef enum {
  type drm_update_draw (line 450) | struct drm_update_draw {
  type drm_auth (line 460) | struct drm_auth {
  type drm_irq_busid (line 469) | struct drm_irq_busid {
  type drm_vblank_seq_type (line 476) | enum drm_vblank_seq_type {
  type drm_wait_vblank_request (line 493) | struct drm_wait_vblank_request {
  type drm_wait_vblank_reply (line 499) | struct drm_wait_vblank_reply {
  type drm_wait_vblank_request (line 512) | struct drm_wait_vblank_request
  type drm_wait_vblank_reply (line 513) | struct drm_wait_vblank_reply
  type drm_modeset_ctl (line 524) | struct drm_modeset_ctl {
  type drm_agp_mode (line 534) | struct drm_agp_mode {
  type drm_agp_buffer (line 543) | struct drm_agp_buffer {
  type drm_agp_binding (line 555) | struct drm_agp_binding {
  type drm_agp_info (line 567) | struct drm_agp_info {
  type drm_scatter_gather (line 584) | struct drm_scatter_gather {
  type drm_set_version (line 592) | struct drm_set_version {
  type drm_gem_close (line 600) | struct drm_gem_close {
  type drm_gem_flink (line 607) | struct drm_gem_flink {
  type drm_gem_open (line 616) | struct drm_gem_open {
  type drm_get_cap (line 654) | struct drm_get_cap {
  type drm_set_client_cap (line 700) | struct drm_set_client_cap {
  type drm_prime_handle (line 707) | struct drm_prime_handle {
  type drm_syncobj_create (line 717) | struct drm_syncobj_create {
  type drm_syncobj_destroy (line 723) | struct drm_syncobj_destroy {
  type drm_syncobj_handle (line 730) | struct drm_syncobj_handle {
  type drm_syncobj_transfer (line 738) | struct drm_syncobj_transfer {
  type drm_syncobj_wait (line 750) | struct drm_syncobj_wait {
  type drm_syncobj_timeline_wait (line 760) | struct drm_syncobj_timeline_wait {
  type drm_syncobj_array (line 773) | struct drm_syncobj_array {
  type drm_syncobj_timeline_array (line 779) | struct drm_syncobj_timeline_array {
  type drm_crtc_get_sequence (line 788) | struct drm_crtc_get_sequence {
  type drm_crtc_queue_sequence (line 802) | struct drm_crtc_queue_sequence {
  type drm_event (line 971) | struct drm_event {
  type drm_event_vblank (line 980) | struct drm_event_vblank {
  type drm_event_crtc_sequence (line 992) | struct drm_event_crtc_sequence {
  type drm_clip_rect_t (line 1000) | typedef struct drm_clip_rect drm_clip_rect_t;
  type drm_drawable_info_t (line 1001) | typedef struct drm_drawable_info drm_drawable_info_t;
  type drm_tex_region_t (line 1002) | typedef struct drm_tex_region drm_tex_region_t;
  type drm_hw_lock_t (line 1003) | typedef struct drm_hw_lock drm_hw_lock_t;
  type drm_version_t (line 1004) | typedef struct drm_version drm_version_t;
  type drm_unique_t (line 1005) | typedef struct drm_unique drm_unique_t;
  type drm_list_t (line 1006) | typedef struct drm_list drm_list_t;
  type drm_block_t (line 1007) | typedef struct drm_block drm_block_t;
  type drm_control_t (line 1008) | typedef struct drm_control drm_control_t;
  type drm_map_type_t (line 1009) | typedef enum drm_map_type drm_map_type_t;
  type drm_map_flags_t (line 1010) | typedef enum drm_map_flags drm_map_flags_t;
  type drm_ctx_priv_map_t (line 1011) | typedef struct drm_ctx_priv_map drm_ctx_priv_map_t;
  type drm_map_t (line 1012) | typedef struct drm_map drm_map_t;
  type drm_client_t (line 1013) | typedef struct drm_client drm_client_t;
  type drm_stat_type_t (line 1014) | typedef enum drm_stat_type drm_stat_type_t;
  type drm_stats_t (line 1015) | typedef struct drm_stats drm_stats_t;
  type drm_lock_flags_t (line 1016) | typedef enum drm_lock_flags drm_lock_flags_t;
  type drm_lock_t (line 1017) | typedef struct drm_lock drm_lock_t;
  type drm_dma_flags_t (line 1018) | typedef enum drm_dma_flags drm_dma_flags_t;
  type drm_buf_desc_t (line 1019) | typedef struct drm_buf_desc drm_buf_desc_t;
  type drm_buf_info_t (line 1020) | typedef struct drm_buf_info drm_buf_info_t;
  type drm_buf_free_t (line 1021) | typedef struct drm_buf_free drm_buf_free_t;
  type drm_buf_pub_t (line 1022) | typedef struct drm_buf_pub drm_buf_pub_t;
  type drm_buf_map_t (line 1023) | typedef struct drm_buf_map drm_buf_map_t;
  type drm_dma_t (line 1024) | typedef struct drm_dma drm_dma_t;
  type drm_wait_vblank_t (line 1025) | typedef union drm_wait_vblank drm_wait_vblank_t;
  type drm_agp_mode_t (line 1026) | typedef struct drm_agp_mode drm_agp_mode_t;
  type drm_ctx_flags_t (line 1027) | typedef enum drm_ctx_flags drm_ctx_flags_t;
  type drm_ctx_t (line 1028) | typedef struct drm_ctx drm_ctx_t;
  type drm_ctx_res_t (line 1029) | typedef struct drm_ctx_res drm_ctx_res_t;
  type drm_draw_t (line 1030) | typedef struct drm_draw drm_draw_t;
  type drm_update_draw_t (line 1031) | typedef struct drm_update_draw drm_update_draw_t;
  type drm_auth_t (line 1032) | typedef struct drm_auth drm_auth_t;
  type drm_irq_busid_t (line 1033) | typedef struct drm_irq_busid drm_irq_busid_t;
  type drm_vblank_seq_type_t (line 1034) | typedef enum drm_vblank_seq_type drm_vblank_seq_type_t;
  type drm_agp_buffer_t (line 1036) | typedef struct drm_agp_buffer drm_agp_buffer_t;
  type drm_agp_binding_t (line 1037) | typedef struct drm_agp_binding drm_agp_binding_t;
  type drm_agp_info_t (line 1038) | typedef struct drm_agp_info drm_agp_info_t;
  type drm_scatter_gather_t (line 1039) | typedef struct drm_scatter_gather drm_scatter_gather_t;
  type drm_set_version_t (line 1040) | typedef struct drm_set_version drm_set_version_t;

FILE: mesa/include/drm-uapi/drm_mode.h
  type drm_mode_modeinfo (line 221) | struct drm_mode_modeinfo {
  type drm_mode_card_res (line 241) | struct drm_mode_card_res {
  type drm_mode_crtc (line 256) | struct drm_mode_crtc {
  type drm_mode_set_plane (line 275) | struct drm_mode_set_plane {
  type drm_mode_get_plane (line 294) | struct drm_mode_get_plane {
  type drm_mode_get_plane_res (line 307) | struct drm_mode_get_plane_res {
  type drm_mode_get_encoder (line 322) | struct drm_mode_get_encoder {
  type drm_mode_subconnector (line 334) | enum drm_mode_subconnector {
  type drm_mode_get_connector (line 366) | struct drm_mode_get_connector {
  type drm_mode_property_enum (line 419) | struct drm_mode_property_enum {
  type drm_mode_get_property (line 424) | struct drm_mode_get_property {
  type drm_mode_connector_set_property (line 438) | struct drm_mode_connector_set_property {
  type drm_mode_obj_get_properties (line 454) | struct drm_mode_obj_get_properties {
  type drm_mode_obj_set_property (line 462) | struct drm_mode_obj_set_property {
  type drm_mode_get_blob (line 469) | struct drm_mode_get_blob {
  type drm_mode_fb_cmd (line 475) | struct drm_mode_fb_cmd {
  type drm_mode_fb_cmd2 (line 489) | struct drm_mode_fb_cmd2 {
  type drm_mode_fb_dirty_cmd (line 559) | struct drm_mode_fb_dirty_cmd {
  type drm_mode_mode_cmd (line 567) | struct drm_mode_mode_cmd {
  type drm_mode_cursor (line 590) | struct drm_mode_cursor {
  type drm_mode_cursor2 (line 601) | struct drm_mode_cursor2 {
  type drm_mode_crtc_lut (line 614) | struct drm_mode_crtc_lut {
  type drm_color_ctm (line 624) | struct drm_color_ctm {
  type drm_color_lut (line 632) | struct drm_color_lut {
  type hdr_metadata_infoframe (line 652) | struct hdr_metadata_infoframe {
  type hdr_output_metadata (line 716) | struct hdr_output_metadata {
  type drm_mode_crtc_page_flip (line 763) | struct drm_mode_crtc_page_flip {
  type drm_mode_crtc_page_flip_target (line 791) | struct drm_mode_crtc_page_flip_target {
  type drm_mode_create_dumb (line 800) | struct drm_mode_create_dumb {
  type drm_mode_map_dumb (line 812) | struct drm_mode_map_dumb {
  type drm_mode_destroy_dumb (line 824) | struct drm_mode_destroy_dumb {
  type drm_mode_atomic (line 840) | struct drm_mode_atomic {
  type drm_format_modifier_blob (line 851) | struct drm_format_modifier_blob {
  type drm_format_modifier (line 875) | struct drm_format_modifier {
  type drm_mode_create_blob (line 909) | struct drm_mode_create_blob {
  type drm_mode_destroy_blob (line 923) | struct drm_mode_destroy_blob {
  type drm_mode_create_lease (line 936) | struct drm_mode_create_lease {
  type drm_mode_list_lessees (line 957) | struct drm_mode_list_lessees {
  type drm_mode_get_lease (line 981) | struct drm_mode_get_lease {
  type drm_mode_revoke_lease (line 1003) | struct drm_mode_revoke_lease {
  type drm_mode_rect (line 1021) | struct drm_mode_rect {

FILE: mesa/include/drm-uapi/i915_drm.h
  type i915_user_extension (line 80) | struct i915_user_extension {
  type i915_mocs_table_index (line 91) | enum i915_mocs_table_index {
  type drm_i915_gem_engine_class (line 118) | enum drm_i915_gem_engine_class {
  type i915_engine_class_instance (line 136) | struct i915_engine_class_instance {
  type drm_i915_pmu_engine_sample (line 148) | enum drm_i915_pmu_engine_sample {
  type drm_i915_init_t (line 189) | typedef struct _drm_i915_init {
  type drm_i915_sarea_t (line 213) | typedef struct _drm_i915_sarea {
  type drm_i915_batchbuffer_t (line 428) | typedef struct drm_i915_batchbuffer {
  type drm_i915_cmdbuffer_t (line 440) | typedef struct _drm_i915_cmdbuffer {
  type drm_i915_irq_emit_t (line 451) | typedef struct drm_i915_irq_emit {
  type drm_i915_irq_wait_t (line 455) | typedef struct drm_i915_irq_wait {
  type drm_i915_getparam_t (line 623) | typedef struct drm_i915_getparam {
  type drm_i915_setparam_t (line 640) | typedef struct drm_i915_setparam {
  type drm_i915_mem_alloc_t (line 649) | typedef struct drm_i915_mem_alloc {
  type drm_i915_mem_free_t (line 656) | typedef struct drm_i915_mem_free {
  type drm_i915_mem_init_heap_t (line 661) | typedef struct drm_i915_mem_init_heap {
  type drm_i915_mem_destroy_heap_t (line 670) | typedef struct drm_i915_mem_destroy_heap {
  type drm_i915_vblank_pipe_t (line 679) | typedef struct drm_i915_vblank_pipe {
  type drm_i915_vblank_swap_t (line 685) | typedef struct drm_i915_vblank_swap {
  type drm_i915_hws_addr_t (line 691) | typedef struct drm_i915_hws_addr {
  type drm_i915_gem_init (line 695) | struct drm_i915_gem_init {
  type drm_i915_gem_create (line 708) | struct drm_i915_gem_create {
  type drm_i915_gem_pread (line 724) | struct drm_i915_gem_pread {
  type drm_i915_gem_pwrite (line 740) | struct drm_i915_gem_pwrite {
  type drm_i915_gem_mmap (line 756) | struct drm_i915_gem_mmap {
  type drm_i915_gem_mmap_gtt (line 784) | struct drm_i915_gem_mmap_gtt {
  type drm_i915_gem_set_domain (line 796) | struct drm_i915_gem_set_domain {
  type drm_i915_gem_sw_finish (line 807) | struct drm_i915_gem_sw_finish {
  type drm_i915_gem_relocation_entry (line 812) | struct drm_i915_gem_relocation_entry {
  type drm_i915_gem_exec_object (line 882) | struct drm_i915_gem_exec_object {
  type drm_i915_gem_execbuffer (line 907) | struct drm_i915_gem_execbuffer {
  type drm_i915_gem_exec_object2 (line 932) | struct drm_i915_gem_exec_object2 {
  type drm_i915_gem_exec_fence (line 1005) | struct drm_i915_gem_exec_fence {
  type drm_i915_gem_execbuffer2 (line 1017) | struct drm_i915_gem_execbuffer2 {
  type drm_i915_gem_pin (line 1160) | struct drm_i915_gem_pin {
  type drm_i915_gem_unpin (line 1172) | struct drm_i915_gem_unpin {
  type drm_i915_gem_busy (line 1178) | struct drm_i915_gem_busy {
  type drm_i915_gem_caching (line 1258) | struct drm_i915_gem_caching {
  type drm_i915_gem_set_tiling (line 1288) | struct drm_i915_gem_set_tiling {
  type drm_i915_gem_get_tiling (line 1319) | struct drm_i915_gem_get_tiling {
  type drm_i915_gem_get_aperture (line 1342) | struct drm_i915_gem_get_aperture {
  type drm_i915_get_pipe_from_crtc_id (line 1353) | struct drm_i915_get_pipe_from_crtc_id {
  type drm_i915_gem_madvise (line 1365) | struct drm_i915_gem_madvise {
  type drm_intel_overlay_put_image (line 1402) | struct drm_intel_overlay_put_image {
  type drm_intel_overlay_attrs (line 1431) | struct drm_intel_overlay_attrs {
  type drm_intel_sprite_colorkey (line 1471) | struct drm_intel_sprite_colorkey {
  type drm_i915_gem_wait (line 1479) | struct drm_i915_gem_wait {
  type drm_i915_gem_context_create (line 1487) | struct drm_i915_gem_context_create {
  type drm_i915_gem_context_create_ext (line 1492) | struct drm_i915_gem_context_create_ext {
  type drm_i915_gem_context_param (line 1502) | struct drm_i915_gem_context_param {
  type drm_i915_gem_context_param_sseu (line 1601) | struct drm_i915_gem_context_param_sseu {
  type i915_context_engines_load_balance (line 1655) | struct i915_context_engines_load_balance {
  type i915_context_engines_bond (line 1691) | struct i915_context_engines_bond {
  type i915_context_param_engines (line 1715) | struct i915_context_param_engines {
  type drm_i915_gem_context_create_ext_setparam (line 1727) | struct drm_i915_gem_context_create_ext_setparam {
  type drm_i915_gem_context_create_ext_clone (line 1733) | struct drm_i915_gem_context_create_ext_clone {
  type drm_i915_gem_context_destroy (line 1748) | struct drm_i915_gem_context_destroy {
  type drm_i915_gem_vm_control (line 1774) | struct drm_i915_gem_vm_control {
  type drm_i915_reg_read (line 1780) | struct drm_i915_reg_read {
  type drm_i915_reset_stats (line 1802) | struct drm_i915_reset_stats {
  type drm_i915_gem_userptr (line 1818) | struct drm_i915_gem_userptr {
  type drm_i915_oa_format (line 1832) | enum drm_i915_oa_format {
  type drm_i915_perf_property_id (line 1849) | enum drm_i915_perf_property_id {
  type drm_i915_perf_open_param (line 1925) | struct drm_i915_perf_open_param {
  type drm_i915_perf_record_header (line 1980) | struct drm_i915_perf_record_header {
  type drm_i915_perf_record_type (line 1986) | enum drm_i915_perf_record_type {
  type drm_i915_perf_oa_config (line 2028) | struct drm_i915_perf_oa_config {
  type drm_i915_query_item (line 2046) | struct drm_i915_query_item {
  type drm_i915_query (line 2083) | struct drm_i915_query {
  type drm_i915_query_topology_info (line 2126) | struct drm_i915_query_topology_info {
  type drm_i915_engine_info (line 2165) | struct drm_i915_engine_info {
  type drm_i915_query_engine_info (line 2190) | struct drm_i915_query_engine_info {
  type drm_i915_query_perf_config (line 2204) | struct drm_i915_query_perf_config {

FILE: mesa/include/drm-uapi/vc4_drm.h
  type drm_vc4_submit_rcl_surface (line 65) | struct drm_vc4_submit_rcl_surface {
  type drm_vc4_submit_cl (line 91) | struct drm_vc4_submit_cl {
  type drm_vc4_wait_seqno (line 207) | struct drm_vc4_wait_seqno {
  type drm_vc4_wait_bo (line 220) | struct drm_vc4_wait_bo {
  type drm_vc4_create_bo (line 232) | struct drm_vc4_create_bo {
  type drm_vc4_mmap_bo (line 251) | struct drm_vc4_mmap_bo {
  type drm_vc4_create_shader_bo (line 267) | struct drm_vc4_create_shader_bo {
  type drm_vc4_get_hang_state_bo (line 282) | struct drm_vc4_get_hang_state_bo {
  type drm_vc4_get_hang_state (line 293) | struct drm_vc4_get_hang_state {
  type drm_vc4_get_param (line 335) | struct drm_vc4_get_param {
  type drm_vc4_get_tiling (line 341) | struct drm_vc4_get_tiling {
  type drm_vc4_set_tiling (line 347) | struct drm_vc4_set_tiling {
  type drm_vc4_label_bo (line 356) | struct drm_vc4_label_bo {
  type drm_vc4_gem_madvise (line 371) | struct drm_vc4_gem_madvise {
  type drm_vc4_perfmon_create (line 414) | struct drm_vc4_perfmon_create {
  type drm_vc4_perfmon_destroy (line 420) | struct drm_vc4_perfmon_destroy {
  type drm_vc4_perfmon_get_values (line 433) | struct drm_vc4_perfmon_get_values {

FILE: mesa/src/compiler/shader_enums.h
  type gl_shader_stage (line 42) | typedef enum
  function gl_shader_stage_is_compute (line 55) | static inline bool
  type gl_state_index16 (line 67) | typedef short gl_state_index16;
  type gl_vert_attrib (line 101) | typedef enum
  type gl_varying_slot (line 228) | typedef enum
  type gl_system_value (line 359) | typedef enum
  type glsl_interp_mode (line 641) | enum glsl_interp_mode
  type glsl_interface_packing (line 650) | enum glsl_interface_packing {
  type glsl_interp_mode (line 657) | enum glsl_interp_mode
  type gl_frag_result (line 662) | typedef enum
  type gl_frag_depth_layout (line 700) | enum gl_frag_depth_layout
  type gl_access_qualifier (line 712) | enum gl_access_qualifier
  type gl_advanced_blend_mode (line 727) | enum gl_advanced_blend_mode
  type gl_tess_spacing (line 750) | enum gl_tess_spacing
  type compare_func (line 763) | enum compare_func
  type gl_derivative_group (line 810) | enum gl_derivative_group {

FILE: mesa/src/intel/common/gen_gem.h
  function gen_canonical_address (line 32) | static inline uint64_t
  function gen_48b_address (line 53) | static inline uint64_t
  function gen_ioctl (line 63) | static inline int

FILE: mesa/src/intel/dev/gen_device_info.c
  function gen_device_name_to_pci_device_id (line 43) | int
  function get_pci_device_id_override (line 86) | static int
  type gen_device_info (line 100) | struct gen_device_info
  type gen_device_info (line 117) | struct gen_device_info
  type gen_device_info (line 137) | struct gen_device_info
  type gen_device_info (line 156) | struct gen_device_info
  type gen_device_info (line 185) | struct gen_device_info
  type gen_device_info (line 224) | struct gen_device_info
  type gen_device_info (line 253) | struct gen_device_info
  type gen_device_info (line 283) | struct gen_device_info
  type gen_device_info (line 319) | struct gen_device_info
  type gen_device_info (line 348) | struct gen_device_info
  type gen_device_info (line 377) | struct gen_device_info
  type gen_device_info (line 429) | struct gen_device_info
  type gen_device_info (line 453) | struct gen_device_info
  type gen_device_info (line 477) | struct gen_device_info
  type gen_device_info (line 501) | struct gen_device_info
  type gen_device_info (line 615) | struct gen_device_info
  type gen_device_info (line 630) | struct gen_device_info
  type gen_device_info (line 640) | struct gen_device_info
  type gen_device_info (line 650) | struct gen_device_info
  type gen_device_info (line 669) | struct gen_device_info
  type gen_device_info (line 676) | struct gen_device_info
  type gen_device_info (line 687) | struct gen_device_info
  type gen_device_info (line 705) | struct gen_device_info
  type gen_device_info (line 718) | struct gen_device_info
  type gen_device_info (line 730) | struct gen_device_info
  type gen_device_info (line 742) | struct gen_device_info
  type gen_device_info (line 765) | struct gen_device_info
  type gen_device_info (line 772) | struct gen_device_info
  type gen_device_info (line 779) | struct gen_device_info
  type gen_device_info (line 795) | struct gen_device_info
  type gen_device_info (line 807) | struct gen_device_info
  type gen_device_info (line 854) | struct gen_device_info
  type gen_device_info (line 861) | struct gen_device_info
  type gen_device_info (line 868) | struct gen_device_info
  type gen_device_info (line 875) | struct gen_device_info
  type gen_device_info (line 913) | struct gen_device_info
  type gen_device_info (line 922) | struct gen_device_info
  type gen_device_info (line 931) | struct gen_device_info
  type gen_device_info (line 940) | struct gen_device_info
  type gen_device_info (line 949) | struct gen_device_info
  type gen_device_info (line 971) | struct gen_device_info
  type gen_device_info (line 994) | struct gen_device_info
  function gen_device_info_set_eu_mask (line 1015) | static void
  function fill_masks (line 1038) | static void
  function reset_masks (line 1066) | static void
  function update_from_topology (line 1083) | static void
  function update_from_masks (line 1146) | static bool
  function getparam (line 1206) | static bool
  function gen_get_device_info_from_pci_id (line 1224) | bool
  function getparam_topology (line 1294) | static bool
  function query_topology (line 1315) | static bool
  function gen_get_device_info_from_fd (line 1348) | bool

FILE: mesa/src/intel/dev/gen_device_info.h
  type drm_i915_query_topology_info (line 37) | struct drm_i915_query_topology_info
  type gen_device_info (line 47) | struct gen_device_info
  function gen_device_info_subslice_available (line 274) | static inline bool
  function gen_device_info_timebase_scale (line 285) | static inline uint64_t
  type gen_device_info (line 292) | struct gen_device_info
  type gen_device_info (line 294) | struct gen_device_info

FILE: mesa/src/mesa/main/hash.h
  type GLuint (line 36) | typedef unsigned int GLuint;
  type GLboolean (line 37) | typedef bool GLboolean;
  function uint_key_compare (line 78) | static inline bool
  function uint_hash (line 84) | static inline uint32_t
  function uint_key_hash (line 90) | static inline uint32_t
  type _mesa_HashTable (line 106) | struct _mesa_HashTable {
  type _mesa_HashTable (line 115) | struct _mesa_HashTable
  type _mesa_HashTable (line 117) | struct _mesa_HashTable
  type _mesa_HashTable (line 119) | struct _mesa_HashTable
  type _mesa_HashTable (line 121) | struct _mesa_HashTable
  type _mesa_HashTable (line 123) | struct _mesa_HashTable
  function _mesa_HashLockMutex (line 134) | static inline void
  function _mesa_HashUnlockMutex (line 147) | static inline void
  type _mesa_HashTable (line 154) | struct _mesa_HashTable
  type _mesa_HashTable (line 156) | struct _mesa_HashTable
  type _mesa_HashTable (line 159) | struct _mesa_HashTable
  type _mesa_HashTable (line 162) | struct _mesa_HashTable
  type _mesa_HashTable (line 167) | struct _mesa_HashTable
  type _mesa_HashTable (line 172) | struct _mesa_HashTable
  type _mesa_HashTable (line 176) | struct _mesa_HashTable
  type _mesa_HashTable (line 178) | struct _mesa_HashTable
  type _mesa_HashTable (line 181) | struct _mesa_HashTable

FILE: mesa/src/util/bitscan.c
  function ffs (line 34) | int
  function ffsll (line 65) | int

FILE: mesa/src/util/bitscan.h
  function ffs (line 59) | static inline
  function ffsll (line 76) | static inline int
  function u_bit_scan (line 99) | static inline int
  function u_bit_scan64 (line 107) | static inline int
  function util_is_power_of_two_or_zero (line 120) | static inline bool
  function util_is_power_of_two_or_zero64 (line 131) | static inline bool
  function util_is_power_of_two_nonzero (line 142) | static inline bool
  function u_bit_scan_consecutive_range (line 173) | static inline void
  function u_bit_scan_consecutive_range64 (line 187) | static inline void
  function util_last_bit (line 207) | static inline unsigned
  function util_last_bit64 (line 233) | static inline unsigned
  function util_last_bit_signed (line 259) | static inline unsigned
  function u_bit_consecutive (line 271) | static inline unsigned
  function u_bit_consecutive64 (line 280) | static inline uint64_t

FILE: mesa/src/util/bitset.h
  function __bitset_ffs (line 85) | static inline int
  function __bitset_next_set (line 100) | static inline unsigned

FILE: mesa/src/util/hash_table.c
  function entry_is_free (line 95) | static int
  function entry_is_deleted (line 101) | static int
  function entry_is_present (line 107) | static int
  function _mesa_hash_table_init (line 113) | bool
  type hash_table (line 135) | struct hash_table
  type hash_table (line 141) | struct hash_table
  type hash_table (line 158) | struct hash_table
  type hash_table (line 159) | struct hash_table
  type hash_table (line 161) | struct hash_table
  type hash_table (line 167) | struct hash_table
  type hash_entry (line 175) | struct hash_entry
  function _mesa_hash_table_destroy (line 186) | void
  function _mesa_hash_table_clear (line 207) | void
  function _mesa_hash_table_set_deleted_key (line 237) | void
  function _mesa_hash_table_set_freed_key (line 243) | void
  type hash_entry (line 259) | struct hash_entry
  type hash_table (line 260) | struct hash_table
  type hash_entry (line 268) | struct hash_entry
  type hash_entry (line 292) | struct hash_entry
  type hash_table (line 293) | struct hash_table
  type hash_entry (line 299) | struct hash_entry
  type hash_table (line 300) | struct hash_table
  type hash_entry (line 307) | struct hash_entry
  type hash_table (line 308) | struct hash_table
  function _mesa_hash_table_rehash (line 311) | static void
  type hash_entry (line 348) | struct hash_entry
  type hash_table (line 349) | struct hash_table
  type hash_entry (line 353) | struct hash_entry
  type hash_entry (line 366) | struct hash_entry
  type hash_entry (line 424) | struct hash_entry
  type hash_table (line 425) | struct hash_table
  type hash_entry (line 431) | struct hash_entry
  type hash_table (line 432) | struct hash_table
  function _mesa_hash_table_remove (line 445) | void
  function _mesa_hash_table_remove_key (line 460) | void _mesa_hash_table_remove_key(struct hash_table *ht,
  type hash_entry (line 472) | struct hash_entry
  type hash_table (line 473) | struct hash_table
  type hash_entry (line 474) | struct hash_entry
  type hash_entry (line 498) | struct hash_entry
  type hash_table (line 499) | struct hash_table
  type hash_entry (line 500) | struct hash_entry
  type hash_entry (line 502) | struct hash_entry
  function _mesa_hash_data (line 535) | uint32_t
  function _mesa_hash_string (line 543) | uint32_t
  function _mesa_key_string_equal (line 561) | bool
  function _mesa_key_pointer_equal (line 567) | bool
  type hash_table (line 576) | struct hash_table
  type hash_key_u64 (line 589) | struct hash_key_u64 {
  function key_u64_hash (line 593) | static uint32_t
  function key_u64_equals (line 599) | static bool
  type hash_table_u64 (line 608) | struct hash_table_u64
  type hash_table_u64 (line 611) | struct hash_table_u64
  function _mesa_hash_table_u64_destroy (line 631) | void
  function _mesa_hash_table_u64_insert (line 657) | void
  type hash_entry (line 679) | struct hash_entry
  type hash_table_u64 (line 680) | struct hash_table_u64
  type hash_key_u64 (line 685) | struct hash_key_u64
  type hash_table_u64 (line 691) | struct hash_table_u64
  type hash_entry (line 693) | struct hash_entry
  function _mesa_hash_table_u64_remove (line 705) | void

FILE: mesa/src/util/hash_table.h
  type hash_entry (line 41) | struct hash_entry {
  type hash_table (line 47) | struct hash_table {
  type hash_table (line 61) | struct hash_table
  type hash_table (line 68) | struct hash_table
  type hash_table (line 74) | struct hash_table
  type hash_table (line 75) | struct hash_table
  type hash_table (line 76) | struct hash_table
  type hash_entry (line 77) | struct hash_entry
  type hash_table (line 78) | struct hash_table
  type hash_entry (line 79) | struct hash_entry
  type hash_table (line 80) | struct hash_table
  type hash_table (line 82) | struct hash_table
  function _mesa_hash_table_num_entries (line 85) | static inline uint32_t _mesa_hash_table_num_entries(struct hash_table *ht)
  type hash_entry (line 90) | struct hash_entry
  type hash_table (line 91) | struct hash_table
  type hash_entry (line 92) | struct hash_entry
  type hash_table (line 93) | struct hash_table
  type hash_entry (line 95) | struct hash_entry
  type hash_table (line 96) | struct hash_table
  type hash_entry (line 97) | struct hash_entry
  type hash_table (line 98) | struct hash_table
  type hash_table (line 100) | struct hash_table
  type hash_entry (line 101) | struct hash_entry
  type hash_table (line 102) | struct hash_table
  type hash_entry (line 105) | struct hash_entry
  type hash_table (line 105) | struct hash_table
  type hash_entry (line 106) | struct hash_entry
  type hash_entry (line 107) | struct hash_entry
  type hash_table (line 108) | struct hash_table
  type hash_entry (line 109) | struct hash_entry
  function _mesa_key_hash_string (line 116) | static inline uint32_t _mesa_key_hash_string(const void *key)
  function _mesa_hash_pointer (line 121) | static inline uint32_t _mesa_hash_pointer(const void *pointer)
  type hash_table (line 127) | struct hash_table
  function _mesa_fnv32_1a_accumulate_block (line 134) | static inline uint32_t
  function hash_table_call_foreach (line 161) | static inline void
  type hash_table_u64 (line 175) | struct hash_table_u64 {
  type hash_table_u64 (line 180) | struct hash_table_u64
  type hash_table_u64 (line 184) | struct hash_table_u64
  type hash_entry (line 185) | struct hash_entry
  type hash_table_u64 (line 188) | struct hash_table_u64
  type hash_table_u64 (line 192) | struct hash_table_u64
  type hash_table_u64 (line 195) | struct hash_table_u64

FILE: mesa/src/util/list.h
  type list_head (line 47) | struct list_head
  function list_inithead (line 53) | static inline void list_inithead(struct list_head *item)
  function list_add (line 59) | static inline void list_add(struct list_head *item, struct list_head *list)
  function list_addtail (line 67) | static inline void list_addtail(struct list_head *item, struct list_head...
  type list_head (line 75) | struct list_head
  function list_replace (line 77) | static inline void list_replace(struct list_head *from, struct list_head...
  function list_del (line 89) | static inline void list_del(struct list_head *item)
  function list_delinit (line 96) | static inline void list_delinit(struct list_head *item)
  function list_empty (line 104) | static inline bool list_empty(const struct list_head *list)
  function list_is_singular (line 112) | static inline bool list_is_singular(const struct list_head *list)
  function list_length (line 117) | static inline unsigned list_length(const struct list_head *list)
  function list_splice (line 126) | static inline void list_splice(struct list_head *src, struct list_head *...
  function list_splicetail (line 137) | static inline void list_splicetail(struct list_head *src, struct list_he...
  function list_validate (line 148) | static inline void list_validate(const struct list_head *list)

FILE: mesa/src/util/ralloc.c
  function ralloc_header (line 58) | __attribute__((aligned(16)))
  type ralloc_header (line 81) | typedef struct ralloc_header ralloc_header;
  function ralloc_header (line 86) | static ralloc_header *
  function add_child (line 97) | static void
  function ralloc_free (line 227) | void
  function unlink_block (line 240) | static void
  function unsafe_free (line 259) | static void
  function ralloc_steal (line 277) | void
  function ralloc_adopt (line 293) | void
  function ralloc_set_destructor (line 334) | void
  function cat (line 374) | static bool
  function ralloc_strcat (line 394) | bool
  function ralloc_strncat (line 400) | bool
  function ralloc_str_append (line 406) | bool
  function printf_length (line 439) | static size_t
  function ralloc_asprintf_append (line 477) | bool
  function ralloc_vasprintf_append (line 488) | bool
  function ralloc_asprintf_rewrite_tail (line 497) | bool
  function ralloc_vasprintf_rewrite_tail (line 508) | bool
  function linear_header (line 562) | __attribute__((aligned(16)))
  type linear_size_chunk (line 590) | struct linear_size_chunk {
  type linear_header (line 595) | typedef struct linear_header linear_header;
  type linear_size_chunk (line 596) | typedef struct linear_size_chunk linear_size_chunk;
  function linear_header (line 603) | static linear_header *
  function linear_free_parent (line 702) | void
  function ralloc_steal_linear_parent (line 721) | void
  function linear_asprintf_append (line 812) | bool
  function linear_vasprintf_append (line 823) | bool
  function linear_asprintf_rewrite_tail (line 832) | bool
  function linear_vasprintf_rewrite_tail (line 844) | bool
  function linear_cat (line 872) | static bool
  function linear_strcat (line 891) | bool

FILE: scripts/gen-template.py
  function main (line 29) | def main():

FILE: scripts/gputop-oa-codegen.py
  function check_operand_type (line 39) | def check_operand_type(set, arg):
  function put_brackets (line 64) | def put_brackets(arg):
  function mathml_splice_add (line 67) | def mathml_splice_add(set, args):
  function mathml_splice_div (line 76) | def mathml_splice_div(set, args):
  function mathml_splice_max (line 81) | def mathml_splice_max(set, args):
  function mathml_splice_mul (line 86) | def mathml_splice_mul(set, args):
  function mathml_splice_sub (line 95) | def mathml_splice_sub(set, args):
  function mathml_splice_read (line 104) | def mathml_splice_read(set, args):
  function mathml_splice_read_reg (line 107) | def mathml_splice_read_reg(set, args):
  function mathml_splice_min (line 110) | def mathml_splice_min(set, args):
  function mathml_splice_lshft (line 115) | def mathml_splice_lshft(set, args):
  function mathml_splice_rshft (line 124) | def mathml_splice_rshft(set, args):
  function mathml_splice_and (line 133) | def mathml_splice_and(set, args):
  function emit_fadd (line 142) | def emit_fadd(tmp_id, args):
  function emit_fdiv (line 147) | def emit_fdiv(tmp_id, args):
  function emit_fmax (line 153) | def emit_fmax(tmp_id, args):
  function emit_fmul (line 159) | def emit_fmul(tmp_id, args):
  function emit_fsub (line 163) | def emit_fsub(tmp_id, args):
  function emit_read (line 167) | def emit_read(tmp_id, args):
  function emit_read_reg (line 172) | def emit_read_reg(tmp_id, args):
  function emit_uadd (line 176) | def emit_uadd(tmp_id, args):
  function emit_udiv (line 181) | def emit_udiv(tmp_id, args):
  function emit_umul (line 187) | def emit_umul(tmp_id, args):
  function emit_usub (line 191) | def emit_usub(tmp_id, args):
  function emit_umin (line 195) | def emit_umin(tmp_id, args):
  function emit_lshft (line 199) | def emit_lshft(tmp_id, args):
  function emit_rshft (line 203) | def emit_rshft(tmp_id, args):
  function emit_and (line 207) | def emit_and(tmp_id, args):
  function brkt (line 229) | def brkt(subexp):
  function splice_bitwise_and (line 235) | def splice_bitwise_and(args):
  function splice_logical_and (line 238) | def splice_logical_and(args):
  function splice_ult (line 241) | def splice_ult(args):
  function splice_ugte (line 244) | def splice_ugte(args):
  function splice_mathml_expression (line 273) | def splice_mathml_expression(set, equation, tag):
  function output_rpn_equation_code (line 294) | def output_rpn_equation_code(set, counter, equation):
  function splice_rpn_expression (line 338) | def splice_rpn_expression(set, counter_name, expression):
  function data_type_to_ctype (line 369) | def data_type_to_ctype(ret_type):
  function output_counter_read (line 378) | def output_counter_read(gen, set, counter):
  function output_counter_max (line 410) | def output_counter_max(gen, set, counter):
  function output_availability (line 452) | def output_availability(set, availability, counter_name):
  function output_units (line 467) | def output_units(unit):
  function output_counter_report (line 471) | def output_counter_report(set, counter):
  function generate_register_configs (line 509) | def generate_register_configs(set):
  class Counter (line 552) | class Counter:
    method __init__ (line 553) | def __init__(self, set, xml):
    method get (line 573) | def get(self, prop):
    method compute_hashes (line 576) | def compute_hashes(self):
  class Set (line 596) | class Set:
    method __init__ (line 597) | def __init__(self, gen, xml):
    method hw_config_guid (line 619) | def hw_config_guid(self):
    method name (line 623) | def name(self):
    method symbol_name (line 627) | def symbol_name(self):
    method underscore_name (line 631) | def underscore_name(self):
    method findall (line 634) | def findall(self, path):
    method find (line 637) | def find(self, path):
  class Gen (line 641) | class Gen:
    method __init__ (line 642) | def __init__(self, filename):
  function main (line 652) | def main():

FILE: scripts/i915-perf-kernelgen.py
  function underscore (line 49) | def underscore(name):
  function print_err (line 55) | def print_err(*args):
  function brkt (line 59) | def brkt(subexp):
  function splice_bitwise_and (line 65) | def splice_bitwise_and(args):
  function splice_logical_and (line 68) | def splice_logical_and(args):
  function splice_ult (line 71) | def splice_ult(args):
  function splice_ugte (line 74) | def splice_ugte(args):
  function output_b_counter_config (line 115) | def output_b_counter_config(metric_set, config):
  function output_flex_config (line 137) | def output_flex_config(metric_set, config):
  function exp_to_symbol (line 159) | def exp_to_symbol(exp):
  function count_config_mux_registers (line 172) | def count_config_mux_registers(config):
  function output_mux_config (line 181) | def output_mux_config(metric_set, config):
  function output_config (line 198) | def output_config(metric_set, config):
  function output_config_select (line 221) | def output_config_select(metric_set):
  function output_sysfs_code (line 252) | def output_sysfs_code(sets):

FILE: scripts/mdapi-xml-convert.py
  function underscore (line 155) | def underscore(name):
  function print_err (line 161) | def print_err(*args):
  function read_value (line 169) | def read_value(chipset, offset):
  function read_token_to_rpn_read (line 176) | def read_token_to_rpn_read(chipset, token, raw_offsets):
  function replace_read_tokens_with_rpn_read_ops (line 245) | def replace_read_tokens_with_rpn_read_ops(chipset, equation, raw_offsets):
  function apply_aliases (line 291) | def apply_aliases(text, aliases):
  function strip_dx_apis (line 305) | def strip_dx_apis(text):
  function append_deps_and_counter (line 317) | def append_deps_and_counter(mdapi_counter, mdapi_counters, deps,
  function sort_counters (line 332) | def sort_counters(mdapi_counters, deps):
  function expand_macros (line 341) | def expand_macros(equation):
  function fixup_equation (line 346) | def fixup_equation(equation):
  function filter_single_config_registers_of_type (line 359) | def filter_single_config_registers_of_type(mdapi_metric_set, type):
  function get_mux_id_group (line 394) | def get_mux_id_group(id_groups, id):
  function process_mux_configs (line 406) | def process_mux_configs(mdapi_set):
  function add_register_config (line 495) | def add_register_config(set, priority, availability, regs, type):
  function to_text (line 511) | def to_text(value):

FILE: scripts/pylibs/codegen/__init__.py
  class Codegen (line 3) | class Codegen:
    method __init__ (line 11) | def __init__(self, filename = None):
    method __call__ (line 15) | def __call__(self, *args):
    method frag (line 28) | def frag(self, *args):
    method indent (line 32) | def indent(self, n):
    method outdent (line 34) | def outdent(self, n):

FILE: scripts/pylibs/oa_guid_registry/__init__.py
  class Registry (line 8) | class Registry:
    method hw_config_hash (line 12) | def hw_config_hash(metric_set):
    method mdapi_hw_config_hash (line 44) | def mdapi_hw_config_hash(mdapi_metric_set):
    method chipset_derive_hash (line 66) | def chipset_derive_hash(chipset, hash):

FILE: scripts/update-guids.py
  function print_err (line 59) | def print_err(*args):
  function guid_hashing_key (line 62) | def guid_hashing_key(guid_obj):

FILE: server/gputop-cpu.c
  function count_cpus (line 43) | static void
  function gputop_cpu_count (line 58) | int
  function gputop_cpu_model (line 69) | bool
  function gputop_cpu_read_stats (line 102) | bool

FILE: server/gputop-cpu.h
  type cpu_stat (line 27) | struct cpu_stat {
  type cpu_stat (line 47) | struct cpu_stat

FILE: server/gputop-debugfs.c
  function debugfs_mount (line 46) | static bool debugfs_mount(void)
  function gputop_debugfs_open (line 67) | int gputop_debugfs_open(const char *filename, int mode)
  function FILE (line 78) | FILE *gputop_debugfs_fopen(const char *filename,
  function gputop_debugfs_read_uint64 (line 124) | uint64_t gputop_debugfs_read_uint64(const char *filename)
  function gputop_debugfs_free_tracepoint_names (line 189) | void
  type dirent (line 205) | struct dirent
  type dirent (line 218) | struct dirent
  function gputop_free_events_names (line 253) | void

FILE: server/gputop-gl.c
  type array (line 176) | struct array
  type array (line 177) | struct array
  function glx_winsys_init (line 236) | static void
  function gputop_gl_init (line 251) | static void
  function gputop_abort (line 273) | static void
  function Bool (line 299) | Bool
  function have_extension (line 339) | static bool
  function initialise_gl (line 366) | static void
  type intel_query_info (line 413) | struct intel_query_info
  type intel_query_info (line 416) | struct intel_query_info
  type intel_counter (line 432) | struct intel_counter
  type gl_perf_query (line 455) | struct gl_perf_query
  type winsys_context (line 456) | struct winsys_context
  type gl_perf_query (line 458) | struct gl_perf_query
  function query_obj_destroy (line 472) | static void
  function query_obj_cache_destroy (line 480) | static void
  function gputop_khr_debug_callback (line 490) | static void
  function winsys_context_gl_initialise (line 519) | static void
  type winsys_context (line 568) | struct winsys_context
  type winsys_context (line 571) | struct winsys_context
  type winsys_context (line 571) | struct winsys_context
  function GLXContext (line 590) | GLXContext
  function GLXContext (line 652) | GLXContext
  function GLXContext (line 662) | static GLXContext
  function GLXContext (line 688) | GLXContext
  type winsys_context (line 714) | struct winsys_context
  type winsys_context (line 717) | struct winsys_context
  type winsys_context (line 721) | struct winsys_context
  function winsys_context_destroy (line 732) | static void
  function gputop_glXDestroyContext (line 759) | void
  type winsys_surface (line 791) | struct winsys_surface
  type winsys_context (line 792) | struct winsys_context
  type winsys_surface (line 794) | struct winsys_surface
  type winsys_surface (line 794) | struct winsys_surface
  type winsys_surface (line 796) | struct winsys_surface
  type winsys_surface (line 817) | struct winsys_surface
  type winsys_context (line 818) | struct winsys_context
  type winsys_surface (line 820) | struct winsys_surface
  type winsys_surface (line 824) | struct winsys_surface
  function make_context_current (line 847) | static bool
  function Bool (line 926) | Bool
  function Bool (line 932) | Bool
  function winsys_surface_start_frame (line 939) | static void
  function winsys_surface_end_frame (line 973) | static void
  function winsys_surface_check_for_finished_queries (line 984) | static void
  function winsys_surface_delete_surface_queries (line 1017) | static void
  function gputop_glXSwapBuffers (line 1057) | void
  function gputop_glEnable (line 1133) | void
  function gputop_glDisable (line 1150) | void
  function gputop_glScissor (line 1173) | void
  function gputop_glDebugMessageControl (line 1186) | void
  function gputop_glDebugMessageCallback (line 1197) | void

FILE: server/gputop-gl.h
  type intel_counter (line 37) | struct intel_counter
  type intel_query_info (line 53) | struct intel_query_info
  type gl_perf_query (line 69) | struct gl_perf_query
  type winsys_context (line 77) | struct winsys_context
  type winsys_surface (line 107) | struct winsys_surface
  type array (line 128) | struct array
  type array (line 129) | struct array

FILE: server/gputop-ioctl.c
  function ioctl (line 7) | int ioctl(int fd, unsigned long request, void *data)

FILE: server/gputop-log.c
  type list_head (line 38) | struct list_head
  function gputop_log_init (line 40) | void
  function gputop_log (line 46) | void
  function Gputop__Log (line 79) | Gputop__Log *
  function gputop_pb_log_free (line 118) | void

FILE: server/gputop-main.c
  function list_resource (line 49) | static void
  function usage (line 56) | static void
  function resolve_lib_path_for_env (line 119) | static bool
  type stat (line 252) | struct stat
  function env_resolve_append_lib_path (line 275) | static void
  function print_gputop_env_vars (line 292) | static void
  type stat (line 322) | struct stat
  function setup_web_root_env (line 367) | static void
  function main (line 401) | int

FILE: server/gputop-ncurses.c
  function exit_fake_mode_cb (line 54) | static void
  function gputop_mainloop_quit_idle_cb (line 60) | void
  function gputop_init (line 89) | __attribute__((constructor)) void

FILE: server/gputop-perf.c
  type oa_sample (line 71) | struct oa_sample {
  type intel_device (line 106) | struct intel_device {
  type intel_device (line 115) | struct intel_device
  type gputop_gen (line 119) | struct gputop_gen
  type array (line 120) | struct array
  type perf_oa_user (line 121) | struct perf_oa_user
  type gputop_devinfo (line 122) | struct gputop_devinfo
  type list_head (line 127) | struct list_head
  function perf_ioctl (line 132) | static int
  function sysfs_card_read (line 143) | static bool
  function kernel_has_dynamic_config_support (line 153) | static bool
  type gputop_metric_set (line 187) | struct gputop_metric_set
  type gputop_metric_set (line 190) | struct gputop_metric_set
  function kernel_supports_open_property (line 199) | static bool
  function gputop_perf_kernel_has_i915_oa_cpu_timestamps (line 244) | bool
  function gputop_perf_kernel_has_i915_oa_gpu_timestamps (line 251) | bool
  function gputop_add_ctx_handle (line 258) | bool gputop_add_ctx_handle(int ctx_fd, uint32_t ctx_id)
  function gputop_remove_ctx_handle (line 272) | bool gputop_remove_ctx_handle(uint32_t ctx_id)
  type ctx_handle (line 284) | struct ctx_handle
  type ctx_handle (line 286) | struct ctx_handle
  type ctx_handle (line 297) | struct ctx_handle
  type ctx_handle (line 299) | struct ctx_handle
  function perf_event_open (line 306) | static long
  function perf_ready_cb (line 316) | static void
  function perf_fake_ready_cb (line 325) | static void
  function gputop_perf_stream_ref (line 334) | void
  function finish_stream_close (line 343) | static void
  function stream_handle_closed_cb (line 396) | static void
  function gputop_perf_stream_close (line 405) | void
  function gputop_perf_stream_unref (line 442) | void
  type gputop_perf_stream (line 461) | struct gputop_perf_stream
  type gputop_metric_set (line 462) | struct gputop_metric_set
  type ctx_handle (line 464) | struct ctx_handle
  type gputop_perf_stream (line 467) | struct gputop_perf_stream
  type gputop_perf_stream (line 471) | struct gputop_perf_stream
  type drm_i915_perf_open_param (line 472) | struct drm_i915_perf_open_param
  type gputop_perf_stream (line 584) | struct gputop_perf_stream
  type gputop_perf_stream (line 590) | struct gputop_perf_stream
  type gputop_perf_stream (line 594) | struct gputop_perf_stream
  type perf_event_attr (line 595) | struct perf_event_attr
  type perf_event_header (line 647) | struct perf_event_header
  type gputop_perf_stream (line 669) | struct gputop_perf_stream
  type gputop_perf_stream (line 679) | struct gputop_perf_stream
  type perf_event_attr (line 680) | struct perf_event_attr
  type perf_event_header (line 729) | struct perf_event_header
  function log_cpu_stats_cb (line 749) | static void
  type gputop_perf_stream (line 769) | struct gputop_perf_stream
  type gputop_perf_stream (line 772) | struct gputop_perf_stream
  type cpu_stat (line 781) | struct cpu_stat
  function devinfo_build_topology (line 797) | static void
  function fill_topology_from_masks (line 829) | static bool
  function gputop_override_topology (line 878) | static bool
  function i915_query_old_slice_masks (line 915) | static bool
  type gputop_query_topology_info (line 941) | struct gputop_query_topology_info {
  function i915_query_topology (line 946) | static void
  function i915_has_query_info (line 982) | static bool
  function i915_query_engines (line 992) | static void
  function init_dev_info (line 1023) | static bool
  function read_perf_head (line 1165) | static unsigned int
  function write_perf_tail (line 1174) | static void
  function perf_stream_data_pending (line 1184) | static bool
  function i915_perf_stream_data_pending (line 1193) | static bool
  function gputop_stream_data_pending (line 1215) | bool
  function gputop_perf_update_header_offsets (line 1293) | void
  function gputop_i915_perf_print_records (line 1422) | void
  function read_perf_samples (line 1461) | static void
  type report_layout (line 1468) | struct report_layout
  function gputop_perf_fake_read (line 1482) | int
  function read_i915_perf_samples (line 1552) | static void
  function gputop_perf_read_samples (line 1628) | void
  function get_card_for_fd (line 1646) | static int
  function read_device_param (line 1681) | static uint32_t
  function find_intel_render_node (line 1697) | static int
  function open_render_node (line 1708) | static int
  function gputop_reload_userspace_metrics (line 1737) | static void
  function gputop_enumerate_metrics_via_sysfs (line 1780) | static bool
  function gputop_enumerate_metrics_fake (line 1835) | bool
  function gputop_perf_initialize (line 1881) | bool
  function gputop_perf_free (line 1928) | void
  type gputop_devinfo (line 1936) | struct gputop_devinfo

FILE: server/gputop-perf.h
  type ctx_handle (line 38) | struct ctx_handle {
  type gputop_perf_header_buf (line 125) | struct gputop_perf_header_buf
  type gputop_perf_stream_type (line 135) | enum gputop_perf_stream_type {
  type gputop_perf_stream (line 141) | struct gputop_perf_stream
  type perf_oa_user (line 217) | struct perf_oa_user {
  type ctx_handle (line 224) | struct ctx_handle
  type gputop_gen (line 229) | struct gputop_gen
  type array (line 230) | struct array
  type gputop_perf_stream (line 239) | struct gputop_perf_stream
  type gputop_metric_set (line 240) | struct gputop_metric_set
  type ctx_handle (line 242) | struct ctx_handle
  type gputop_perf_stream (line 245) | struct gputop_perf_stream
  type gputop_perf_stream (line 248) | struct gputop_perf_stream
  type gputop_perf_stream (line 254) | struct gputop_perf_stream
  type gputop_perf_stream (line 258) | struct gputop_perf_stream
  type gputop_perf_stream (line 268) | struct gputop_perf_stream
  type gputop_perf_stream (line 271) | struct gputop_perf_stream
  type gputop_perf_stream (line 273) | struct gputop_perf_stream
  type gputop_perf_stream (line 275) | struct gputop_perf_stream
  type gputop_perf_stream (line 278) | struct gputop_perf_stream
  type gputop_perf_stream (line 280) | struct gputop_perf_stream
  type gputop_perf_stream (line 284) | struct gputop_perf_stream
  type gputop_perf_stream (line 285) | struct gputop_perf_stream
  type gputop_perf_stream (line 286) | struct gputop_perf_stream
  type gputop_perf_stream (line 287) | struct gputop_perf_stream
  type gputop_devinfo (line 289) | struct gputop_devinfo

FILE: server/gputop-server.c
  type list_head (line 82) | struct list_head
  type list_head (line 83) | struct list_head
  function send_pb_message (line 85) | static void
  function stream_closed_cb (line 107) | static void
  function stream_closed_notify_cb (line 115) | static void
  type perf_flush_closure (line 169) | struct perf_flush_closure {
  function read_perf_head (line 178) | static unsigned int
  function write_perf_tail (line 187) | static void
  function fragmented_perf_read_cb (line 197) | static ssize_t
  function flush_perf_stream_samples (line 283) | static void
  function fragmented_i915_perf_read_cb (line 312) | static ssize_t
  function flush_i915_perf_stream_samples (line 366) | static void
  function flush_cpu_stats (line 391) | static void
  function flush_stream_samples (line 454) | static void
  function update_perf_head_pointers (line 481) | static void
  function update_streams (line 503) | static void
  function forward_logs (line 514) | static void
  function update_cb (line 533) | static void
  function queue_update (line 549) | static void
  function periodic_update_cb (line 558) | static void
  function i915_perf_ready_cb (line 564) | static void
  function handle_open_i915_perf_oa_stream (line 570) | static void
  function handle_open_tracepoint (line 650) | static void
  function handle_open_generic_stream (line 703) | static void
  function handle_open_cpu_stats (line 755) | static void
  function handle_open_stream (line 789) | static void
  function close_stream (line 819) | static void
  function terminate_all_streams (line 837) | static void
  function handle_close_stream (line 850) | static void
  function gputop_get_pid_prop (line 868) | static bool
  function handle_get_process_info (line 904) | static void
  function handle_get_tracepoint_info (line 941) | static void
  function Gputop__GLQueryInfo (line 977) | static Gputop__GLQueryInfo **
  function free_gl_query_info (line 1081) | static void
  function handle_get_features (line 1098) | static void
  function on_ws_message (line 1242) | static void on_ws_message(h2o_websocket_conn_t *conn,
  function on_req (line 1306) | static int on_req(h2o_handler_t *self, h2o_req_t *req)
  function on_connect (line 1334) | static void on_connect(uv_stream_t *server, int status)
  function gputop_server_print_addresses (line 1367) | static void
  function gputop_server_run (line 1412) | bool gputop_server_run(void)

FILE: server/gputop-string.c
  function gputop_string_t (line 53) | gputop_string_t *
  function gputop_string_t (line 71) | gputop_string_t *
  function gputop_string_t (line 77) | gputop_string_t *
  function gputop_string_t (line 105) | gputop_string_t *
  function gputop_string_t (line 116) | gputop_string_t *
  function gputop_string_t (line 130) | gputop_string_t *
  function gputop_string_t (line 136) | gputop_string_t *
  function gputop_string_t (line 148) | gputop_string_t *
  function gputop_string_t (line 160) | gputop_string_t *
  function gputop_string_append_printf (line 187) | void
  function gputop_string_append_vprintf (line 201) | void
  function gputop_string_printf (line 211) | void
  function gputop_string_t (line 226) | gputop_string_t *
  function gputop_string_t (line 238) | gputop_string_t *
  function gputop_string_t (line 248) | gputop_string_t *
  function gputop_string_t (line 267) | gputop_string_t *

FILE: server/gputop-string.h
  type gputop_string_t (line 29) | typedef struct {

FILE: server/gputop-system.c
  function main (line 12) | int

FILE: server/gputop-sysutil.c
  function gputop_get_bool_env (line 41) | bool
  function gputop_get_time (line 64) | uint64_t
  function gputop_read_file (line 72) | bool

FILE: server/gputop-sysutil.h
  function gputop_read_file_uint64 (line 46) | static bool __attribute__((unused))

FILE: server/registry/genapis.py
  class ShimGeneratorOptions (line 39) | class ShimGeneratorOptions(CGeneratorOptions):
    method __init__ (line 41) | def __init__(self,
  class ShimOutputGenerator (line 61) | class ShimOutputGenerator(COutputGenerator):
    method __init__ (line 63) | def __init__(self,
    method makeProto (line 73) | def makeProto(self, cmd, namePrefix = ''):
    method makeHook (line 102) | def makeHook(self, cmd):
    method makeShim (line 138) | def makeShim(self, cmd):
    method newline (line 153) | def newline(self):
    method beginFile (line 156) | def beginFile(self, genOpts):
    method endFile (line 166) | def endFile(self):
    method beginFeature (line 169) | def beginFeature(self, interface, emit):
    method endFeature (line 176) | def endFeature(self):
    method genType (line 197) | def genType(self, typeinfo, name):
    method genEnum (line 215) | def genEnum(self, enuminfo, name):
    method genCmd (line 219) | def genCmd(self, cmdinfo, name):
  function startTimer (line 254) | def startTimer():
  function endTimer (line 257) | def endTimer(msg):
  function makeREstring (line 265) | def makeREstring(list):
  function genShims (line 411) | def genShims():

FILE: server/registry/reg.py
  function write (line 27) | def write( *args, **kwargs ):
  function noneStr (line 36) | def noneStr(str):
  function matchAPIProfile (line 70) | def matchAPIProfile(api, profile, elem):
  class BaseInfo (line 98) | class BaseInfo:
    method __init__ (line 100) | def __init__(self, elem):
    method resetState (line 104) | def resetState(self):
  class TypeInfo (line 110) | class TypeInfo(BaseInfo):
    method __init__ (line 112) | def __init__(self, elem):
  class GroupInfo (line 117) | class GroupInfo(BaseInfo):
    method __init__ (line 119) | def __init__(self, elem):
  class EnumInfo (line 126) | class EnumInfo(BaseInfo):
    method __init__ (line 128) | def __init__(self, elem):
  class CmdInfo (line 140) | class CmdInfo(BaseInfo):
    method __init__ (line 142) | def __init__(self, elem):
  class FeatureInfo (line 156) | class FeatureInfo(BaseInfo):
    method __init__ (line 158) | def __init__(self, elem):
  function regSortCategoryKey (line 176) | def regSortCategoryKey(feature):
  function regSortNameKey (line 188) | def regSortNameKey(feature):
  function regSortNumberKey (line 194) | def regSortNumberKey(feature):
  function regSortFeatures (line 201) | def regSortFeatures(featureList):
  class GeneratorOptions (line 234) | class GeneratorOptions:
    method __init__ (line 236) | def __init__(self,
    method emptyRegex (line 258) | def emptyRegex(self,pat):
  class CGeneratorOptions (line 288) | class CGeneratorOptions(GeneratorOptions):
    method __init__ (line 290) | def __init__(self,
  class OutputGenerator (line 349) | class OutputGenerator:
    method __init__ (line 351) | def __init__(self,
    method logMsg (line 370) | def logMsg(self, level, *args):
    method beginFile (line 388) | def beginFile(self, genOpts):
    method endFile (line 397) | def endFile(self):
    method beginFeature (line 406) | def beginFeature(self, interface, emit):
    method endFeature (line 411) | def endFeature(self):
    method genType (line 417) | def genType(self, typeinfo, name):
    method genEnum (line 423) | def genEnum(self, enuminfo, name):
    method genCmd (line 429) | def genCmd(self, cmd, name):
  class COutputGenerator (line 452) | class COutputGenerator(OutputGenerator):
    method __init__ (line 454) | def __init__(self,
    method makeCDecls (line 467) | def makeCDecls(self, cmd):
    method newline (line 512) | def newline(self):
    method beginFile (line 515) | def beginFile(self, genOpts):
    method endFile (line 548) | def endFile(self):
    method beginFeature (line 560) | def beginFeature(self, interface, emit):
    method endFeature (line 571) | def endFeature(self):
    method genType (line 604) | def genType(self, typeinfo, name):
    method genEnum (line 621) | def genEnum(self, enuminfo, name):
    method genCmd (line 634) | def genCmd(self, cmdinfo, name):
  class Registry (line 675) | class Registry:
    method __init__ (line 677) | def __init__(self):
    method loadElementTree (line 691) | def loadElementTree(self, tree):
    method loadFile (line 695) | def loadFile(self, file):
    method setGenerator (line 699) | def setGenerator(self, gen):
    method addElementInfo (line 711) | def addElementInfo(self, elem, info, infoName, dictionary):
    method lookupElementInfo (line 726) | def lookupElementInfo(self, fname, dictionary):
    method parseTree (line 736) | def parseTree(self):
    method dumpReg (line 800) | def dumpReg(self, maxlen = 40, filehandle = sys.stdout):
    method markTypeRequired (line 836) | def markTypeRequired(self, typename, required):
    method markRequired (line 856) | def markRequired(self, features, required):
    method requireAndRemoveFeatures (line 896) | def requireAndRemoveFeatures(self, interface, api, profile):
    method generateFeature (line 913) | def generateFeature(self, fname, ftype, dictionary, genProc):
    method generateRequiredInterface (line 962) | def generateRequiredInterface(self, interface):
    method apiGen (line 981) | def apiGen(self, genOpts):
    method apiReset (line 1115) | def apiReset(self):
    method validateGroups (line 1128) | def validateGroups(self):

FILE: server/stdatomic.h
  type memory_order (line 129) | enum memory_order {
  type memory_order (line 138) | typedef enum memory_order memory_order;
  type atomic_bool (line 174) | typedef _Atomic(_Bool)			atomic_bool;
  type atomic_char (line 175) | typedef _Atomic(char)			atomic_char;
  type atomic_schar (line 176) | typedef _Atomic(signed char)		atomic_schar;
  type atomic_uchar (line 177) | typedef _Atomic(unsigned char)		atomic_uchar;
  type atomic_short (line 178) | typedef _Atomic(short)			atomic_short;
  type atomic_ushort (line 179) | typedef _Atomic(unsigned short)		atomic_ushort;
  type atomic_int (line 180) | typedef _Atomic(int)			atomic_int;
  type atomic_uint (line 181) | typedef _Atomic(unsigned int)		atomic_uint;
  type atomic_long (line 182) | typedef _Atomic(long)			atomic_long;
  type atomic_ulong (line 183) | typedef _Atomic(unsigned long)		atomic_ulong;
  type atomic_llong (line 184) | typedef _Atomic(long long)		atomic_llong;
  type atomic_ullong (line 185) | typedef _Atomic(unsigned long long)	atomic_ullong;
  type atomic_char16_t (line 187) | typedef _Atomic(char16_t)		atomic_char16_t;
  type atomic_char32_t (line 188) | typedef _Atomic(char32_t)		atomic_char32_t;
  type atomic_wchar_t (line 190) | typedef _Atomic(wchar_t)		atomic_wchar_t;
  type atomic_int_least8_t (line 191) | typedef _Atomic(int_least8_t)		atomic_int_least8_t;
  type atomic_uint_least8_t (line 192) | typedef _Atomic(uint_least8_t)		atomic_uint_least8_t;
  type atomic_int_least16_t (line 193) | typedef _Atomic(int_least16_t)		atomic_int_least16_t;
  type atomic_uint_least16_t (line 194) | typedef _Atomic(uint_least16_t)		atomic_uint_least16_t;
  type atomic_int_least32_t (line 195) | typedef _Atomic(int_least32_t)		atomic_int_least32_t;
  type atomic_uint_least32_t (line 196) | typedef _Atomic(uint_least32_t)		atomic_uint_least32_t;
  type atomic_int_least64_t (line 197) | typedef _Atomic(int_least64_t)		atomic_int_least64_t;
  type atomic_uint_least64_t (line 198) | typedef _Atomic(uint_least64_t)		atomic_uint_least64_t;
  type atomic_int_fast8_t (line 199) | typedef _Atomic(int_fast8_t)		atomic_int_fast8_t;
  type atomic_uint_fast8_t (line 200) | typedef _Atomic(uint_fast8_t)		atomic_uint_fast8_t;
  type atomic_int_fast16_t (line 201) | typedef _Atomic(int_fast16_t)		atomic_int_fast16_t;
  type atomic_uint_fast16_t (line 202) | typedef _Atomic(uint_fast16_t)		atomic_uint_fast16_t;
  type atomic_int_fast32_t (line 203) | typedef _Atomic(int_fast32_t)		atomic_int_fast32_t;
  type atomic_uint_fast32_t (line 204) | typedef _Atomic(uint_fast32_t)		atomic_uint_fast32_t;
  type atomic_int_fast64_t (line 205) | typedef _Atomic(int_fast64_t)		atomic_int_fast64_t;
  type atomic_uint_fast64_t (line 206) | typedef _Atomic(uint_fast64_t)		atomic_uint_fast64_t;
  type atomic_intptr_t (line 207) | typedef _Atomic(intptr_t)		atomic_intptr_t;
  type atomic_uintptr_t (line 208) | typedef _Atomic(uintptr_t)		atomic_uintptr_t;
  type atomic_size_t (line 209) | typedef _Atomic(size_t)			atomic_size_t;
  type atomic_ptrdiff_t (line 210) | typedef _Atomic(ptrdiff_t)		atomic_ptrdiff_t;
  type atomic_intmax_t (line 211) | typedef _Atomic(intmax_t)		atomic_intmax_t;
  type atomic_uintmax_t (line 212) | typedef _Atomic(uintmax_t)		atomic_uintmax_t;
  type atomic_bool (line 355) | typedef atomic_bool			atomic_flag;

FILE: ui/gputop-emscripten-network.c
  type _gputop_connection_t (line 29) | struct _gputop_connection_t {
  function gputop_connection_free (line 39) | static void
  function EMSCRIPTEN_KEEPALIVE (line 45) | EMSCRIPTEN_KEEPALIVE static void
  function EMSCRIPTEN_KEEPALIVE (line 52) | EMSCRIPTEN_KEEPALIVE static void
  function EMSCRIPTEN_KEEPALIVE (line 62) | EMSCRIPTEN_KEEPALIVE static void
  function gputop_connection_t (line 69) | gputop_connection_t *
  function gputop_connection_send (line 114) | void
  function gputop_connection_close (line 130) | void
  function gputop_connection_connected (line 144) | bool

FILE: ui/gputop-soup-network.c
  type _gputop_connection_t (line 29) | struct _gputop_connection_t {
  function gputop_connection_free (line 40) | static void
  function on_websocket_message (line 49) | static void
  function on_websocket_closed (line 62) | static void
  function on_websocket_ready (line 71) | static void
  function gputop_connection_t (line 93) | gputop_connection_t *
  function gputop_connection_send (line 119) | void
  function gputop_connection_close (line 129) | void
  function gputop_connection_connected (line 140) | bool

FILE: ui/gputop-ui-main.cpp
  type window (line 66) | struct window {
    type list_head (line 67) | struct list_head
    type window (line 75) | struct window
    type window (line 76) | struct window
  type i915_perf_window_counter (line 79) | struct i915_perf_window_counter {
    type list_head (line 80) | struct list_head
    type gputop_metric_set_counter (line 82) | struct gputop_metric_set_counter
  type i915_perf_window (line 86) | struct i915_perf_window {
    type window (line 87) | struct window
    type list_head (line 89) | struct list_head
    type list_head (line 90) | struct list_head
  type timeline_window (line 93) | struct timeline_window {
    type window (line 94) | struct window
    type gputop_accumulated_samples (line 98) | struct gputop_accumulated_samples
    type gputop_hw_context (line 99) | struct gputop_hw_context
    type gputop_perf_tracepoint (line 107) | struct gputop_perf_tracepoint
    type window (line 110) | struct window
    type window (line 111) | struct window
    type window (line 112) | struct window
    type window (line 113) | struct window
    type window (line 114) | struct window
  type list_head (line 147) | struct list_head
  type window (line 149) | struct window
    type list_head (line 67) | struct list_head
    type window (line 75) | struct window
    type window (line 76) | struct window
  type window (line 150) | struct window
    type list_head (line 67) | struct list_head
    type window (line 75) | struct window
    type window (line 76) | struct window
  type window (line 151) | struct window
    type list_head (line 67) | struct list_head
    type window (line 75) | struct window
    type window (line 76) | struct window
  type window (line 152) | struct window
    type list_head (line 67) | struct list_head
    type window (line 75) | struct window
    type window (line 76) | struct window
  type window (line 153) | struct window
    type list_head (line 67) | struct list_head
    type window (line 75) | struct window
    type window (line 76) | struct window
  type window (line 154) | struct window
    type list_head (line 67) | struct list_head
    type window (line 75) | struct window
    type window (line 76) | struct window
  type timeline_window (line 155) | struct timeline_window
    type window (line 94) | struct window
    type gputop_accumulated_samples (line 98) | struct gputop_accumulated_samples
    type gputop_hw_context (line 99) | struct gputop_hw_context
    type gputop_perf_tracepoint (line 107) | struct gputop_perf_tracepoint
    type window (line 110) | struct window
    type window (line 111) | struct window
    type window (line 112) | struct window
    type window (line 113) | struct window
    type window (line 114) | struct window
  type i915_perf_window (line 156) | struct i915_perf_window
    type window (line 87) | struct window
    type list_head (line 89) | struct list_head
    type list_head (line 90) | struct list_head
  type i915_perf_window (line 157) | struct i915_perf_window
    type window (line 87) | struct window
    type list_head (line 89) | struct list_head
    type list_head (line 90) | struct list_head
  type window (line 158) | struct window
    type list_head (line 67) | struct list_head
    type window (line 75) | struct window
    type window (line 76) | struct window
  type window (line 159) | struct window
    type list_head (line 67) | struct list_head
    type window (line 75) | struct window
    type window (line 76) | struct window
  function hide_window (line 176) | static void
  function toggle_show_window (line 182) | static void
  function gputop_cr_console_log (line 214) | void
  function clear_client_logs (line 237) | static void
  function StartStopSamplingButton (line 247) | static bool
  function toggle_start_stop_sampling (line 253) | static void
  function update_cpu_colors (line 264) | static void
  function on_connection_data (line 275) | static void
  function on_connection_closed (line 290) | static void
  function on_connection_ready (line 304) | static void
  function reconnect (line 313) | static void
  function pretty_print_counter_value (line 329) | static void
  function read_counter_max (line 336) | static double
  function add_counter_i915_perf_window (line 363) | static void
  function display_i915_perf_counters (line 374) | static void
  function display_live_i915_perf_counters_window (line 423) | static void
  function show_live_i915_perf_counters_window (line 444) | static void
  function display_live_i915_perf_usage_window (line 464) | static void
  function show_live_i915_perf_usage_window (line 481) | static void
  type gputop_client_context (line 504) | struct gputop_client_context
  type gputop_accumulated_samples (line 506) | struct gputop_accumulated_samples
  type i915_perf_window_counter (line 507) | struct i915_perf_window_counter
    type list_head (line 80) | struct list_head
    type gputop_metric_set_counter (line 82) | struct gputop_metric_set_counter
  type gputop_accumulated_samples (line 517) | struct gputop_accumulated_samples
  function remove_counter_i915_perf_window (line 528) | static void
  function select_i915_perf_counter (line 535) | static bool
  function cleanup_counters_i915_perf_window (line 574) | static void
  function display_global_i915_perf_window (line 584) | static void
  function show_global_i915_perf_window (line 650) | static void
  function select_hw_contexts (line 674) | static void
  function display_contexts_i915_perf_window (line 684) | static void
  function show_contexts_i915_perf_window (line 763) | static void
  function display_report_window (line 839) | static void
  function show_report_window (line 1014) | static void
  function get_end_timeline_ts (line 1036) | static uint64_t
  function get_timeline_bounds (line 1053) | static void
  function tracepoint_print_prev_next (line 1071) | static void
  function timeline_select_context (line 1105) | static bool
  function timeline_focus_on_first_sample (line 1125) | static void
  function timeline_select_gt_timestamp (line 1155) | static bool
  function timeline_focus_on_gt_timestamp (line 1177) | static void
  function timeline_highlight_timestamps (line 1203) | static void
  function update_timeline_report_range (line 1239) | static void
  function search_timeline_reports_for_timestamp (line 1259) | static void
  function update_timeline_selected_reports (line 1296) | static void
  function display_timeline_window (line 1376) | static void
  function display_timeline_counters (line 1573) | static void
  function display_timeline_events (line 1593) | static void
  function search_timeline_reports_for_column (line 1632) | static void
  function display_timeline_reports (line 1657) | static void
  function display_timeline_report (line 1737) | static void
  function display_timeline_usage (line 1765) | static void
  function hide_timeline_window (line 1831) | static void
  function show_timeline_window (line 1840) | static void
  function display_tracepoints_window (line 1905) | static void
  function show_tracepoints_window (line 1954) | static void
  function display_events_window (line 1976) | static void
  function show_events_window (line 1996) | static void
  function display_log_window (line 2018) | static void
  function show_log_window (line 2044) | static void
  function display_style_editor_window (line 2065) | static void
  function show_style_editor_window (line 2074) | static void
  function display_streams_window (line 2095) | static void
  function show_streams_window (line 2120) | static void
  type gputop_client_context (line 2142) | struct gputop_client_context
  type gputop_cpu_stat (line 2153) | struct gputop_cpu_stat
  type gputop_cpu_stat (line 2156) | struct gputop_cpu_stat
  type cpu_stat_getter (line 2187) | struct cpu_stat_getter {
  function get_cpu_stat_item (line 2192) | static float
  function display_cpu_stats (line 2200) | static void
  function select_metric_set (line 2220) | static bool
  function select_metric_set_from_group_counter (line 2248) | static bool
  function select_metric_set_from_counter (line 2285) | static bool
  function maybe_restart_sampling (line 2304) | static void
  function select_oa_exponent (line 2313) | static bool
  function display_main_window (line 2345) | static void
  function show_main_window (line 2510) | static void
  function display_windows (line 2530) | static void
  function init_ui (line 2555) | static void
  function repaint_window (line 2582) | static void
  function EMSCRIPTEN_KEEPALIVE (line 2605) | EMSCRIPTEN_KEEPALIVE void
  function repaint_window (line 2611) | static void
  function repaint_window (line 2638) | static void
  function main (line 2669) | int

FILE: ui/gputop-ui-multilines.cpp
  function PlotMultilinesEx (line 36) | static void PlotMultilinesEx(const char* label,

FILE: ui/gputop-ui-multilines.h
  function namespace (line 32) | namespace Gputop {

FILE: ui/gputop-ui-piechart.cpp
  function in_circle (line 38) | static bool in_circle(const ImVec2& center, float radius, const ImVec2& ...

FILE: ui/gputop-ui-piechart.h
  function namespace (line 32) | namespace Gputop {

FILE: ui/gputop-ui-plots.cpp
  function PlotExV (line 39) | static int PlotExV(ImGuiPlotType plot_type, const char* label,
  type ImGuiPlotArrayGetterData (line 156) | struct ImGuiPlotArrayGetterData
    method ImGuiPlotArrayGetterData (line 161) | ImGuiPlotArrayGetterData(const float* values, int stride) { Values = v...
  function Plot_ArrayGetter (line 164) | static float Plot_ArrayGetter(void* data, int idx)

FILE: ui/gputop-ui-plots.h
  function namespace (line 30) | namespace Gputop {

FILE: ui/gputop-ui-timeline.cpp
  function RangeDragBehavior (line 53) | static bool
  function DragBehavior (line 83) | static bool
  function IsTimelineItemHovered (line 102) | static bool
  function DrawRange (line 213) | static void DrawRange(const ImVec2& range, const char **units, int n_units)
  function ToPixelSize (line 257) | static float ToPixelSize(uint64_t value)
  function ToLength (line 262) | static uint64_t ToLength(float value)
  function NextLength (line 267) | static uint64_t NextLength(uint64_t value)

FILE: ui/gputop-ui-timeline.h
  function namespace (line 32) | namespace Gputop {

FILE: ui/gputop-ui-topology.cpp
  function IsHovered (line 38) | static bool IsHovered(const ImRect& box)
  function DrawEu (line 43) | static bool DrawEu(ImGuiWindow* window,
  function DrawSubslice (line 67) | static bool DrawSubslice(ImGuiWindow* window,
  function DrawSlice (line 125) | static bool DrawSlice(ImGuiWindow* window,

FILE: ui/gputop-ui-topology.h
  function namespace (line 32) | namespace Gputop {

FILE: ui/gputop-ui-utils.cpp
  type Gputop (line 34) | namespace Gputop {
    type ColorItem (line 36) | struct ColorItem {
    type PropertyItem (line 41) | struct PropertyItem {
    function InitColorsProperties (line 46) | void InitColorsProperties()
    function ImU32 (line 71) | ImU32 GetColor(enum Colors color)
    function GetProperty (line 79) | int GetProperty(enum Properties prop)
    function DisplayColorsProperties (line 84) | void DisplayColorsProperties()
    function ImColor (line 134) | ImColor GetHueColor(int element, int n_elements, float brightness)

FILE: ui/gputop-ui-utils.h
  type Colors (line 32) | enum Colors {
  type Properties (line 53) | enum Properties {
  function namespace (line 62) | namespace Gputop {

FILE: ui/gputop-uv-network.c
  type _gputop_connection_t (line 35) | struct _gputop_connection_t {
  function base64_encode (line 69) | static void
  function on_close_cb (line 94) | static void
  function gputop_connection_end (line 103) | static void
  function on_wslay_genmask_cb (line 112) | static int
  function on_wslay_msg_recv_cb (line 122) | static void
  function on_wslay_recv_cb (line 137) | static ssize_t
  function on_wslay_send_cb (line 157) | static ssize_t
  function on_uv_read_alloc_cb (line 168) | static void
  function on_uv_read_cb (line 177) | static void
  function on_uv_connect_cb (line 203) | static void
  function on_check_cb (line 225) | static void
  function gputop_connection_t (line 240) | gputop_connection_t *
  function gputop_connection_send (line 321) | void
  function gputop_connection_close (line 338) | void
  function gputop_connection_connected (line 347) | bool

FILE: ui/imgui/imgui.cpp
  type ImGui (line 739) | namespace ImGui
  function FreeWrapper (line 777) | static void    FreeWrapper(void* ptr, void* user_data)        { (void)us...
  function FreeWrapper (line 780) | static void    FreeWrapper(void* ptr, void* user_data)        { (void)us...
  function ImVec2 (line 944) | ImVec2 ImLineClosestPoint(const ImVec2& a, const ImVec2& b, const ImVec2...
  function ImTriangleContainsPoint (line 958) | bool ImTriangleContainsPoint(const ImVec2& a, const ImVec2& b, const ImV...
  function ImTriangleBarycentricCoords (line 966) | void ImTriangleBarycentricCoords(const ImVec2& a, const ImVec2& b, const...
  function ImVec2 (line 977) | ImVec2 ImTriangleClosestPoint(const ImVec2& a, const ImVec2& b, const Im...
  function ImStricmp (line 993) | int ImStricmp(const char* str1, const char* str2)
  function ImStrnicmp (line 1000) | int ImStrnicmp(const char* str1, const char* str2, size_t count)
  function ImStrncpy (line 1007) | void ImStrncpy(char* dst, const char* src, size_t count)
  function ImStrlenW (line 1029) | int ImStrlenW(const ImWchar* str)
  function ImWchar (line 1036) | const ImWchar* ImStrbolW(const ImWchar* buf_mid_line, const ImWchar* buf...
  function ImFormatString (line 1081) | int ImFormatString(char* buf, size_t buf_size, const char* fmt, ...)
  function ImFormatStringV (line 1095) | int ImFormatStringV(char* buf, size_t buf_size, const char* fmt, va_list...
  function ImU32 (line 1109) | ImU32 ImHash(const void* data, int data_size, ImU32 seed)
  function ImTextCharFromUtf8 (line 1158) | int ImTextCharFromUtf8(unsigned int* out_char, const char* in_text, cons...
  function ImTextStrFromUtf8 (line 1216) | int ImTextStrFromUtf8(ImWchar* buf, int buf_size, const char* in_text, c...
  function ImTextCountCharsFromUtf8 (line 1235) | int ImTextCountCharsFromUtf8(const char* in_text, const char* in_text_end)
  function ImTextCharToUtf8 (line 1251) | static inline int ImTextCharToUtf8(char* buf, int buf_size, unsigned int c)
  function ImTextCountUtf8BytesFromChar (line 1288) | static inline int ImTextCountUtf8BytesFromChar(unsigned int c)
  function ImTextStrToUtf8 (line 1297) | int ImTextStrToUtf8(char* buf, int buf_size, const ImWchar* in_text, con...
  function ImTextCountUtf8BytesFromStr (line 1313) | int ImTextCountUtf8BytesFromStr(const ImWchar* in_text, const ImWchar* i...
  function ImVec4 (line 1327) | ImVec4 ImGui::ColorConvertU32ToFloat4(ImU32 in)
  function ImU32 (line 1337) | ImU32 ImGui::ColorConvertFloat4ToU32(const ImVec4& in)
  function ImU32 (line 1347) | ImU32 ImGui::GetColorU32(ImGuiCol idx, float alpha_mul)
  function ImU32 (line 1355) | ImU32 ImGui::GetColorU32(const ImVec4& col)
  function ImVec4 (line 1363) | const ImVec4& ImGui::GetStyleColorVec4(ImGuiCol idx)
  function ImU32 (line 1369) | ImU32 ImGui::GetColorU32(ImU32 col)
  function FILE (line 1430) | FILE* ImFileOpen(const char* filename, const char* mode)
  function LowerBound (line 1494) | static ImVector<ImGuiStorage::Pair>::iterator LowerBound(ImVector<ImGuiS...
  type StaticFunc (line 1519) | struct StaticFunc
    method PairCompareByID (line 1521) | PairCompareByID(const void* lhs, const void* rhs)
  function SetCursorPosYAndSetupDummyPrevLine (line 1826) | static void SetCursorPosYAndSetupDummyPrevLine(float pos_y, float line_h...
  function ImGuiID (line 1976) | ImGuiID ImGuiWindow::GetID(const char* str, const char* str_end)
  function ImGuiID (line 1984) | ImGuiID ImGuiWindow::GetID(const void* ptr)
  function ImGuiID (line 1992) | ImGuiID ImGuiWindow::GetIDNoKeepAlive(const char* str, const char* str_end)
  function ImGuiID (line 1999) | ImGuiID ImGuiWindow::GetIDFromRectangle(const ImRect& r_abs)
  function SetCurrentWindow (line 2012) | static void SetCurrentWindow(ImGuiWindow* window)
  function SetNavID (line 2020) | static void SetNavID(ImGuiID id, int nav_layer)
  function SetNavIDAndMoveMouse (line 2029) | static void SetNavIDAndMoveMouse(ImGuiID id, int nav_layer, const ImRect...
  function ImGuiID (line 2056) | ImGuiID ImGui::GetActiveID()
  function ImGuiID (line 2097) | ImGuiID ImGui::GetHoveredID()
  function IsWindowContentHoverable (line 2110) | static inline bool IsWindowContentHoverable(ImGuiWindow* window, ImGuiHo...
  function ImGuiDir (line 2162) | static ImGuiDir NavScoreItemGetQuadrant(float dx, float dy)
  function NavScoreItemDistInterval (line 2169) | static float NavScoreItemDistInterval(float a0, float a1, float b0, floa...
  function NavScoreItem (line 2179) | static bool NavScoreItem(ImGuiNavMoveResult* result, ImRect cand)
  function NavSaveLastChildNavWindow (line 2307) | static void NavSaveLastChildNavWindow(ImGuiWindow* child_window)
  function ImGuiWindow (line 2317) | static ImGuiWindow* NavRestoreLastChildNavWindow(ImGuiWindow* window)
  function NavRestoreLayer (line 2322) | static void NavRestoreLayer(int layer)
  function NavUpdateAnyRequestFlag (line 2334) | static inline void NavUpdateAnyRequestFlag()
  function NavMoveRequestButNoResultYet (line 2340) | static bool NavMoveRequestButNoResultYet()
  function NavMoveRequestCancel (line 2346) | static void NavMoveRequestCancel()
  function ImVec2 (line 2554) | ImVec2 ImGui::CalcItemSize(ImVec2 size, float default_x, float default_y)
  function ImGuiContext (line 2613) | ImGuiContext* ImGui::GetCurrentContext()
  function ImGuiContext (line 2634) | ImGuiContext* ImGui::CreateContext(ImFontAtlas* shared_font_atlas)
  function ImGuiIO (line 2652) | ImGuiIO& ImGui::GetIO()
  function ImGuiStyle (line 2658) | ImGuiStyle& ImGui::GetStyle()
  function ImDrawData (line 2665) | ImDrawData* ImGui::GetDrawData()
  function ImDrawList (line 2680) | ImDrawList* ImGui::GetOverlayDrawList()
  function ImDrawListSharedData (line 2685) | ImDrawListSharedData* ImGui::GetDrawListSharedData()
  function ImVec2 (line 2714) | static ImVec2 NavCalcPreferredMousePos()
  function FindWindowIndex (line 2726) | static int FindWindowIndex(ImGuiWindow* window) // FIXME-OPT O(N)
  function ImGuiWindow (line 2735) | static ImGuiWindow* FindWindowNavigable(int i_start, int i_stop, int dir...
  function IsNavInputDown (line 2767) | static bool IsNavInputDown(ImGuiNavInput n)
  function IsNavInputPressed (line 2773) | static bool IsNavInputPressed(ImGuiNavInput n, ImGuiInputReadMode mode)
  function IsNavInputPressedAnyOfTwo (line 2778) | static bool IsNavInputPressedAnyOfTwo(ImGuiNavInput n1, ImGuiNavInput n2...
  function ImVec2 (line 2783) | ImVec2 ImGui::GetNavInputAmount2d(ImGuiNavDirSourceFlags dir_sources, Im...
  function NavUpdateWindowingHighlightWindow (line 2799) | static void NavUpdateWindowingHighlightWindow(int focus_change_dir)
  function NavScrollToBringItemIntoView (line 2931) | static void NavScrollToBringItemIntoView(ImGuiWindow* window, ImRect& it...
  function SettingsHandlerWindow_ReadLine (line 3555) | static void SettingsHandlerWindow_ReadLine(ImGuiContext*, ImGuiSettingsH...
  function SettingsHandlerWindow_WriteAll (line 3565) | static void SettingsHandlerWindow_WriteAll(ImGuiContext* imgui_ctx, ImGu...
  function ImGuiWindowSettings (line 3676) | ImGuiWindowSettings* ImGui::FindWindowSettings(ImGuiID id)
  function ImGuiWindowSettings (line 3685) | static ImGuiWindowSettings* AddWindowSettings(const char* name)
  function LoadIniSettingsFromDisk (line 3695) | static void LoadIniSettingsFromDisk(const char* ini_filename)
  function ImGuiSettingsHandler (line 3706) | ImGuiSettingsHandler* ImGui::FindSettingsHandler(const char* type_name)
  function LoadIniSettingsFromMemory (line 3717) | static void LoadIniSettingsFromMemory(const char* buf_readonly)
  function SaveIniSettingsToDisk (line 3768) | static void SaveIniSettingsToDisk(const char* ini_filename)
  function SaveIniSettingsToMemory (line 3785) | static void SaveIniSettingsToMemory(ImVector<char>& out_buf)
  function MarkIniSettingsDirty (line 3808) | static void MarkIniSettingsDirty(ImGuiWindow* window)
  function AddWindowToSortedBuffer (line 3828) | static void AddWindowToSortedBuffer(ImVector<ImGuiWindow*>* out_sorted_w...
  function AddDrawListToDrawData (line 3845) | static void AddDrawListToDrawData(ImVector<ImDrawList*>* out_render_list...
  function AddWindowToDrawData (line 3878) | static void AddWindowToDrawData(ImVector<ImDrawList*>* out_render_list, ...
  function AddWindowToDrawDataSelectLayer (line 3889) | static void AddWindowToDrawDataSelectLayer(ImGuiWindow* window)
  function SetupDrawData (line 3917) | static void SetupDrawData(ImVector<ImDrawList*>* draw_lists, ImDrawData*...
  function LogRenderedText (line 4126) | static void LogRenderedText(const ImVec2* ref_pos, const char* text, con...
  function ImVec2 (line 4386) | ImVec2 ImGui::CalcTextSize(const char* text, const char* text_end, bool ...
  function ImGuiWindow (line 4448) | static ImGuiWindow* FindHoveredWindow(ImVec2 pos)
  function IsKeyPressedMap (line 4485) | static bool IsKeyPressedMap(ImGuiKey key, bool repeat)
  function ImVec2 (line 4604) | ImVec2 ImGui::GetMousePos()
  function ImVec2 (line 4610) | ImVec2 ImGui::GetMousePosOnOpeningCurrentPopup()
  function ImVec2 (line 4628) | ImVec2 ImGui::GetMouseDragDelta(int button, float lock_threshold)
  function ImGuiMouseCursor (line 4648) | ImGuiMouseCursor ImGui::GetMouseCursor()
  function ImVec2 (line 4724) | ImVec2 ImGui::GetItemRectMin()
  function ImVec2 (line 4730) | ImVec2 ImGui::GetItemRectMax()
  function ImVec2 (line 4736) | ImVec2 ImGui::GetItemRectSize()
  function ImRect (line 4742) | static ImRect GetViewportRect()
  function ImGuiWindow (line 4874) | static ImGuiWindow* GetFrontMostModalRootWindow()
  function ClosePopupToLevel (line 4884) | static void ClosePopupToLevel(int remaining)
  function NavProcessMoveRequestWrapAround (line 4989) | static void NavProcessMoveRequestWrapAround(ImGuiWindow* window)
  function BeginChildEx (line 5060) | static bool BeginChildEx(const char* name, ImGuiID id, const ImVec2& siz...
  function CheckStacksSize (line 5177) | static void CheckStacksSize(ImGuiWindow* window, bool write)
  type ImGuiPopupPositionPolicy (line 5191) | enum ImGuiPopupPositionPolicy
  function ImVec2 (line 5197) | static ImVec2 FindBestWindowPosForPopup(const ImVec2& ref_pos, const ImV...
  function SetWindowConditionAllowFlags (line 5257) | static void SetWindowConditionAllowFlags(ImGuiWindow* window, ImGuiCond ...
  function ImGuiWindow (line 5264) | ImGuiWindow* ImGui::FindWindowByName(const char* name)
  function ImGuiWindow (line 5271) | static ImGuiWindow* CreateNewWindow(const char* name, ImVec2 size, ImGui...
  function ImVec2 (line 5320) | static ImVec2 CalcSizeAfterConstraint(ImGuiWindow* window, ImVec2 new_size)
  function ImVec2 (line 5350) | static ImVec2 CalcSizeContents(ImGuiWindow* window)
  function ImVec2 (line 5358) | static ImVec2 CalcSizeAutoFit(ImGuiWindow* window, const ImVec2& size_co...
  function GetScrollMaxX (line 5382) | static float GetScrollMaxX(ImGuiWindow* window)
  function GetScrollMaxY (line 5387) | static float GetScrollMaxY(ImGuiWindow* window)
  function ImVec2 (line 5392) | static ImVec2 CalcNextScrollFromScrollTargetAndClamp(ImGuiWindow* window)
  function ImGuiCol (line 5410) | static ImGuiCol GetWindowBgColorIdxFromFlags(ImGuiWindowFlags flags)
  function CalcResizePosSizeFromAnyCorner (line 5419) | static void CalcResizePosSizeFromAnyCorner(ImGuiWindow* window, const Im...
  type ImGuiResizeGripDef (line 5433) | struct ImGuiResizeGripDef
  function ImRect (line 5448) | static ImRect GetBorderRect(ImGuiWindow* window, int border_n, float per...
  function ImFont (line 6454) | static ImFont* GetDefaultFont()
  type ImGuiStyleVarInfo (line 6577) | struct ImGuiStyleVarInfo
  function ImGuiStyleVarInfo (line 6609) | static const ImGuiStyleVarInfo* GetStyleVarInfo(ImGuiStyleVar idx)
  function ImVec2 (line 6808) | ImVec2 ImGui::GetWindowPos()
  function SetWindowScrollX (line 6815) | static void SetWindowScrollX(ImGuiWindow* window, float new_scroll_x)
  function SetWindowScrollY (line 6822) | static void SetWindowScrollY(ImGuiWindow* window, float new_scroll_y)
  function SetWindowPos (line 6829) | static void SetWindowPos(ImGuiWindow* window, const ImVec2& pos, ImGuiCo...
  function ImVec2 (line 6857) | ImVec2 ImGui::GetWindowSize()
  function SetWindowSize (line 6863) | static void SetWindowSize(ImGuiWindow* window, const ImVec2& size, ImGui...
  function SetWindowCollapsed (line 6904) | static void SetWindowCollapsed(ImGuiWindow* window, bool collapsed, ImGu...
  function ImVec2 (line 7008) | ImVec2 ImGui::GetContentRegionMax()
  function ImVec2 (line 7017) | ImVec2 ImGui::GetContentRegionAvail()
  function ImVec2 (line 7029) | ImVec2 ImGui::GetWindowContentRegionMin()
  function ImVec2 (line 7035) | ImVec2 ImGui::GetWindowContentRegionMax()
  function ImDrawList (line 7071) | ImDrawList* ImGui::GetWindowDrawList()
  function ImFont (line 7077) | ImFont* ImGui::GetFont()
  function ImVec2 (line 7087) | ImVec2 ImGui::GetFontTexUvWhitePixel()
  function ImVec2 (line 7102) | ImVec2 ImGui::GetCursorPos()
  function ImVec2 (line 7141) | ImVec2 ImGui::GetCursorStartPos()
  function ImVec2 (line 7147) | ImVec2 ImGui::GetCursorScreenPos()
  function ImGuiStorage (line 7255) | ImGuiStorage* ImGui::GetStateStorage()
  function ImGuiID (line 8292) | ImGuiID ImGui::GetID(const char* str_id)
  function ImGuiID (line 8297) | ImGuiID ImGui::GetID(const char* str_id_begin, const char* str_id_end)
  function ImGuiID (line 8302) | ImGuiID ImGui::GetID(const void* ptr_id)
  function DataTypeFormatString (line 8362) | static inline void DataTypeFormatString(ImGuiDataType data_type, void* d...
  function DataTypeFormatString (line 8370) | static inline void DataTypeFormatString(ImGuiDataType data_type, void* d...
  function DataTypeApplyOp (line 8388) | static void DataTypeApplyOp(ImGuiDataType data_type, int op, void* value...
  function DataTypeApplyOpFromText (line 8407) | static bool DataTypeApplyOpFromText(const char* buf, const char* initial...
  function GetMinimumStepAtDecimalPrecision (line 8520) | static float GetMinimumStepAtDecimalPrecision(int decimal_precision)
  function SliderBehaviorCalcRatioFromValue (line 8544) | static inline float SliderBehaviorCalcRatioFromValue(float v, float v_mi...
  type ImGuiPlotArrayGetterData (line 9347) | struct ImGuiPlotArrayGetterData
    method ImGuiPlotArrayGetterData (line 9352) | ImGuiPlotArrayGetterData(const float* values, int stride) { Values = v...
  function Plot_ArrayGetter (line 9355) | static float Plot_ArrayGetter(void* data, int idx)
  function InputTextCalcTextLenAndLineCount (line 9552) | static int InputTextCalcTextLenAndLineCount(const char* text_begin, cons...
  function ImVec2 (line 9566) | static ImVec2 InputTextCalcTextSizeW(const ImWchar* text_begin, const Im...
  type ImGuiStb (line 9611) | namespace ImGuiStb
    function STB_TEXTEDIT_STRINGLEN (line 9614) | static int     STB_TEXTEDIT_STRINGLEN(const STB_TEXTEDIT_STRING* obj) ...
    function ImWchar (line 9615) | static ImWchar STB_TEXTEDIT_GETCHAR(const STB_TEXTEDIT_STRING* obj, in...
    function STB_TEXTEDIT_GETWIDTH (line 9616) | static float   STB_TEXTEDIT_GETWIDTH(STB_TEXTEDIT_STRING* obj, int lin...
    function STB_TEXTEDIT_KEYTOTEXT (line 9617) | static int     STB_TEXTEDIT_KEYTOTEXT(int key)                        ...
    function STB_TEXTEDIT_LAYOUTROW (line 9619) | static void    STB_TEXTEDIT_LAYOUTROW(StbTexteditRow* r, STB_TEXTEDIT_...
    function is_separator (line 9632) | static bool is_separator(unsigned int c)                              ...
    function is_word_boundary_from_right (line 9633) | static int  is_word_boundary_from_right(STB_TEXTEDIT_STRING* obj, int ...
    function STB_TEXTEDIT_MOVEWORDLEFT_IMPL (line 9634) | static int  STB_TEXTEDIT_MOVEWORDLEFT_IMPL(STB_TEXTEDIT_STRING* obj, i...
    function is_word_boundary_from_left (line 9636) | static int  is_word_boundary_from_left(STB_TEXTEDIT_STRING* obj, int i...
    function STB_TEXTEDIT_MOVEWORDRIGHT_IMPL (line 9637) | static int  STB_TEXTEDIT_MOVEWORDRIGHT_IMPL(STB_TEXTEDIT_STRING* obj, ...
    function STB_TEXTEDIT_MOVEWORDRIGHT_IMPL (line 9639) | static int  STB_TEXTEDIT_MOVEWORDRIGHT_IMPL(STB_TEXTEDIT_STRING* obj, ...
    function STB_TEXTEDIT_DELETECHARS (line 9644) | static void STB_TEXTEDIT_DELETECHARS(STB_TEXTEDIT_STRING* obj, int pos...
    function STB_TEXTEDIT_INSERTCHARS (line 9659) | static bool STB_TEXTEDIT_INSERTCHARS(STB_TEXTEDIT_STRING* obj, int pos...
  function InputTextFilterCharacter (line 9751) | static bool InputTextFilterCharacter(unsigned int* p_char, ImGuiInputTex...
  function CalcMaxPopupHeightFromItemCount (line 10573) | static float CalcMaxPopupHeightFromItemCount(int items_count)
  function Items_ArrayGetter (line 10727) | static bool Items_ArrayGetter(void* data, int idx, const char** out_text)
  function Items_SingleStringGetter (line 10735) | static bool Items_SingleStringGetter(void* data, int idx, const char** o...
  function ImU32 (line 11294) | static inline ImU32 ImAlphaBlendColor(ImU32 col_a, ImU32 col_b)
  function ColorPickerOptionsPopup (line 11482) | static void ColorPickerOptionsPopup(ImGuiColorEditFlags flags, const flo...
  function RenderArrow (line 11732) | static void RenderArrow(ImDrawList* draw_list, ImVec2 pos, ImVec2 half_s...
  function RenderArrowsForVerticalBar (line 11744) | static void RenderArrowsForVerticalBar(ImDrawList* draw_list, ImVec2 pos...
  function OffsetNormToPixels (line 12345) | static float OffsetNormToPixels(const ImGuiColumnsSet* columns, float of...
  function PixelsToOffsetNorm (line 12350) | static float PixelsToOffsetNorm(const ImGuiColumnsSet* columns, float of...
  function GetColumnsRectHalfWidth (line 12355) | static inline float GetColumnsRectHalfWidth() { return 4.0f; }
  function GetDraggedColumnOffset (line 12357) | static float GetDraggedColumnOffset(ImGuiColumnsSet* columns, int column...
  function GetColumnWidthEx (line 12399) | static float GetColumnWidthEx(ImGuiColumnsSet* columns, int column_index...
  function ImGuiColumnsSet (line 12466) | static ImGuiColumnsSet* FindOrAddColumnsSet(ImGuiWindow* window, ImGuiID...
  function ImGuiPayload (line 12937) | const ImGuiPayload* ImGui::AcceptDragDropPayload(const char* type, ImGui...
  function SetClipboardTextFn_DefaultImpl (line 13030) | static void SetClipboardTextFn_DefaultImpl(void*, const char* text)
  function SetClipboardTextFn_DefaultImpl (line 13059) | static void SetClipboardTextFn_DefaultImpl(void*, const char* text)
  function ImeSetInputScreenPosFn_DefaultImpl (line 13079) | static void ImeSetInputScreenPosFn_DefaultImpl(int x, int y)
  function ImeSetInputScreenPosFn_DefaultImpl (line 13095) | static void ImeSetInputScreenPosFn_DefaultImpl(int, int) {}
  type Funcs (line 13115) | struct Funcs
    method NodeDrawList (line 13117) | static void NodeDrawList(ImGuiWindow* window, ImDrawList* draw_list, c...
    method NodeWindows (line 13186) | static void NodeWindows(ImVector<ImGuiWindow*>& windows, const char* l...
    method NodeWindow (line 13195) | static void NodeWindow(ImGuiWindow* window, const char* label)

FILE: ui/imgui/imgui.h
  type ImDrawChannel (line 55) | struct ImDrawChannel
  type ImDrawCmd (line 56) | struct ImDrawCmd
  type ImDrawData (line 57) | struct ImDrawData
  type ImDrawList (line 58) | struct ImDrawList
  type ImDrawListSharedData (line 59) | struct ImDrawListSharedData
  type ImDrawVert (line 60) | struct ImDrawVert
  type ImFont (line 61) | struct ImFont
  type ImFontAtlas (line 62) | struct ImFontAtlas
  type ImFontConfig (line 63) | struct ImFontConfig
  type ImColor (line 64) | struct ImColor
  type ImGuiIO (line 65) | struct ImGuiIO
  type ImGuiOnceUponAFrame (line 66) | struct ImGuiOnceUponAFrame
  type ImGuiStorage (line 67) | struct ImGuiStorage
  type ImGuiStyle (line 68) | struct ImGuiStyle
  type ImGuiTextFilter (line 69) | struct ImGuiTextFilter
  type ImGuiTextBuffer (line 70) | struct ImGuiTextBuffer
  type ImGuiTextEditCallbackData (line 71) | struct ImGuiTextEditCallbackData
  type ImGuiSizeCallbackData (line 72) | struct ImGuiSizeCallbackData
  type ImGuiListClipper (line 73) | struct ImGuiListClipper
  type ImGuiPayload (line 74) | struct ImGuiPayload
  type ImGuiContext (line 75) | struct ImGuiContext
  type ImU32 (line 78) | typedef unsigned int ImU32;
  type ImGuiID (line 79) | typedef unsigned int ImGuiID;
  type ImWchar (line 80) | typedef unsigned short ImWchar;
  type ImGuiCol (line 82) | typedef int ImGuiCol;
  type ImGuiCond (line 83) | typedef int ImGuiCond;
  type ImGuiKey (line 84) | typedef int ImGuiKey;
  type ImGuiNavInput (line 85) | typedef int ImGuiNavInput;
  type ImGuiMouseCursor (line 86) | typedef int ImGuiMouseCursor;
  type ImGuiStyleVar (line 87) | typedef int ImGuiStyleVar;
  type ImDrawCornerFlags (line 88) | typedef int ImDrawCornerFlags;
  type ImDrawListFlags (line 89) | typedef int ImDrawListFlags;
  type ImFontAtlasFlags (line 90) | typedef int ImFontAtlasFlags;
  type ImGuiColorEditFlags (line 91) | typedef int ImGuiColorEditFlags;
  type ImGuiColumnsFlags (line 92) | typedef int ImGuiColumnsFlags;
  type ImGuiDragDropFlags (line 93) | typedef int ImGuiDragDropFlags;
  type ImGuiComboFlags (line 94) | typedef int ImGuiComboFlags;
  type ImGuiFocusedFlags (line 95) | typedef int ImGuiFocusedFlags;
  type ImGuiHoveredFlags (line 96) | typedef int ImGuiHoveredFlags;
  type ImGuiInputTextFlags (line 97) | typedef int ImGuiInputTextFlags;
  type ImGuiNavFlags (line 98) | typedef int ImGuiNavFlags;
  type ImGuiSelectableFlags (line 99) | typedef int ImGuiSelectableFlags;
  type ImGuiTreeNodeFlags (line 100) | typedef int ImGuiTreeNodeFlags;
  type ImGuiWindowFlags (line 101) | typedef int ImGuiWindowFlags;
  type ImU64 (line 105) | typedef unsigned __int64 ImU64;
  type ImU64 (line 107) | typedef unsigned long long ImU64;
  function ImVec2 (line 114) | struct ImVec2
  function const (line 119) | float operator[] (size_t idx) const { IM_ASSERT(idx == 0 || idx == 1); r...
  function ImVec4 (line 125) | struct ImVec4
  function namespace (line 137) | namespace ImGui
  type ImGuiWindowFlags_ (line 541) | enum ImGuiWindowFlags_
  type ImGuiInputTextFlags_ (line 575) | enum ImGuiInputTextFlags_
  type ImGuiTreeNodeFlags_ (line 599) | enum ImGuiTreeNodeFlags_
  type ImGuiSelectableFlags_ (line 624) | enum ImGuiSelectableFlags_
  type ImGuiComboFlags_ (line 632) | enum ImGuiComboFlags_
  type ImGuiFocusedFlags_ (line 643) | enum ImGuiFocusedFlags_
  type ImGuiHoveredFlags_ (line 652) | enum ImGuiHoveredFlags_
  type ImGuiDragDropFlags_ (line 667) | enum ImGuiDragDropFlags_
  type ImGuiKey_ (line 686) | enum ImGuiKey_
  type ImGuiNavInput_ (line 716) | enum ImGuiNavInput_
  type ImGuiNavFlags_ (line 748) | enum ImGuiNavFlags_
  type ImGuiCol_ (line 757) | enum ImGuiCol_
  type ImGuiStyleVar_ (line 816) | enum ImGuiStyleVar_
  type ImGuiColorEditFlags_ (line 849) | enum ImGuiColorEditFlags_
  type ImGuiMouseCursor_ (line 879) | enum ImGuiMouseCursor_
  type ImGuiCond_ (line 894) | enum ImGuiCond_
  type ImGuiStyle (line 909) | struct ImGuiStyle
  type ImGuiIO (line 948) | struct ImGuiIO
  function namespace (line 1067) | namespace ImGui
  function ShowTestWindow (line 1074) | static inline void  ShowTestWindow()                      { return ShowD...
  function IsRootWindowFocused (line 1075) | static inline bool  IsRootWindowFocused()                 { return IsWin...
  function IsRootWindowOrAnyChildFocused (line 1076) | static inline bool  IsRootWindowOrAnyChildFocused()       { return IsWin...
  function SetNextWindowContentWidth (line 1077) | static inline void  SetNextWindowContentWidth(float w)    { SetNextWindo...
  function GetItemsLineHeightWithSpacing (line 1078) | static inline float GetItemsLineHeightWithSpacing()       { return GetFr...
  function IsRootWindowOrAnyChildHovered (line 1081) | static inline bool  IsRootWindowOrAnyChildHovered()       { return IsWin...
  function AlignFirstTextHeightToWidgets (line 1082) | static inline void  AlignFirstTextHeightToWidgets()       { AlignTextToF...
  function IsItemHoveredRect (line 1085) | static inline bool  IsItemHoveredRect()                   { return IsIte...
  function IsPosHoveringAnyWindow (line 1086) | static inline bool  IsPosHoveringAnyWindow(const ImVec2&) { IM_ASSERT(0)...
  function IsMouseHoveringAnyWindow (line 1087) | static inline bool  IsMouseHoveringAnyWindow()            { return IsWin...
  function IsMouseHoveringWindow (line 1088) | static inline bool  IsMouseHoveringWindow()               { return IsWin...
  type T (line 1108) | typedef T                   value_type;
  type value_type (line 1109) | typedef value_type*         iterator;
  type value_type (line 1110) | typedef const value_type*   const_iterator;
  function value_type (line 1119) | inline value_type&          operator[](int i)               { IM_ASSERT(...
  function value_type (line 1120) | inline const value_type&    operator[](int i) const         { IM_ASSERT(...
  function clear (line 1122) | inline void                 clear()                         { if (Data) ...
  function iterator (line 1123) | inline iterator             begin()                         { return Dat...
  function iterator (line 1125) | inline iterator             end()                           { return Dat...
  function value_type (line 1127) | inline value_type&          front()                         { IM_ASSERT(...
  function value_type (line 1128) | inline const value_type&    front() const                   { IM_ASSERT(...
  function value_type (line 1130) | inline const value_type&    back() const                    { IM_ASSERT(...
  function _grow_capacity (line 1133) | inline int                  _grow_capacity(int sz) const    { int new_ca...
  function resize (line 1135) | inline void                 resize(int new_size)            { if (new_si...
  function resize (line 1136) | inline void                 resize(int new_size, const T& v){ if (new_si...
  function reserve (line 1137) | inline void                 reserve(int new_capacity)
  function push_back (line 1150) | inline void                 push_back(const value_type& v)  { if (Size =...
  function pop_back (line 1151) | inline void                 pop_back()                      { IM_ASSERT(...
  function push_front (line 1152) | inline void                 push_front(const value_type& v) { if (Size =...
  function iterator (line 1154) | inline iterator             erase(const_iterator it)        { IM_ASSERT(...
  function iterator (line 1155) | inline iterator             insert(const_iterator it, const value_type& ...
  function contains (line 1156) | inline bool                 contains(const value_type& v) const         ...
  type ImGuiOnceUponAFrame (line 1164) | struct ImGuiOnceUponAFrame
  type ImGuiTextFilter (line 1177) | struct ImGuiTextFilter
  function is_blank (line 1190) | static bool is_blank(char c) { return c == ' ' || c == '\t'; }
  function trim_blanks (line 1191) | void trim_blanks() { while (b < e && is_blank(*b)) b++; while (e > b && ...
  function Clear (line 1203) | void                Clear() { InputBuf[0] = 0; Build(); }
  type ImGuiTextBuffer (line 1208) | struct ImGuiTextBuffer
  function empty (line 1217) | bool                empty() { return Buf.Size <= 1; }
  function clear (line 1218) | void                clear() { Buf.clear(); Buf.push_back(0); }
  function reserve (line 1219) | void                reserve(int capacity) { Buf.reserve(capacity); }
  function Pair (line 1233) | struct ImGuiStorage
  function Clear (line 1248) | void                Clear() { Data.clear(); }
  type ImGuiTextEditCallbackData (line 1275) | struct ImGuiTextEditCallbackData
  type ImGuiSizeCallbackData (line 1304) | struct ImGuiSizeCallbackData
  function Clear (line 1313) | struct ImGuiPayload
  function IsDataType (line 1329) | bool IsDataType(const char* type) const { return DataFrameCount != -1 &&...
  type ImColor (line 1357) | struct ImColor
  function operator (line 1366) | inline operator ImU32() const                                   { return...
  function ImGuiListClipper (line 1387) | struct ImGuiListClipper
  type ImDrawIdx (line 1429) | typedef unsigned short ImDrawIdx;
  type ImDrawVert (line 1434) | struct ImDrawVert
  type ImDrawChannel (line 1450) | struct ImDrawChannel
  type ImDrawCornerFlags_ (line 1456) | enum ImDrawCornerFlags_
  type ImDrawListFlags_ (line 1469) | enum ImDrawListFlags_
  function ImDrawList (line 1481) | struct ImDrawList
  function ImVec2 (line 1510) | inline ImVec2   GetClipRectMin() const { const ImVec4& cr = _ClipRectSta...
  function PathClear (line 1534) | inline    void  PathClear()                                             ...
  function PathLineTo (line 1535) | inline    void  PathLineTo(const ImVec2& pos)                           ...
  function PathLineToMergeDuplicate (line 1536) | inline    void  PathLineToMergeDuplicate(const ImVec2& pos)             ...
  function PathFillConvex (line 1537) | inline    void  PathFillConvex(ImU32 col)                               ...
  function PrimWriteVtx (line 1563) | inline    void  PrimWriteVtx(const ImVec2& pos, const ImVec2& uv, ImU32 ...
  function PrimWriteIdx (line 1564) | inline    void  PrimWriteIdx(ImDrawIdx idx)                             ...
  function PrimVtx (line 1565) | inline    void  PrimVtx(const ImVec2& pos, const ImVec2& uv, ImU32 col) ...
  function Clear (line 1571) | struct ImDrawData
  type ImFontConfig (line 1586) | struct ImFontConfig
  type ImFontGlyph (line 1609) | struct ImFontGlyph
  type ImFontAtlasFlags_ (line 1617) | enum ImFontAtlasFlags_
  type ImFontAtlas (line 1631) | struct ImFontAtlas
  function GetBit (line 1669) | struct GlyphRangesBuilder
  function SetBit (line 1674) | void           SetBit(int n)        { UsedChars[n >> 3] |= 1 << (n & 7); }
  function AddChar (line 1675) | void           AddChar(ImWchar c)   { SetBit(c); }
  function CustomRect (line 1701) | const CustomRect*   GetCustomRectByIndex(int index) const { if (index < ...
  type ImFont (line 1732) | struct ImFont
  type ImFontGlyph (line 1776) | typedef ImFontGlyph Glyph;

FILE: ui/imgui/imgui_demo.cpp
  function ShowHelpMarker (line 91) | static void ShowHelpMarker(const char* desc)
  type TextFilters (line 711) | struct TextFilters { static int FilterImGuiLetters(ImGuiTextEditCallback...
    method FilterImGuiLetters (line 711) | static int FilterImGuiLetters(ImGuiTextEditCallbackData* data) { if (d...
  type Funcs (line 773) | struct Funcs
    method Sin (line 775) | static float Sin(void*, int i) { return sinf(i * 0.1f); }
    method Saw (line 776) | static float Saw(void*, int i) { return (i & 1) ? 1.0f : -1.0f; }
  function ShowExampleAppMainMenuBar (line 2275) | static void ShowExampleAppMainMenuBar()
  function ShowExampleMenuFile (line 2298) | static void ShowExampleMenuFile()
  function ShowExampleAppAutoResize (line 2364) | static void ShowExampleAppAutoResize(bool* p_open)
  function ShowExampleAppConstrainedResize (line 2381) | static void ShowExampleAppConstrainedResize(bool* p_open)
  function ShowExampleAppFixedOverlay (line 2428) | static void ShowExampleAppFixedOverlay(bool* p_open)
  function ShowExampleAppWindowTitles (line 2456) | static void ShowExampleAppWindowTitles(bool*)
  function ShowExampleAppCustomRendering (line 2482) | static void ShowExampleAppCustomRendering(bool* p_open)
  function Draw (line 2585) | struct ExampleAppConsole
  function ExecCommand (line 2740) | void    ExecCommand(const char* command_line)
  function TextEditCallbackStub (line 2778) | static int TextEditCallbackStub(ImGuiTextEditCallbackData* data) // In C...
  function TextEditCallback (line 2784) | int     TextEditCallback(ImGuiTextEditCallbackData* data)
  function ShowExampleAppConsole (line 2884) | static void ShowExampleAppConsole(bool* p_open)
  function Draw (line 2894) | struct ExampleAppLog
  function ShowExampleAppLog (line 2955) | static void ShowExampleAppLog(bool* p_open)
  function ShowExampleAppLayout (line 2973) | static void ShowExampleAppLayout(bool* p_open)
  function ShowExampleAppPropertyEditor (line 3017) | static void ShowExampleAppPropertyEditor(bool* p_open)
  function ShowExampleAppLongText (line 3090) | static void ShowExampleAppLongText(bool* p_open)

FILE: ui/imgui/imgui_draw.cpp
  function PathBezierToCasteljau (line 896) | static void PathBezierToCasteljau(ImVector<ImVec2>* path, float x1, floa...
  function ImFont (line 1468) | ImFont* ImFontAtlas::AddFont(const ImFontConfig* font_cfg)
  function Decode85Byte (line 1499) | static unsigned int Decode85Byte(char c)                                ...
  function Decode85 (line 1500) | static void         Decode85(const unsigned char* src, unsigned char* dst)
  function ImFont (line 1512) | ImFont* ImFontAtlas::AddFontDefault(const ImFontConfig* font_cfg_template)
  function ImFont (line 1528) | ImFont* ImFontAtlas::AddFontFromFileTTF(const char* filename, float size...
  function ImFont (line 1549) | ImFont* ImFontAtlas::AddFontFromMemoryTTF(void* ttf_data, int ttf_size, ...
  function ImFont (line 1561) | ImFont* ImFontAtlas::AddFontFromMemoryCompressedTTF(const void* compress...
  function ImFont (line 1573) | ImFont* ImFontAtlas::AddFontFromMemoryCompressedBase85TTF(const char* co...
  function ImFontAtlasBuildMultiplyCalcLookupTable (line 1646) | void    ImFontAtlasBuildMultiplyCalcLookupTable(unsigned char out_table[...
  function ImFontAtlasBuildMultiplyRectAlpha8 (line 1655) | void    ImFontAtlasBuildMultiplyRectAlpha8(const unsigned char table[256...
  function ImFontAtlasBuildWithStbTruetype (line 1663) | bool    ImFontAtlasBuildWithStbTruetype(ImFontAtlas* atlas)
  function ImFontAtlasBuildRegisterDefaultCustomRects (line 1859) | void ImFontAtlasBuildRegisterDefaultCustomRects(ImFontAtlas* atlas)
  function ImFontAtlasBuildSetupFont (line 1869) | void ImFontAtlasBuildSetupFont(ImFontAtlas* atlas, ImFont* font, ImFontC...
  function ImFontAtlasBuildPackCustomRects (line 1883) | void ImFontAtlasBuildPackCustomRects(ImFontAtlas* atlas, void* pack_cont...
  function ImFontAtlasBuildRenderDefaultTexData (line 1909) | static void ImFontAtlasBuildRenderDefaultTexData(ImFontAtlas* atlas)
  function ImFontAtlasBuildFinish (line 1940) | void ImFontAtlasBuildFinish(ImFontAtlas* atlas)
  function ImWchar (line 1964) | const ImWchar*   ImFontAtlas::GetGlyphRangesDefault()
  function ImWchar (line 1974) | const ImWchar*  ImFontAtlas::GetGlyphRangesKorean()
  function ImWchar (line 1986) | const ImWchar*  ImFontAtlas::GetGlyphRangesChinese()
  function ImWchar (line 2000) | const ImWchar*  ImFontAtlas::GetGlyphRangesJapanese()
  function ImWchar (line 2065) | const ImWchar*  ImFontAtlas::GetGlyphRangesCyrillic()
  function ImWchar (line 2078) | const ImWchar*  ImFontAtlas::GetGlyphRangesThai()
  function ImFontGlyph (line 2259) | const ImFontGlyph* ImFont::FindGlyph(ImWchar c) const
  function ImVec2 (line 2369) | ImVec2 ImFont::CalcTextSizeA(float size, float max_width, float wrap_wid...
  function ImAcos01 (line 2653) | static inline float ImAcos01(float x)
  function stb_decompress_length (line 2729) | static unsigned int stb_decompress_length(unsigned char *input)
  function stb__match (line 2736) | static void stb__match(unsigned char *data, unsigned int length)
  function stb__lit (line 2745) | static void stb__lit(unsigned char *data, unsigned int length)
  function stb_adler32 (line 2775) | static unsigned int stb_adler32(unsigned int adler32, unsigned char *buf...
  function stb_decompress (line 2806) | static unsigned int stb_decompress(unsigned char *output, unsigned char ...

FILE: ui/imgui/imgui_impl_glfw_gl3.cpp
  function ImGui_ImplGlfwGL3_RenderDrawData (line 61) | void ImGui_ImplGlfwGL3_RenderDrawData(ImDrawData* draw_data)
  function ImGui_ImplGlfwGL3_SetClipboardText (line 170) | static void ImGui_ImplGlfwGL3_SetClipboardText(void* user_data, const ch...
  function ImGui_ImplGlfwGL3_MouseButtonCallback (line 175) | void ImGui_ImplGlfwGL3_MouseButtonCallback(GLFWwindow*, int button, int ...
  function ImGui_ImplGlfwGL3_ScrollCallback (line 181) | void ImGui_ImplGlfwGL3_ScrollCallback(GLFWwindow*, double xoffset, doubl...
  function ImGui_ImplGlfwGL3_KeyCallback (line 188) | void ImGui_ImplGlfwGL3_KeyCallback(GLFWwindow*, int key, int, int action...
  function ImGui_ImplGlfwGL3_CharCallback (line 203) | void ImGui_ImplGlfwGL3_CharCallback(GLFWwindow*, unsigned int c)
  function ImGui_ImplGlfwGL3_CreateFontsTexture (line 210) | bool ImGui_ImplGlfwGL3_CreateFontsTexture()
  function ImGui_ImplGlfwGL3_CreateDeviceObjects (line 237) | bool ImGui_ImplGlfwGL3_CreateDeviceObjects()
  function ImGui_ImplGlfwGL3_InvalidateDeviceObjects (line 312) | void    ImGui_ImplGlfwGL3_InvalidateDeviceObjects()
  function Libuv_Poll_Callback (line 338) | static void Libuv_Poll_Callback(uv_poll_t* handle, int status, int events)
  function Libuv_Redraw_Callback (line 344) | static void Libuv_Redraw_Callback(uv_timer_t* handle)
  function ImGui_ImplGlfwGL3_Init (line 352) | bool    ImGui_ImplGlfwGL3_Init(GLFWwindow* window,
  function ImGui_ImplGlfwGL3_Shutdown (line 421) | void ImGui_ImplGlfwGL3_Shutdown()
  function ImGui_ImplGlfwGL3_NewFrame (line 426) | void ImGui_ImplGlfwGL3_NewFrame()
  function ImGui_ImplGlfwGL3_ScheduleFrame (line 510) | void ImGui_ImplGlfwGL3_ScheduleFrame()

FILE: ui/imgui/imgui_impl_glfw_gl3.h
  type GLFWwindow (line 14) | struct GLFWwindow

FILE: ui/imgui/imgui_impl_gtk3_cogl.cpp
  type backend_callbacks (line 61) | struct backend_callbacks
  type backend_callbacks (line 67) | struct backend_callbacks
  function cairo_region_t (line 77) | static cairo_region_t *get_window_region(GdkWindow *window)
  function wayland_init (line 88) | static void wayland_init(CoglRenderer *renderer, GdkDisplay *display, Gd...
  function wayland_set_window (line 95) | static void wayland_set_window(CoglOnscreen* onscreen, GdkWindow *window)
  function wayland_resize (line 102) | static void wayland_resize(GdkWindow *window,
  function x11_init (line 113) | static void x11_init(CoglRenderer *renderer, GdkDisplay *display, GdkWin...
  function ImVec2 (line 119) | static ImVec2 x11_get_scale(GdkWindow *window)
  function x11_window_update_foreign_event_mask (line 125) | static void x11_window_update_foreign_event_mask(CoglOnscreen *onscreen,
  function GdkFilterReturn (line 136) | static GdkFilterReturn
  function x11_set_window (line 158) | static void x11_set_window(CoglOnscreen* onscreen, GdkWindow *window)
  function x11_resize (line 167) | static void x11_resize(GdkWindow *window,
  function win32_set_window (line 188) | static void win32_set_window(CoglOnscreen* onscreen, GdkWindow *window)
  function noop_init (line 195) | static void noop_init(CoglRenderer *renderer, GdkDisplay *display, GdkWi...
  function ImVec2 (line 200) | static ImVec2 noop_get_scale(GdkWindow *window)
  function noop_set_window (line 205) | static void noop_set_window(CoglOnscreen* onscreen, GdkWindow *window)
  function noop_resize (line 210) | static void noop_resize(GdkWindow *window, CoglOnscreen* onscreen,
  type backend_callbacks (line 216) | struct backend_callbacks
  type backend_callbacks (line 221) | struct backend_callbacks
  type backend_callbacks (line 234) | struct backend_callbacks
  type backend_callbacks (line 248) | struct backend_callbacks
  type backend_callbacks (line 260) | struct backend_callbacks
  function ImGui_ImplGtk3Cogl_RenderDrawData (line 274) | void ImGui_ImplGtk3Cogl_RenderDrawData(ImDrawData* draw_data)
  function ImGui_ImplGtk3Cogl_SetClipboardText (line 378) | static void ImGui_ImplGtk3Cogl_SetClipboardText(void* user_data, const c...
  function ImGui_ImplGtk3Cogl_CreateFontsTexture (line 383) | bool ImGui_ImplGtk3Cogl_CreateFontsTexture()
  function ImGui_ImplGtk3Cogl_CreateDeviceObjects (line 401) | bool ImGui_ImplGtk3Cogl_CreateDeviceObjects()
  function ImGui_ImplGtk3Cogl_InvalidateDeviceObjects (line 455) | void    ImGui_ImplGtk3Cogl_InvalidateDeviceObjects()
  function ImGui_ImplGtk3Cogl_HandleEvent (line 462) | void   ImGui_ImplGtk3Cogl_HandleEvent(GdkEvent *event)
  function gboolean (line 580) | static gboolean handle_gdk_event(GtkWidget *widget, GdkEvent *event, voi...
  function handle_allocate (line 586) | static void handle_allocate(GtkWidget    *widget,
  function handle_repaint (line 598) | static void handle_repaint(GdkFrameClock *clock, void *data)
  function CoglOnscreen (line 603) | CoglOnscreen* ImGui_ImplGtk3Cogl_Init(GtkWidget* widget,
  function CoglContext (line 697) | CoglContext*  ImGui_ImplGtk3Cogl_GetContext()
  function ImGui_ImplGtk3Cogl_Shutdown (line 702) | void ImGui_ImplGtk3Cogl_Shutdown()
  function gboolean (line 709) | static gboolean timeout_callback(gpointer data)
  function kick_timeout_redraw (line 717) | static void kick_timeout_redraw(float timeout)
  function ImGui_ImplGtk3Cogl_NewFrame (line 724) | void ImGui_ImplGtk3Cogl_NewFrame()
  function ImGui_ImplGtk3Cogl_ScheduleFrame (line 788) | void ImGui_ImplGtk3Cogl_ScheduleFrame()

FILE: ui/imgui/imgui_impl_sdl_gles2.cpp
  function ImGui_ImplSdlGLES2_RenderDrawData (line 42) | void ImGui_ImplSdlGLES2_RenderDrawData(ImDrawData* draw_data)
  function ImGui_ImplSdlGLES2_SetClipboardText (line 156) | static void ImGui_ImplSdlGLES2_SetClipboardText(void*, const char* text)
  function ImGui_ImplSdlGLES2_ProcessEvent (line 161) | bool ImGui_ImplSdlGLES2_ProcessEvent(SDL_Event* event)
  function ImGui_ImplSdlGLES2_CreateFontsTexture (line 222) | void ImGui_ImplSdlGLES2_CreateFontsTexture()
  function ImGui_ImplSdlGLES2_CreateDeviceObjects (line 246) | bool ImGui_ImplSdlGLES2_CreateDeviceObjects()
  function ImGui_ImplSdlGLES2_InvalidateDeviceObjects (line 306) | void    ImGui_ImplSdlGLES2_InvalidateDeviceObjects()
  function sdl_event_callback (line 331) | static int sdl_event_callback(void *userdata, SDL_Event *event)
  function ImGui_ImplSdlGLES2_Init (line 337) | bool    ImGui_ImplSdlGLES2_Init(SDL_Window* window,
  function ImGui_ImplSdlGLES2_Shutdown (line 386) | void ImGui_ImplSdlGLES2_Shutdown()
  function schedule_callback (line 393) | static void schedule_callback(void *data)
  function ImGui_ImplSdlGLES2_ScheduleFrame (line 400) | static void ImGui_ImplSdlGLES2_ScheduleFrame(int ms)
  function ImGui_ImplSdlGLES2_ScheduleFrame (line 409) | void ImGui_ImplSdlGLES2_ScheduleFrame()
  function ImGui_ImplSdlGLES2_NewFrame (line 414) | void ImGui_ImplSdlGLES2_NewFrame(SDL_Window* window)

FILE: ui/imgui/imgui_impl_sdl_gles2.h
  type SDL_Window (line 9) | struct SDL_Window
  type SDL_Event (line 10) | typedef union SDL_Event SDL_Event;

FILE: ui/imgui/imgui_internal.h
  type ImRect (line 35) | struct ImRect
  type ImGuiColMod (line 36) | struct ImGuiColMod
  type ImGuiStyleMod (line 37) | struct ImGuiStyleMod
  type ImGuiGroupData (line 38) | struct ImGuiGroupData
  type ImGuiMenuColumns (line 39) | struct ImGuiMenuColumns
  type ImGuiDrawContext (line 40) | struct ImGuiDrawContext
  type ImGuiTextEditState (line 41) | struct ImGuiTextEditState
  type ImGuiPopupRef (line 42) | struct ImGuiPopupRef
  type ImGuiWindow (line 43) | struct ImGuiWindow
  type ImGuiWindowSettings (line 44) | struct ImGuiWindowSettings
  type ImGuiLayoutType (line 46) | typedef int ImGuiLayoutType;
  type ImGuiButtonFlags (line 47) | typedef int ImGuiButtonFlags;
  type ImGuiItemFlags (line 48) | typedef int ImGuiItemFlags;
  type ImGuiItemStatusFlags (line 49) | typedef int ImGuiItemStatusFlags;
  type ImGuiNavHighlightFlags (line 50) | typedef int ImGuiNavHighlightFlags;
  type ImGuiNavDirSourceFlags (line 51) | typedef int ImGuiNavDirSourceFlags;
  type ImGuiSeparatorFlags (line 52) | typedef int ImGuiSeparatorFlags;
  type ImGuiSliderFlags (line 53) | typedef int ImGuiSliderFlags;
  function namespace (line 59) | namespace ImGuiStb
  function ImCharIsSpace (line 96) | static inline bool      ImCharIsSpace(int c)            { return c == ' ...
  function ImIsPowerOfTwo (line 97) | static inline bool      ImIsPowerOfTwo(int v)           { return v != 0 ...
  function ImUpperPowerOfTwo (line 98) | static inline int       ImUpperPowerOfTwo(int v)        { v--; v |= v >>...
  function ImMin (line 136) | static inline int    ImMin(int lhs, int rhs)                            ...
  function ImMax (line 137) | static inline int    ImMax(int lhs, int rhs)                            ...
  function ImMin (line 138) | static inline float  ImMin(float lhs, float rhs)                        ...
  function ImMax (line 139) | static inline float  ImMax(float lhs, float rhs)                        ...
  function ImVec2 (line 140) | static inline ImVec2 ImMin(const ImVec2& lhs, const ImVec2& rhs)        ...
  function ImVec2 (line 141) | static inline ImVec2 ImMax(const ImVec2& lhs, const ImVec2& rhs)        ...
  function ImClamp (line 142) | static inline int    ImClamp(int v, int mn, int mx)                     ...
  function ImClamp (line 143) | static inline float  ImClamp(float v, float mn, float mx)               ...
  function ImVec2 (line 144) | static inline ImVec2 ImClamp(const ImVec2& f, const ImVec2& mn, ImVec2 m...
  function ImSaturate (line 145) | static inline float  ImSaturate(float f)                                ...
  function ImSwap (line 146) | static inline void   ImSwap(int& a, int& b)                             ...
  function ImSwap (line 147) | static inline void   ImSwap(float& a, float& b)                         ...
  function ImLerp (line 148) | static inline int    ImLerp(int a, int b, float t)                      ...
  function ImLerp (line 149) | static inline float  ImLerp(float a, float b, float t)                  ...
  function ImVec2 (line 150) | static inline ImVec2 ImLerp(const ImVec2& a, const ImVec2& b, float t)  ...
  function ImVec2 (line 151) | static inline ImVec2 ImLerp(const ImVec2& a, const ImVec2& b, const ImVe...
  function ImVec4 (line 152) | static inline ImVec4 ImLerp(const ImVec4& a, const ImVec4& b, float t)  ...
  function ImLengthSqr (line 153) | static inline float  ImLengthSqr(const ImVec2& lhs)                     ...
  function ImLengthSqr (line 154) | static inline float  ImLengthSqr(const ImVec4& lhs)                     ...
  function ImInvLength (line 155) | static inline float  ImInvLength(const ImVec2& lhs, float fail_value)   ...
  function ImFloor (line 156) | static inline float  ImFloor(float f)                                   ...
  function ImVec2 (line 157) | static inline ImVec2 ImFloor(const ImVec2& v)                           ...
  function ImDot (line 158) | static inline float  ImDot(const ImVec2& a, const ImVec2& b)            ...
  function ImVec2 (line 159) | static inline ImVec2 ImRotate(const ImVec2& v, float cos_a, float sin_a)...
  function ImLinearSweep (line 160) | static inline float  ImLinearSweep(float current, float target, float sp...
  function ImVec2 (line 161) | static inline ImVec2 ImMul(const ImVec2& lhs, const ImVec2& rhs)        ...
  type ImNewPlacementDummy (line 165) | struct ImNewPlacementDummy {}
  function delete (line 167) | inline void  operator   delete(void*, ImNewPlacementDummy, void*)   {}
  type ImGuiButtonFlags_ (line 176) | enum ImGuiButtonFlags_
  type ImGuiSliderFlags_ (line 194) | enum ImGuiSliderFlags_
  type ImGuiColumnsFlags_ (line 199) | enum ImGuiColumnsFlags_
  type ImGuiSelectableFlagsPrivate_ (line 209) | enum ImGuiSelectableFlagsPrivate_
  type ImGuiSeparatorFlags_ (line 218) | enum ImGuiSeparatorFlags_
  type ImGuiItemStatusFlags_ (line 225) | enum ImGuiItemStatusFlags_
  type ImGuiLayoutType_ (line 232) | enum ImGuiLayoutType_
  type ImGuiAxis (line 238) | enum ImGuiAxis
  type ImGuiPlotType (line 245) | enum ImGuiPlotType
  type ImGuiDataType (line 251) | enum ImGuiDataType
  type ImGuiDir (line 258) | enum ImGuiDir
  type ImGuiInputSource (line 268) | enum ImGuiInputSource
  type ImGuiInputReadMode (line 279) | enum ImGuiInputReadMode
  type ImGuiNavHighlightFlags_ (line 289) | enum ImGuiNavHighlightFlags_
  type ImGuiNavDirSourceFlags_ (line 297) | enum ImGuiNavDirSourceFlags_
  type ImGuiNavForward (line 304) | enum ImGuiNavForward
  function ImRect (line 313) | struct IMGUI_API ImRect
  function Contains (line 331) | bool        Contains(const ImVec2& p) const     { return p.x     >= Min....
  function Contains (line 332) | bool        Contains(const ImRect& r) const     { return r.Min.x >= Min....
  function Overlaps (line 333) | bool        Overlaps(const ImRect& r) const     { return r.Min.y <  Max....
  function Add (line 334) | void        Add(const ImVec2& p)                { if (Min.x > p.x)     M...
  function Add (line 335) | void        Add(const ImRect& r)                { if (Min.x > r.Min.x) M...
  function Expand (line 336) | void        Expand(const float amount)          { Min.x -= amount;   Min...
  function Expand (line 337) | void        Expand(const ImVec2& amount)        { Min.x -= amount.x; Min...
  function Translate (line 338) | void        Translate(const ImVec2& v)          { Min.x += v.x; Min.y +=...
  function ClipWith (line 339) | void        ClipWith(const ImRect& r)           { Min = ImMax(Min, r.Min...
  function ClipWithFull (line 340) | void        ClipWithFull(const ImRect& r)       { Min = ImClamp(Min, r.M...
  function Floor (line 341) | void        Floor()                             { Min.x = (float)(int)Mi...
  function FixInverted (line 342) | void        FixInverted()                       { if (Min.x > Max.x) ImS...
  type ImGuiColMod (line 348) | struct ImGuiColMod
  function ImGuiStyleMod (line 355) | struct ImGuiStyleMod
  type ImGuiGroupData (line 365) | struct ImGuiGroupData
  function ImGuiMenuColumns (line 379) | struct IMGUI_API ImGuiMenuColumns
  function ImGuiTextEditState (line 393) | struct IMGUI_API ImGuiTextEditState
  type ImGuiSettingsHandler (line 428) | struct ImGuiSettingsHandler
  type ImGuiPopupRef (line 441) | struct ImGuiPopupRef
  type ImGuiColumnData (line 452) | struct ImGuiColumnData
  function Clear (line 462) | struct ImGuiColumnsSet
  function ImDrawListSharedData (line 493) | struct IMGUI_API ImDrawListSharedData
  function ClearFreeMemory (line 508) | struct ImDrawDataBuilder
  function Clear (line 517) | struct ImGuiNavMoveResult
  function Clear (line 563) | void    Clear()
  type ImGuiItemFlags_ (line 810) | enum ImGuiItemFlags_
  function ImGuiDrawContext (line 823) | struct IMGUI_API ImGuiDrawContext
  function ImGuiWindow (line 901) | struct IMGUI_API ImGuiWindow
  function namespace (line 1014) | namespace ImGui

FILE: ui/imgui/stb_rect_pack.h
  type stbrp_context (line 71) | typedef struct stbrp_context stbrp_context;
  type stbrp_node (line 72) | typedef struct stbrp_node    stbrp_node;
  type stbrp_rect (line 73) | typedef struct stbrp_rect    stbrp_rect;
  type stbrp_coord (line 76) | typedef int            stbrp_coord;
  type stbrp_coord (line 78) | typedef unsigned short stbrp_coord;
  type stbrp_rect (line 106) | struct stbrp_rect
  type stbrp_node (line 166) | struct stbrp_node
  type stbrp_context (line 172) | struct stbrp_context
  function STBRP_DEF (line 220) | STBRP_DEF void stbrp_setup_heuristic(stbrp_context *context, int heuristic)
  function STBRP_DEF (line 232) | STBRP_DEF void stbrp_setup_allow_out_of_mem(stbrp_context *context, int ...
  function STBRP_DEF (line 252) | STBRP_DEF void stbrp_init_target(stbrp_context *context, int width, int ...
  function stbrp__skyline_find_min_y (line 285) | static int stbrp__skyline_find_min_y(stbrp_context *c, stbrp_node *first...
  type stbrp__findresult (line 335) | typedef struct
  function stbrp__findresult (line 341) | static stbrp__findresult stbrp__skyline_find_best_pos(stbrp_context *c, ...
  function stbrp__findresult (line 436) | static stbrp__findresult stbrp__skyline_pack_rectangle(stbrp_context *co...
  function rect_height_compare (line 515) | static int STBRP__CDECL rect_height_compare(const void *a, const void *b)
  function rect_original_order (line 526) | static int STBRP__CDECL rect_original_order(const void *a, const void *b)
  function STBRP_DEF (line 539) | STBRP_DEF int stbrp_pack_rects(stbrp_context *context, stbrp_rect *rects...

FILE: ui/imgui/stb_textedit.h
  type StbUndoRecord (line 296) | typedef struct
  type StbUndoState (line 305) | typedef struct
  type STB_TexteditState (line 314) | typedef struct
  type StbTexteditRow (line 357) | typedef struct
  function stb_text_locate_coord (line 391) | static int stb_text_locate_coord(STB_TEXTEDIT_STRING *str, float x, floa...
  function stb_textedit_click (line 451) | static void stb_textedit_click(STB_TEXTEDIT_STRING *str, STB_TexteditSta...
  function stb_textedit_drag (line 460) | static void stb_textedit_drag(STB_TEXTEDIT_STRING *str, STB_TexteditStat...
  type StbFindState (line 480) | typedef struct
  function stb_textedit_find_charpos (line 490) | static void stb_textedit_find_charpos(StbFindState *find, STB_TEXTEDIT_S...
  function stb_textedit_clamp (line 550) | static void stb_textedit_clamp(STB_TEXTEDIT_STRING *str, STB_TexteditSta...
  function stb_textedit_delete (line 564) | static void stb_textedit_delete(STB_TEXTEDIT_STRING *str, STB_TexteditSt...
  function stb_textedit_delete_selection (line 572) | static void stb_textedit_delete_selection(STB_TEXTEDIT_STRING *str, STB_...
  function stb_textedit_sortselection (line 588) | static void stb_textedit_sortselection(STB_TexteditState *state)
  function stb_textedit_move_to_first (line 598) | static void stb_textedit_move_to_first(STB_TexteditState *state)
  function stb_textedit_move_to_last (line 609) | static void stb_textedit_move_to_last(STB_TEXTEDIT_STRING *str, STB_Text...
  function is_word_boundary (line 621) | static int is_word_boundary( STB_TEXTEDIT_STRING *str, int idx )
  function stb_textedit_move_to_word_previous (line 627) | static int stb_textedit_move_to_word_previous( STB_TEXTEDIT_STRING *str,...
  function stb_textedit_move_to_word_next (line 642) | static int stb_textedit_move_to_word_next( STB_TEXTEDIT_STRING *str, int...
  function stb_textedit_prep_selection_at_cursor (line 660) | static void stb_textedit_prep_selection_at_cursor(STB_TexteditState *state)
  function stb_textedit_cut (line 669) | static int stb_textedit_cut(STB_TEXTEDIT_STRING *str, STB_TexteditState ...
  function stb_textedit_paste (line 680) | static int stb_textedit_paste(STB_TEXTEDIT_STRING *str, STB_TexteditStat...
  function stb_textedit_key (line 700) | static void stb_textedit_key(STB_TEXTEDIT_STRING *str, STB_TexteditState...
  function stb_textedit_flush_redo (line 1063) | static void stb_textedit_flush_redo(StbUndoState *state)
  function stb_textedit_discard_undo (line 1070) | static void stb_textedit_discard_undo(StbUndoState *state)
  function stb_textedit_discard_redo (line 1092) | static void stb_textedit_discard_redo(StbUndoState *state)
  function StbUndoRecord (line 1112) | static StbUndoRecord *stb_text_create_undo_record(StbUndoState *state, i...
  function STB_TEXTEDIT_CHARTYPE (line 1136) | static STB_TEXTEDIT_CHARTYPE *stb_text_createundo(StbUndoState *state, i...
  function stb_text_undo (line 1156) | static void stb_text_undo(STB_TEXTEDIT_STRING *str, STB_TexteditState *s...
  function stb_text_redo (line 1224) | static void stb_text_redo(STB_TEXTEDIT_STRING *str, STB_TexteditState *s...
  function stb_text_makeundo_insert (line 1275) | static void stb_text_makeundo_insert(STB_TexteditState *state, int where...
  function stb_text_makeundo_delete (line 1280) | static void stb_text_makeundo_delete(STB_TEXTEDIT_STRING *str, STB_Texte...
  function stb_text_makeundo_replace (line 1290) | static void stb_text_makeundo_replace(STB_TEXTEDIT_STRING *str, STB_Text...
  function stb_textedit_clear_state (line 1301) | static void stb_textedit_clear_state(STB_TexteditState *state, int is_si...
  function stb_textedit_initialize_state (line 1318) | static void stb_textedit_initialize_state(STB_TexteditState *state, int ...

FILE: ui/imgui/stb_truetype.h
  function my_stbtt_initfont (line 284) | void my_stbtt_initfont(void)
  function my_stbtt_print (line 296) | void my_stbtt_print(float x, float y, char *text)
  function main (line 329) | int main(int argc, char **argv)
  function main (line 370) | int main(int arg, char **argv)
  type stbtt_uint8 (line 423) | typedef unsigned char   stbtt_uint8;
  type stbtt_int8 (line 424) | typedef signed   char   stbtt_int8;
  type stbtt_uint16 (line 425) | typedef unsigned short  stbtt_uint16;
  type stbtt_int16 (line 426) | typedef signed   short  stbtt_int16;
  type stbtt_uint32 (line 427) | typedef unsigned int    stbtt_uint32;
  type stbtt_int32 (line 428) | typedef signed   int    stbtt_int32;
  type stbtt__buf (line 508) | typedef struct
  type stbtt_bakedchar (line 522) | typedef struct
  type stbtt_aligned_quad (line 538) | typedef struct
  type stbtt_packedchar (line 568) | typedef struct
  type stbtt_pack_context (line 575) | typedef struct stbtt_pack_context stbtt_pack_context;
  type stbtt_fontinfo (line 576) | typedef struct stbtt_fontinfo stbtt_fontinfo;
  type stbrp_rect (line 578) | typedef struct stbrp_rect stbrp_rect;
  type stbtt_pack_range (line 612) | typedef struct
  type stbtt_pack_context (line 665) | struct stbtt_pack_context {
  type stbtt_fontinfo (line 699) | struct stbtt_fontinfo
  type stbtt_vertex (line 808) | typedef struct
  type stbtt__bitmap (line 891) | typedef struct
  function stbtt_uint8 (line 1100) | static stbtt_uint8 stbtt__buf_get8(stbtt__buf *b)
  function stbtt_uint8 (line 1107) | static stbtt_uint8 stbtt__buf_peek8(stbtt__buf *b)
  function stbtt__buf_seek (line 1114) | static void stbtt__buf_seek(stbtt__buf *b, int o)
  function stbtt__buf_skip (line 1120) | static void stbtt__buf_skip(stbtt__buf *b, int o)
  function stbtt_uint32 (line 1125) | static stbtt_uint32 stbtt__buf_get(stbtt__buf *b, int n)
  function stbtt__buf (line 1135) | static stbtt__buf stbtt__new_buf(const void *p, size_t size)
  function stbtt__buf (line 1148) | static stbtt__buf stbtt__buf_range(const stbtt__buf *b, int o, int s)
  function stbtt__buf (line 1157) | static stbtt__buf stbtt__cff_get_index(stbtt__buf *b)
  function stbtt_uint32 (line 1171) | static stbtt_uint32 stbtt__cff_int(stbtt__buf *b)
  function stbtt__cff_skip_operand (line 1183) | static void stbtt__cff_skip_operand(stbtt__buf *b) {
  function stbtt__buf (line 1198) | static stbtt__buf stbtt__dict_get(stbtt__buf *b, int key)
  function stbtt__dict_get_ints (line 1213) | static void stbtt__dict_get_ints(stbtt__buf *b, int key, int outcount, s...
  function stbtt__cff_index_count (line 1221) | static int stbtt__cff_index_count(stbtt__buf *b)
  function stbtt__buf (line 1227) | static stbtt__buf stbtt__cff_index_get(stbtt__buf b, int i)
  function stbtt_uint16 (line 1253) | static stbtt_uint16 ttUSHORT(stbtt_uint8 *p) { return p[0]*256 + p[1]; }
  function stbtt_int16 (line 1254) | static stbtt_int16 ttSHORT(stbtt_uint8 *p)   { return p[0]*256 + p[1]; }
  function stbtt_uint32 (line 1255) | static stbtt_uint32 ttULONG(stbtt_uint8 *p)  { return (p[0]<<24) + (p[1]...
  function stbtt_int32 (line 1256) | static stbtt_int32 ttLONG(stbtt_uint8 *p)    { return (p[0]<<24) + (p[1]...
  function stbtt__isfont (line 1261) | static int stbtt__isfont(stbtt_uint8 *font)
  function stbtt_uint32 (line 1273) | static stbtt_uint32 stbtt__find_table(stbtt_uint8 *data, stbtt_uint32 fo...
  function stbtt_GetFontOffsetForIndex_internal (line 1286) | static int stbtt_GetFontOffsetForIndex_internal(unsigned char *font_coll...
  function stbtt_GetNumberOfFonts_internal (line 1305) | static int stbtt_GetNumberOfFonts_internal(unsigned char *font_collection)
  function stbtt__buf (line 1321) | static stbtt__buf stbtt__get_subrs(stbtt__buf cff, stbtt__buf fontdict)
  function stbtt_InitFont_internal (line 1334) | static int stbtt_InitFont_internal(stbtt_fontinfo *info, unsigned char *...
  function STBTT_DEF (line 1445) | STBTT_DEF int stbtt_FindGlyphIndex(const stbtt_fontinfo *info, int unico...
  function STBTT_DEF (line 1538) | STBTT_DEF int stbtt_GetCodepointShape(const stbtt_fontinfo *info, int un...
  function stbtt_setvertex (line 1543) | static void stbtt_setvertex(stbtt_vertex *v, stbtt_uint8 type, stbtt_int...
  function stbtt__GetGlyfOffset (line 1552) | static int stbtt__GetGlyfOffset(const stbtt_fontinfo *info, int glyph_in...
  function STBTT_DEF (line 1574) | STBTT_DEF int stbtt_GetGlyphBox(const stbtt_fontinfo *info, int glyph_in...
  function STBTT_DEF (line 1590) | STBTT_DEF int stbtt_GetCodepointBox(const stbtt_fontinfo *info, int code...
  function STBTT_DEF (line 1595) | STBTT_DEF int stbtt_IsGlyphEmpty(const stbtt_fontinfo *info, int glyph_i...
  function stbtt__close_shape (line 1607) | static int stbtt__close_shape(stbtt_vertex *vertices, int num_vertices, ...
  function stbtt__GetGlyphShapeTT (line 1623) | static int stbtt__GetGlyphShapeTT(const stbtt_fontinfo *info, int glyph_...
  type stbtt__csctx (line 1849) | typedef struct
  function stbtt__track_vertex (line 1863) | static void stbtt__track_vertex(stbtt__csctx *c, stbtt_int32 x, stbtt_in...
  function stbtt__csctx_v (line 1872) | static void stbtt__csctx_v(stbtt__csctx *c, stbtt_uint8 type, stbtt_int3...
  function stbtt__csctx_close_shape (line 1888) | static void stbtt__csctx_close_shape(stbtt__csctx *ctx)
  function stbtt__csctx_rmove_to (line 1894) | static void stbtt__csctx_rmove_to(stbtt__csctx *ctx, float dx, float dy)
  function stbtt__csctx_rline_to (line 1902) | static void stbtt__csctx_rline_to(stbtt__csctx *ctx, float dx, float dy)
  function stbtt__csctx_rccurve_to (line 1909) | static void stbtt__csctx_rccurve_to(stbtt__csctx *ctx, float dx1, float ...
  function stbtt__buf (line 1920) | static stbtt__buf stbtt__get_subr(stbtt__buf idx, int n)
  function stbtt__buf (line 1934) | static stbtt__buf stbtt__cid_get_glyph_subrs(const stbtt_fontinfo *info,...
  function stbtt__run_charstring (line 1962) | static int stbtt__run_charstring(const stbtt_fontinfo *info, int glyph_i...
  function stbtt__GetGlyphShapeT2 (line 2221) | static int stbtt__GetGlyphShapeT2(const stbtt_fontinfo *info, int glyph_...
  function stbtt__GetGlyphInfoT2 (line 2238) | static int stbtt__GetGlyphInfoT2(const stbtt_fontinfo *info, int glyph_i...
  function STBTT_DEF (line 2249) | STBTT_DEF int stbtt_GetGlyphShape(const stbtt_fontinfo *info, int glyph_...
  function STBTT_DEF (line 2257) | STBTT_DEF void stbtt_GetGlyphHMetrics(const stbtt_fontinfo *info, int gl...
  function stbtt__GetGlyphKernInfoAdvance (line 2269) | static int  stbtt__GetGlyphKernInfoAdvance(const stbtt_fontinfo *info, i...
  function stbtt_int32 (line 2299) | static stbtt_int32  stbtt__GetCoverageIndex(stbtt_uint8 *coverageTable, ...
  function stbtt_int32 (line 2358) | static stbtt_int32  stbtt__GetGlyphClass(stbtt_uint8 *classDefTable, int...
  function stbtt_int32 (line 2410) | static stbtt_int32  stbtt__GetGlyphGPOSInfoAdvance(const stbtt_fontinfo ...
  function STBTT_DEF (line 2537) | STBTT_DEF int  stbtt_GetGlyphKernAdvance(const stbtt_fontinfo *info, int...
  function STBTT_DEF (line 2550) | STBTT_DEF int  stbtt_GetCodepointKernAdvance(const stbtt_fontinfo *info,...
  function STBTT_DEF (line 2557) | STBTT_DEF void stbtt_GetCodepointHMetrics(const stbtt_fontinfo *info, in...
  function STBTT_DEF (line 2562) | STBTT_DEF void stbtt_GetFontVMetrics(const stbtt_fontinfo *info, int *as...
  function STBTT_DEF (line 2569) | STBTT_DEF int  stbtt_GetFontVMetricsOS2(const stbtt_fontinfo *info, int ...
  function STBTT_DEF (line 2580) | STBTT_DEF void stbtt_GetFontBoundingBox(const stbtt_fontinfo *info, int ...
  function STBTT_DEF (line 2588) | STBTT_DEF float stbtt_ScaleForPixelHeight(const stbtt_fontinfo *info, fl...
  function STBTT_DEF (line 2594) | STBTT_DEF float stbtt_ScaleForMappingEmToPixels(const stbtt_fontinfo *in...
  function STBTT_DEF (line 2600) | STBTT_DEF void stbtt_FreeShape(const stbtt_fontinfo *info, stbtt_vertex *v)
  function STBTT_DEF (line 2610) | STBTT_DEF void stbtt_GetGlyphBitmapBoxSubpixel(const stbtt_fontinfo *fon...
  function STBTT_DEF (line 2628) | STBTT_DEF void stbtt_GetGlyphBitmapBox(const stbtt_fontinfo *font, int g...
  function STBTT_DEF (line 2633) | STBTT_DEF void stbtt_GetCodepointBitmapBoxSubpixel(const stbtt_fontinfo ...
  function STBTT_DEF (line 2638) | STBTT_DEF void stbtt_GetCodepointBitmapBox(const stbtt_fontinfo *font, i...
  type stbtt__hheap_chunk (line 2647) | typedef struct stbtt__hheap_chunk
  type stbtt__hheap (line 2652) | typedef struct stbtt__hheap
  function stbtt__hheap_free (line 2680) | static void stbtt__hheap_free(stbtt__hheap *hh, void *p)
  function stbtt__hheap_cleanup (line 2686) | static void stbtt__hheap_cleanup(stbtt__hheap *hh, void *userdata)
  type stbtt__edge (line 2696) | typedef struct stbtt__edge {
  type stbtt__active_edge (line 2702) | typedef struct stbtt__active_edge
  function stbtt__active_edge (line 2724) | static stbtt__active_edge *stbtt__new_active(stbtt__hheap *hh, stbtt__ed...
  function stbtt__active_edge (line 2746) | static stbtt__active_edge *stbtt__new_active(stbtt__hheap *hh, stbtt__ed...
  function stbtt__fill_active_edges (line 2771) | static void stbtt__fill_active_edges(unsigned char *scanline, int len, s...
  function stbtt__rasterize_sorted_edges (line 2813) | static void stbtt__rasterize_sorted_edges(stbtt__bitmap *result, stbtt__...
  function stbtt__handle_clipped_edge (line 2917) | static void stbtt__handle_clipped_edge(float *scanline, int x, stbtt__ac...
  function stbtt__fill_active_edges_new (line 2954) | static void stbtt__fill_active_edges_new(float *scanline, float *scanlin...
  function stbtt__rasterize_sorted_edges (line 3116) | static void stbtt__rasterize_sorted_edges(stbtt__bitmap *result, stbtt__...
  function stbtt__sort_edges_ins_sort (line 3212) | static void stbtt__sort_edges_ins_sort(stbtt__edge *p, int n)
  function stbtt__sort_edges_quicksort (line 3230) | static void stbtt__sort_edges_quicksort(stbtt__edge *p, int n)
  function stbtt__sort_edges (line 3292) | static void stbtt__sort_edges(stbtt__edge *p, int n)
  type stbtt__point (line 3298) | typedef struct
  function stbtt__rasterize (line 3303) | static void stbtt__rasterize(stbtt__bitmap *result, stbtt__point *pts, i...
  function stbtt__add_point (line 3360) | static void stbtt__add_point(stbtt__point *points, int n, float x, float y)
  function stbtt__tesselate_curve (line 3368) | static int stbtt__tesselate_curve(stbtt__point *points, int *num_points,...
  function stbtt__tesselate_cubic (line 3388) | static void stbtt__tesselate_cubic(stbtt__point *points, int *num_points...
  function stbtt__point (line 3431) | static stbtt__point *stbtt_FlattenCurves(stbtt_vertex *vertices, int num...
  function STBTT_DEF (line 3508) | STBTT_DEF void stbtt_Rasterize(stbtt__bitmap *result, float flatness_in_...
  function STBTT_DEF (line 3521) | STBTT_DEF void stbtt_FreeBitmap(unsigned char *bitmap, void *userdata)
  function STBTT_DEF (line 3571) | STBTT_DEF void stbtt_MakeGlyphBitmapSubpixel(const stbtt_fontinfo *info,...
  function STBTT_DEF (line 3590) | STBTT_DEF void stbtt_MakeGlyphBitmap(const stbtt_fontinfo *info, unsigne...
  function STBTT_DEF (line 3600) | STBTT_DEF void stbtt_MakeCodepointBitmapSubpixelPrefilter(const stbtt_fo...
  function STBTT_DEF (line 3605) | STBTT_DEF void stbtt_MakeCodepointBitmapSubpixel(const stbtt_fontinfo *i...
  function STBTT_DEF (line 3615) | STBTT_DEF void stbtt_MakeCodepointBitmap(const stbtt_fontinfo *info, uns...
  function stbtt_BakeFontBitmap_internal (line 3626) | static int stbtt_BakeFontBitmap_internal(unsigned char *data, int offset...
  function STBTT_DEF (line 3672) | STBTT_DEF void stbtt_GetBakedQuad(const stbtt_bakedchar *chardata, int p...
  type stbrp_coord (line 3700) | typedef int stbrp_coord;
  type stbrp_context (line 3713) | typedef struct
  type stbrp_node (line 3719) | typedef struct
  type stbrp_rect (line 3724) | struct stbrp_rect
  function stbrp_init_target (line 3730) | static void stbrp_init_target(stbrp_context *con, int pw, int ph, stbrp_...
  function stbrp_pack_rects (line 3741) | static void stbrp_pack_rects(stbrp_context *con, stbrp_rect *rects, int ...
  function STBTT_DEF (line 3770) | STBTT_DEF int stbtt_PackBegin(stbtt_pack_context *spc, unsigned char *pi...
  function STBTT_DEF (line 3801) | STBTT_DEF void stbtt_PackEnd  (stbtt_pack_context *spc)
  function STBTT_DEF (line 3807) | STBTT_DEF void stbtt_PackSetOversampling(stbtt_pack_context *spc, unsign...
  function stbtt__h_prefilter (line 3819) | static void stbtt__h_prefilter(unsigned char *pixels, int w, int h, int ...
  function stbtt__v_prefilter (line 3881) | static void stbtt__v_prefilter(unsigned char *pixels, int w, int h, int ...
  function stbtt__oversample_shift (line 3943) | static float stbtt__oversample_shift(int oversample)
  function STBTT_DEF (line 3956) | STBTT_DEF int stbtt_PackFontRangesGatherRects(stbtt_pack_context *spc, c...
  function STBTT_DEF (line 3984) | STBTT_DEF void stbtt_MakeGlyphBitmapSubpixelPrefilter(const stbtt_fontin...
  function STBTT_DEF (line 4008) | STBTT_DEF int stbtt_PackFontRangesRenderIntoRects(stbtt_pack_context *sp...
  function STBTT_DEF (line 4090) | STBTT_DEF void stbtt_PackFontRangesPackRects(stbtt_pack_context *spc, st...
  function STBTT_DEF (line 4095) | STBTT_DEF int stbtt_PackFontRanges(stbtt_pack_context *spc, const unsign...
  function STBTT_DEF (line 4131) | STBTT_DEF int stbtt_PackFontRange(stbtt_pack_context *spc, const unsigne...
  function STBTT_DEF (line 4143) | STBTT_DEF void stbtt_GetPackedQuad(const stbtt_packedchar *chardata, int...
  function stbtt__ray_intersect_bezier (line 4178) | static int stbtt__ray_intersect_bezier(float orig[2], float ray[2], floa...
  function equal (line 4242) | static int equal(float *a, float *b)
  function stbtt__compute_crossings_x (line 4247) | static int stbtt__compute_crossings_x(float x, float y, int nverts, stbt...
  function stbtt__cuberoot (line 4316) | static float stbtt__cuberoot( float x )
  function stbtt__solve_cubic (line 4325) | static int stbtt__solve_cubic(float a, float b, float c, float* r)
  function STBTT_DEF (line 4547) | STBTT_DEF void stbtt_FreeSDF(unsigned char *bitmap, void *userdata)
  function stbtt_int32 (line 4558) | static stbtt_int32 stbtt__CompareUTF8toUTF16_bigendian_prefix(stbtt_uint...
  function stbtt_CompareUTF8toUTF16_bigendian_internal (line 4597) | static int stbtt_CompareUTF8toUTF16_bigendian_internal(char *s1, int len...
  function STBTT_DEF (line 4604) | STBTT_DEF const char *stbtt_GetFontNameString(const stbtt_fontinfo *font...
  function stbtt__matchpair (line 4625) | static int stbtt__matchpair(stbtt_uint8 *fc, stbtt_uint32 nm, stbtt_uint...
  function stbtt__matches (line 4672) | static int stbtt__matches(stbtt_uint8 *fc, stbtt_uint32 offset, stbtt_ui...
  function stbtt_FindMatchingFont_internal (line 4701) | static int stbtt_FindMatchingFont_internal(unsigned char *font_collectio...
  function STBTT_DEF (line 4717) | STBTT_DEF int stbtt_BakeFontBitmap(const unsigned char *data, int offset,
  function STBTT_DEF (line 4724) | STBTT_DEF int stbtt_GetFontOffsetForIndex(const unsigned char *data, int...
  function STBTT_DEF (line 4729) | STBTT_DEF int stbtt_GetNumberOfFonts(const unsigned char *data)
  function STBTT_DEF (line 4734) | STBTT_DEF int stbtt_InitFont(stbtt_fontinfo *info, const unsigned char *...
  function STBTT_DEF (line 4739) | STBTT_DEF int stbtt_FindMatchingFont(const unsigned char *fontdata, cons...
  function STBTT_DEF (line 4744) | STBTT_DEF int stbtt_CompareUTF8toUTF16_bigendian(const char *s1, int len...

FILE: utils/gputop-configs.c
  function gputop_read_file_uint64 (line 46) | static bool
  function read_device_param (line 66) | static uint32_t
  function find_intel_render_node (line 82) | static int
  function open_render_node (line 93) | static int
  function get_card_for_fd (line 115) | static int
  function perf_ioctl (line 150) | static int
  type gputop_gen (line 163) | struct gputop_gen
  type hash_entry (line 165) | struct hash_entry
  type gputop_metric_set (line 171) | struct gputop_metric_set
  function usage (line 176) | static void
  function main (line 185) | int

FILE: wrapper/gputop-uv-network.c
  type _gputop_connection_t (line 35) | struct _gputop_connection_t {
  function base64_encode (line 69) | static void
  function on_close_cb (line 94) | static void
  function gputop_connection_end (line 103) | static void
  function on_wslay_genmask_cb (line 112) | static int
  function on_wslay_msg_recv_cb (line 122) | static void
  function on_wslay_recv_cb (line 137) | static ssize_t
  function on_wslay_send_cb (line 157) | static ssize_t
  function on_uv_read_alloc_cb (line 168) | static void
  function on_uv_read_cb (line 177) | static void
  function on_uv_connect_cb (line 203) | static void
  function on_check_cb (line 225) | static void
  function gputop_connection_t (line 240) | gputop_connection_t *
  function gputop_connection_send (line 321) | void
  function gputop_connection_close (line 338) | void
  function gputop_connection_connected (line 347) | bool

FILE: wrapper/gputop-wrapper-main.c
  type gputop_metric_set_counter (line 41) | struct gputop_metric_set_counter
  type gputop_client_context (line 52) | struct gputop_client_context
  type gputop_metric_set_counter (line 57) | struct gputop_metric_set_counter
  type gputop_accumulated_samples (line 68) | struct gputop_accumulated_samples
  type hash_table (line 78) | struct hash_table
  function comment (line 81) | static void comment(const char *format, ...)
  function output (line 90) | static void output(const char *format, ...)
  function gputop_cr_console_log (line 99) | void gputop_cr_console_log(const char *format, ...)
  function unit_to_width (line 109) | static int unit_to_width(gputop_counter_units_t unit)
  function quit (line 167) | static void quit(void)
  function start_child_process (line 173) | static void start_child_process(void)
  function on_ctrl_c (line 216) | static void on_ctrl_c(uv_signal_t* handle, int signum)
  function on_child_timer (line 221) | static void on_child_timer(uv_timer_t* handle)
  function on_child_process_exit (line 227) | static void on_child_process_exit(uv_signal_t* handle, int signum)
  function print_system_info (line 239) | static void print_system_info(void)
  function print_metrics (line 280) | static void print_metrics(void)
  function print_metric_counter (line 298) | static void print_metric_counter(struct gputop_client_context *ctx,
  function print_metric_column_names (line 326) | static void print_metric_column_names(void)
  function pid_is_child_of (line 378) | static bool pid_is_child_of(uint32_t parent, uint32_t child)
  function match_process (line 410) | static bool match_process(struct gputop_hw_context *hw_context)
  function print_accumulated_columns (line 441) | static void print_accumulated_columns(struct gputop_client_context *ctx,
  function print_columns (line 466) | static void print_columns(struct gputop_client_context *ctx,
  function handle_features (line 491) | static bool handle_features()
  function on_ready (line 553) | static void on_ready(gputop_connection_t *conn, void *user_data)
  function on_data (line 559) | static void on_data(gputop_connection_t *conn,
  function on_close (line 593) | static void on_close(gputop_connection_t *conn, const char *error,
  function usage (line 615) | static void usage(void)
  function init_context (line 641) | static void init_context(void)
  function main (line 653) | int main (int argc, char **argv)
Copy disabled (too large) Download .json
Condensed preview — 167 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (14,450K chars).
[
  {
    "path": ".gitignore",
    "chars": 23,
    "preview": "build\n**.dir-locals.el\n"
  },
  {
    "path": ".travis.yml",
    "chars": 3434,
    "preview": "sudo: required\n\nservices:\n    - docker\n\nlanguage: c\n\nos:\n    - linux\n\ncompiler:\n    - gcc\n\nenv:\n    global:\n        # GH"
  },
  {
    "path": "README.md",
    "chars": 5741,
    "preview": "[![Build Status](https://travis-ci.org/rib/gputop.svg?branch=master)](https://travis-ci.org/rib/gputop)\n\n# gputop\n\nGPU T"
  },
  {
    "path": "data/.gitignore",
    "chars": 60,
    "preview": "gputop-???.xml\ngputop-???gt?.xml\ni915_oa_*.[ch]\npackage.json"
  },
  {
    "path": "data/Makefile.xml",
    "chars": 2136,
    "preview": "data_dir = .\nscript_dir = ../scripts\n\noa_xml_files = \\\n\toa-hsw.xml \\\n\toa-bdw.xml \\\n\toa-chv.xml \\\n\toa-sklgt2.xml \\\n\toa-sk"
  },
  {
    "path": "data/README.md",
    "chars": 5786,
    "preview": "# About guids.xml\n\nThis is the authoritive registry of unique identifers for different OA unit\nhardware configurations. "
  },
  {
    "path": "data/gputop.proto",
    "chars": 5064,
    "preview": "syntax = \"proto2\";\n\npackage gputop;\n\n/*\n * To Browser\n */\n\nenum EngineClass\n{\n    OTHER = 0;\n    RENDER = 1;\n    COPY = "
  },
  {
    "path": "data/guids.xml",
    "chars": 57235,
    "preview": "<!--\n    This is the authoritive registry of unique identifers for different OA unit\n    hardware configurations. Usersp"
  },
  {
    "path": "data/oa-bdw.xml",
    "chars": 790155,
    "preview": "<?xml version=\"1.0\"?>\n<metrics version=\"1562317147\" merge_md5=\"\">\n  <set name=\"Render Metrics Basic Gen8\"\n       mdapi_s"
  },
  {
    "path": "data/oa-bxt.xml",
    "chars": 463179,
    "preview": "<?xml version=\"1.0\"?>\n<metrics version=\"1562317147\" merge_md5=\"\">\n  <set name=\"Render Metrics Basic Gen9\"\n       mdapi_s"
  },
  {
    "path": "data/oa-cflgt2.xml",
    "chars": 521134,
    "preview": "<?xml version=\"1.0\"?>\n<metrics version=\"1562317148\" merge_md5=\"\">\n  <set name=\"Render Metrics Basic Gen9\"\n       mdapi_s"
  },
  {
    "path": "data/oa-cflgt3.xml",
    "chars": 525773,
    "preview": "<?xml version=\"1.0\"?>\n<metrics version=\"1562317148\" merge_md5=\"\">\n  <set name=\"Render Metrics Basic Gen9\"\n       mdapi_s"
  },
  {
    "path": "data/oa-chv.xml",
    "chars": 480926,
    "preview": "<?xml version=\"1.0\"?>\n<metrics version=\"1562317147\" merge_md5=\"\">\n  <set name=\"Render Metrics Basic Gen8LP\"\n       mdapi"
  },
  {
    "path": "data/oa-cnl.xml",
    "chars": 503674,
    "preview": "<?xml version=\"1.0\"?>\n<metrics version=\"1553959724\" merge_md5=\"\">\n  <set name=\"Render Metrics Basic Gen10\"\n       mdapi_"
  },
  {
    "path": "data/oa-glk.xml",
    "chars": 449567,
    "preview": "<?xml version=\"1.0\"?>\n<metrics version=\"1562317148\" merge_md5=\"\">\n  <set name=\"Render Metrics Basic Gen9\"\n       mdapi_s"
  },
  {
    "path": "data/oa-hsw.xml",
    "chars": 218906,
    "preview": "<?xml version=\"1.0\"?>\n<metrics version=\"1562317146\" merge_md5=\"\">\n  <set name=\"Render Metrics Basic Gen7.5\"\n       mdapi"
  },
  {
    "path": "data/oa-icl.xml",
    "chars": 580497,
    "preview": "<?xml version=\"1.0\"?>\n<metrics version=\"1572342629\" merge_md5=\"\">\n  <set name=\"Render Metrics Basic Gen11\"\n       mdapi_"
  },
  {
    "path": "data/oa-kblgt2.xml",
    "chars": 521134,
    "preview": "<?xml version=\"1.0\"?>\n<metrics version=\"1562317148\" merge_md5=\"\">\n  <set name=\"Render Metrics Basic Gen9\"\n       mdapi_s"
  },
  {
    "path": "data/oa-kblgt3.xml",
    "chars": 525773,
    "preview": "<?xml version=\"1.0\"?>\n<metrics version=\"1562317148\" merge_md5=\"\">\n  <set name=\"Render Metrics Basic Gen9\"\n       mdapi_s"
  },
  {
    "path": "data/oa-lkf.xml",
    "chars": 575064,
    "preview": "<?xml version=\"1.0\"?>\n<metrics version=\"1572425295\" merge_md5=\"\">\n  <set name=\"Render Metrics Basic Gen11\"\n       mdapi_"
  },
  {
    "path": "data/oa-sklgt2.xml",
    "chars": 581827,
    "preview": "<?xml version=\"1.0\"?>\n<metrics version=\"1562317147\" merge_md5=\"\">\n  <set name=\"Render Metrics Basic Gen9\"\n       mdapi_s"
  },
  {
    "path": "data/oa-sklgt3.xml",
    "chars": 525816,
    "preview": "<?xml version=\"1.0\"?>\n<metrics version=\"1562317147\" merge_md5=\"\">\n  <set name=\"Render Metrics Basic Gen9\"\n       mdapi_s"
  },
  {
    "path": "data/oa-sklgt4.xml",
    "chars": 528139,
    "preview": "<?xml version=\"1.0\"?>\n<metrics version=\"1562317147\" merge_md5=\"\">\n  <set name=\"Render Metrics Basic Gen9\"\n       mdapi_s"
  },
  {
    "path": "data/oa-tgl.xml",
    "chars": 429309,
    "preview": "<?xml version=\"1.0\"?>\n<metrics version=\"1568234084\" merge_md5=\"\">\n  <set name=\"Render Metrics Basic Gen12\"\n       mdapi_"
  },
  {
    "path": "docker/travis-build-environment-centos/Dockerfile",
    "chars": 309,
    "preview": "FROM centos:7\nRUN yum update -y && \\\n    yum -y install epel-release && \\\n    yum update -y && \\\n    yum groupinstall -y"
  },
  {
    "path": "docker/travis-build-environment-centos/README.md",
    "chars": 274,
    "preview": "This Dockerfile was used to create a CentOS based Docker image that we\nuse on Travis for building GPU Top that already c"
  },
  {
    "path": "docker/travis-build-environment-centos/build-travis-docker-image.sh",
    "chars": 71,
    "preview": "#!/bin/sh\n\ndocker build -t djdeath/gputop-travis-ci-centos7-18.01.08 .\n"
  },
  {
    "path": "docker/travis-build-environment-ubuntu/Dockerfile",
    "chars": 568,
    "preview": "FROM ubuntu:16.04\nRUN apt-get update -y && apt-get install -y --no-install-recommends --no-install-suggests \\\n    build-"
  },
  {
    "path": "docker/travis-build-environment-ubuntu/README.md",
    "chars": 293,
    "preview": "This Dockerfile was used to create an Ubuntu based Docker image that we use on\nTravis for building GPU Top that already "
  },
  {
    "path": "docker/travis-build-environment-ubuntu/build-travis-docker-image.sh",
    "chars": 75,
    "preview": "#!/bin/sh\n\ndocker build -t djdeath/gputop-travis-ci-ubuntu16.04-18.01.09 .\n"
  },
  {
    "path": "gputop.doap",
    "chars": 848,
    "preview": "<Project xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"\n         xmlns:rdfs=\"http://www.w3.org/2000/01/rdf-sche"
  },
  {
    "path": "lib/gputop-client-context.c",
    "chars": 63247,
    "preview": "#include \"gputop-client-context.h\"\n\n#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n\n#include \"gputop-gens-me"
  },
  {
    "path": "lib/gputop-client-context.h",
    "chars": 12072,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2017 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "lib/gputop-log.h",
    "chars": 2285,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2015 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "lib/gputop-network.h",
    "chars": 2508,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2017 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "lib/gputop-oa-counters.c",
    "chars": 6922,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2015-2016 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any"
  },
  {
    "path": "lib/gputop-oa-counters.h",
    "chars": 7740,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2015-2016 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any"
  },
  {
    "path": "lib/gputop-oa-metrics.c",
    "chars": 5276,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2018 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "lib/gputop-oa-metrics.h",
    "chars": 6913,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2015-2016 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any"
  },
  {
    "path": "lib/gputop-util.h",
    "chars": 3711,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2014 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "lib/meson.build",
    "chars": 1879,
    "preview": "gputop_client_src = [\n  'gputop-client-context.c',\n  'gputop-oa-counters.c',\n  'gputop-oa-metrics.c',\n]\n\ngputop_client_g"
  },
  {
    "path": "lib/tracepoint_format.leg",
    "chars": 1259,
    "preview": "TracepointFormat =\n    'name' ':' Space n:PropertyName EndLine { free(n.string); }\n    'ID' ':' Space Number EndLine\n   "
  },
  {
    "path": "mesa/include/c11/threads.h",
    "chars": 2461,
    "preview": "/*\n * C11 <threads.h> emulation library\n *\n * (C) Copyright yohhoy 2012.\n * Distributed under the Boost Software License"
  },
  {
    "path": "mesa/include/c11/threads_posix.h",
    "chars": 9611,
    "preview": "/*\n * C11 <threads.h> emulation library\n *\n * (C) Copyright yohhoy 2012.\n * Distributed under the Boost Software License"
  },
  {
    "path": "mesa/include/c11/threads_win32.h",
    "chars": 16885,
    "preview": "/*\n * C11 <threads.h> emulation library\n *\n * (C) Copyright yohhoy 2012.\n * Distributed under the Boost Software License"
  },
  {
    "path": "mesa/include/c99_alloca.h",
    "chars": 1608,
    "preview": "/**************************************************************************\n *\n * Copyright 2015 VMware, Inc.\n * All Rig"
  },
  {
    "path": "mesa/include/c99_compat.h",
    "chars": 5298,
    "preview": "/**************************************************************************\n *\n * Copyright 2007-2013 VMware, Inc.\n * Al"
  },
  {
    "path": "mesa/include/c99_math.h",
    "chars": 5366,
    "preview": "/**************************************************************************\n *\n * Copyright 2007-2015 VMware, Inc.\n * Al"
  },
  {
    "path": "mesa/include/drm-uapi/README",
    "chars": 797,
    "preview": "This directory contains a copy of the installed kernel headers\nrequired by several drivers to communicate with the kerne"
  },
  {
    "path": "mesa/include/drm-uapi/drm.h",
    "chars": 32189,
    "preview": "/**\n * \\file drm.h\n * Header for the Direct Rendering Manager\n *\n * \\author Rickard E. (Rik) Faith <faith@valinux.com>\n "
  },
  {
    "path": "mesa/include/drm-uapi/drm_fourcc.h",
    "chars": 33685,
    "preview": "/*\n * Copyright 2011 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n * "
  },
  {
    "path": "mesa/include/drm-uapi/drm_mode.h",
    "chars": 28604,
    "preview": "/*\n * Copyright (c) 2007 Dave Airlie <airlied@linux.ie>\n * Copyright (c) 2007 Jakob Bornecrantz <wallbraker@gmail.com>\n "
  },
  {
    "path": "mesa/include/drm-uapi/i915_drm.h",
    "chars": 74381,
    "preview": "/*\n * Copyright 2003 Tungsten Graphics, Inc., Cedar Park, Texas.\n * All Rights Reserved.\n *\n * Permission is hereby gran"
  },
  {
    "path": "mesa/include/drm-uapi/vc4_drm.h",
    "chars": 14456,
    "preview": "/*\n * Copyright © 2014-2015 Broadcom\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n * co"
  },
  {
    "path": "mesa/include/no_extern_c.h",
    "chars": 2050,
    "preview": "/**************************************************************************\n *\n * Copyright 2014 VMware, Inc.\n * All Rig"
  },
  {
    "path": "mesa/include/pci_ids/i965_pci_ids.h",
    "chars": 14565,
    "preview": "CHIPSET(0x29A2, i965,    \"Intel(R) 965G\")\nCHIPSET(0x2992, i965,    \"Intel(R) 965Q\")\nCHIPSET(0x2982, i965,    \"Intel(R) 9"
  },
  {
    "path": "mesa/include/pci_ids/iris_pci_ids.h",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "mesa/meson.build",
    "chars": 1037,
    "preview": "mesa_src = [\n  'src/intel/dev/gen_device_info.c',\n  'src/util/bitscan.c',\n  'src/util/hash_table.c',\n  'src/util/ralloc."
  },
  {
    "path": "mesa/src/compiler/shader_enums.h",
    "chars": 27005,
    "preview": "/*\n * Mesa 3-D graphics library\n *\n * Copyright (C) 1999-2008  Brian Paul   All Rights Reserved.\n * Copyright (C) 2009  "
  },
  {
    "path": "mesa/src/intel/common/gen_gem.h",
    "chars": 2446,
    "preview": "/*\n * Copyright © 2018 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n "
  },
  {
    "path": "mesa/src/intel/dev/gen_device_info.c",
    "chars": 42018,
    "preview": "/*\n * Copyright © 2013 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n "
  },
  {
    "path": "mesa/src/intel/dev/gen_device_info.h",
    "chars": 9675,
    "preview": " /*\n  * Copyright © 2013 Intel Corporation\n  *\n  * Permission is hereby granted, free of charge, to any person obtaining"
  },
  {
    "path": "mesa/src/mesa/main/compiler.h",
    "chars": 2348,
    "preview": "/*\n * Mesa 3-D graphics library\n *\n * Copyright (C) 1999-2008  Brian Paul   All Rights Reserved.\n * Copyright (C) 2009  "
  },
  {
    "path": "mesa/src/mesa/main/hash.h",
    "chars": 5978,
    "preview": "/**\n * \\file hash.h\n * Generic hash table.\n */\n\n/*\n * Mesa 3-D graphics library\n *\n * Copyright (C) 1999-2006  Brian Pau"
  },
  {
    "path": "mesa/src/util/bitscan.c",
    "chars": 2128,
    "preview": "/**************************************************************************\n *\n * Copyright 2008 VMware, Inc.\n * All Rig"
  },
  {
    "path": "mesa/src/util/bitscan.h",
    "chars": 6816,
    "preview": "/**************************************************************************\n *\n * Copyright 2008 VMware, Inc.\n * All Rig"
  },
  {
    "path": "mesa/src/util/bitset.h",
    "chars": 11780,
    "preview": "/*\n * Mesa 3-D graphics library\n *\n * Copyright (C) 2006  Brian Paul   All Rights Reserved.\n *\n * Permission is hereby g"
  },
  {
    "path": "mesa/src/util/hash_table.c",
    "chars": 19923,
    "preview": "/*\n * Copyright © 2009,2012 Intel Corporation\n * Copyright © 1988-2004 Keith Packard and Bart Massey.\n *\n * Permission i"
  },
  {
    "path": "mesa/src/util/hash_table.h",
    "chars": 6687,
    "preview": "/*\n * Copyright © 2009,2012 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any person obtainin"
  },
  {
    "path": "mesa/src/util/list.h",
    "chars": 8437,
    "preview": "/**************************************************************************\n *\n * Copyright 2006 VMware, Inc., Bismarck,"
  },
  {
    "path": "mesa/src/util/macros.h",
    "chars": 9414,
    "preview": "/*\n * Copyright © 2014 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n "
  },
  {
    "path": "mesa/src/util/ralloc.c",
    "chars": 20546,
    "preview": "/*\n * Copyright © 2010 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n "
  },
  {
    "path": "mesa/src/util/ralloc.h",
    "chars": 19084,
    "preview": "/*\n * Copyright © 2010 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n "
  },
  {
    "path": "meson.build",
    "chars": 1316,
    "preview": "project('GPUTop', 'c', 'cpp',\n        version : '0.0.2',\n        default_options : [\n          'warning_level=2',\n      "
  },
  {
    "path": "meson_options.txt",
    "chars": 165,
    "preview": "option('webui', type : 'boolean', value : 'false')\noption('native_ui', type : 'boolean', value : 'false')\noption('native"
  },
  {
    "path": "scripts/deploy-demo-site.sh",
    "chars": 863,
    "preview": "#!/bin/bash\n\nmkdir deploy\ncd deploy\ngit config --global user.email \"Travis@travis.org\"\ngit config --global user.name \"Tr"
  },
  {
    "path": "scripts/gen-template.py",
    "chars": 1891,
    "preview": "#!/usr/bin/env python2\n#\n# Copyright (c) 2017 Intel Corporation\n#\n# Permission is hereby granted, free of charge, to any"
  },
  {
    "path": "scripts/gputop-oa-codegen.py",
    "chars": 30213,
    "preview": "#!/usr/bin/env python2\n#\n# Copyright (c) 2015-2018 Intel Corporation\n#\n# Permission is hereby granted, free of charge, t"
  },
  {
    "path": "scripts/i915-perf-kernelgen.py",
    "chars": 14263,
    "preview": "#!/usr/bin/env python3\n\n# Copyright (C) 2015-2016 Intel Corporation\n#\n# Permission is hereby granted, free of charge, to"
  },
  {
    "path": "scripts/mdapi-xml-convert.py",
    "chars": 42310,
    "preview": "#!/usr/bin/env python2\n\n# Copyright (C) 2015-2016 Intel Corporation\n#\n# Permission is hereby granted, free of charge, to"
  },
  {
    "path": "scripts/meson-cross/emscripten-docker-debug.txt",
    "chars": 966,
    "preview": "[binaries]\nc = '/opt/emsdk-portable/emscripten/1.37.27/emcc'\ncpp = '/opt/emsdk-portable/emscripten/1.37.27/em++'\nar = '/"
  },
  {
    "path": "scripts/meson-cross/emscripten-docker-release.txt",
    "chars": 696,
    "preview": "[binaries]\nc = '/opt/emsdk-portable/emscripten/1.37.27/emcc'\ncpp = '/opt/emsdk-portable/emscripten/1.37.27/em++'\nar = '/"
  },
  {
    "path": "scripts/pylibs/.gitignore",
    "chars": 15,
    "preview": "**__init__.pyc\n"
  },
  {
    "path": "scripts/pylibs/__init__.py",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "scripts/pylibs/codegen/__init__.py",
    "chars": 856,
    "preview": "\n\nclass Codegen:\n\n    _file = None\n    _indent = 0\n\n    endl=\"\\n\"\n    use_tabs = False\n\n    def __init__(self, filename "
  },
  {
    "path": "scripts/pylibs/oa_guid_registry/__init__.py",
    "chars": 2537,
    "preview": "\nimport copy\nimport hashlib\n\nimport xml.etree.ElementTree as et\n\n\nclass Registry:\n\n    # Tries to avoid fragility from e"
  },
  {
    "path": "scripts/travis-ci-build.sh",
    "chars": 932,
    "preview": "#!/bin/bash\n\nset -e\nset -x\n\nLANG=en_US.UTF-8\nLANGUAGE=en_US:en\nLC_ALL=en_US.UTF-8\nLC_MESSAGES=en_US.UTF-8\n\nexport LANG L"
  },
  {
    "path": "scripts/travis-ci-prep-docker-centos.sh",
    "chars": 1885,
    "preview": "#!/bin/sh\n\nset -e\n\nif ! test $# -eq 2; then\n    echo \"usage: $0 docker-base-image-name new-image-name\"\n    exit 1\nfi\n\n_U"
  },
  {
    "path": "scripts/travis-ci-prep-docker-ubuntu.sh",
    "chars": 1664,
    "preview": "#!/bin/sh\n\nset -e\n\nif ! test $# -eq 2; then\n    echo \"usage: $0 docker-base-image-name new-image-name\"\n    exit 1\nfi\n\n_U"
  },
  {
    "path": "scripts/travis-ci-test.sh",
    "chars": 714,
    "preview": "#!/bin/bash\n\nset -x\n\nLANG=en_US.UTF-8\nLANGUAGE=en_US:en\nLC_ALL=en_US.UTF-8\nLC_MESSAGES=en_US.UTF-8\n\nexport LANG LANGUAGE"
  },
  {
    "path": "scripts/update-guids.py",
    "chars": 7942,
    "preview": "#!/usr/bin/env python2\n# coding=utf-8\n\n# Copyright (C) 2016 Intel Corporation\n#\n# Permission is hereby granted, free of "
  },
  {
    "path": "server/gputop-cpu.c",
    "chars": 3605,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2014 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "server/gputop-cpu.h",
    "chars": 1607,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2014 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "server/gputop-debugfs.c",
    "chars": 6107,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2016 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "server/gputop-debugfs.h",
    "chars": 1619,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2016 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "server/gputop-gl.c",
    "chars": 39630,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2014 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "server/gputop-gl.h",
    "chars": 4166,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2014 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "server/gputop-ioctl.c",
    "chars": 1250,
    "preview": "#include <dlfcn.h>\n\n#include <i915_drm.h>\n\n#include \"gputop-perf.h\"\n\nint ioctl(int fd, unsigned long request, void *data"
  },
  {
    "path": "server/gputop-log.c",
    "chars": 3543,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2015 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "server/gputop-main.c",
    "chars": 18285,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2013,2014 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any"
  },
  {
    "path": "server/gputop-mainloop.h",
    "chars": 1256,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2015 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "server/gputop-ncurses.c",
    "chars": 2490,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2014,2015 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any"
  },
  {
    "path": "server/gputop-perf.c",
    "chars": 55126,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2014 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "server/gputop-perf.h",
    "chars": 10638,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2015 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "server/gputop-server.c",
    "chars": 45602,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2015 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "server/gputop-server.h",
    "chars": 1203,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2015 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "server/gputop-string.c",
    "chars": 7114,
    "preview": "/*\n * String functions\n *\n * Author:\n *   Miguel de Icaza (miguel@novell.com)\n *   Aaron Bockover (abockover@novell.com)"
  },
  {
    "path": "server/gputop-string.h",
    "chars": 2762,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2015 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "server/gputop-system.c",
    "chars": 478,
    "preview": "#include <unistd.h>\n\n/* For the sake of consistently running gputop with respect to a test\n * application; this is essen"
  },
  {
    "path": "server/gputop-sysutil.c",
    "chars": 2414,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2014,2015 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any"
  },
  {
    "path": "server/gputop-sysutil.h",
    "chars": 1838,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2014 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "server/meson.build",
    "chars": 1443,
    "preview": "libgputop_src = [\n  'gputop-perf.c',\n  'gputop-sysutil.c',\n  'gputop-log.c',\n  'gputop-ncurses.c',\n  'gputop-cpu.c',\n  '"
  },
  {
    "path": "server/registry/.gitignore",
    "chars": 26,
    "preview": "eglapi.c\nglapi.c\nglxapi.c\n"
  },
  {
    "path": "server/registry/egl.xml",
    "chars": 118107,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<registry>\n    <!--\n    Copyright (c) 2013-2014 The Khronos Group Inc.\n\n    Permi"
  },
  {
    "path": "server/registry/genapis.py",
    "chars": 13901,
    "preview": "#!/usr/bin/env python2\n#\n# Copyright (c) 2013-2014 The Khronos Group Inc.\n# Copyright (c) 2014 Intel Corporation\n#\n# Per"
  },
  {
    "path": "server/registry/gl.xml",
    "chars": 2417245,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<registry>\n    <comment>\nCopyright (c) 2013-2014 The Khronos Group Inc.\n\nPermissi"
  },
  {
    "path": "server/registry/glx.xml",
    "chars": 112991,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<registry>\n    <!--\n    Copyright (c) 2013-2014 The Khronos Group Inc.\n\n    Permi"
  },
  {
    "path": "server/registry/reg.py",
    "chars": 54240,
    "preview": "#!/usr/bin/python3 -i\n#\n# Copyright (c) 2013-2014 The Khronos Group Inc.\n#\n# Permission is hereby granted, free of charg"
  },
  {
    "path": "server/stdatomic.h",
    "chars": 14090,
    "preview": "/*\n * An implementation of C11 stdatomic.h directly borrowed from FreeBSD\n * (original copyright follows), with minor mo"
  },
  {
    "path": "subprojects/.gitignore",
    "chars": 114,
    "preview": "h2o-2.2.4\nlibuv-v1.18.0\npeg-0.1.18\nprotobuf-3.5.0\nprotobuf-c-1.3.0\nwslay-d72ea2ea9e24032144ab85f840e3aaf8cd5d6e07\n"
  },
  {
    "path": "subprojects/h2o.wrap",
    "chars": 394,
    "preview": "[wrap-file]\ndirectory = h2o-2.2.4\n\nsource_url = https://github.com/h2o/h2o/archive/v2.2.4.tar.gz\nsource_filename = v2.2."
  },
  {
    "path": "subprojects/libuv.wrap",
    "chars": 417,
    "preview": "[wrap-file]\ndirectory = libuv-v1.18.0\n\nsource_url = https://dist.libuv.org/dist/v1.18.0/libuv-v1.18.0.tar.gz\nsource_file"
  },
  {
    "path": "subprojects/packagecache/.gitignore",
    "chars": 118,
    "preview": "d72ea2e.tar.gz\nlibuv-v1.18.0.tar.gz\npeg-0.1.18.tar.gz\nprotobuf-all-3.5.0.tar.gz\nprotobuf-c-1.3.0.tar.gz\nv2.2.4.tar.gz\n"
  },
  {
    "path": "subprojects/peg.wrap",
    "chars": 418,
    "preview": "[wrap-file]\ndirectory = peg-0.1.18\n\nsource_url = http://download.openpkg.org/components/cache/peg/peg-0.1.18.tar.gz\nsour"
  },
  {
    "path": "subprojects/protobuf-c.wrap",
    "chars": 459,
    "preview": "[wrap-file]\ndirectory = protobuf-c-1.3.0\n\nsource_url = https://github.com/protobuf-c/protobuf-c/releases/download/v1.3.0"
  },
  {
    "path": "subprojects/protobuf.wrap",
    "chars": 453,
    "preview": "[wrap-file]\ndirectory = protobuf-3.5.0\n\nsource_url = https://github.com/google/protobuf/releases/download/v3.5.0/protobu"
  },
  {
    "path": "subprojects/wslay.wrap",
    "chars": 435,
    "preview": "[wrap-file]\ndirectory = wslay-d72ea2ea9e24032144ab85f840e3aaf8cd5d6e07\n\nsource_url = https://github.com/djdeath/wslay/ar"
  },
  {
    "path": "ui/gputop-emscripten-network.c",
    "chars": 4947,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2018 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "ui/gputop-soup-network.c",
    "chars": 4462,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2017 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "ui/gputop-ui-main.cpp",
    "chars": 102149,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2017 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "ui/gputop-ui-multilines.cpp",
    "chars": 6805,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2017 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "ui/gputop-ui-multilines.h",
    "chars": 1751,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2017 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "ui/gputop-ui-piechart.cpp",
    "chars": 4457,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2017 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "ui/gputop-ui-piechart.h",
    "chars": 1446,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2017 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "ui/gputop-ui-plots.cpp",
    "chars": 9165,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2018 Intel Corporation\n * Copyright (c) 2014-2017 Omar Cornut and ImGui contributors\n "
  },
  {
    "path": "ui/gputop-ui-plots.h",
    "chars": 2478,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2018 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "ui/gputop-ui-timeline.cpp",
    "chars": 15820,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2017 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "ui/gputop-ui-timeline.h",
    "chars": 2026,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2017 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "ui/gputop-ui-topology.cpp",
    "chars": 8935,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2017 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "ui/gputop-ui-topology.h",
    "chars": 1688,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2017 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "ui/gputop-ui-utils.cpp",
    "chars": 6572,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2017 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "ui/gputop-ui-utils.h",
    "chars": 2250,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2017 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "ui/gputop-ui.css",
    "chars": 24,
    "preview": "body {\n  margin: 0px;\n}\n"
  },
  {
    "path": "ui/gputop-uv-network.c",
    "chars": 10170,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2018 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "ui/imgui/LICENSE.txt",
    "chars": 1106,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2014-2017 Omar Cornut and ImGui contributors\n\nPermission is hereby granted, free of"
  },
  {
    "path": "ui/imgui/imconfig.h",
    "chars": 3526,
    "preview": "//-----------------------------------------------------------------------------\n// COMPILE-TIME OPTIONS FOR DEAR IMGUI\n/"
  },
  {
    "path": "ui/imgui/imgui.cpp",
    "chars": 615465,
    "preview": "// dear imgui, v1.60 WIP\n// (main code and documentation)\n\n// Call and read ImGui::ShowDemoWindow() in imgui_demo.cpp fo"
  },
  {
    "path": "ui/imgui/imgui.h",
    "chars": 166059,
    "preview": "// dear imgui, v1.60 WIP\n// (headers)\n\n// See imgui.cpp file for documentation.\n// Call and read ImGui::ShowDemoWindow()"
  },
  {
    "path": "ui/imgui/imgui_demo.cpp",
    "chars": 159890,
    "preview": "// dear imgui, v1.60 WIP\n// (demo code)\n\n// Message to the person tempted to delete this file when integrating ImGui int"
  },
  {
    "path": "ui/imgui/imgui_draw.cpp",
    "chars": 137698,
    "preview": "// dear imgui, v1.60 WIP\n// (drawing and font code)\n\n// Contains implementation for\n// - Default styles\n// - ImDrawList\n"
  },
  {
    "path": "ui/imgui/imgui_impl_glfw_gl3.cpp",
    "chars": 23270,
    "preview": "// ImGui GLFW binding with OpenGL3 + shaders\n// (GLFW is a cross-platform general purpose library for handling windows, "
  },
  {
    "path": "ui/imgui/imgui_impl_glfw_gl3.h",
    "chars": 2314,
    "preview": "// ImGui GLFW binding with OpenGL3 + shaders\n// (GLFW is a cross-platform general purpose library for handling windows, "
  },
  {
    "path": "ui/imgui/imgui_impl_gtk3_cogl.cpp",
    "chars": 28238,
    "preview": "// ImGui GLFW binding with OpenGL3 + shaders\n// In this binding, ImTextureID is used to store an OpenGL 'GLuint' texture"
  },
  {
    "path": "ui/imgui/imgui_impl_gtk3_cogl.h",
    "chars": 1487,
    "preview": "// ImGui Gtk3 binding with Cogl\n// In this binding, ImTextureID is used to store an OpenGL 'GLuint' texture identifier. "
  },
  {
    "path": "ui/imgui/imgui_impl_sdl_gles2.cpp",
    "chars": 18500,
    "preview": "// ImGui SDL2 binding with OpenGL2 ES\n// In this binding, ImTextureID is used to store an OpenGL 'GLuint' texture identi"
  },
  {
    "path": "ui/imgui/imgui_impl_sdl_gles2.h",
    "chars": 1373,
    "preview": "// ImGui SDL2 binding with OpenGL ES2\n// In this binding, ImTextureID is used to store an OpenGL 'GLuint' texture identi"
  },
  {
    "path": "ui/imgui/imgui_internal.h",
    "chars": 74361,
    "preview": "// dear imgui, v1.60 WIP\n// (internals)\n\n// You may use this file to debug, understand or extend ImGui features but we d"
  },
  {
    "path": "ui/imgui/stb_rect_pack.h",
    "chars": 20014,
    "preview": "// stb_rect_pack.h - v0.11 - public domain - rectangle packing\n// Sean Barrett 2014\n//\n// Useful for e.g. packing rectan"
  },
  {
    "path": "ui/imgui/stb_textedit.h",
    "chars": 49161,
    "preview": "// [ImGui] this is a slightly modified version of stb_truetype.h 1.9. Those changes would need to be pushed into nothing"
  },
  {
    "path": "ui/imgui/stb_truetype.h",
    "chars": 189854,
    "preview": "// stb_truetype.h - v1.19 - public domain\n// authored from 2009-2016 by Sean Barrett / RAD Game Tools\n//\n//   This libra"
  },
  {
    "path": "ui/index.html",
    "chars": 628,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\">\n  <head>\n    <meta charset=\"utf-8\">\n    <meta http-equiv=\"X-UA-Compatible\" content=\"IE="
  },
  {
    "path": "ui/meson.build",
    "chars": 2878,
    "preview": "imgui_src = [\n  'imgui/imgui.cpp',\n  'imgui/imgui_demo.cpp',\n  'imgui/imgui_draw.cpp',\n]\nimgui_inc = include_directories"
  },
  {
    "path": "utils/gputop-configs.c",
    "chars": 7136,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2018 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "utils/meson.build",
    "chars": 186,
    "preview": "executable('gputop-configs',\n           [ 'gputop-configs.c' ],\n           c_args: [ '-D_GNU_SOURCE' ],\n           depen"
  },
  {
    "path": "wrapper/gputop-uv-network.c",
    "chars": 10170,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2018 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "wrapper/gputop-wrapper-main.c",
    "chars": 28689,
    "preview": "/*\n * GPU Top\n *\n * Copyright (C) 2017 Intel Corporation\n *\n * Permission is hereby granted, free of charge, to any pers"
  },
  {
    "path": "wrapper/meson.build",
    "chars": 379,
    "preview": "gputop_wrapper_src = [\n  'gputop-wrapper-main.c',\n  'gputop-uv-network.c',\n]\n\ngputop_wrapper_inc = include_directories('"
  }
]

About this extraction

This page contains the full source code of the rib/gputop GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 167 files (13.0 MB), approximately 3.4M tokens, and a symbol index with 2308 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!