sdr performance workaround fix

This commit is contained in:
True Zhuanjia committed 2026-02-12 14:04:42 +08:00
1 parent d5c96f77cb
commit 03fcfaff28
3 files changed
+12 -8

No files matched your search

+1 -1
View File
@@ -157,7 +157,7 @@ NSString *const deviceName = @"roth";
+ (bool)needUpdateDefaultSettings { + (bool)needUpdateDefaultSettings {
// NSString *key = @"needUpdateDefaultSettings20260209"; // NSString *key = @"needUpdateDefaultSettings20260209";
NSString *key = @"needUpdateDefaultSettings20260210"; NSString *key = @"needUpdateDefaultSettings20260212";
BOOL updatedBefore = [[NSUserDefaults standardUserDefaults] boolForKey:key]; BOOL updatedBefore = [[NSUserDefaults standardUserDefaults] boolForKey:key];
if (!updatedBefore) { if (!updatedBefore) {
@@ -1581,20 +1581,21 @@ static NSMutableSet* hostList;
Settings* settings = [dataMan retrieveSettings]; Settings* settings = [dataMan retrieveSettings];
switch ([UIDevice currentDevice].userInterfaceIdiom) { switch ([UIDevice currentDevice].userInterfaceIdiom) {
case UIUserInterfaceIdiomPad: case UIUserInterfaceIdiomPad:
settings.sdrPerformanceWorkaround = false; settings.sdrPerformanceWorkaround = true;
settings.framePacingMode = @(FramePacingModeQueue); settings.framePacingMode = @(FramePacingModeQueue);
break; break;
case UIUserInterfaceIdiomPhone: case UIUserInterfaceIdiomPhone:
settings.sdrPerformanceWorkaround = false; settings.sdrPerformanceWorkaround = true;
settings.framePacingMode = @(FramePacingModeQueue); settings.framePacingMode = @(FramePacingModeQueue);
break; break;
default: default:
settings.sdrPerformanceWorkaround = false; settings.sdrPerformanceWorkaround = true;
settings.framePacingMode = @(FramePacingModeQueue); settings.framePacingMode = @(FramePacingModeQueue);
break; break;
} }
if([UIScreen mainScreen].maximumFramesPerSecond > 110) settings.asyncFrameDequeue = true; if([UIScreen mainScreen].maximumFramesPerSecond > 110) settings.asyncFrameDequeue = true;
if([UIScreen mainScreen].maximumFramesPerSecond < 65) settings.asyncFrameDequeue = true; if([UIScreen mainScreen].maximumFramesPerSecond < 65) settings.asyncFrameDequeue = true;
settings.touchMoveEventInterval = @(1333);
[dataMan saveData]; [dataMan saveData];
} }
@@ -1333,14 +1333,17 @@
// 8bit 444 degration workaround // 8bit 444 degration workaround
if(strcmp(stageName, "video stream establishment")==0){ if(strcmp(stageName, "video stream establishment")==0){
NSLog(@"sendAutoReleaseComboCommandWithCmdStrings %f", CACurrentMediaTime());
if(!_settings.enableHdr if(!_settings.enableHdr
&& _settings.sdrPerformanceWorkaround && _settings.sdrPerformanceWorkaround
&& [Utils hdrSupported] && [Utils hdrSupported]
&& LiGetCurrentHostDisplayHdrMode()){ ){
dispatch_time_t delay = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(3 * NSEC_PER_SEC)); dispatch_time_t delay = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(5 * NSEC_PER_SEC));
dispatch_after(delay, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ dispatch_after(delay, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSArray* hdrCommand = [CommandManager.shared extractAutoReleaseButtonStringsFrom:@"WIN+ALT+B"]; if(LiGetCurrentHostDisplayHdrMode()){
[CommandManager.shared sendAutoReleaseComboCommandWithCmdStrings:hdrCommand delay:0.15 index:0 pressOnly:false releaseOnly:false]; NSArray* hdrCommand = [CommandManager.shared extractAutoReleaseButtonStringsFrom:@"WIN+ALT+B"];
[CommandManager.shared sendAutoReleaseComboCommandWithCmdStrings:hdrCommand delay:0.15 index:0 pressOnly:false releaseOnly:false];
}
}); });
} }
} }