-
In the discussion "128x128 Panel, FM6363, ICND2018, HUB75 #6" you write that double buffer can be disabled. I know that from the "original" ESP32-HUB75-MatrixPanel-I2S-DMA library, where using DrawPixelRGB888 just (sooner or later) changes the pixel on the panel, no flipDMABuffer is required. For this library I always thought double buffer is mandatory. Your answer in the thread named above gives the feeling that it can be disabled? The panel starts full white (while the serial port shows that step by step the colors are called), staying white. No drawing occurs. Any hint what is missing would be great. |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 2 replies
-
In the ESP32-HUB75-MatrixPanel-I2S-DMA, the same buffer is displayed in which we draw (if there are two, then we draw in one, the second is displayed.) For panels with smart drivers (with memory) there is no way to combine the buffer for drawing and for output (16 bits for each color channel - just not enough memory). Therefore, a separate full buffer for drawing and a separate reduced dma buffer for output are used. The double buffer duplicates the drawing buffer and allows you to draw in one while the data from the other is displayed on the screen. The double dma buffer allows you to prepare recoded data for output while another dma buffer is being output. Both double buffer and double dma buffer are used only to speed up the image change at the expense of more memory (and do not always give a noticeable effect). |
Beta Was this translation helpful? Give feedback.
In the ESP32-HUB75-MatrixPanel-I2S-DMA, the same buffer is displayed in which we draw (if there are two, then we draw in one, the second is displayed.)
For panels with smart drivers (with memory) there is no way to combine the buffer for drawing and for output (16 bits for each color channel - just not enough memory). Therefore, a separate full buffer for drawing and a separate reduced dma buffer for output are used.
The flipDMABuffer() command (the name has not been changed for compatibility) starts the transfer of parts of data from the full drawing buffer to the output dma buffer (with recoding).
The double buffer duplicates the drawing buffer and allows you to draw in one while the da…