J. Nick Koston
1c2325da30
[epaper_spi] Keep the size accessors as they were
2026-09-17 08:43:01 -05:00
J. Nick Koston
e41d3511ed
[image][display] One loop body per format with the order as a template argument
...
for_each_pixel() holds the loop order once; the per format bodies are
always-inline lambdas, which keeps the inner loop identical to dev
(GCC at -Os otherwise leaves them out of line and calls per pixel).
Members read in the loop are copied to locals so the opaque virtual
draw_pixel_at() does not force a reload per pixel. The hub75 override
goes, its rotation is forced to 0 at codegen. The host benchmark's
frame is square so the rotated case stays in bounds.
2026-09-17 08:43:01 -05:00
J. Nick Koston
eaec226add
[image][display] Let the display say whether pixel writes swap the axes
...
Rotation alone is the wrong signal: mipi_spi with hardware rotation,
epaper_spi and it8951 with a swap_xy transform, and hub75 write the
frame buffer differently from what the rotation implies. The display
now answers through pixel_axes_swapped() and Image::draw() picks the
loop order from that. The four per-format loops collapse into one body
with the format resolved at compile time.
2026-09-17 08:43:01 -05:00
J. Nick Koston
3dea35814c
[image] Follow the display rotation when choosing the loop order
...
A rotated display swaps x and y before the frame buffer write, so the
row walk strides the frame buffer there and a strided write costs more
than a strided read. The loop order is now a compile time template
picked from the display rotation, so both orders keep the plain loop
shape. Adds a rotated case to the host benchmark.
2026-09-17 08:42:31 -05:00
J. Nick Koston
4d130624b4
[image] Trim the draw benchmark
...
Own the frame buffer so nothing leaks per trial, size the pixel data
once for the widest format, and drop the manifest override the build
does not need.
2026-09-17 08:42:31 -05:00
J. Nick Koston
de93f2e9ff
[image] Draw rows in the outer loop so pixel reads walk memory sequentially
...
Image::draw() iterated columns in the outer loop over a row-major
pixel buffer, so every pixel read and every frame buffer write jumped
by a full row. Walking rows keeps both accesses sequential regardless
of image shape or display rotation. The output is unchanged.
Adds a host benchmark for the four pixel formats plus the alpha path.
2026-09-17 08:42:31 -05:00
J. Nick Koston
8ac3dba11a
[esp32] Add a flash chip option that drops the unused flash vendor drivers ( #19217 )
2026-09-17 08:40:30 -05:00
J. Nick Koston
7d17efc15f
[espidf] Emit json2 size data so the link edge is not blocked ( #18848 )
2026-09-17 08:35:46 -05:00
J. Nick Koston
271f85185d
[sensor] Remove deprecated raw_state member ( #19077 )
2026-09-17 08:35:15 -05:00
J. Nick Koston
28b2a689a7
[web_server] Reduce flash used by the JSON and request helpers ( #19303 )
2026-09-17 08:35:02 -05:00
J. Nick Koston
40934484c6
[output] Use BinaryOutput::set_state() instead of hand written turn_on/turn_off branches ( #19366 )
2026-09-17 08:34:36 -05:00
J. Nick Koston
05bba3fdc2
[image] Blend grayscale alpha with Color::gradient ( #19356 )
2026-09-17 08:17:28 -05:00
J. Nick Koston
508c24c5e3
[esp32][rp2] Print the previous boot crash report before the logger reads it ( #19351 )
2026-09-17 08:17:11 -05:00
J. Nick Koston
2a8d6b69cd
[rp2] Bump arduino-pico framework to 6.1.0 ( #19261 )
2026-09-17 08:16:41 -05:00
J. Nick Koston
a7559547b2
[remote_receiver] Treat buffer size as bytes on the pulse ring targets ( #19101 )
2026-09-17 08:15:13 -05:00
J. Nick Koston
942322738a
[remote_receiver] [remote_transmitter] Keep the RMT setup error message as a pointer to the literal ( #19210 )
2026-09-17 08:14:57 -05:00
J. Nick Koston
7e3d4a48d1
[modbus_controller] Remove deprecated helper shims ( #19076 )
2026-09-17 08:56:29 -04:00
Kevin Ahrendt
8cd22eacea
[audio] Bump esp-audio-libs to v4.0.1 ( #19372 )
2026-09-17 08:23:55 -04:00
rexmoriarty
cf0a87de28
[mixer] Don't discard a start request while reaping a stopped task ( #19368 )
2026-09-17 05:47:40 -04:00
Jesse Hills
4be8302190
[ci] Move skills to .agents/skills with .claude and .github symlinks ( #19369 )
2026-09-16 23:36:08 -05:00
Kevin Ahrendt
34158e17b8
[mixer] Raise ducking decibel_reduction maximum to 255 ( #19347 )
2026-09-16 20:42:29 -05:00
J. Nick Koston
1a04359454
[switch] Use Switch::control() instead of hand written turn_on/turn_off branches ( #19364 )
2026-09-16 19:04:14 -05:00
Kevin Ahrendt
8bcb5004da
[sendspin] Add a switch platform to enable and disable the client ( #19361 )
2026-09-17 11:35:07 +12:00
J. Nick Koston
b001514cf3
[remote_base] Accept protocols registered by external components ( #19332 )
2026-09-17 11:33:52 +12:00
J. Nick Koston
ffb1ad288f
[remote_receiver] Wake the main loop when the RMT callback stores a frame ( #19102 )
2026-09-17 11:32:13 +12:00
J. Nick Koston
3fe87688d9
[esp32] Enable octal flash when the flash mode is opi ( #19218 )
2026-09-17 11:31:27 +12:00
J. Nick Koston
abfe350119
[core] Fold the modbus write and bits tests into the shared mesh fixture ( #18946 )
2026-09-17 11:23:29 +12:00
J. Nick Koston
f8012bc467
[esp32] Redefine __FILE__ to the basename so assert paths stay out of RAM ( #19106 )
2026-09-17 11:22:32 +12:00
J. Nick Koston
bb5c06c58a
[image] Drop the unused stride_ member ( #19353 )
2026-09-17 11:17:56 +12:00
J. Nick Koston
9288311978
[ota] Skip the web_server plaintext warning when web_server ota is disabled ( #19348 )
2026-09-17 10:19:04 +12:00
J. Nick Koston
7386daed5f
[ld2450] Use a user provided default constructor for MultiTargetSwitch ( #19192 )
2026-09-17 09:58:45 +12:00
J. Nick Koston
dc300ae5d4
[esp8266] Drop the dead NEW_OOM_ABORT flag and its nothrow advice ( #19247 )
2026-09-17 09:58:14 +12:00
J. Nick Koston
cfcaeff27b
[esp32_hosted] Keep the update manifest URL as a pointer to the literal ( #19212 )
2026-09-17 09:57:47 +12:00
417b841db7
[icnt86] Support ICNT86 touch driver ( #18331 )
...
Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
Co-authored-by: Clyde Stubbs <2366188+clydebarrow@users.noreply.github.com >
Co-authored-by: J. Nick Koston <nick@koston.org >
2026-09-17 07:53:53 +10:00
J. Nick Koston
711733f9af
[modbus] Remove deprecated send() ( #19079 )
2026-09-17 09:53:43 +12:00
J. Nick Koston
2f248390b2
[modbus] Remove disable_crc validation stub ( #19078 )
2026-09-17 09:53:35 +12:00
J. Nick Koston
3d4765d05a
[template] Remove deprecated bypass_before_arming() ( #19075 )
2026-09-17 09:53:28 +12:00
J. Nick Koston
59a6760f5e
[nextion] Remove deprecated get_wave_chan_id() ( #19080 )
2026-09-17 09:53:22 +12:00
J. Nick Koston
bafa096a1d
[display] Trim the per pixel cost of draw_pixel_at ( #19360 )
2026-09-16 16:19:47 -05:00
Kevin Ahrendt
845de7b7dd
[sendspin] Bump sendspin-cpp to v0.8.0 ( #19357 )
2026-09-16 19:38:18 +00:00
dependabot[bot]
6f15dc331f
Bump prek from 0.5.2 to 0.5.3 ( #19358 )
...
Signed-off-by: dependabot[bot] <support@github.com >
2026-09-16 19:33:41 +00:00
Kevin Ahrendt
fdf6998a86
[sendspin] Start mDNS service disabled, enable once server is running ( #19326 )
2026-09-16 15:08:40 -04:00
Kevin Ahrendt
3804ec423f
[i2s_audio] Resync DMA lockstep in place instead of restarting the speaker task ( #19319 )
2026-09-16 13:52:56 -04:00
J. Nick Koston
e13d424768
[speaker] Remove deprecated codec_support_enabled option ( #19074 )
2026-09-16 09:41:14 -05:00
J. Nick Koston
544f8ae771
[http_request] Take the URL and method as C strings ( #19215 )
2026-09-16 09:14:52 -05:00
J. Nick Koston
3a9bb7e5bc
[http_request] Keep the update manifest URL as a pointer to the literal ( #19211 )
2026-09-16 08:41:48 -05:00
Jesse Hills
4c7aee1a77
[improv_ble] Rename from esp32_improv and decouple from ESP32 ( #19264 )
2026-09-16 20:49:56 +12:00
Jesse Hills
9b21b64836
Merge branch 'release' into dev
2026-09-16 20:47:35 +12:00
Jesse Hills
c6e4c87e52
Merge pull request #19338 from esphome/bump-2026.9.0
...
2026.9.0
2026.9.0
2026-09-16 20:47:05 +12:00
J. Nick Koston
237d87880f
[pcf8574] Use a user provided default constructor for PCF8574GPIOPin ( #19207 )
2026-09-16 20:42:42 +12:00