Only the last viewport to be drawn to will be cleared. However, if you render to the “fullwindow” viewport before clearing, the entire screen will be cleared as normal. If the “fullwindow” viewport is 1 pixel smaller than the window, the render clear will clear the entire screen as normal.
This doesn’t really seem like intended behavior? At the vary least I just wanted to document in case somebody runs into this issue in the future as I couldn’t find anything related.
The documentation of SDL_RenderClear is quite explicit: “This function clears the entire rendering target, ignoring the viewport and the clip rectangle”. So if it is only clearing the viewport something is seriously wrong.