Commit Graph

10970 Commits

Author SHA1 Message Date
Shane Smiskol ab1a962803 ui: measure ui state time in CPU time (#37983)
* all

* rename
2026-05-08 00:48:43 -07:00
Shane Smiskol 32671d1c3f ui: nonblocking Params writes (#37982)
ui: nonblocking writes for ExperimentalMode + DriverView toggles + cycle-restart

All four put calls fire from the main render thread on user interaction
and block on disk fsync, causing visible UI frame spikes.

Each consumer is safe under nonblocking:
- onboarding inactivity_callback: write-and-forget (~25 ms saved)
- home long-press exp toggle: ui_state.experimental_mode owns visual state (~10 ms)
- onroad exp_button: $held_mode + selfdriveState owns visual state
- restart_needed_callback (OnroadCycleRequested): cross-process signal,
  consumer is selfdrived which polls the param

BigParamControl-driven toggles in settings (developer.py, toggles.py)
are intentionally left blocking — those widgets refresh visual state
from disk every frame to mirror external changes, which would race a
nonblocking write.
2026-05-07 23:34:53 -07:00
Adeeb Shihadeh bd1c7f39ec scons build cleanups (#37981)
* simpler progress

* lil less

* cleanup

* handle cache in scons

* no j

* lil more

* rm atexit

* fix?

* cleanup
2026-05-07 18:50:52 -07:00
Shane Smiskol 6420e8d92a Scroller: restore tapping home to open settings while it's auto scrolling (#37978)
* restore tapping home to open settings while it's auto scrolling

* rename

* oneline
2026-05-06 23:19:45 -07:00
ZwX1616 2596de8543 Revert "DM: Lancia Delta HF Integrale model (#37696)" (#37971)
This reverts commit d8569b07eb.
2026-05-06 19:25:34 -07:00
Trey Moen 5adcff1221 modem: register cellular DNS with systemd-resolved (#37955) 2026-05-06 08:31:12 -07:00
Armand du Parc Locmaria dd0690da6f ui: log fps (#37927)
* log raylib fps

* log fps from frame time

* whitespace

* or just log frame time?

* init pubmaster in init window

* yield timings

* bump ordinal

* dont log on screen off

* UInt

* lint

* /0

* oops

* oops2

* more precise raylib frame time, can get fps with 1/ft

* don't crash on screen off

* NL

* no _

---------

Co-authored-by: Shane Smiskol <shane@smiskol.com>
2026-05-05 01:31:06 -07:00
Mitchell Goff 57d0a58855 Round trip through bytes to save 30x on migration memory usage (#37963) 2026-05-04 20:11:03 -07:00
Shane Smiskol f64f3944a6 will -> may 2026-05-04 16:51:06 -07:00
Armand du Parc Locmaria 65b2bfe5d8 modeld: remove uop tinygrad patch (#37960)
tg: remove uop patch
2026-05-04 16:49:34 -07:00
Shane Smiskol 1caae26cfc restart_needed_callback takes no args 2026-05-04 16:37:15 -07:00
Shane Smiskol 94cf600bfe comma four: warning for enabling alpha long (#37959)
* warning for alpha long on mici

* copy

* don't show green until done

* lambda

* helper

* fix
2026-05-04 16:36:03 -07:00
Adeeb Shihadeh d238a1ccc4 modem.py is disabled 2026-05-02 20:49:00 -07:00
Adeeb Shihadeh b8bcf32457 add modem.py expected cpu usage (#37951)
* add modem.py expected cpu usage

* lower
2026-05-02 10:40:46 -07:00
Trey Moen 1a93104bfd modem.py (#37811) 2026-05-02 10:04:53 -07:00
Shane Smiskol ab43fd1369 ui: re-apply mici/AugmentedRoadView _calc_frame_matrix caching (#37948)
* ui: speed up `mici/AugmentedRoadView` by optimizing _calc_frame_matrix caching (#36669)

speed up AugmentedRoadView by optimizing _calc_frame_matrix caching

* ui: apply rect.x/y as a 2D screen offset post-projection

Removes the parent rect's screen position from the cached
video_transform passed to ModelRenderer. Instead, ModelRenderer
applies (rect.x, rect.y) as a 2D offset to projected_points at draw
time.

Why this works: the rect.x/y term in video_transform gets multiplied
by P_calib[2] before the perspective divide, then divided by the same
value, which cancels out to a simple additive shift on the final
screen coordinate. So adding x to video_transform[0,2] is equivalent
to adding x to screen_x post-projection.

Net effect: the cache key in _calc_frame_matrix no longer needs to
include rect.x/y. Cache stays hot under translation (e.g. swiping
between layouts), and the model overlay tracks the camera at 60Hz
because the offset is updated cheaply each frame.

This addresses the original revert reason for #36669 (model overlay
visually desyncs from camera during a home<->onroad swipe).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* ui: update model screen offset every frame, not just on cache miss

set_screen_offset() was called inside the cache-miss path of
_calc_frame_matrix, so the offset only updated at ~20Hz (calib publish
rate). The model overlay visibly lagged the camera during a swipe.

Move it out of the cached path so it updates each frame.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fully clean up

* shorter cmts

* make non

* clean up

* fix ty

---------

Co-authored-by: Dean Lee <deanlee3@gmail.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 01:22:02 -07:00
Shane Smiskol 605dfaa1a9 ui: fix torque bar points caching while scrolling (#37946)
* ui: keep arc_bar_pts cache hot when bar is translated

The LRU cache key included (cx, cy), which change every frame when
the parent widget's rect translates (e.g. during a scroll animation
in MainLayout). That made every cache lookup miss, recomputing the
arc geometry twice per frame and dropping fps.

Compute the shape at origin (so the cache key only depends on the
geometry: radius, thickness, angles), then translate to (cx, cy)
after. Cache stays hot under translation.

Measured on comma four (engaged, scrolling): ~5fps recovered while
moving between layouts.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fully clean up

* fully clean up

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-02 00:00:01 -07:00
Harald Schäfer f364110a36 Reapply "Safer get accel (#37918)" (#37943)
* Reapply "Safer get accel (#37918)"

This reverts commit 3af3c7e748.

* Fix test

* This was a fake test without should stop
2026-05-01 10:38:42 -07:00
Shane Smiskol d20794f900 mici home: alerts pill touch zone only when alerts (#37940)
* fix

* clean up
2026-05-01 02:01:23 -07:00
Shane Smiskol dd7da3153a mici ui: don't show stale frame on startup (#37936)
* fix frame under text

* claude always taking the hard path

* cmt

* it still shows on start

* revert

* fix

* wait to show

* already a bug, don't fix here

* cmt

* cmt
2026-05-01 01:45:49 -07:00
Adeeb Shihadeh 4db23ed4c6 use vendored xvfb (#37935)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 19:35:35 -07:00
Adeeb Shihadeh a4e016c142 Revert "use vendored xvfb (#37934)"
This reverts commit 61f7c7ea03.
2026-04-30 18:29:30 -07:00
Adeeb Shihadeh 61f7c7ea03 use vendored xvfb (#37934) 2026-04-30 18:12:04 -07:00
Armand du Parc Locmaria b3f369612d modeld: cleanup tg flags (#37903)
* modeld: remove deprecated tg flags

* trigger ci

* JIT_BATCH_SIZE still a thing
2026-04-29 21:28:59 -07:00
Armand du Parc Locmaria ae0962cd0c dmonitoringmodeld: misc synthax (#37901)
* dmonitoringmodeld: misc synthax

* trigger ci
2026-04-29 18:57:32 -07:00
Armand du Parc Locmaria f00ff77c55 modeld: faster compile (#37929) 2026-04-29 18:31:03 -07:00
Daniel Koepping dab51a864f show alert severity (#37931)
* alert icons, sort by severity

* rename
2026-04-29 15:26:55 -07:00
Shane Smiskol 13ea74bcb4 ui: fix DM orange transitions (#37922)
* fix transitions and use eff active

* huh

* wtf

* clean up

* strict

* strict

* back

* back
2026-04-27 00:13:30 -07:00
ZwX1616 dc6e644359 ui: DM icon turns orange briefly after awareness drops (#37826)
* change icon after 1s

* match

* timinng

* speed up

* tint

* cleanup
2026-04-26 17:49:21 -07:00
Adeeb Shihadeh 3af3c7e748 Revert "Safer get accel (#37918)"
This reverts commit 545ad018e0.
2026-04-26 10:15:12 -07:00
Harald Schäfer 545ad018e0 Safer get accel (#37918)
* more robust accel fun

* dead
2026-04-26 09:48:25 -07:00
Daniel Koepping 494eba5961 Raise mici thermal limits (#37891)
* adjust thermal bands

* raise OFFROAD_DANGER_TEMP

* rename thermal bands

* rm warm
2026-04-24 13:22:43 -07:00
Armand du Parc Locmaria c3b0f0d11a dmonitoringmodeld: get frame size from vipc (#37897) 2026-04-23 15:23:31 -07:00
Armand du Parc Locmaria 551e2f77bf modeld: standalone compile script (#37851)
* modeld: standalone compile script

* cleanup

* frame skip

* rm last op import

* dm warp

* no graph break

* +x compile_dm_warp.py

* don't import tg before setting device

* compile_modeld exports metadata

* update help

* namedtuple

* lint

* Revert "compile_modeld exports metadata"

This reverts commit 93c3c223567b4d4a074c9071d7f734c56f5aedcc.

* import
2026-04-23 11:55:07 -07:00
Andi Radulescu ad04c6a038 cruise: fix test_cruise_speed assertion (#37802) 2026-04-23 11:52:12 -07:00
Adeeb Shihadeh 7d71354fd0 ui: remove firehose count (#37886) 2026-04-22 19:57:59 -07:00
Daniel Koepping 49685fc2bc ui: fix long maneuver toggle (#37622) 2026-04-22 17:59:34 -07:00
Adeeb Shihadeh 2266a9dd9c sensord: clean up SensorEventData struct (#37883) 2026-04-22 13:13:39 -07:00
ZwX1616 571a547671 Fix driver preview alert text and sound (#37875)
* fix type and add text

* short

* fix sound too

---------

Co-authored-by: Comma Device <device@comma.ai>
2026-04-21 16:19:20 -07:00
Adeeb Shihadeh b29d0a17af DM: readability, part 1 (#37872)
* spellings

* unused

* no roll

* lil more

* lil more

* one more

* policy enum

* better trans

* set_timer -> set_policy

* set_timer -> set_policy

* no yaonet

* del redundant code

---------

Co-authored-by: ZwX1616 <zwx1616@gmail.com>
2026-04-21 15:43:13 -07:00
Armand du Parc Locmaria 859bd215bf modeld: group npy -> qcom copies to avoid graph breaks (#37866)
* modeld: group npy -> qcom copies to avoid graph breaks

* batch realize

* dm as well
2026-04-21 13:50:20 -07:00
Harald Schäfer 4988a62b31 Revert "POP model (#37727)" (#37871)
This reverts commit 12f1be19cc.
2026-04-21 11:20:33 -07:00
Adeeb Shihadeh e202bbe4aa monitoring: remove redundant README 2026-04-21 11:04:46 -07:00
Adeeb Shihadeh 04b23ff849 model replay: relax driverState timing (#37868) 2026-04-20 21:13:07 -07:00
Adeeb Shihadeh 6996e87f8d dm: helpers.py -> policy.py (#37864) 2026-04-20 19:20:48 -07:00
stef 5d7155fdda body ui c3 & c4 (#37794)
* c4 body ui

* clean up diff

* clean up

* default bodyview debug with True

* remove battery indicator and fix close settings bug

* organize debug file

* clean

* clean up frame index

* remove unneccessary is body check

* update bodyview

* remove joystick_debug_mode based events

* remove debug script

* apply suggestions

* clean diff

* clean diff

* move ignition message

* save a line

* remove visibility set and fix tici body face when sidebar open

* remove explicit textColor offroad message

* remove unused imports

* revert pairing dialog

* apply suggestions

* add body specific icon

* add body icon for homescreen

* set mode for state on tici after on body changed

* tiny

* tweak

* v

* tweaks

* icon ratio was wrong!

* same order

* rm

* apply suggestions

* remove commented lines in animation

* onroad click callback was on home bug and fix setup widget settings call back hack

* fix body changed

* one liner

* clean up

* formatting

* if false

* revert to master + reimplement

* close sidebar on body home tici

* make ignition message bigger on c3

* flip eye direction when turning

---------

Co-authored-by: Nick <nickorie@gmail.com>
Co-authored-by: Shane Smiskol <shane@smiskol.com>
2026-04-18 13:00:05 -07:00
ZwX1616 389b639ef2 DriverMonitoringState v2 (#37799)
* draft ds

* better names

* what is this

* build new

* better names2

* more

* bit more cleanup

* rm those

* .

* .2

* selfdrived

* depre

* hk

* fix test

* fix rest

* 1

* fix enum

* update cereal

* fix rest

* more

* add step

* fix all

* imports

* cant?

* .

* simplify

* bool

* fix some migrate

* cleanup

* fix fix

* Update cereal/log.capnp

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>

* touchup

* what

---------

Co-authored-by: Comma Device <device@comma.ai>
Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
2026-04-17 21:58:05 -07:00
Armand du Parc Locmaria d81d66193f modeld: single jit (#37758)
* compile_modeld.py

* update estimates

* missing image=2?

* Revert "missing image=2?"

This reverts commit 2f5952eb63ba1e3f24cbf5769e6b5e9170d7f0a6.

* Revert "update estimates"

This reverts commit 1f72feef2ffdec6126e3c941e899b46ace7b4b65.

* Revert "compile_modeld.py"

This reverts commit f10541502efca02725f368deda2a21d1f786f57d.

* load warp in ModelState init

* dead code

* prep

* compile modeld

* update SConscript

* tmp save plot locally

* Revert "tmp save plot locally"

This reverts commit ec22f15161ad3b0241a097546b35860f989219f5.

* openpilot hacks?

* no float16

* tmp more chunks

* Revert "tmp more chunks"

This reverts commit 9e1d9b4d0dc36ff530d2a70b565fbfabd7afb00d.

* Revert "no float16"

This reverts commit 6204956e98e3c0818ed1985ede8eeccb810f63e3.

* realize boundaries

* Revert "realize boundaries"

This reverts commit ffaa19259eba70944e7793e8f51a0f87089531b3.

* prune=False?

* Reapply "tmp more chunks"

This reverts commit 2599c41cea93b4a6b4e946cdffc6a617663a7d23.

* tg bug?

* load first?

* Revert "load first?"

This reverts commit f643d082d76a424b23295e254179eb111e936e61.

* revert

* Reapply "tmp save plot locally"

This reverts commit 1b95b82ee58654bd908b1cb04ab0ddbcd1a5955d.

* 0 tol pc

* warp -> modeld

* rename

* bypass chunking?

* dont chunk

* Revert "dont chunk"

This reverts commit cc97fc67b3203456e123f02babe5c83b87c7e264.

* dont chunk

* debug

* Revert "debug"

This reverts commit b3c2f2e7a095fd32f8d8562a68fd1cca42357eac.

* Revert "dont chunk"

This reverts commit 42bd9b6f6ad0722c50348ba11ba7e2a64fdf997d.

* Revert "bypass chunking?"

This reverts commit ad5422a93483ffd8a59ba62e5fb72ced3b5d04d0.

* corrupt model outputs

* Revert "corrupt model outputs"

This reverts commit 245feb94480e02f83a20b65a9488652bcbfc88b0.

* image=0 for warp, match master

* dedupe enqueue

* pass traffic convention

* tg buffer for desire

* dedupe buffer creation

* compile_modeld: nuke stale cached pkl before compiling

The UNSAFE CI checkout keeps gitignored files (.pkl, .sconsign.dblite),
so stale pkl files from previous commits can persist and be reused
instead of being recompiled. Delete them explicitly before compiling.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* test vs compile

* all outputs need to be different on different inputs

* randomize numpy inputs

* randomize on every step

* SConscript: nuke stale pkl+chunks before compile_modeld

Move the stale artifact cleanup from compile_modeld.py into the
SConscript build command. This ensures stale gitignored pkl and chunk
files are deleted even if scons decides to skip the compile step
(due to a stale .sconsign.dblite from UNSAFE CI checkout).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* compile_modeld: restore Context(IMAGE=0) for warp

The warp operations must run under IMAGE=0 to avoid QCOM image texture
optimizations that corrupt the output buffer after ~33 frames.
This was accidentally commented out in a855173.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* modeld: create SubMaster before model loading

Move PubMaster/SubMaster creation before the model loading step.
During model loading (3.5s+), process_replay may send liveCalibration.
If SubMaster doesn't exist yet, the message is dropped and the warp
transform stays as zeros, producing garbage warped images.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* Revert "modeld: create SubMaster before model loading"

This reverts commit 968c987c2fbb3fce141c4e345d10ddea559b6c50.

* stale metadata?

* claude debug

* Revert "claude debug"

This reverts commit 49e754c6affa45a8ea8834588a00227b8090b17a.

* Revert "stale metadata?"

This reverts commit 870388513c0d4a67dcf970cd277b6db56cb2b478.

* modeld: realize jit outputs before parsing

* Update modeld.py

* modeld: fix NameError by removing redundant MODELS_DIR definition

* test buffers in test vs. compile

* 2x inputs before running

* fixup 2x inputs test

* realize onnx weights?

* Revert "realize onnx weights?"

This reverts commit 49c8b9a505db38ff22f342db011a3a6b6526d398.

* move openpilot_hacks flag to sconscript

* stricter test vs compile

* correct timings

* more run more fail?

* Revert "more run more fail?"

This reverts commit 9e94bb63940751ec29e81b634c42449113e1f2e5.

* numpy shenanigans

* correct shapes

* dont assert timings for now

* Revert "correct shapes"

This reverts commit 5b9ff6c84c0022327d21801d179e9e51c39e8f78.

* Revert "numpy shenanigans"

This reverts commit b4f6fb3078d7e9b09698895b88728fd8eea8c8a8.

* no need to nuke

* comment unused

* don't use NPY device

* copy instead of from_blob

* to device before jit

* Revert "to device before jit"

This reverts commit 7a59ed9b1ac88657b5a3917986b6ff92e59a2ee3.

* Revert "copy instead of from_blob"

This reverts commit 196c4892a06ffba89ef631876372cecf137cc1b4.

* Revert "don't use NPY device"

This reverts commit 18abf43bbac46ad47a60c03dd8d1ef40b3f59227.

* 3 runs is enough

* no_memory_planner=1

* lint

* restore model_replay.py

* on policy -> policy

* unused

* prepare only enqueues full images

* warp with image=2?

* unused args

* test vs compile, check different inputs different outputs

* avoid uop cache collision

* dont need realize here

* misc

* input queues diverged

* strict zip

* monkey patch for now

* memory planner

* prev desire correct order

* dedupe pkl paths / compile targets

* don't change behavior, warp and enqueue frames when skipping model eval

* actually prepare only

* warm up warp jit

* correct path

* oops

* explicit warmup

* need continuous + can't have dupplicate jit inputs

* whitespace

* bufs -> input_queues

* master tg

* /N_RUNS

* bump tg, remove uop cache patch

* more readable

* Revert "bump tg, remove uop cache patch"

This reverts commit 499acca2591becd389de4025943f9e776a5b337c.

* missing dep

---------

Co-authored-by: Bruce Wayne <harald.the.engineer@gmail.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-17 12:37:56 -07:00
Shane Smiskol 63ab2fb1b3 four: calibrate DM orientation (#37149)
* calib face

* clean up

* fix double neg

* cmt

* local changes

* keep for dm preview for now

* comments

* comments

* Update selfdrive/ui/mici/onroad/driver_state.py

* Update selfdrive/ui/mici/onroad/driver_state.py
2026-04-15 10:15:32 -07:00
Daniel Koepping 1276452cfc add blocked-startup offroad label (#37833)
add blocked-startup offroad label
2026-04-15 00:15:57 -07:00