Commit Graph

4605 Commits

Author SHA1 Message Date
Frank
a45306b141 blur speedup
it seems that SEGMENT.blur() is the main bottleneck for many 2D effects.

This change optimizes performance of the function:
* avoid to re-write unchanged pixels
* early exit when blur_amount == 0 (=nothing to do)
* use _fast_ types where possible

I've seen up to 20% speedup with this change.
2023-07-08 20:06:52 +02:00
Frank
a2e2eada1b npm run build 2023-07-08 20:01:40 +02:00
Frank
5fe12eef5a Merge branch 'mdev' into audio_fastpath 2023-07-08 19:23:36 +02:00
Frank
72b79608bf 2DPlasmaball - optimize out float 2023-07-08 19:13:20 +02:00
Frank
2562f308ca fix power calculation for NeoPixelBusLg
power estimation results from estimateCurrentAndLimitBri() were too low (example: estimated 1.3Amp, measured 1.6Amp). This change corrects the power calculation. Due to the changed behavior of getPixelColor, powerSum must be used as-is, not scaled down again by brightness.
2023-07-08 19:13:20 +02:00
Frank
601499b69b XY: minor bugfix
properly handle width=0 OR height=0
2023-07-06 10:02:01 +02:00
Ewoud
2c823d9937 Move AS, Weather, Games, Batt from _M to _XL 2023-07-04 09:47:10 +02:00
Ewoud
f477191d51 Changing Z prefix by Y 2023-07-03 20:26:59 +02:00
Frank
7e34781212 ABL optimization
this optimization avoids to apply brightness two times .

NeoPixelBusLg has already applied global brightness at sPC. Due to internal working of the Lg bus, its sufficient to only post-apply scaling, and set the new (scaled) brightness for the next frame.
2023-07-03 19:41:51 +02:00
Frank
a71be02b89 de-optimization
first version still cased some flickering.
This de-optimization makes LEDs more stable.
2023-07-03 19:41:51 +02:00
Frank
358f37b7ca optimization for ABL hotfix
* adding an optional parameter to setBrightness(). ApplyPostAdjustments() will only be called if `immediate=true`. Only ABL will use immediate=true, to ensure electrical safety of equipment.

This allows some optimizations of performance, as ApplyPostAdjustments() is time consuming.

* busses.setBrightness(bri) --> applied to all future pixels (fast, lossless)
* busses.setBrightness(bri, true) --> applied directly to all previously set pixels (slower, lossy)
2023-07-03 19:41:50 +02:00
Frank
29644ccf79 ABL optimization
this optimization avoids to apply brightness two times .

NeoPixelBusLg has already applied global brightness at sPC. Due to internal working of the Lg bus, its sufficient to only post-apply scaling, and set the new (scaled) brightness for the next frame.
2023-07-03 19:26:02 +02:00
Frank
ecf331792b de-optimization
first version still cased some flickering.
This de-optimization makes LEDs more stable.
2023-07-03 19:26:02 +02:00
Frank
a84c361fab build number ++ 2023-07-01 20:35:25 +02:00
Frank
3cc1d30090 optimization for ABL hotfix
* adding an optional parameter to setBrightness(). ApplyPostAdjustments() will only be called if `immediate=true`. Only ABL will use immediate=true, to ensure electrical safety of equipment.

This allows some optimizations of performance, as ApplyPostAdjustments() is time consuming.

* busses.setBrightness(bri) --> applied to all future pixels (fast, lossless)
* busses.setBrightness(bri, true) --> applied directly to all previously set pixels (slower, lossy)
2023-07-01 20:23:39 +02:00
Will Tatam
1c8c1bb657 Fix speed reduction in usermod_v2_animartrix 2023-06-29 23:31:56 +01:00
netmindz
40751b46bf Merge pull request #55 from netmindz/animartrix-updates
Animartrix updates
* Usermod to be disabled by default to not clutter the list of effects too much
* Disabling actually preventing the effects being listed (reboot required)
* Updated library with fix for SM1
* Pass speed slider to animartrix speed factor
2023-06-29 13:15:01 -07:00
Will Tatam
918ed57f1b Fix speedFactor midpoint 2023-06-29 21:13:27 +01:00
Will Tatam
0bd7acadf3 call init for RGB_Blobs5 2023-06-29 13:19:58 +01:00
Will Tatam
258a3e5bfb Dynamic radial_filter_radius 2023-06-29 13:05:04 +01:00
Will Tatam
1df0229a17 Dynamic radial_filter_radius 2023-06-29 13:00:34 +01:00
Will Tatam
850c9beec5 Add speed slider for animartrix effects 2023-06-29 12:53:55 +01:00
Will Tatam
1f0dc486ad animartrix update for fix for SM1 2023-06-29 12:22:54 +01:00
Will Tatam
a0b913db27 Disable Animartrix by default 2023-06-29 12:17:55 +01:00
Will Tatam
d41f24fb15 Only add animartrix effects when usermod is enabled 2023-06-29 12:16:45 +01:00
Will Tatam
417bef0026 setSpeedFactor for animartrix 2023-06-29 12:16:17 +01:00
Will Tatam
3eed40331f setSpeedFactor in animartrix 2023-06-29 12:04:46 +01:00
Ewoud
17147f3b50 Prepare for upstream merge: seperate declarations from definitions
In rotary and 4ld
2023-06-27 22:21:20 +02:00
Ewoud
d53de3d82b Fix for GFX to stay in view (part 1) 2023-06-27 15:42:33 +02:00
Blaz Kristan
1c53f14bd5 Temporary bugfix for #3264 2023-06-25 17:21:49 +02:00
Blaz Kristan
2afad2cd66 Temporary bugfix for #3264 2023-06-25 17:06:54 +02:00
Frank
582b96f846 robustness improvements
* handling of stop = 0 when calculating sizes (avoid unsigned underflow)
* make sure groupLength() is never zero (to avoid div/0)
* gapmaps: check for "(gapSize > 0)" added.

