Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# GPU Auto Optimizer

Instructions for AI coding agents working in this repository. A native C++20 Windows tool that tunes
NVIDIA GPUs (power limit, core and memory offsets) through NVML and NVAPI, with a DX11 stress test.
User-facing overview: `README.md`. Code layout, profiles and release process: `docs/development.md`.

## Hard requirement: English only

Everything in this repository is in English, without exception: code, identifiers, comments,
CLI output and log lines, commit messages, branch names, PR titles and descriptions, specs,
plans, README, `docs/`, test names and file names. This holds even when the conversation with
the user is in another language — translate, never paste non-English text into the project.

## Build and test

`cmake` is not on `PATH`; use the one bundled with Visual Studio:

```powershell
$bin = "C:\Program Files\Microsoft Visual Studio\18\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin"
& "$bin\cmake.exe" --workflow --preset ci # configure, build Release, test
& "$bin\cmake.exe" --build --preset debug; & "$bin\ctest.exe" --preset debug
```

Everything we compile is `/W4 /WX`; fix warnings, do not suppress them.

## Layout

Two executables on one engine: `gao.exe` (CLI, `src/app/main.cpp`) and
`GpuAutoOptimizer.exe` (window + tray + watchdog, `src/app/gui/`). Logic both
need lives in `src/app/common.*`, never in either entry point.

## Rules the design depends on

- `src/core/` is pure logic: no `windows.h`, NVML, NVAPI or D3D headers. It reaches hardware
only through `GpuControl` and callbacks, so CI tests it without a GPU.
- Every hardware write is verified by reading it back; a mismatch is a failure. Any failed
apply ends at stock.
- The crash journal's `begin` line is flushed to disk before a clock candidate touches the
hardware.
- `src/hw/` is verified by hand on the reference RTX 4070 via `docs/hardware-checks.md`; record
the results there.
- Commands that write to the GPU need an elevated shell.
39 changes: 1 addition & 38 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -1,38 +1 @@
# GPU Auto Optimizer

## Hard requirement: English only

Everything in this repository is in English, without exception: code, identifiers, comments,
CLI output and log lines, commit messages, branch names, PR titles and descriptions, specs,
plans, README, `docs/`, test names and file names. This holds even when the conversation with
the user is in another language — translate, never paste non-English text into the project.

## Build and test

`cmake` is not on `PATH`; use the one bundled with Visual Studio:

```powershell
$bin = "C:\Program Files\Microsoft Visual Studio\18\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin"
& "$bin\cmake.exe" --workflow --preset ci # configure, build Release, test
& "$bin\cmake.exe" --build --preset debug; & "$bin\ctest.exe" --preset debug
```

Everything we compile is `/W4 /WX`; fix warnings, do not suppress them.

## Layout

Two executables on one engine: `gao.exe` (CLI, `src/app/main.cpp`) and
`GpuAutoOptimizer.exe` (window + tray + watchdog, `src/app/gui/`). Logic both
need lives in `src/app/common.*`, never in either entry point.

## Rules the design depends on

- `src/core/` is pure logic: no `windows.h`, NVML, NVAPI or D3D headers. It reaches hardware
only through `GpuControl` and callbacks, so CI tests it without a GPU.
- Every hardware write is verified by reading it back; a mismatch is a failure. Any failed
apply ends at stock.
- The crash journal's `begin` line is flushed to disk before a clock candidate touches the
hardware.
- `src/hw/` is verified by hand on the reference RTX 4070 via `docs/hardware-checks.md`; record
the results there.
- Commands that write to the GPU need an elevated shell.
@AGENTS.md
Loading