Main Menu

Recent posts

#1
Process Lasso / Re: Game crashes while perform...
Last post by bumper21 - Yesterday at 03:44:03 PM
Quote from: Jeremy Collake on July 08, 2025, 11:33:26 AMI recommend stress testing the PC in a high performance power plan/mode. I suspect there are thermal control or other hardware instabilities that only manifest when you're in a high performance power plan. Let me know how it goes!

The thing is I've played lots of other games that require much higher performance than RO (Destiny 2, D2R, D4, PoE2, etc) and I've never had performance or crashing issues do to thermal control before with them.

Now, i haven't tested those games with Process Lasso in HP mode to see if they also crash but all I know is that when I have performance mode on I get periodic crashes and when it's off I don't when I play RO.
#2
Process Lasso / Re: Game crashes while perform...
Last post by bumper21 - Yesterday at 03:41:33 PM
Quote from: Lifluke on July 08, 2025, 03:28:16 AMI had the same issue with high-performance mode causing crashes in another game. Try enabling ProBalance and CPU Limiter in Process Lasso instead, gives smoother performance without forcing max settings.

What do you suggest for CPU Limiter?
#3
Process Lasso / Re: The foreground boost seems...
Last post by Jeremy Collake - Yesterday at 03:37:43 PM
(edit)

We've added a similar distinct setting to avoid boosting of non-normal GPU priorities as of v16.0.0.39 BETA.

Thanks for the feedback!
#4
Process Lasso / Re: The foreground boost seems...
Last post by login404 - Yesterday at 03:34:34 PM
It seems that boosting normal priority is only determined by CPU priority.
If the CPU is not at normal priority but the GPU is at normal priority, it won't be boosted.
Some programs will automatically boost CPU priority but not GPU priority. 
I think whether the CPU and GPU priorities are normal should be judged separately.
#5
Process Lasso / Re: The foreground boost seems...
Last post by login404 - July 08, 2025, 11:43:21 PM
It seems that Windows 11 can use SetProcessInformation along with ProcessTimerResolution to set a process's timer resolution. 
Since I'm currently using Windows 10, I can't test it.

# =========================================================================
#  Set-Remote-Timer.ps1: 使用 SetProcessInformation 远程修改进程的计时器精度
#  这是一个一次性的、设置后即退出的工具。
#  警告:必须以管理员身份运行!
# =========================================================================

# 步骤 1: 定义所有需要的 Win32 API 签名
try {
    Add-Type -TypeDefinition @"
    using System;
    using System.Runtime.InteropServices;

    public static class NativeMethods {
        // --- API 函数签名 ---
        [DllImport("kernel32.dll", SetLastError = true)]
        public static extern IntPtr OpenProcess(ProcessAccessFlags processAccess, bool bInheritHandle, int processId);

        [DllImport("ntdll.dll", SetLastError = true)]
        public static extern int NtSetInformationProcess(
            IntPtr processHandle,
            PROCESS_INFORMATION_CLASS ProcessInformationClass,
            ref PROCESS_TIMER_RESOLUTION_INFORMATION ProcessInformation,
            uint ProcessInformationLength
        );

        [DllImport("kernel32.dll", SetLastError = true)]
        [return: MarshalAs(UnmanagedType.Bool)]
        public static extern bool CloseHandle(IntPtr hObject);

        // --- 枚举和结构体 ---
        [Flags]
        public enum ProcessAccessFlags : uint {
            PROCESS_SET_INFORMATION = 0x0200
        }

        public enum PROCESS_INFORMATION_CLASS : int {
            ProcessTimerResolution = 46
        }

        [StructLayout(LayoutKind.Sequential)]
        public struct PROCESS_TIMER_RESOLUTION_INFORMATION {
            public uint DesiredResolution;
            public uint ActualResolution;
            public uint SetResolution; // 1 to set, 0 to clear
        }
    }
"@ -PassThru -ErrorAction Stop | Out-Null
} catch { Write-Host "C# 编译失败: $($_.Exception.Message)" -ForegroundColor Red; return }

# 步骤 2: PowerShell 逻辑

