summaryrefslogtreecommitdiff
path: root/src/drivers/display.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/display.cpp')
-rw-r--r--src/drivers/display.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/drivers/display.cpp b/src/drivers/display.cpp
index 0664638b..7ab7b3e8 100644
--- a/src/drivers/display.cpp
+++ b/src/drivers/display.cpp
@@ -14,6 +14,7 @@
#include "assert.h"
#include "driver/gpio.h"
#include "driver/ledc.h"
+#include "driver/spi_common.h"
#include "driver/spi_master.h"
#include "esp_attr.h"
#include "esp_err.h"
@@ -47,16 +48,16 @@ static const gpio_num_t kDisplayCs = GPIO_NUM_22;
/*
* The size of each of our two display buffers. This is fundamentally a balance
* between performance and memory usage. LVGL docs recommend a buffer 1/10th the
- * size of the screen is the best tradeoff.
+ * size of the screen is the best tradeoff, but we instead just use the max DMA
+ * buffer size.
* We use two buffers so that one can be flushed to the screen at the same time
* as the other is being drawn.
*/
-static const int kDisplayBufferSize = (kDisplayWidth * kDisplayHeight) / 10;
+static const int kDisplayBufferSize = SPI_MAX_DMA_LEN;
// Allocate both buffers in static memory to ensure that they're in DRAM, with
// minimal fragmentation. We most cases we always need these buffers anyway, so
// it's not a memory hit we can avoid.
-// Note: 128 * 160 / 10 * 2 bpp * 2 buffers = 8 KiB
DMA_ATTR static lv_color_t sBuffer1[kDisplayBufferSize];
DMA_ATTR static lv_color_t sBuffer2[kDisplayBufferSize];