fillrate.md with some test details
Signed-off-by: Emil Muratov <gpm@hotplug.ru>
This commit is contained in:
parent
e8efa3d29d
commit
f92de5e81e
1 changed files with 25 additions and 0 deletions
25
fillrate.md
Normal file
25
fillrate.md
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
## Estimating fillrate
|
||||||
|
|
||||||
|
Here are some results of simple tests on filling DMA buffer with data.
|
||||||
|
Filling DMA buffer requres lot's of memory operations on a bit level rather than doing simple byte/word wide store and copy. And it looks like it's quite a task both for esp32 core and compiler.
|
||||||
|
I've done this while optimizing loops and bit logic along with testing compiler results.
|
||||||
|
|
||||||
|
So the testbed is:
|
||||||
|
- Matrix modules: 4 x FM6126A based 64x64 modules chained in 256x64
|
||||||
|
|
||||||
|
A simple sketch:
|
||||||
|
- allocating single DMA buffs for 256x64
|
||||||
|
- allocating (NUM_LEDS*3) bytes for CRGB buffer
|
||||||
|
- measuring microseconds for the following calls:
|
||||||
|
- clearScreen() - full blanking
|
||||||
|
- fillScreenRGB888() with monochrome/gray colors
|
||||||
|
- filling some gradient into CRGB buff
|
||||||
|
- painting CRGB buff into DMA buff with looped drawPixelRGB888()
|
||||||
|
|
||||||
|
|Pattern |Reference|Ref+SPEED|Optimized|Optimized+SPEED|
|
||||||
|
|--|--|--|--|--|
|
||||||
|
|fillScreenRGB888()|14570|14570|13400 (8.5% faster)|5520 (164% faster)|
|
||||||
|
|CRGB buff fill|760|760|760|760|
|
||||||
|
|updateMatrixDMABuffer(CRGB)|7700|32080|55780 (38% faster)|33500(+4.2% slower)|
|
||||||
|
|
||||||
|
to be continued...
|
Loading…
Reference in a new issue