# --- 在这里配置目标 ---
$processName = "MeasureSleep"
# true 表示设置,false 表示清除
$enable = $true
# 期望的精度 (5000 = 0.5ms)
[uint32]$desiredResolution = 5000
# -------------------------

Write-Host "正在查找进程 '$processName'..."
$process = Get-Process -Name $processName -ErrorAction SilentlyContinue
if (-not $process) { Write-Host "未找到进程 '$processName'。" -F Yellow; return }
$targetProcess = $process[0]

Write-Host "已找到进程! PID: $($targetProcess.Id)" -ForegroundColor Green

# 1. 打开目标进程的句柄,请求设置信息的权限
$hProcess = [NativeMethods]::OpenProcess([NativeMethods+ProcessAccessFlags]::PROCESS_SET_INFORMATION, $false, $targetProcess.Id)
if ($hProcess -eq [IntPtr]::Zero) { Write-Error "OpenProcess 失败!请确保以管理员身份运行。"; return }

try {
    # 2. 准备数据结构
    $timerInfo = New-Object NativeMethods+PROCESS_TIMER_RESOLUTION_INFORMATION
    $timerInfo.DesiredResolution = $desiredResolution
    $timerInfo.SetResolution = if ($enable) { 1 } else { 0 }

    $action = if ($enable) { "设置" } else { "清除" }
    Write-Host "正在尝试为 PID $($targetProcess.Id) $($action) 计时器精度..."

    # 3. 调用 NtSetInformationProcess
    $status = [NativeMethods]::NtSetInformationProcess(
        $hProcess,
        [NativeMethods+PROCESS_INFORMATION_CLASS]::ProcessTimerResolution,
        [ref]$timerInfo,
        [System.Runtime.InteropServices.Marshal]::SizeOf($timerInfo)
    )

    # 检查结果
    if ($status -eq 0) {
        Write-Host "成功!操作已完成。脚本将退出,但效果会持续存在。" -ForegroundColor Cyan
        Write-Host "实际设置的精度为: $($timerInfo.ActualResolution / 10000) ms"
    } else {
        Write-Host "失败!NtSetInformationProcess 返回了非零的 NTSTATUS: 0x$($status.ToString('X'))" -ForegroundColor Red
    }
}
finally {
    # 4. 无论成功与否,都必须关闭句柄
    [NativeMethods]::CloseHandle($hProcess)
}
#6
Process Lasso / Re: Performance mode has prefe...
Last post by Jeremy Collake - July 08, 2025, 06:00:46 PM
When manually engaged, Performance Mode didn't used to persist after you restarted Process Lasso for this reason. At some point we changed that behavior upon user request.

We may add a notification to remind people they are still in Performance Mode. I'll get back to you on further news about this issue.
#7
Process Lasso / Re: The foreground boost seems...
Last post by Jeremy Collake - July 08, 2025, 12:18:00 PM
GPU priority classes are now available as of Process Lasso v16.0 BETA. They've also been added to the Foreground Boosting feature. If you play with it, please let me know if you run into any trouble.

One interesting note is that D3DKMTGetProcessSchedulingPriorityClass requires set permissions on the process handle, even though it's only getting a value.
#8
Process Lasso / Re: Game crashes while perform...
Last post by Jeremy Collake - July 08, 2025, 11:33:26 AM
I recommend stress testing the PC in a high performance power plan/mode. I suspect there are thermal control or other hardware instabilities that only manifest when you're in a high performance power plan. Let me know how it goes!
#9
Process Lasso / Re: CPU Priority Not Inherited
Last post by sustainplums - July 08, 2025, 06:13:11 AM
Steam doesn't always pass its priority to game processes—many games launch through helper apps or with their own settings, resetting priority to Normal. To fix this, use Process Lasso to:
Right-click the game process → Always → set priority (e.g., High).
Add the game EXE to Default process priorities.
This ensures your games always run with the priority you want.
#10
General / Re: Regarding Probalance and g...
Last post by edgarandrews - July 08, 2025, 04:37:05 AM
Yes, if ProBalance is acting on Battlefield 5, it can negatively impact performance. Since BF5 is a high-performance game, you should manually exclude it from ProBalance to prevent unwanted CPU priority adjustments.