J. Nick Koston
051326e70e
Merge remote-tracking branch 'upstream/dev' into app-loop-optimize-speed
...
# Conflicts:
# esphome/core/application.h
2026-04-14 15:06:44 -10:00
Edward Firmo and pre-commit-ci-lite[bot]
2db2b89eb1
[nextion] Fix command spacing pacer never throttling sends ( #15664 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-04-15 07:47:44 +12:00
J. Nick Koston
e48c7165c5
[light] Avoid addressable transition stall at low gamma-corrected values ( #15726 )
2026-04-15 07:45:42 +12:00
J. Nick Koston and Copilot
506edaadd5
[core] Inline feed_wdt hot path with out-of-line slow path ( #15656 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-04-14 19:08:30 +00:00
3f82a3a519
[core] Inline Millis64Impl::compute() on single-threaded platforms ( #15684 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-04-14 08:20:31 -10:00
J. Nick Koston
79cee864cb
[esphome][ota] Disable loop while idle, wake on listening-socket activity ( #15636 )
2026-04-14 08:20:14 -10:00
Alexey Spirkov and Alexey Spirkov
9f5ed938e5
[i2s_audio] Add PDM mics support for ESP32-P4 ( #15333 )
...
Co-authored-by: Alexey Spirkov <dev@alsp.net >
2026-04-14 14:07:16 -04:00
J. Nick Koston
4729efbd04
[light] Deduplicate color_uncorrect channel math via shared helper ( #15727 )
2026-04-14 07:50:28 -10:00
J. Nick Koston
da9fbb8044
[core] Fix app_state_ status bits clobbered for non-looping components ( #15658 )
2026-04-14 07:50:11 -10:00
J. Nick Koston
cf01163c8c
[core] Add uint32_to_str helper and use in preferences ( #15597 )
2026-04-14 07:49:44 -10:00
J. Nick Koston
5ba8c644e4
[ld24xx] Replace heap-allocated SensorWithDedup with inline SensorWithDedup ( #15676 )
2026-04-14 07:49:27 -10:00
Kevin Ahrendt and Copilot
c833ff4a84
[audio] Add/configure microDecoder library in preparation for use in future PRs ( #15679 )
...
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-04-14 13:49:18 -04:00
J. Nick Koston
2a530a4bf4
[core] Optimize format_hex_internal by splitting separator loop ( #15594 )
2026-04-14 07:48:33 -10:00
J. Nick Koston
6b4b653462
[globals] Fix TemplatableFn deprecation warning for globals.set ( #15733 )
2026-04-14 09:18:38 -04:00
J. Nick Koston
220f3d8142
Merge branch 'dev' into app-loop-optimize-speed
2026-04-13 17:08:24 -10:00
J. Nick Koston and Copilot Autofix powered by AI
edb16a27d3
[esphome] Skip missing extra flash images in upload_using_esptool ( #15723 )
...
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com >
2026-04-13 16:58:48 -10:00
J. Nick Koston
21df5d9bf6
[web_server] Reset OTA backend on new upload to avoid brick after interrupted OTA ( #15720 )
2026-04-13 13:59:45 -10:00
J. Nick Koston
73c972a604
[adc] Place ADC oneshot control functions in IRAM for cache safety ( #15717 )
2026-04-13 13:59:32 -10:00
Jonathan Swoboda
8cdffef82a
[heatpumpir] Bump tonia/HeatpumpIR to 1.0.41 ( #15711 )
2026-04-13 17:06:56 -04:00
dependabot[bot]
4034809281
Bump actions/create-github-app-token from 3.0.0 to 3.1.1 ( #15712 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-13 11:00:46 -10:00
dependabot[bot]
ce6bffb65c
Bump actions/cache from 5.0.4 to 5.0.5 ( #15713 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-13 11:00:24 -10:00
dependabot[bot]
e8bc4bedb4
Bump actions/cache from 5.0.4 to 5.0.5 in /.github/actions/restore-python ( #15714 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-13 11:00:11 -10:00
J. Nick Koston
7d0391aed6
Merge branch 'dev' into app-loop-optimize-speed
2026-04-13 08:44:55 -10:00
J. Nick Koston
b85a7ef317
[scheduler] Force-inline process_to_add() fast path ( #15685 )
2026-04-13 08:40:58 -10:00
J. Nick Koston
9f7e310526
[scheduler] Force-inline cleanup_() fast path ( #15683 )
2026-04-13 08:40:39 -10:00
J. Nick Koston
af7cb1d81e
[scheduler] Force-inline process_defer_queue_() fast path ( #15686 )
2026-04-13 08:40:25 -10:00
J. Nick Koston and pre-commit-ci-lite[bot]
53ce2a2f7f
[api] Add speed_optimized to SubscribeLogsResponse ( #15698 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-04-14 06:25:05 +12:00
Jonathan Swoboda
fb0283e0ee
[esp32] Update the recommended platform to 55.03.38-1 ( #15705 )
2026-04-13 14:18:52 -04:00
Jonathan Swoboda
5d0cfc31fa
[core] Move FILTER_PLATFORMIO_LINES into platformio_runner ( #15707 )
2026-04-13 14:18:44 -04:00
J. Nick Koston
f30f0a0edc
[zephyr] Remove redundant yield() from main loop ( #15694 )
2026-04-13 09:43:17 -04:00
Kevin Ahrendt
6aa538a61d
[micro_wake_word] Bugfix: Use es-nn v1.1.2 (last known working version) ( #15703 )
2026-04-13 09:42:02 -04:00
Diorcet Yann and Jonathan Swoboda
7918a93a7f
[esp32] Fix some compiler warnings & bugs ( #15610 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-04-13 09:40:49 -04:00
Diorcet Yann
fe6ecb24b4
[bme68x_bsec2] use esphome-libs wrappers for ESP32 ( #15697 )
2026-04-13 07:49:13 -04:00
dependabot[bot]
6db787d5e4
Bump aioesphomeapi from 44.14.0 to 44.15.0 ( #15699 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-13 08:12:57 +00:00
J. Nick Koston
9a9f9fa9f3
Merge branch 'dev' into app-loop-optimize-speed
2026-04-12 21:45:08 -10:00
J. Nick Koston and pre-commit-ci-lite[bot]
5b4385a084
[api] Add speed_optimized proto option for hot encode paths ( #15691 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
2026-04-13 07:42:31 +00:00
J. Nick Koston
4f69c3b850
[benchmark] Add SubscribeLogsResponse encode benchmarks ( #15696 )
2026-04-13 02:03:53 -05:00
J. Nick Koston
c62a75ee17
[benchmark] Use -Os to match firmware optimization level ( #15688 )
2026-04-13 01:40:33 -05:00
J. Nick Koston
4dddccab6e
Merge branch 'proto-speed-optimized-v2' into app-loop-optimize-speed
2026-04-12 20:34:39 -10:00
J. Nick Koston
6c115e4692
Merge branch 'benchmark-use-os-optimization' into proto-speed-optimized-v2
2026-04-12 20:24:51 -10:00
J. Nick Koston
ff26fe32c1
Merge branch 'proto-speed-optimized-v2' into app-loop-optimize-speed
2026-04-12 20:24:43 -10:00
J. Nick Koston
494f11ce77
Merge branch 'dev' into benchmark-use-os-optimization
2026-04-12 20:24:33 -10:00
dependabot[bot]
d4e9c62d92
Bump aioesphomeapi from 44.13.3 to 44.14.0 ( #15695 )
...
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-13 06:23:49 +00:00
pre-commit-ci-lite[bot]
a463e25aa1
[pre-commit.ci lite] apply automatic fixes
2026-04-13 06:23:08 +00:00
pre-commit-ci-lite[bot]
6aabada342
[pre-commit.ci lite] apply automatic fixes
2026-04-13 06:22:55 +00:00
J. Nick Koston
603d5a2b54
Fix clang-tidy NOLINT for optimize(O2) in generated protobuf code
2026-04-12 20:21:43 -10:00
J. Nick Koston
3e9f464a2c
Fix clang-tidy and test for optimize(O2) attribute
2026-04-12 20:21:11 -10:00
J. Nick Koston
9a022baa06
[core] Optimize main loop with -O2
...
Add __attribute__((optimize("O2"))) to the main loop functions
(loop_task on ESP32, codegen loop() on other platforms) so GCC
inlines scheduler helpers and loop bookkeeping more aggressively.
Under -Os, GCC outlines small functions (Scheduler::call helpers,
millis conversions, etc.) that are called every loop iteration.
With -O2, these get inlined into the loop body, reducing call
overhead on the hottest code path in the firmware.
ESP32: loop_task grows from 303 to 416 bytes (+113 bytes).
ESP8266: no change (already fully inlined via ESPHOME_ALWAYS_INLINE).
2026-04-12 20:06:34 -10:00
J. Nick Koston
d9762759c0
Merge branch 'benchmark-use-os-optimization' into proto-speed-optimized-v2
2026-04-12 19:30:45 -10:00
J. Nick Koston
d217ab3cd4
[api] Add speed_optimized proto option for hot encode paths
...
Add a new (speed_optimized) message option that emits
__attribute__((optimize("O2"))) on the generated encode() and
calculate_size() methods. Under -Os, GCC does not inline the small
ProtoEncode helpers (write_raw_byte, encode_varint, etc.) into the
generated methods, causing significant overhead on hot paths.
Apply to SensorStateResponse and BluetoothLERawAdvertisementsResponse
which are the highest-frequency encode paths.
2026-04-12 19:23:39 -10:00