diff --git a/app/backend/nvhttp.cpp b/app/backend/nvhttp.cpp index 0f29b62b..3d683a54 100644 --- a/app/backend/nvhttp.cpp +++ b/app/backend/nvhttp.cpp @@ -163,10 +163,7 @@ NvHTTP::launchApp(int appId, "appid="+QString::number(appId)+ "&mode="+QString::number(streamConfig->width)+"x"+ QString::number(streamConfig->height)+"x"+ - // Using an FPS value over 60 causes SOPS to default to 720p60, - // so force it to 60 when starting. This won't impact our ability - // to get > 60 FPS while actually streaming though. - QString::number(streamConfig->fps > 60 ? 60 : streamConfig->fps)+ + QString::number(streamConfig->fps)+ "&additionalStates=1&sops="+QString::number(sops ? 1 : 0)+ "&rikey="+QByteArray(streamConfig->remoteInputAesKey, sizeof(streamConfig->remoteInputAesKey)).toHex()+ "&rikeyid="+QString::number(riKeyId)+ diff --git a/app/streaming/session.cpp b/app/streaming/session.cpp index 7b603244..b6e2b2a8 100644 --- a/app/streaming/session.cpp +++ b/app/streaming/session.cpp @@ -945,6 +945,18 @@ void Session::exec(int displayOriginX, int displayOriginY) } } + if (prefs.fps > 60) { + // Using SOPS with FPS values over 60 causes GFE to fall back + // to 720p60. On previous GFE versions, we could avoid this by + // forcing the FPS value to 60 when launching the stream, but + // now on GFE 3.20.3 that seems to trigger some sort of + // frame rate limiter that locks the game to 60 FPS. + SDL_LogInfo(SDL_LOG_CATEGORY_APPLICATION, + "Disabling SOPS for %d FPS stream", + prefs.fps); + enableGameOptimizations = false; + } + try { NvHTTP http(m_Computer->activeAddress, m_Computer->serverCert); if (m_Computer->currentGameId != 0) {