Mimir/scripts/start-eve-program-output.ps1
2026-05-28 00:04:52 +01:00

53 lines
1.9 KiB
PowerShell

param(
[string] $Target = "eve",
[string] $SharedTextureName = "Global\MimirFensalirProgramTexture",
[string] $SharedFenceName = "Global\MimirFensalirProgramFence",
[int] $SharedTextureRingCount = 1,
[string] $Configuration = "Debug",
[string] $LogPath = "logs\eve-program-output-fensalir.log",
[string[]] $AppArguments = @()
)
$ErrorActionPreference = "Stop"
$repoRoot = Split-Path -Parent $PSScriptRoot
$absoluteLogPath = Join-Path $repoRoot $LogPath
$absoluteErrorLogPath = [System.IO.Path]::ChangeExtension($absoluteLogPath, ".err.log")
$logDirectory = Split-Path -Parent $absoluteLogPath
if (-not (Test-Path $logDirectory)) {
New-Item -ItemType Directory -Path $logDirectory | Out-Null
}
Write-Host "Checking EVE SSH target: $Target"
ssh $Target "uname -a >/tmp/mimir-eve-program-output-check.txt && cat /tmp/mimir-eve-program-output-check.txt"
$env:FENSALIR_PROGRAM_OUTPUT_D3D12 = "1"
$env:FENSALIR_PROGRAM_OUTPUT_NAME = $SharedTextureName
$env:FENSALIR_PROGRAM_OUTPUT_FENCE_NAME = $SharedFenceName
$env:FENSALIR_PROGRAM_OUTPUT_RING_COUNT = [string] $SharedTextureRingCount
$projectPath = Join-Path $repoRoot "src\Mimir.App\Mimir.App.csproj"
$dotnetArgs = @(
"run",
"--project",
$projectPath,
"-c",
$Configuration,
"--"
) + $AppArguments
Write-Host "Starting Mimir/Fensalir with shared D3D12 output: $SharedTextureName"
Write-Host "Program output fence: $SharedFenceName"
Write-Host "Program output ring slots: $SharedTextureRingCount"
Write-Host "Log: $absoluteLogPath"
$process = Start-Process -FilePath "dotnet" `
-ArgumentList $dotnetArgs `
-WorkingDirectory $repoRoot `
-RedirectStandardOutput $absoluteLogPath `
-RedirectStandardError $absoluteErrorLogPath `
-WindowStyle Hidden `
-PassThru
Write-Host "Started PID $($process.Id). Poll with:"
Write-Host " Get-Content -Tail 40 '$absoluteLogPath'"
Write-Host " Get-Content -Tail 40 '$absoluteErrorLogPath'"