This file helps AI assistants work effectively in the GITS (Graphics Intercept and Trace Solution) repository.
GITS is a capture-replay tool for Vulkan, OpenCL, Intel oneAPI Level Zero, OpenGL, and DirectX 12. It records API call sequences into binary streams and replays them via gitsPlayer. The codebase is C++ (core), Python (scripts and code generation), and CMake (build). Development focuses on enabling applications for Intel GPU driver validation.
| Need | Location |
|---|---|
| Conventions, code style, naming | docs/development/project.md |
| Terminology (Stream, Recorder, Player, Configuration, Subcapture, CCode, Generator) | docs/documentation/terminology.md |
| Build instructions | docs/building.md, README.md |
| Codebase layout | docs/development/codebase-map.md |
| Contributing (PRs, commits, DCO) | CONTRIBUTING.md |
| Usage (record/replay, interceptor, layer) | docs/usage.md |
In-repo documentation under docs/ is the source of truth when external links are unavailable.
- Do not edit generated files. Files with the suffix
Autoare generated (e.g. from mako templates or codegen). Change the sources or generators and regenerate instead. - Follow project conventions. Use docs/development/project.md: C++ style (Pascal case,
m_/g_prefixes, 100-column line width,.clang-format/.clang-tidy), camelCase for folders/files (Python: snake_case), and API folders keep original API spelling/capitalization. - One folder per API. API-specific implementation lives under
DirectX/,Vulkan/,OpenCL/,LevelZero/. Shared code is incommon/; plugins inplugins/.
- Build: CMake
- Core: C++20
- Scripts / codegen: Python 3.10
- Templates: mako
When suggesting changes, match existing patterns in the same module and prefer the style described in the project guide for new code.