Indeed. It seems to be something more complex, a simple example couldn't reproduce it. In the following code, the result is always the same in VS and Explorer.
#include <SFML/Graphics.hpp>
#include <sstream>
#include <iostream>
int main()
{
sf::RenderWindow window(sf::VideoMode(640, 480), "SFML Application");
window.setFramerateLimit(50);
sf::Clock clock;
int frames = 0;
sf::Text text;
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::KeyPressed
|| event.type == sf::Event::Closed)
return 0;
}
window.clear();
window.draw(text);
window.display();
++frames;
if (clock.getElapsedTime() > sf::seconds(1))
{
std::ostringstream stream;
stream << frames;
std::cout << frames << "\n";
text.setString(stream.str());
frames = 0;
clock.restart();
}
}
}
However, the strange thing is, either I always get ~50 FPS as expected, or always ~33 FPS. Upon observing it a bit more, it depends on whether I watch a YouTube video/listen to music (then it is 50 FPS) or not (33 FPS)...
Seriously, WTF? Anyway, I'll update my drivers... And see if there's a spider walking over my motherboard