feat(render): Vulkan campaign V11 step 4 — retire GL from CI and gate scripts
Closes out the GL deletion by fixing the CI workflow and developer gate
scripts that still assumed a GL arm existed to compare against, build,
or select via ACDREAM_RENDER_BACKEND.
.github/workflows/headless-portability.yml: linux-graphical's "Verify
actionable unsupported-driver gate" step is deleted outright — it ran
the deleted `ui-studio` CLI verb (Studio was removed at Commit 1) to
prove the GL capability gate rejects Mesa's llvmpipe driver, and there
is no more GL capability gate for any driver to pass or fail. Its test
filter dropped two dead entries (GraphicalCapabilityRequirementsTests,
deleted at Commit 2; StudioWindowTests, already gone). Its package
contract check dropped the libcimgui.so assertion (ImGui's native
bridge, deleted at Commit 1). linux-vulkan's explanatory comment, which
described GL's rejection as the reason no cross-backend pixel diff runs
in CI, is rewritten to explain there is no GL arm left at all. Two dead
src/AcDream.UI.ImGui/** path triggers (that project no longer exists)
are removed from both the pull_request and push filters.
tools/run-backend-differential-gate.ps1 and its dedicated route file
tools/connected-backend-differential.route.txt are deleted: the whole
script's purpose was comparing a GL launch against a Vulkan launch of
the same route, and there is no second arm left to compare. Single-arm
regression checking already exists via run-offline-pixel-gate.ps1's
-Baseline mechanism.
tools/run-portal-churn-soak.ps1 is simplified rather than deleted: its
repeated-portal-churn methodology (within-arm capture comparison,
memory/entity/GPU trend analysis) has value independent of the
GL-versus-Vulkan question it was built to answer for issues #256/#257
before V11. -Backends now defaults to @('vulkan') alone; the doc
comments are rewritten from "step 0 discriminator, run before V11" to
an ongoing single-arm regression soak.
tools/run-offline-pixel-gate.ps1 drops its now-nonfunctional -Backend
parameter (ACDREAM_RENDER_BACKEND has read zero call sites since
RuntimeOptions.RenderBackend was removed at Commit 2 — passing -Backend
gl silently launched Vulkan anyway) along with its GL-escape-hatch
example and every comment that referenced the now-deleted differential
gate. tools/run-connected-world-lifecycle-gate.ps1,
tools/run-offline-vulkan-capture.ps1, and
tools/run-repeat-connected-gate.ps1 keep their (harmless, already
no-op) ACDREAM_RENDER_BACKEND set/clear lines but have their
now-inaccurate "escape hatch" / "GL run" comments corrected to state
plainly that the variable is unread and the line is kept only for the
historical record.
No .cs files touched; `dotnet build AcDream.slnx -c Release` unaffected
(0 warnings, 0 errors, matching the prior commit's build).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
7a0227c12e
commit
5852bdb877
8 changed files with 72 additions and 604 deletions
|
|
@ -16,13 +16,10 @@
|
|||
those still need the connected route, so slices touching them (V4e, V4g)
|
||||
must additionally be gated by the user.
|
||||
|
||||
Determinism levers, all four forced here rather than left to the ambient
|
||||
Determinism levers, all three forced here rather than left to the ambient
|
||||
environment, because a capture that inherits any of them is not comparable
|
||||
against one that did not:
|
||||
|
||||
* ACDREAM_RENDER_BACKEND -- see -Backend. Since slice V10 flipped the
|
||||
process default, "whatever the environment says" is no longer a stable
|
||||
description of what got captured.
|
||||
* ACDREAM_DAY_GROUP -- the sky day group, so weather and the keyframe
|
||||
do not drift between runs.
|
||||
* ACDREAM_WORLD_TIME -- the Dereth day fraction. This moves the SUN, so
|
||||
|
|
@ -32,10 +29,10 @@
|
|||
* ACDREAM_SKY_PHASE_SECONDS -- the cloud sheet's UV scroll, which runs on
|
||||
wall time and is independent of the world clock by design.
|
||||
|
||||
ACDREAM_MSAA_SAMPLES is forced to 0 for the same reason the backend
|
||||
differential forces it: multisample resolve positions are explicitly
|
||||
unspecified across implementations, and at 4x they swamp the threshold
|
||||
ninety-fold with two drivers' sample patterns. See plan section 5.5.16.
|
||||
ACDREAM_MSAA_SAMPLES is forced to 0 because multisample resolve positions
|
||||
are explicitly unspecified across implementations, and at 4x they swamp
|
||||
the threshold ninety-fold with two drivers' sample patterns. See plan
|
||||
section 5.5.16.
|
||||
|
||||
A fixed warm-up lets streaming settle before the frame is captured.
|
||||
|
||||
|
|
@ -46,15 +43,6 @@
|
|||
Optional. A directory from a previous capture. When supplied, every PNG is
|
||||
compared against its namesake and the script fails on any mismatch.
|
||||
|
||||
.PARAMETER Backend
|
||||
Which backend to capture with. DEFAULT 'vulkan', following slice V10's
|
||||
cutover: the gate must capture what the client actually ships.
|
||||
|
||||
Pass 'gl' to capture through the escape hatch -- which is also how this
|
||||
script produces the GL-era left-hand side of a cross-backend comparison, and
|
||||
how the escape hatch itself gets verified. Pass '' to let the process default
|
||||
decide, which is only useful for proving what that default is.
|
||||
|
||||
.PARAMETER WarmupMs
|
||||
Milliseconds to let the world stream and settle before capturing. Default
|
||||
12000, which reliably reaches a fully populated view on the reference machine.
|
||||
|
|
@ -71,8 +59,7 @@
|
|||
|
||||
.PARAMETER WorldDayFraction
|
||||
Dereth day fraction pinned on the launch, in [0, 1). Default 0.5 -- noon, the
|
||||
brightest and flattest lighting the day has, and the value the backend
|
||||
differential pins.
|
||||
brightest and flattest lighting the day has.
|
||||
|
||||
.PARAMETER SkyPhaseSeconds
|
||||
Elapsed-seconds value the sky's UV scroll is pinned to. Default 0, the cloud
|
||||
|
|
@ -122,17 +109,11 @@
|
|||
tools/run-offline-pixel-gate.ps1 -Out artifacts/gate-base
|
||||
git stash pop
|
||||
tools/run-offline-pixel-gate.ps1 -Out artifacts/gate-head -Baseline artifacts/gate-base
|
||||
|
||||
.EXAMPLE
|
||||
# Cross-backend: the GL-era capture, then Vulkan against it.
|
||||
tools/run-offline-pixel-gate.ps1 -Out artifacts/v10-gl -Backend gl
|
||||
tools/run-offline-pixel-gate.ps1 -Out artifacts/v10-vk -Baseline artifacts/v10-gl
|
||||
#>
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[Parameter(Mandatory = $true)][string]$Out,
|
||||
[string]$Baseline,
|
||||
[string]$Backend = 'vulkan',
|
||||
[int]$WarmupMs = 12000,
|
||||
[int]$DayGroup = 0,
|
||||
[double]$WorldDayFraction = 0.5,
|
||||
|
|
@ -191,11 +172,8 @@ $env:ACDREAM_WORLD_TIME = $WorldDayFraction.ToString($invariant)
|
|||
$env:ACDREAM_SKY_PHASE_SECONDS = $SkyPhaseSeconds.ToString($invariant)
|
||||
if ($MsaaSamples -ge 0) { $env:ACDREAM_MSAA_SAMPLES = "$MsaaSamples" }
|
||||
else { Remove-Item Env:\ACDREAM_MSAA_SAMPLES -ErrorAction SilentlyContinue }
|
||||
if ($Backend) { $env:ACDREAM_RENDER_BACKEND = $Backend }
|
||||
else { Remove-Item Env:\ACDREAM_RENDER_BACKEND -ErrorAction SilentlyContinue }
|
||||
|
||||
$backendLabel = if ($Backend) { $Backend } else { 'process default' }
|
||||
Write-Step "launching offline client (backend $backendLabel, warmup ${WarmupMs}ms, day group $DayGroup, day fraction $WorldDayFraction, sky phase $SkyPhaseSeconds, MSAA $MsaaSamples)"
|
||||
Write-Step "launching offline client (warmup ${WarmupMs}ms, day group $DayGroup, day fraction $WorldDayFraction, sky phase $SkyPhaseSeconds, MSAA $MsaaSamples)"
|
||||
$proc = Start-Process -FilePath $exe -RedirectStandardOutput $log `
|
||||
-RedirectStandardError "$log.err" -PassThru -WindowStyle Minimized
|
||||
|
||||
|
|
@ -231,7 +209,6 @@ finally {
|
|||
$app | Stop-Process -Force
|
||||
}
|
||||
}
|
||||
Remove-Item Env:\ACDREAM_RENDER_BACKEND -ErrorAction SilentlyContinue
|
||||
Remove-Item Env:\ACDREAM_MSAA_SAMPLES -ErrorAction SilentlyContinue
|
||||
Remove-Item Env:\ACDREAM_WORLD_TIME -ErrorAction SilentlyContinue
|
||||
Remove-Item Env:\ACDREAM_SKY_PHASE_SECONDS -ErrorAction SilentlyContinue
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue