sdr performance workaround fix

This commit is contained in:
True Zhuanjia
2026-02-12 14:04:42 +08:00
parent d5c96f77cb
commit 03fcfaff28
3 changed files with 12 additions and 8 deletions
+1 -1
View File
@@ -157,7 +157,7 @@ NSString *const deviceName = @"roth";
+ (bool)needUpdateDefaultSettings {
// NSString *key = @"needUpdateDefaultSettings20260209";
NSString *key = @"needUpdateDefaultSettings20260210";
NSString *key = @"needUpdateDefaultSettings20260212";
BOOL updatedBefore = [[NSUserDefaults standardUserDefaults] boolForKey:key];
if (!updatedBefore) {
@@ -1581,20 +1581,21 @@ static NSMutableSet* hostList;
Settings* settings = [dataMan retrieveSettings];
switch ([UIDevice currentDevice].userInterfaceIdiom) {
case UIUserInterfaceIdiomPad:
settings.sdrPerformanceWorkaround = false;
settings.sdrPerformanceWorkaround = true;
settings.framePacingMode = @(FramePacingModeQueue);
break;
case UIUserInterfaceIdiomPhone:
settings.sdrPerformanceWorkaround = false;
settings.sdrPerformanceWorkaround = true;
settings.framePacingMode = @(FramePacingModeQueue);
break;
default:
settings.sdrPerformanceWorkaround = false;
settings.sdrPerformanceWorkaround = true;
settings.framePacingMode = @(FramePacingModeQueue);
break;
}
if([UIScreen mainScreen].maximumFramesPerSecond > 110) settings.asyncFrameDequeue = true;
if([UIScreen mainScreen].maximumFramesPerSecond < 65) settings.asyncFrameDequeue = true;
settings.touchMoveEventInterval = @(1333);
[dataMan saveData];
}
@@ -1333,14 +1333,17 @@
// 8bit 444 degration workaround
if(strcmp(stageName, "video stream establishment")==0){
NSLog(@"sendAutoReleaseComboCommandWithCmdStrings %f", CACurrentMediaTime());
if(!_settings.enableHdr
&& _settings.sdrPerformanceWorkaround
&& [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), ^{
NSArray* hdrCommand = [CommandManager.shared extractAutoReleaseButtonStringsFrom:@"WIN+ALT+B"];
[CommandManager.shared sendAutoReleaseComboCommandWithCmdStrings:hdrCommand delay:0.15 index:0 pressOnly:false releaseOnly:false];
if(LiGetCurrentHostDisplayHdrMode()){
NSArray* hdrCommand = [CommandManager.shared extractAutoReleaseButtonStringsFrom:@"WIN+ALT+B"];
[CommandManager.shared sendAutoReleaseComboCommandWithCmdStrings:hdrCommand delay:0.15 index:0 pressOnly:false releaseOnly:false];
}
});
}
}