SDL_FillRect() operates on a SDL_Surface completely CPU-side, SDL_RenderFillRect() operates on a SDL_Renderer and may or may not be hardware accelerated depending on how the SDL_Renderer was created.
2
solved What is the difference: SDL_FillRect VS SDL_RenderFillRect?