acdream/tests/AcDream.App.Tests/Composition
Erik a7ae756b44 fix #387: window resize never recreated the Vulkan swapchain (stretch)
User report: resolution picks (and window drags) stretched the image
instead of changing the pixel count. Root cause: Campaign V slice V11
deleted the GL viewport target and left a null target, assuming the
driver's OUT_OF_DATE/SUBOPTIMAL acquire/present results would drive
swapchain recreation on resize. That is driver-dependent and
spec-insufficient — this machine's Windows AMD driver keeps presenting
the stale-extent swapchain scaled to the new window indefinitely, so
OnFramebufferResize only ever updated the camera aspect while every
pass (UI included) kept rendering at the old extent.

Fix: SwapchainRecreateViewportTarget implements the existing
IFramebufferViewportTarget seam for Vulkan and arms
VulkanGraphicsContext.RequestRecreate() on every resize event; the next
PrepareFrame rebuilds the swapchain at the live FramebufferSize (bursts
collapse to one recreation, stale events cannot install a stale extent,
minimised sizes stay gated by FramebufferResizeController).

Tests: SwapchainRecreateViewportTargetTests (target contract, size-
agnostic arming, null hook, controller-to-target end-to-end with the
minimised gate). Full Debug App suite 4,941/3 skips.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-13 09:05:13 +02:00
..
AnimationHookRegistrationSetTests.cs refactor(app): compose live presentation startup 2026-07-22 17:55:15 +02:00
CompositionAcquisitionScopeTests.cs refactor(app): define ordered composition contract 2026-07-22 15:03:40 +02:00
ContentEffectsAudioCompositionTests.cs feat(audio): Campaign A slice A5 — retail's region ambient soundscape 2026-08-08 22:53:41 +02:00
FrameRootCompositionTests.cs feat(rendering): compare the incremental shadow scene 2026-07-24 22:24:30 +02:00
GameWindowCompositionPipelineTests.cs refactor(app): close ordered startup composition 2026-07-22 19:20:20 +02:00
GameWindowPlatformAcquisitionTests.cs refactor(app): define ordered composition contract 2026-07-22 15:03:40 +02:00
HostInputCameraCompositionTests.cs feat(render): Vulkan campaign V11 step 2 — delete the OpenGL backend 2026-07-29 02:19:53 +02:00
InteractionRetainedUiCompositionTests.cs feat(ui): Campaign OP slice OP8 — Configure Keyboard 2026-08-11 09:19:54 +02:00
InteractionUiRuntimeSourcesTests.cs feat(app): FA2 -- fellowship/allegiance command routing for graphical + headless hosts 2026-08-12 01:32:18 +02:00
LivePresentationCompositionTests.cs fix(physics): TS-46 - seed the sweep from the Setup's own sphere list 2026-07-30 09:05:44 +02:00
PreparedSetupResolverTests.cs perf(content): remove exception-driven setup probes 2026-07-24 15:12:21 +02:00
SessionPlayerCompositionTests.cs refactor(runtime): cut graphical host over to canonical root 2026-07-26 19:06:09 +02:00
SessionStartCompositionTests.cs feat(runtime): define borrowed views commands and ordered events 2026-07-25 19:08:42 +02:00
SwapchainRecreateViewportTargetTests.cs fix #387: window resize never recreated the Vulkan swapchain (stretch) 2026-08-13 09:05:13 +02:00
TestGameWindowGraphics.cs feat(render): Vulkan campaign V11 step 2 — delete the OpenGL backend 2026-07-29 02:19:53 +02:00
WorldRenderCompositionTests.cs feat(render): Vulkan campaign V11 step 3 — drop the GL packages and shaders 2026-07-29 02:58:15 +02:00