not sure if all the checks are 100% needed, but they will improve robustness in corner cases.
2023-06-21 13:30:40 +02:00
Frank
310daa61a8 improve segment code robustness
* Avoid uint16 underflow in width() and height(): stop > start is possible, and means "inactive segment".

* use size_t for ledsrgbSize, _dataLen and _usedSegmentData -  uint16_t could overflow in some situations.

* try to catch attempts to allocate zero bytes (inactive segment => size 0)
2023-06-21 01:43:26 +02:00
Frank
708cd8e73d free udp receive buffers before parsePacket
robustness improvement - parsepacket() will fail if the udp handler still has an active receive buffer.
2023-06-21 00:29:16 +02:00
Frank
51a23bd62c parameter tuning
minor tweaks.
2023-06-19 11:16:35 +02:00
Frank
8aef4347a1 re-enable old peak detect algo, plus ripplepeak bugfix
* re-enabled old detector which does not detect beats. However something bad may still be better than nothing...

* fixed a typo in RipplePeak and Waterfall effect, which cased wrong configuration of the peak detector.

resolves https://github.com/MoonModules/WLED/issues/43
2023-06-18 22:08:55 +02:00
Frank
e0cb636706 re-enable old peak detect algo, plus ripplepeak bugfix
* re-enabled old detector which does not detect beats. However something bad may still be better than nothing...

* fixed a typo in RipplePeak and Waterfall effect, which cased wrong configuration of the peak detector.

resolves https://github.com/MoonModules/WLED/issues/43
2023-06-18 21:55:51 +02:00
Frank
553f2341d2 npm run build 2023-06-16 12:49:46 +02:00
Frank
a7d627bb97 Merge branch 'mdev' into audio_fastpath 2023-06-16 12:39:38 +02:00
Frank
b3677bd9b9 post merge
index.js: indentation (tabs vs. spaces)
npm run build
increment build number
2023-06-16 12:36:04 +02:00
Blaz Kristan
74b09b8576 Fix for #3251 2023-06-16 11:56:30 +02:00
Frank
d51a41f084 post-merge
* npm run build
* upstream fix for XSS vulnerability
2023-06-15 21:08:03 +02:00
Frank
3127c60b41 Merge branch 'mdev' into audio_fastpath 2023-06-15 20:54:57 +02:00
Ewoud
80df7ac703 Merge branch 'ledmap1D' into mdev 2023-06-15 13:21:57 +02:00
Ewoud
a450334e46 Part 3 2023-06-15 11:51:22 +02:00
Ewoud
3195606ca8 Part 2 2023-06-15 11:41:19 +02:00
Ewoud
117dd52ce4 Ledmap 1D / no width/height 2023-06-15 11:29:41 +02:00
Frank
b53f9ac4b0 2d Lissajous: make fade-out work
"Fade rate" slider works now.
2023-06-14 22:04:32 +02:00
Frank
2410c226f7 2D Lissajous: revive old anti-aliased code
* added option to use original floating point code that features anti-aliasing.
Looks nice, but requires hardware floating point support (ESP32-S3, or "classic" ESP32 dual core).
2023-06-14 21:52:04 +02:00
Frank
47de28ebbb 2D Lissajous improvements
* allow user to control rotation speed (c3 slider)
* preserve accuracy by performing division _after_ multiplication: " (i * speed) / 32", instead of " i * (speed / 32)"
* proper rounding of "map" results, for better visual appearance
* avoid division by zero in map() function
2023-06-14 21:51:22 +02:00