SDL2 fixed framerate without VSync
Why you exactly need the framerate to be constant?
You can use SDL_GetTicks() this way:
const int ms_frame = 1000 / 60;
Uint32 initial_ticks, elapsed_ms;
while(true){
      initial_ticks = SDL_GetTicks();

      //do things

      elapsed_ms = SDL_GetTicks() - elapsed_ms;
      if(elapsed_ms &lt; ms_frame) SDL_Delay(ms_frame - elapsed_ms);
}