Trace full GPS query results

This commit is contained in:
2026-06-20 21:21:32 -05:00
parent 1a9f560922
commit 54f014b74d
3 changed files with 31 additions and 5 deletions
+17 -3
View File
@@ -30,18 +30,29 @@ In `red4ext/EdgeWeightGPS/src/Main.cpp`:
- `kEnableGpsProviderClassPatch = false`
- `kEnableGpsProviderClassPatchTrace = false`
- `kEnableGpsTraceHooks = true`
- `kEnableGpsQueryLifecycleHooks = false`
- `kEnableGpsQueryLifecycleHooks = true`
- `kEnableGpsRouteJobLifecycleHooks = false`
- `kEnableGpsLocalSearchHooks = true`
- `kEnableRouteUiTraceHooks = false`
Active hooks:
- query lifecycle:
- `GPSQuerySubmit 0x70a42c`
- `GPSQueryDispatch 0x70a570`
- `GPSQueryResultFetch 0x7094b8`
- `GPSQueryStatus 0xaa5704`
- `GPSSearch 0x44f054`
- `GPSRouteProducer 0x44cc7c`
- `GPSEdgeCost 0x44f838`
- filtered provider filter `0x44ff68`
- base provider filter `0x450b08`
Async route-job hooks (`0x8d17d8`, `0x126b28`, `0x883cd8`,
`0x11f5f60`, `0x818ba8`) are split behind
`kEnableGpsRouteJobLifecycleHooks` and currently disabled to keep the next
run focused on solved route result records plus local search/cost stats.
The filter probe records pass/fail totals by GPS point class and by bits in
`point + 0x10`, tested against provider masks at `+0x108` and `+0x10a`.
@@ -125,9 +136,12 @@ Ask for timestamps for:
After the run:
1. Archive the log to `logs/EdgeWeightGPS_provider_filter_probe_<time>.log`.
2. Inspect `GPSSearch result` lines for `filterPassClasses`,
2. Inspect `GPSQuerySubmit`/`GPSQueryResultFetch` lines for tracked route IDs
from submit return RVA `0x8d20d4`, especially successful `0x7094b8`
records with `gpsResult_ptr28_rec40`.
3. Inspect `GPSSearch result` lines for `filterPassClasses`,
`filterFailClasses`, `filterPassMaskBits`, and `filterFailMaskBits`.
3. Compare filter pass/fail classes to `edgeSrcClasses` and route output
4. Compare filter pass/fail classes to `edgeSrcClasses` and route output
records. The key question is whether the class/mask filter is selecting the
graph subset before cost weighting can matter.
+6 -1
View File
@@ -67,7 +67,12 @@ Current behavior:
Active build note:
- The currently installed build is read-only. It disables provider class
multiplier overrides and enables local GPS search tracing.
multiplier overrides and enables GPS query lifecycle tracing plus local GPS
search tracing.
- The async route-job hooks are split behind `kEnableGpsRouteJobLifecycleHooks`
and are disabled in the active probe; this keeps the log focused on
`0x70a42c` submissions, `0x7094b8` result records, and local
search/provider-cost stats.
- It hooks `GPSSearch` (`0x44f054`), `GPSRouteProducer` (`0x44cc7c`),
`GPSEdgeCost` (`0x44f838`), and the two cost-provider filters
`0x44ff68`/`0x450b08`.