acdream/src/AcDream.App/Rendering
Erik 55b07f6a62
Some checks are pending
Headless portability / portable-headless (ubuntu-latest) (push) Waiting to run
Headless portability / portable-headless (windows-latest) (push) Waiting to run
Headless portability / linux-graphical (push) Waiting to run
Headless portability / linux-vulkan (push) Waiting to run
refactor(physics): hoist the live-entity collision builder to Runtime (#330 groundwork)
LiveEntityCollisionBuilder and LiveEntityDefaultPoseResolver move from
AcDream.App.Physics to AcDream.Runtime.Physics with no behaviour change
— diff-verified byte-identical shape math by both review lenses. The
Build signature's App-record parameter is replaced by presentation-free
primitives with identical guard semantics, INCLUDING the
FinalPhysicsState read the contract had missed and the implementer
surfaced rather than dropped. Visibility stays internal: Runtime's
existing InternalsVisibleTo grants already cover every consumer, so the
implementation's public widening is reverted per the architecture
review's finding 11.

The registration WIRING is deliberately WITHHELD. Both Opus lenses
failed it, converging: a shadow registered at spawn freezes there
(RuntimeRemotePhysicsUpdater is Runtime-homed but App-driven — nothing
headless ticks it), so a walking NPC becomes a phantom obstacle at its
spawn point while the real NPC still passes through the bot; three of
five shadow-lifetime edges leaked (pickup leaves a permanent invisible
collider, supersession orphans a duplicate, generation reset never
unregisters and the K-ledger convergence oracle only checks retained
shadows AFTER disposal clears them); and headless cannot resolve BSP
collision assets at all, so doors and chests would still be
walk-through. The frozen-shadow root was the SESSION LEAD's contract
error (fact 3), not the implementer's.

#330 stays OPEN, rewritten as the seven-point scope map the reviews
produced — the honest overnight deliverable is that map, not a
half-mechanism carrying new divergences.

Suite 11,235 passed / 4 skipped / 0 failed (the withheld seam's two
tests account for the delta from the implementation run's 11,237).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-07 01:49:13 +02:00
..
Gpu docs(render): V11 closeout — register, architecture, code structure, issues 2026-07-29 03:20:04 +02:00
Residency Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
Scene refactor(app): key live projections by runtime identity 2026-07-25 21:50:58 +02:00
Selection feat(rendering): prove packed dispatcher output parity 2026-07-25 01:31:56 +02:00
Shaders feat(render): Vulkan campaign V11 step 3 — drop the GL packages and shaders 2026-07-29 02:58:15 +02:00
Sky feat(render): Vulkan campaign V11 step 2 — delete the OpenGL backend 2026-07-29 02:19:53 +02:00
Vfx fix(vfx): resolve an entity's cell through one owner so effects follow it 2026-08-03 14:02:03 +02:00
Wb fix(vfx): resolve an entity's cell through one owner so effects follow it 2026-08-03 14:02:03 +02:00
AnimationPresentationDiagnostics.cs refactor(animation): extract live PartArray presenter 2026-07-21 09:37:02 +02:00
AttachmentUpdateOrder.cs refactor(app): key live projections by runtime identity 2026-07-25 21:50:58 +02:00
BackendNeutralWorldTextures.cs feat(render): Campaign V slice V6i-2 commit 2 — world texture creation crosses to IGpuTexture 2026-07-28 13:57:43 +02:00
BitmapFont.cs feat(render): put the retained UI and debug lines on both backends 2026-07-28 08:51:32 +02:00
BoundedUnownedResourceCache.cs fix(rendering): bound portal resource lifetime 2026-07-18 21:35:16 +02:00
CameraController.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
CameraFrameController.cs refactor(camera): extract the update frame 2026-07-22 03:08:58 +02:00
CellVisibility.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
ChaseCamera.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
ClipFrame.cs feat(render): Vulkan campaign V11 step 2 — delete the OpenGL backend 2026-07-29 02:19:53 +02:00
ClipFrameAssembler.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
ClipPlaneSet.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
CollisionMeshWireframe.cs probe(physics): ACDREAM_PROBE_SUPPORT + ACDREAM_WIRE_MESH — separate #337's three candidates 2026-08-06 19:49:59 +02:00
CompositeTextureArrayCache.cs feat(render): Vulkan campaign V11 step 2 — delete the OpenGL backend 2026-07-29 02:19:53 +02:00
CreatureAppraisalPresentation.cs feat(render): Vulkan campaign V11 step 2 — delete the OpenGL backend 2026-07-29 02:19:53 +02:00
DatLiveEntityProjectionMaterializer.cs refactor(physics): hoist the live-entity collision builder to Runtime (#330 groundwork) 2026-08-07 01:49:13 +02:00
DebugLineRenderer.cs feat(render): Campaign V slice V6l commit 1 - particles draw on Vulkan 2026-07-28 17:20:59 +02:00
DebugVmRenderFactsPublisher.cs refactor(render): extract frame presentation diagnostics 2026-07-22 05:02:31 +02:00
DevToolsRuntimeSources.cs refactor(runtime): close simulation ownership 2026-07-26 15:53:31 +02:00
DisplayFramePacingController.cs feat(linux): add graphical platform services 2026-07-27 11:54:59 +02:00
DollCamera.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
DollEntityBuilder.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
DynamicBufferCapacity.cs fix(rendering): bound portal resource lifetime 2026-07-18 21:35:16 +02:00
EquippedChildRenderController.cs fix(physics): bind a parented child to the parent's live incarnation (#319) 2026-08-05 11:56:31 +02:00
FixedEntityTextureOwnerLease.cs fix(rendering): bound portal resource lifetime 2026-07-18 21:35:16 +02:00
FlyCamera.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
FramebufferResizeController.cs feat(render): Vulkan campaign V11 step 3 — drop the GL packages and shaders 2026-07-29 02:58:15 +02:00
FramePacingController.cs feat(linux): add graphical platform services 2026-07-27 11:54:59 +02:00
FramePacingPolicy.cs fix(rendering): bound portal resource lifetime 2026-07-18 21:35:16 +02:00
FramePacingWaiterFactory.cs feat(linux): add graphical platform services 2026-07-27 11:54:59 +02:00
FrustumCuller.cs fix(render): the near plane is col3, not col4 + col3 (#248) 2026-07-29 03:33:20 +02:00
GameFrameGraphSlot.cs refactor(app): compose atomic frame roots 2026-07-22 19:02:08 +02:00
GameRenderResourceLifetime.cs feat(render): Vulkan campaign V11 step 2 — delete the OpenGL backend 2026-07-29 02:19:53 +02:00
GameWindow.cs refactor(physics): hoist the live-entity collision builder to Runtime (#330 groundwork) 2026-08-07 01:49:13 +02:00
GameWindowLifetime.cs feat(physics): C4 route 4b-3 — remote teleport + cell-less through the canonical placement 2026-08-04 16:00:10 +02:00
GpuDeviceFrameLifetime.cs feat(render): Campaign V slice V4a - port TextRenderer/BitmapFont/DebugLineRenderer/TextureCache UI path onto IGpuDevice 2026-07-27 19:37:19 +02:00
GpuFrameFlightController.cs feat(render): Vulkan campaign V11 step 3 — drop the GL packages and shaders 2026-07-29 02:58:15 +02:00
GpuRetiredTerrainSlotAllocator.cs fix(rendering): bound portal resource lifetime 2026-07-18 21:35:16 +02:00
HostQuiescenceGate.cs refactor(app): own native window callback lifetime 2026-07-22 09:59:10 +02:00
IAnimationHookCaptureSink.cs refactor(runtime): extract the live object frame 2026-07-22 00:42:26 +02:00
ICamera.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
ICameraCollisionProbe.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
ILiveAnimationPresentationContext.cs refactor(animation): extract live PartArray presenter 2026-07-21 09:37:02 +02:00
ILiveStaticPartFrameSource.cs fix(animation): harden presentation phase handoffs 2026-07-21 10:01:25 +02:00
IndoorDrawPlan.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
InteriorEntityPartition.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
LinuxMonotonicFramePacingWaiter.cs feat(linux): add graphical platform services 2026-07-27 11:54:59 +02:00
LiveAnimationPresentationContext.cs fix(runtime): restore interaction completion ownership 2026-07-23 05:51:51 +02:00
LiveEntityAnimationPresenter.cs refactor(app): key live projections by runtime identity 2026-07-25 21:50:58 +02:00
LiveEntityAnimationScheduler.cs refactor(runtime): own projectile simulation 2026-07-26 14:17:42 +02:00
LiveEntityAnimationState.cs fix(animation): harden presentation phase handoffs 2026-07-21 10:01:25 +02:00
LiveEntityAppearanceBinding.cs refactor(physics): hoist the live-entity collision builder to Runtime (#330 groundwork) 2026-08-07 01:49:13 +02:00
LiveEntityCreateSupersessionRecovery.cs refactor(world): extract live entity hydration 2026-07-21 17:32:45 +02:00
LiveEntityPartArrayLifecycle.cs refactor(update): cut over the frame orchestrator 2026-07-22 03:31:38 +02:00
LiveStaticAnimationResidency.cs refactor(runtime): extract the live object frame 2026-07-22 00:42:26 +02:00
NdcScissorRect.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
OrbitCamera.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
OrderedResourceTeardown.cs fix(rendering): bound portal resource lifetime 2026-07-18 21:35:16 +02:00
OutdoorCellNode.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
OwnerScopedResourceRegistry.cs fix(rendering): bound portal resource lifetime 2026-07-18 21:35:16 +02:00
PaperdollFramePresenter.cs feat(render): Vulkan campaign V11 step 2 — delete the OpenGL backend 2026-07-29 02:19:53 +02:00
PaperdollViewportRenderer.cs feat(render): Vulkan campaign V11 step 2 — delete the OpenGL backend 2026-07-29 02:19:53 +02:00
ParticleEmitterRetirementTracker.cs fix(rendering): bound portal resource lifetime 2026-07-18 21:35:16 +02:00
ParticleRenderer.cs feat(render): Vulkan campaign V11 step 3 — drop the GL packages and shaders 2026-07-29 02:58:15 +02:00
ParticleRenderer.Rhi.cs feat(render): Vulkan campaign V11 step 2 — delete the OpenGL backend 2026-07-29 02:19:53 +02:00
ParticleSubmissionOrdering.cs fix(rendering): bound portal resource lifetime 2026-07-18 21:35:16 +02:00
PhysicsCameraCollisionProbe.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
PortalDepthMaskRenderer.cs feat(render): Vulkan campaign V11 step 2 — delete the OpenGL backend 2026-07-29 02:19:53 +02:00
PortalDepthMaskRenderer.Rhi.cs feat(render): Campaign V slice V6l commit 2 - the portal mask draws on Vulkan 2026-07-28 17:36:45 +02:00
PortalProjection.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
PortalTunnelCamera.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
PortalTunnelPresentation.cs feat(render): Vulkan campaign V11 step 2 — delete the OpenGL backend 2026-07-29 02:19:53 +02:00
PortalView.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
PortalVisibilityBuilder.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
PrivateEntityViewportRenderer.cs feat(render): Vulkan campaign V11 step 2 — delete the OpenGL backend 2026-07-29 02:19:53 +02:00
PrivatePresentationRenderer.cs feat(ui): port retail creature appraisal presentation 2026-07-23 12:55:24 +02:00
QuadClipper.cs fix(ui): render live component counts 2026-07-15 18:11:02 +02:00
RenderFrameDiagnosticsController.cs perf(diagnostics): expose prepared asset source counters 2026-07-24 15:16:32 +02:00
RenderFrameDiagnosticSources.cs refactor(runtime): own world environment state 2026-07-26 16:45:04 +02:00
RenderFrameOrchestrator.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
RenderFramePreparationController.cs feat(render): Campaign V slice V11 commit 1 - delete ImGui, Studio, and the DevTools frontend 2026-07-28 23:56:04 +02:00
RenderFrameResourceController.cs feat(render): Vulkan campaign V11 step 3 — drop the GL packages and shaders 2026-07-29 02:58:15 +02:00
ResourceCleanupGroup.cs feat(render): Vulkan campaign V11 step 2 — delete the OpenGL backend 2026-07-29 02:19:53 +02:00
ResourceShutdownTransaction.cs refactor(app): extract focused window lifetime 2026-07-22 19:43:52 +02:00
RestoredTextureBindingMutation.cs refactor(lifetime): own render resource prefixes 2026-07-22 14:42:14 +02:00
RetailAlphaQueue.cs perf(render): bound animation and alpha scratch residency 2026-07-24 16:34:28 +02:00
RetailChaseCamera.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
RetailCursorManager.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
RetailCursorResolver.cs fix(rendering): bound portal resource lifetime 2026-07-18 21:35:16 +02:00
RetailParticleGeometryClassifier.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
RetailPViewPassExecutor.cs feat(render): Vulkan campaign V11 step 2 — delete the OpenGL backend 2026-07-29 02:19:53 +02:00
RetailPViewRenderer.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
RetailStaticAnimatingObjectScheduler.cs fix(vfx): bind effects after canonical placement 2026-08-03 12:10:21 +02:00
RollingTimingSampleWindow.cs refactor(render): extract frame presentation diagnostics 2026-07-22 05:02:31 +02:00
RuntimeResourceSlots.cs refactor(lifetime): own render resource prefixes 2026-07-22 14:42:14 +02:00
SceneLightingUboBinding.cs feat(render): Vulkan campaign V11 step 2 — delete the OpenGL backend 2026-07-29 02:19:53 +02:00
ScreenPolygonClip.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
SilkWindowCallbackBinding.cs refactor(app): own native window callback lifetime 2026-07-22 09:59:10 +02:00
SkyPesFrameController.cs refactor(render): extract world frame preparation 2026-07-22 05:54:00 +02:00
SpawnMotionInitializer.cs refactor(world): extract live entity hydration 2026-07-21 17:32:45 +02:00
StandaloneBindlessTextureCache.cs feat(render): Campaign V slice V6l commit 1 - particles draw on Vulkan 2026-07-28 17:20:59 +02:00
StaticLiveRootCommitter.cs refactor(runtime): extract the live object frame 2026-07-22 00:42:26 +02:00
SyntheticEntityMeshReferenceOwner.cs fix(streaming): preserve portal destination ownership 2026-07-25 08:35:12 +02:00
TeleportViewPlaneController.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
TerrainAtlas.cs feat(render): Vulkan campaign V11 step 2 — delete the OpenGL backend 2026-07-29 02:19:53 +02:00
TerrainDrawDiagnosticsController.cs refactor(app): key live projections by runtime identity 2026-07-25 21:50:58 +02:00
TerrainModernRenderer.cs feat(render): Vulkan campaign V11 step 2 — delete the OpenGL backend 2026-07-29 02:19:53 +02:00
TerrainModernRenderer.Rhi.cs feat(render): Vulkan campaign V11 step 2 — delete the OpenGL backend 2026-07-29 02:19:53 +02:00
TerrainTextureTilingTable.cs feat(render): Campaign V slice V6f-2 - terrain's tiling table becomes a buffer 2026-07-28 10:11:00 +02:00
TextRenderer.cs feat(render): Vulkan campaign V11 step 2 — delete the OpenGL backend 2026-07-29 02:19:53 +02:00
TextureCache.cs fix(render): keep authored surface translucency on composite textures 2026-07-29 21:40:26 +02:00
UiTextureTableHandle.cs feat(render): put the retained UI and debug lines on both backends 2026-07-28 08:51:32 +02:00
ViewconeCuller.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
WindowsHighResolutionFramePacingWaiter.cs fix #225: stabilize render pacing and frame CPU 2026-07-19 06:29:30 +02:00
WorldPassScope.cs feat(render): Campaign V slice V6l commit 3 - the offscreen viewports draw on Vulkan 2026-07-28 18:05:24 +02:00
WorldPassSurface.cs feat(render): Vulkan campaign V11 step 2 — delete the OpenGL backend 2026-07-29 02:19:53 +02:00
WorldRenderDiagnostics.cs feat(render): Vulkan campaign V11 step 3 — drop the GL packages and shaders 2026-07-29 02:58:15 +02:00
WorldRenderFrameBuilder.cs refactor(runtime): close simulation ownership 2026-07-26 15:53:31 +02:00
WorldRevealRenderResourceScheduler.cs fix(streaming): preserve portal destination ownership 2026-07-25 08:35:12 +02:00
WorldSceneDiagnosticsController.cs probe(physics): ACDREAM_PROBE_SUPPORT + ACDREAM_WIRE_MESH — separate #337's three candidates 2026-08-06 19:49:59 +02:00
WorldScenePassExecutor.cs feat(render): Campaign V slice V6j commit 2 - Dereth draws on Vulkan 2026-07-28 15:46:54 +02:00
WorldSceneRenderer.cs perf(rendering): retire production entity partition 2026-07-25 10:50:57 +02:00
WorldSceneRuntimeSources.cs refactor(runtime): close simulation ownership 2026-07-26 15:53:31 +02:00