move ws LEDs preview buffer into PSRAM
* set DYNAMICBUFFER_USE_PSRAM in build_flags => enable PSRAM support in AsyncWebServerWLED
This commit is contained in:
@@ -450,6 +450,7 @@ build_flagsV4 = -g
|
||||
-D CONFIG_ASYNC_TCP_USE_WDT=0
|
||||
-D CONFIG_ASYNC_TCP_TASK_STACK_SIZE=9472 ;; WLEDMM increase stack by 1.25Kb, as audioreactive needs bigger SETTINGS_STACK_BUF_SIZE
|
||||
-D CONFIG_ASYNC_TCP_STACK_SIZE=9472 ;; *sigh* newer asyncTCP uses this instead of .._TASK_..
|
||||
;; -D DYNAMICBUFFER_USE_PSRAM ;; experimental: tell asyncWebServer to prefer PSRAM for buffers (works with non-PSRAM boards, too)
|
||||
; -D WLEDMM_TWOPATH ;; use I2S1 as the second bus --> slightly faster on some setups
|
||||
; -D WLEDMM_SLOWPATH ;; don't use I2S for LED bus
|
||||
; -DARDUINO_USB_CDC_ON_BOOT=0 ;; mandatory for "classic ESP32" when building with arduino-esp32 >=2.0.3
|
||||
@@ -486,6 +487,7 @@ build_flags = -g
|
||||
-D CONFIG_ASYNC_TCP_USE_WDT=0
|
||||
-D CONFIG_ASYNC_TCP_TASK_STACK_SIZE=9472 ;; WLEDMM increase stack by 1.25Kb, as audioreactive needs bigger SETTINGS_STACK_BUF_SIZE
|
||||
-D CONFIG_ASYNC_TCP_STACK_SIZE=9472 ;; *sigh* newer asyncTCP uses this instead of .._TASK_..
|
||||
-D DYNAMICBUFFER_USE_PSRAM ;; experimental: tell asyncWebServer to prefer PSRAM for buffers (works with non-PSRAM boards, too)
|
||||
-DARDUINO_USB_CDC_ON_BOOT=0 ;; this flag is mandatory for "classic ESP32" when building with arduino-esp32 >=2.0.3
|
||||
; -D WLEDMM_TWOPATH ;; use I2S1 as the second bus --> slightly faster on some setups
|
||||
; -D WLEDMM_SLOWPATH ;; don't use I2S for LED bus
|
||||
@@ -521,6 +523,7 @@ build_flags = -g
|
||||
-D CONFIG_ASYNC_TCP_USE_WDT=0
|
||||
-D CONFIG_ASYNC_TCP_TASK_STACK_SIZE=8614 ;; WLEDMM increase stack by 1Kb, as audioreactive needs bigger SETTINGS_STACK_BUF_SIZE
|
||||
-D CONFIG_ASYNC_TCP_STACK_SIZE=8614 ;; *sigh* newer asyncTCP uses this instead of .._TASK_..
|
||||
-D DYNAMICBUFFER_USE_PSRAM ;; experimental: tell asyncWebServer to prefer PSRAM for buffers (works with non-PSRAM boards, too)
|
||||
-DARDUINO_USB_MSC_ON_BOOT=0 -DARDUINO_USB_DFU_ON_BOOT=0
|
||||
-DCO
|
||||
-DARDUINO_USB_MODE=0 ;; this flag is mandatory for ESP32-S2 !
|
||||
@@ -580,6 +583,7 @@ build_flags = -g
|
||||
-D CONFIG_ASYNC_TCP_USE_WDT=0
|
||||
-D CONFIG_ASYNC_TCP_TASK_STACK_SIZE=9472 ;; WLEDMM increase stack by 1.25Kb, as audioreactive needs bigger SETTINGS_STACK_BUF_SIZE
|
||||
-D CONFIG_ASYNC_TCP_STACK_SIZE=9472 ;; *sigh* newer asyncTCP uses this instead of .._TASK_..
|
||||
-D DYNAMICBUFFER_USE_PSRAM ;; experimental: tell asyncWebServer to prefer PSRAM for wsBuffer (works with non-PSRAM boards, too)
|
||||
-DARDUINO_USB_MSC_ON_BOOT=0 -DARDUINO_DFU_ON_BOOT=0
|
||||
-DCO
|
||||
;; please make sure that the following flags are properly set (to 0 or 1) by your board.json, or included in your custom platformio_override.ini entry:
|
||||
|
||||
@@ -5,6 +5,10 @@
|
||||
*/
|
||||
#ifdef WLED_ENABLE_WEBSOCKETS
|
||||
|
||||
#ifdef DYNAMICBUFFER_USE_PSRAM
|
||||
#warning "DYNAMICBUFFER_USE_PSRAM is experimental"
|
||||
#endif
|
||||
|
||||
static volatile uint16_t wsLiveClientId = 0; // WLEDMM added "static"
|
||||
static volatile unsigned long wsLastLiveTime = 0; // WLEDMM
|
||||
//uint8_t* wsFrameBuffer = nullptr;
|
||||
@@ -222,7 +226,11 @@ static bool sendLiveLedsWs(uint32_t wsClient) // WLEDMM added "static"
|
||||
#ifdef ESP8266
|
||||
constexpr size_t MAX_LIVE_LEDS_WS = 256U;
|
||||
#else
|
||||
#if !defined(BOARD_HAS_PSRAM) || !defined(DYNAMICBUFFER_USE_PSRAM)
|
||||
constexpr size_t MAX_LIVE_LEDS_WS = 4096U; //WLEDMM use 4096 as max matrix size
|
||||
#else
|
||||
constexpr size_t MAX_LIVE_LEDS_WS = 4096 * 2; //WLEDMM better preview on PSRAM boards
|
||||
#endif
|
||||
#endif
|
||||
size_t used;// = strip.getLengthTotal();
|
||||
size_t n;// = ((used -1)/MAX_LIVE_LEDS_WS) +1; //only serve every n'th LED if count over MAX_LIVE_LEDS_WS
|
||||
|
||||
Reference in New Issue
Block a user