mirror of
https://github.com/moonlight-stream/moonlight-qt.git
synced 2025-07-02 07:46:07 +00:00
More Steam Link performance optimizations
This commit is contained in:
parent
4f00f62674
commit
dfb006d264
@ -5,5 +5,9 @@
|
|||||||
# pairing data will be lost each reboot.
|
# pairing data will be lost each reboot.
|
||||||
HOME=/usr/local/moonlight
|
HOME=/usr/local/moonlight
|
||||||
|
|
||||||
|
# Renice PE_Single_CPU which seems to host A/V stuff
|
||||||
|
renice -10 -p $(pidof PE_Single_CPU)
|
||||||
|
|
||||||
|
# Renice Moonlight itself to avoid preemption by background tasks
|
||||||
# Write output to a logfile in /tmp
|
# Write output to a logfile in /tmp
|
||||||
exec ./bin/moonlight > /tmp/moonlight.log
|
exec nice -n -10 ./bin/moonlight > /tmp/moonlight.log
|
||||||
|
@ -111,8 +111,11 @@ void Session::arDecodeAndPlaySample(char* sampleData, int sampleLength)
|
|||||||
{
|
{
|
||||||
int samplesDecoded;
|
int samplesDecoded;
|
||||||
|
|
||||||
// Set this thread to high priority to reduce
|
#ifndef STEAM_LINK
|
||||||
// the chance of missing our sample delivery time
|
// Set this thread to high priority to reduce the chance of missing
|
||||||
|
// our sample delivery time. On Steam Link, this causes starvation
|
||||||
|
// of other threads due to severely restricted CPU time available,
|
||||||
|
// so we will skip it on that platform.
|
||||||
if (s_ActiveSession->m_AudioSampleCount == 0) {
|
if (s_ActiveSession->m_AudioSampleCount == 0) {
|
||||||
if (SDL_SetThreadPriority(SDL_THREAD_PRIORITY_HIGH) < 0) {
|
if (SDL_SetThreadPriority(SDL_THREAD_PRIORITY_HIGH) < 0) {
|
||||||
SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION,
|
SDL_LogWarn(SDL_LOG_CATEGORY_APPLICATION,
|
||||||
@ -120,6 +123,7 @@ void Session::arDecodeAndPlaySample(char* sampleData, int sampleLength)
|
|||||||
SDL_GetError());
|
SDL_GetError());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// See if we need to drop this sample
|
// See if we need to drop this sample
|
||||||
if (s_ActiveSession->m_DropAudioEndTime != 0) {
|
if (s_ActiveSession->m_DropAudioEndTime != 0) {
|
||||||
|
@ -49,7 +49,12 @@ AUDIO_RENDERER_CALLBACKS Session::k_AudioCallbacks = {
|
|||||||
nullptr,
|
nullptr,
|
||||||
Session::arCleanup,
|
Session::arCleanup,
|
||||||
Session::arDecodeAndPlaySample,
|
Session::arDecodeAndPlaySample,
|
||||||
CAPABILITY_DIRECT_SUBMIT
|
CAPABILITY_DIRECT_SUBMIT |
|
||||||
|
#ifdef STEAM_LINK
|
||||||
|
CAPABILITY_SLOW_OPUS_DECODER
|
||||||
|
#else
|
||||||
|
0
|
||||||
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
Session* Session::s_ActiveSession;
|
Session* Session::s_ActiveSession;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user