Validation record — 2026-09-28
Final closure validation
- Verified commit:
c37b4dffc62e313346c8c68ac3df7ffb113dc697onmain. This source commit contains the Audio Thread helper correction and the Memory Insights procedure correction. Its working tree was clean during validation. - Clean rebuild: Succeeded. UBT cleaned
BertaDevKitHostEditorbinaries and compiled 88 actions; no compiler or linker errors. - Automation Tests: 5 succeeded, 0 with warnings, 0 failed, 0 not run, from
BertaDevKitHost/Saved/Automation/SprintClosureCode/index.json(checked after the Editor exited). All five tests listed below passed on this commit. - Environment: UE 5.8.2, changelist 56702186 (
++UE5+Release-5.8); MSVC 14.51.36256; Windows SDK 10.0.22621.0; Win64 Development Editor.
The exact clean-rebuild command was:
& 'E:\Epic Games\UE_5.8\Engine\Build\BatchFiles\Build.bat' BertaDevKitHostEditor Win64 Development '-Project=E:\Unreal Projects\ue5-bertadevkit\BertaDevKitHost\BertaDevKitHost.uproject' -WaitMutex -Rebuild
The exact test command was:
& 'E:\Epic Games\UE_5.8\Engine\Binaries\Win64\UnrealEditor-Cmd.exe' 'E:\Unreal Projects\ue5-bertadevkit\BertaDevKitHost\BertaDevKitHost.uproject' '-ExecCmds=Automation RunTests StartsWith:BertaSystemInfo+StartsWith:BertaDesktopCapture+StartsWith:BertaProcessBridge' '-TestExit=Automation Test Queue Empty' -unattended -nop4 -nosplash -NullRHI '-ReportExportPath=E:\Unreal Projects\ue5-bertadevkit\BertaDevKitHost\Saved\Automation\SprintClosureCode'
The commit adding this record changes documentation only. Its own SHA cannot be stored inside its tracked contents without changing that SHA. The recorded source commit above is the immutable code/documentation state used for the first clean rebuild and test run; the record-only HEAD is also rebuilt and tested with its separate SprintClosure report before the sprint is closed.
Intermediate sprint validation and environment
- Base commit:
490c7a7796c2335362c7730e41b979b6abe699c6onmain, initially clean. The base was rebuilt before this sprint's source/documentation edits. Subsequent incremental builds and tests covered the resulting working tree before integration; the commits following this base contain those changes. - Before integration,
origin/mainadvanced through4f0aaecande9c93be. The merged working tree was rebuilt incrementally and retested before the merge commit. - Unreal Engine: installed UE 5.8.2, changelist 56702186 (
++UE5+Release-5.8); Win64 Development Editor target. MSVC 14.51.36256, Windows SDK 10.0.22621.0. - Local ignored third-party plugin installations were present. Their warnings were observed in the full rebuild; this record does not claim a separate dependency-free clone build or redistribution of those plugins.
Reproduce
From the repository root in PowerShell, substitute the local UE 5.8 installation path:
& '<UE_5.8>\Engine\Build\BatchFiles\Build.bat' BertaDevKitHostEditor Win64 Development '-Project=<repo>\BertaDevKitHost\BertaDevKitHost.uproject' -WaitMutex -Rebuild
The intermediate -Rebuild ran UBT's clean phase and compiled 88 actions on the base commit. Result: Succeeded, no compiler or linker errors. After the SystemInfo fix and DesktopCapture trace markers, the same command without -Rebuild compiled the affected modules and returned Succeeded. It also returned Succeeded for the merged working tree, compiling the new remote ProcessBridge and Editor changes. These earlier results are not the final closure validation above.
Run the related Automation Tests with the native command-line Editor:
& '<UE_5.8>\Engine\Binaries\Win64\UnrealEditor-Cmd.exe' '<repo>\BertaDevKitHost\BertaDevKitHost.uproject' '-ExecCmds=Automation RunTests StartsWith:BertaSystemInfo+StartsWith:BertaDesktopCapture+StartsWith:BertaProcessBridge' '-TestExit=Automation Test Queue Empty' -unattended -nop4 -nosplash -NullRHI '-ReportExportPath=<repo>\BertaDevKitHost\Saved\Automation\SprintMerged'
Inspect Saved/Automation/SprintMerged/index.json, not only the process exit code. This intermediate merged-tree report recorded 5 succeeded, 0 warnings, 0 failed, 0 not run; the final source-commit report above recorded the same five passes:
| Test | Result |
|---|---|
BertaDesktopCapture.FrameCopy.RespectsRowPitch |
Passed |
BertaProcessBridge.Launch.InvalidContextClearsOutputs |
Passed |
BertaProcessBridge.Lifecycle.InvalidOptionsAndShutdownRejectLaunch |
Passed |
BertaProcessBridge.Lifecycle.BlockedInputOwnerShutdown |
Passed; exercises a native child blocked on stdin during owner teardown. |
BertaSystemInfo.Audio.OutputDevicesRejectAudioThreadBeforeWorldLookup |
Passed; the test starts an actual Audio Thread context if the command-line Editor did not start one, then restores the prior setting. |
The SystemInfo test first proves its context spy observes a Game Thread GetWorld() call. It then calls the API in the Audio Thread context and checks rejection, cleared output, and unchanged world-lookup count.
Warnings and limits
- UBT reported MSVC 14.51 as newer than its preferred 14.50 toolchain. Compilation succeeded in the intermediate and closure rebuilds.
- The clean rebuild emitted UE 5.8 deprecation warnings from engine headers and warnings from locally installed, Git-ignored commercial plugin code, including assignment-as-condition and float narrowing. These did not stop the build and were outside this sprint's scope.
- Unreal platform validation reported Win64 SDK valid; other platform SDKs were unavailable. Only Win64 was built.
- The Automation Tests used
-NullRHI. They establish the tested contracts, including native process teardown, but not real display capture, audio-device enumeration, packaged behavior, or GPU/RHI performance. The DesktopCapture 1080p/30 profiling procedure is separate.