From e941588c58f9e4c9261089a47d046de6155dd980 Mon Sep 17 00:00:00 2001 From: igneum-labs <337424239+igneum-labs@users.noreply.github.com> Date: Tue, 6 Oct 2026 07:15:43 +0000 Subject: [PATCH] ember-tune-pc1.ps1: the copy runs with Power control off (the installed setting is read and reported, never a prompt: the project lead, 6 October 2026 07:20Z), the kit paths after the update, the AMD card reset to factory at the end Co-Authored-By: Claude Fable 5.1 --- relay/playbooks/ember-tune-pc1.ps1 | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/relay/playbooks/ember-tune-pc1.ps1 b/relay/playbooks/ember-tune-pc1.ps1 index e9ed91642..b81045324 100644 --- a/relay/playbooks/ember-tune-pc1.ps1 +++ b/relay/playbooks/ember-tune-pc1.ps1 @@ -40,15 +40,17 @@ $sLogs = Join-Path $root 'logs' New-Item -ItemType Directory -Force -Path $root, $sApp, $sLogs | Out-Null if (Test-Path $bin) { Remove-Item -LiteralPath $bin -Recurse -Force -ErrorAction SilentlyContinue } Copy-Item -LiteralPath $installDir -Destination $bin -Recurse -Force -$ember = Join-Path $appDir 'jobs\ember-kit-1\igneum-app-ember.exe' -if (Test-Path $ember) { +$ember = $null +foreach ($cand in @((Join-Path $appDir 'jobs\ember-kit-2\igneum-app-ember.exe'), (Join-Path $appDir 'jobs\ember-kit-1\igneum-app-ember.exe'))) { if (Test-Path $cand) { $ember = $cand; break } } +if ($ember) { Copy-Item -LiteralPath $ember -Destination (Join-Path $bin 'igneum-app.exe') -Force Say ("engine: the Ember build from " + $ember) } else { Say 'engine: the installed one (no jobs\ember-kit-1\igneum-app-ember.exe); an older engine ignores the tune and reports no_rows' } -$helper = Join-Path $appDir 'jobs\amd-kit-1\kit\igneum-gpu-telemetry.exe' -if (Test-Path $helper) { +$helper = $null +foreach ($cand in @((Join-Path $appDir 'jobs\amd-kit-2\igneum-gpu-telemetry.exe'), (Join-Path $appDir 'jobs\amd-kit-1\kit\igneum-gpu-telemetry.exe'))) { if (Test-Path $cand) { $helper = $cand; break } } +if ($helper) { Copy-Item -LiteralPath $helper -Destination (Join-Path $bin 'igneum-gpu-telemetry.exe') -Force Say ("helper: the Ember build of igneum-gpu-telemetry from " + $helper + " sha256=" + (Get-FileHash -LiteralPath $helper -Algorithm SHA256).Hash.ToLower()) } else { Say 'helper: the installed igneum-gpu-telemetry (no jobs\amd-kit-1\kit\igneum-gpu-telemetry.exe); without --tune the AMD card measures only' } @@ -68,6 +70,13 @@ if (Test-Path $sj) { try { $j = Get-Content -LiteralPath $sj -Raw | ConvertFrom-Json $j.remote_jobs = $false; $j.auto_update = $false; $j.prove = $false; $j.paused = $false; $j.setup_done = $true; $j.sweep = $true + # the project lead, 6 October 2026, 07:20Z: never raise an administrator prompt. The installed app's Power control is READ and + # reported, but the copy runs with it OFF so the second engine can never start the elevated helper; the 5090 is + # measured as it runs either way (the two-knob tune is the installed engine's job once it carries Ember Tune) + $installedPowerControl = $false + try { $installedPowerControl = [bool]$j.power_control } catch { } + Write-Output ('RESULT TUNE installed_power_control=' + $installedPowerControl.ToString().ToLower() + ' (the copy runs with it off: no prompt)') + if ($j.PSObject.Properties.Name -contains 'power_control') { $j.power_control = $false } else { $j | Add-Member -NotePropertyName power_control -NotePropertyValue $false } # every card is due: the stored results are cleared in the COPY only if ($j.cards) { foreach ($p in $j.cards.PSObject.Properties) { $p.Value.sweep_at = 0; $p.Value.pinned = $false } } $j | ConvertTo-Json -Depth 8 | Set-Content -LiteralPath $sj -Encoding utf8 @@ -144,6 +153,14 @@ $all = @(); if (Test-Path -LiteralPath $outFile) { $all = @(Get-Content -Literal while ($seen -lt $all.Count) { $l = [string]$all[$seen]; $seen++; if ($l -match '^TUNE ') { Write-Output ('RESULT ' + $l); if ($l -match '^TUNE card=') { $rows++ } } } Say ("tune engine exited " + $p.ExitCode + " after " + [int]((Get-Date) - $started).TotalSeconds + " s, " + $rows + " table rows") EndTree $p.Id 'end of run' +# the AMD card back to factory: the measurement leaves PC 1 as found (the product pins the point; the installed app +# does not carry Ember Tune yet, so a pinned ADLX setting would be invisible to it) +if (Test-Path $tele) { + $tl = (& $tele --tune 2>&1 | Out-String) + foreach ($m in [regex]::Matches($tl, 'tune (\d+) name "([^"]+)" gmax ([-\d]+) gmax_range')) { + if ($m.Groups[3].Value -ne '-') { $r = (& $tele --card $m.Groups[1].Value --reset 2>&1 | Out-String).Trim(); Write-Output ('RESULT TUNE reset card ' + $m.Groups[1].Value + ' (' + $m.Groups[2].Value + '): ' + ($r -replace "`r?`n", ' | ')) } + } +} Snapshot 'after' # the tune engine's own log: the TUNE lines and what happened around them $log = Get-ChildItem -Path $sLogs -Filter 'app-*.log' -ErrorAction SilentlyContinue | Sort-Object LastWriteTime -Descending | Select-Object -First 1