acdream/src/AcDream.App/Rendering
Erik 03a108ffa5 fix(rendering): restore classic transparent batching
Restore the pre-c4 classic immediate path for transparent commands without active building detail: always use the shared alpha pipeline and coalesce adjacent same-cull commands across TranslucencyKind boundaries. Keep detail-active material selection, detail arm/reset, and inner cull-run splitting unchanged.

Required mutations and first discriminating failures (all restored):

1. Non-detail arm restored to PipelineForBlend: ClassicImmediate_NonDetailUsesAlphaBlendWhenDetailIsDisabledOrUnavailable first reported InvAlpha/detail-disabled at line 1258; expected wb-mesh-alpha-1x, actual wb-mesh-inverse-1x.

2. Translucency equality split restored with the alpha arm intact: ClassicImmediate_NonDetailCrossBlendRunCoalescesIntoOnePhysicalDraw failed at line 1279; Assert.Single saw 3 physical MDI records.

3. Detail-active command forced onto AlphaBlend: ClassicImmediate_DetailActiveUsesExactMaterialPipelineAndArm failed at line 1303; expected wb-mesh-raw-additive-depth-write-1x, actual wb-mesh-alpha-1x.
2026-09-05 02:03:13 +02:00
..
Gpu fix(rendering): carry retail SetSurface state to detail draws 2026-09-05 02:03:13 +02:00
Packs feat(overhaul): select pack shadows from retail visibility 2026-09-04 18:20:31 +02:00
Residency Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
Scene feat(overhaul): select pack shadows from retail visibility 2026-09-04 18:20:31 +02:00
Selection feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
Shaders fix(rendering): carry retail SetSurface state to detail draws 2026-09-05 02:03:13 +02:00
Sky fix(render): S3 chunk 4 round 2 — draw-gate condition pinned, scissor and terrain-clip stacks deleted, one outside-view slice constructor 2026-09-03 16:18:27 +02:00
Vfx feat(overhaul): select pack shadows from retail visibility 2026-09-04 18:20:31 +02:00
Walk feat(rendering): port retail one-pass detail material 2026-09-05 02:03:13 +02:00
Wb fix(rendering): restore classic transparent batching 2026-09-05 02:03:13 +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
BuildingDegradeController.cs feat(rendering): port retail building degrade walk 2026-09-04 22:29:18 +02:00
CameraController.cs fix #414: cursor disappears at character select after the in-world logoff 2026-08-17 15:17:50 +02:00
CameraFrameController.cs fix(camera): port retail offset adjustment laws 2026-08-31 05:42:23 +02:00
CellVisibility.cs refactor(render): delete the dead cell visibility bfs 2026-08-31 04:46:20 +02:00
ChargenPreviewAnimator.cs fix(chargen): Campaign CC CC6b-PRE review fix round — F1-F7 + F11 concession rewrite 2026-08-15 19:32:48 +02:00
ChargenPreviewCamera.cs feat(chargen): Campaign CC slice CC6b-MOUNT — Appearance page + preview mount 2026-08-15 21:00:10 +02:00
ChargenPreviewController.cs fix(chargen): Campaign CC gate round 1 closeout — Group 3: round review fixes (F4-F11, F14, F16) 2026-08-16 15:34:07 +02:00
ChargenPreviewEntityBuilder.cs fix(chargen): Campaign CC gate round 1 closeout — Group 3: round review fixes (F4-F11, F14, F16) 2026-08-16 15:34:07 +02:00
ChargenPreviewRenderer.cs fix(chargen): Campaign CC gate round 1 closeout — Group 3: round review fixes (F4-F11, F14, F16) 2026-08-16 15:34:07 +02:00
ChargenPreviewRotationController.cs fix(chargen): Campaign CC CC6b-MOUNT review fix round — F1-F13 2026-08-15 22:19:02 +02:00
ChargenPreviewZoomController.cs fix(chargen): Campaign CC CC6b-PRE review fix round — F1-F7 + F11 concession rewrite 2026-08-15 19:32:48 +02:00
ChaseCamera.cs fix(client): restore retail interaction parity 2026-08-26 20:45:11 +02:00
ClipFrame.cs fix(render): S3 review round 1 — punch fans clipped by their own view, seal pin through the producer, dead per-cell clip machinery deleted, EC/OC transcript exact 2026-09-03 20:15:29 +02:00
ClipFrameAssembler.cs fix(render): S3 review round 1 — punch fans clipped by their own view, seal pin through the producer, dead per-cell clip machinery deleted, EC/OC transcript exact 2026-09-03 20:15:29 +02:00
ClipPlaneSet.cs chore(render): S3 landing hygiene — scissor-era dead state, stale comments, the #130 harness, a conjunction-proof weather-gate pin 2026-09-03 18:24:37 +02:00
CompositeTextureArrayCache.cs feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
CreatureAppraisalPresentation.cs docs+fix(ui): Campaign AS CLOSED — connected gate PASSED; AS-GF1 probes stripped; #443 narrowed 2026-08-25 14:15:26 +02:00
DatLiveEntityProjectionMaterializer.cs fix #435 (part 2, closes it): attribute the unowned probes — delete 7, reclassify 8, restore 1 2026-08-24 12:32:42 +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
DirectionalShadowCascadeFitter.cs feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
DirectionalShadowQuality.cs feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
DirectionalShadowReceiver.cs fix(render): foliage wind no longer depends on the directional-shadow gate (Campaign VM VM6 review 4) 2026-08-23 03:29:57 +02:00
DirectionalShadowTransformBufferSet.cs feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
DirectionalShadowUniforms.cs feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00
DirectionalSunShadowRenderer.cs feat(overhaul): select pack shadows from retail visibility 2026-09-04 18:20:31 +02:00
DisplayFramePacingController.cs feat(linux): add graphical platform services 2026-07-27 11:54:59 +02:00
DisplayModeCatalog.cs fix: make locale-independence real, not assumed — parsing, casing, comparison 2026-08-19 20:11:32 +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 feat(physics): S2 chunk 4 - movement publishes from the transition's cells; children inherit at registration 2026-09-02 23:37:34 +02:00
FixedEntityTextureOwnerLease.cs fix(rendering): bound portal resource lifetime 2026-07-18 21:35:16 +02:00
FlyCamera.cs fix #389: port retail's SmartboxFOV law; retire AD-89 (display slice 1) 2026-08-13 17:08:41 +02:00
FramebufferResizeController.cs test: replace campaign labels with behavior names 2026-08-18 12:25:00 +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 feat(rendering): port retail building degrade walk 2026-09-04 22:29:18 +02:00
GameWindowLifetime.cs feat(chargen): Campaign CC slice CC5 — Summary page, Finish flow, RandomizeCharacter port 2026-08-16 00:01:07 +02:00
GlfwCursorCache.cs fix(app): #348 — cursor switches ride a process-lifetime native cache; the per-flip Win32 handle leak is closed 2026-08-07 18:26:17 +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 fix: complete retail parity stability pass 2026-08-28 20:01:39 +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 fix: complete retail parity stability pass 2026-08-28 20:01:39 +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
LoginPresentationFrameProbe.cs feat(ui): AD-109 — arm the login wormhole at the char-select Enter click 2026-08-17 13:42:30 +02:00
OrbitCamera.cs fix #389: port retail's SmartboxFOV law; retire AD-89 (display slice 1) 2026-08-13 17:08:41 +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 fix(render) #443: private viewports take the ring transform path 2026-08-29 16:51:32 +02:00
PaperdollViewportRenderer.cs fix(client): restore retail interaction parity 2026-08-26 20:45:11 +02:00
ParticleEmitterRetirementTracker.cs fix(rendering): bound portal resource lifetime 2026-07-18 21:35:16 +02:00
ParticleRenderer.cs fix(render): retain surfaceless particle metadata 2026-09-04 14:37:31 +02:00
ParticleRenderer.Rhi.cs fix(rendering): repair EnvCell retail CLIP state 2026-09-04 11:53:45 +02:00
ParticleSubmissionOrdering.cs fix(render): repair particle CYpt preparation 2026-09-04 14:37:23 +02:00
PhysicsCameraCollisionProbe.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
PortalDepthMaskRenderer.cs checkpoint(render): preserve pre-overhaul investigation state 2026-09-01 18:04:24 +02:00
PortalDepthMaskRenderer.Rhi.cs checkpoint(render): preserve pre-overhaul investigation state 2026-09-01 18:04:24 +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 fix(render): S3 review round 1 — punch fans clipped by their own view, seal pin through the producer, dead per-cell clip machinery deleted, EC/OC transcript exact 2026-09-03 20:15:29 +02:00
PortalView.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
PortalVisibilityBuilder.cs feat(render) Campaign FW3.3: ShellDrawLiftZ is RETIRED - cells draw at the dat origin 2026-08-30 16:08:52 +02:00
PrivateEntityViewportRenderer.cs fix(render) #443: private viewports take the ring transform path 2026-08-29 16:51:32 +02:00
PrivatePresentationRenderer.cs fix(render) #443: private viewports take the ring transform path 2026-08-29 16:51:32 +02:00
QuadClipper.cs fix(ui): render live component counts 2026-07-15 18:11:02 +02:00
RenderFrameDiagnosticsController.cs fix(render): harden portal exit handoff 2026-08-25 17:39:44 +02:00
RenderFrameDiagnosticSources.cs refactor(runtime): own world environment state 2026-07-26 16:45:04 +02:00
RenderFrameOrchestrator.cs feat(rendering): port retail building degrade walk 2026-09-04 22:29:18 +02:00
RenderFramePreparationController.cs fix(render) #443: private viewports take the ring transform path 2026-08-29 16:51:32 +02:00
RenderFrameResourceController.cs feat(ui): AD-109 — arm the login wormhole at the char-select Enter click 2026-08-17 13:42:30 +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
RetailAlphaMeshRouter.cs fix(render): S4 chunk 2 round 1 - particle throw, detail-off immediate draws, EnvCell FIFO, gate honesty 2026-09-04 11:53:03 +02:00
RetailAlphaQueue.cs fix(render): complete S4 chunk 2 final alpha parity round 2026-09-04 11:53:24 +02:00
RetailChaseCamera.cs fix(camera): complete retail in-head adjustment behavior 2026-08-31 06:18:37 +02:00
RetailCursorManager.cs fix(app): #348 — cursor switches ride a process-lifetime native cache; the per-flip Win32 handle leak is closed 2026-08-07 18:26:17 +02:00
RetailCursorResolver.cs fix(rendering): bound portal resource lifetime 2026-07-18 21:35:16 +02:00
RetailDetailTextureContract.cs fix(rendering): carry retail SetSurface state to detail draws 2026-09-05 02:03:13 +02:00
RetailFieldOfView.cs fix #389 review round: settings v3 FOV migration + live apply; AD-90 2026-08-13 17:27:15 +02:00
RetailHeldPose.cs feat(chargen): Campaign CC slice CC6b-PRE — idle loop, rotation, zoom (mount-independent half) 2026-08-15 19:05:56 +02:00
RetailParticleGeometryClassifier.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
RetailPViewPassExecutor.cs fix(render): restore retail per-cell alpha order 2026-09-04 14:36:48 +02:00
RetailPViewPassExecutor.WalkLeaf.cs fix(render): restore retail per-cell alpha order 2026-09-04 14:36:48 +02:00
RetailPViewRenderer.cs feat(rendering): port retail building degrade walk 2026-09-04 22:29:18 +02:00
RetailStaticAnimatingObjectScheduler.cs Fix ambient flyer cadence and rotating shadows 2026-08-22 17:39:38 +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 fix: complete retail parity stability pass 2026-08-28 20:01:39 +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 fix(render): harden portal exit handoff 2026-08-25 17:39:44 +02:00
TerrainAtlas.cs docs(vm1): closeout - AP-232 for the translucent detail blend weight; sampler test pins the production constant 2026-08-22 22:50:06 +02:00
TerrainDrawDiagnosticsController.cs fix(render): S3 chunk 3 round 1 - slot key, deferred cross-block terrain batches, per-frame terrain diagnostic 2026-09-03 09:57:34 +02:00
TerrainModernRenderer.cs feat(overhaul): port S5 particle cell visibility 2026-09-04 17:09:51 +02:00
TerrainModernRenderer.DirectionalShadowReceivers.cs feat(render) Campaign FW2: OrderedDrawStream + walk-order submitter 2026-08-30 12:31:31 +02:00
TerrainModernRenderer.DirectionalShadows.cs feat(overhaul): select pack shadows from retail visibility 2026-09-04 18:20:31 +02:00
TerrainModernRenderer.Rhi.cs fix(render): S3 chunk 4 round 2 — draw-gate condition pinned, scissor and terrain-clip stacks deleted, one outside-view slice constructor 2026-09-03 16:18:27 +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 fix(ui): Campaign LA gate round 2 — fixed-canvas stretch filters bilinearly like retail's presentation blit 2026-08-15 11:05:59 +02:00
TextureCache.cs fix(ui): Campaign LA gate round 2 — fixed-canvas stretch filters bilinearly like retail's presentation blit 2026-08-15 11:05:59 +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 refactor(render): remove Campaign FW probes 2026-08-31 09:14:47 +02:00
VolumetricShaftQuality.cs fix(render): VM3 review fixes - pin the filmic decodes, re-derive vignette for linear, name the authored sun colour 2026-08-22 23:40:48 +02:00
WindowIconLoader.cs fix(app): apply the window icon from Load, not beside Window.Create 2026-08-20 15:13:29 +02:00
WindowsHighResolutionFramePacingWaiter.cs fix #225: stabilize render pacing and frame CPU 2026-07-19 06:29:30 +02:00
WorldDepthContract.cs feat(rendering): port retail one-pass detail material 2026-09-05 02:03:13 +02:00
WorldPassScope.cs fix(render): S3 chunk 4 round 2 — draw-gate condition pinned, scissor and terrain-clip stacks deleted, one outside-view slice constructor 2026-09-03 16:18:27 +02:00
WorldPassSurface.cs feat(rendering): port retail one-pass detail material 2026-09-05 02:03:13 +02:00
WorldRenderDiagnostics.cs fix(render): S3 chunk 4 round 2 — draw-gate condition pinned, scissor and terrain-clip stacks deleted, one outside-view slice constructor 2026-09-03 16:18:27 +02:00
WorldRenderFrameBuilder.cs feat(overhaul): select pack shadows from retail visibility 2026-09-04 18:20:31 +02:00
WorldRevealRenderResourceScheduler.cs fix(streaming): preserve portal destination ownership 2026-07-25 08:35:12 +02:00
WorldSceneDiagnosticsController.cs refactor(render): remove the production portal frame carrier 2026-08-31 05:34:46 +02:00
WorldScenePassExecutor.cs feat(overhaul): port S5 particle cell visibility 2026-09-04 17:09:51 +02:00
WorldSceneRenderer.cs feat(overhaul): port S5 particle cell visibility 2026-09-04 17:09:51 +02:00
WorldSceneRuntimeSources.cs feat(render): implement Campaign AR and terrain fidelity 2026-08-22 13:13:29 +02:00