@3DSasha The Dma will only send if any the pixels have changed (due to calling SetPixelColor. If you run as fast as you loop, setting at least one pixel to a different color, then the speed is 30us per pixel, plus a latch of 50us, and add another 10us overhead and that should be about as fast you can update them. With DMA, as far as your code is concerned, when you can show, it copies the working buffer into the DMA buffer and then triggers it to send, and returns before anything is actually sent; so the time above starts about the same time it returns from show. If you try to show faster than the time above, it will block your next show until it can physically send again.
100 pixels would be about 360us, or 0.36 milliseconds. or 3000 times per second. But this assumes you can do what ever animation you want in about 350us so it can send the next one as soon as it finished the last.