Por que obtenho desempenho ruim com SDL2 e SDL_RenderCopy dentro de um loop for duplo sobre todos os pixels?

Estou programando um jogo de radiodifusão usando SDL2. Ao desenhar o chão, preciso chamar SDL_RenderCopy pixel a pixel. Isso leva a um gargalo que reduz a taxa de quadros abaixo de 10 qps. Estou à procura de melhorias de desempenho, mas não consigo encontrar algumas.

Aqui está uma visão geral aproximada da queda no desempenho:

int main() {
  while(true) {
        for(x=0; x<800; x++) {
            for(y=0; y<600; y++) {
                SDL_Rect src = { 0, 0, 1, 1 };
                SDL_Rect dst = { x, y, 1, 1 };
                SDL_RenderCopy(ren, tx, &src, &dst); // this drops the framerate below 10
            }
        }
        SDL_RenderPresent(ren);
    }
 }

questionAnswers(2)

yourAnswerToTheQuestion