<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Unreal Engine Issues - Latest Fixes]]></title><description><![CDATA[Latest Bug Fixes For Unreal Engine.]]></description><link>https://issues.unrealengine.com</link><image><url>https://issues.unrealengine.com/favicon.png</url><title>Unreal Engine Issues - Latest Fixes</title><link>https://issues.unrealengine.com</link></image><generator>RSS for Node</generator><lastBuildDate>Mon, 08 Jun 2026 18:12:24 GMT</lastBuildDate><atom:link href="https://issues.unrealengine.com/fixes" rel="self" type="application/rss+xml"/><item><title><![CDATA[Keyboard Shortcuts don't work on the Outliner Window if it is detached from the Main Window]]></title><description><![CDATA[<p>Keyboard Shortcuts don't work on the Outliner Window if it is detached from the Main Window.<br>
As described in Steps To Reproduce, as soon as the Outliner Window is detached from the Main Window, most of the keyboard shortcuts stop working. I noticed that CTRL+B and F2 still work as if the Outliner was docked. Also, if you RMB click any actor, the context menu will let you perform those operations normally - it's only the shortcuts that got disabled.<br>
I've test this from UE version 5.0 up to 5.7 CL42864112 and all presented this behavior.</p>]]></description><link>https://issues.unrealengine.com/issue/UE-290572</link><guid isPermaLink="false">UE-290572</guid><pubDate>Fri, 05 Jun 2026 19:22:39 GMT</pubDate></item><item><title><![CDATA[Lumen lighting in Presentations may appear darker than in Viewport]]></title><description><![CDATA[<p>Reported in SF [Link Removed]</p>

<p>In some scenes with Lumen enabled, interior scene lighting without direct lighting can appear drastically darker in Cloud Presentations than they do in the editor viewport. This only appears to affect Lumen and the lighting in Standard GI is consistent.</p>

<p>Tested in a scene in TM 2025.2 and the same scene in 2026.1</p>

<p>Does not appear to occur for all scenes, but occurs consistently in the client scene.</p>]]></description><link>https://issues.unrealengine.com/issue/TM-23727</link><guid isPermaLink="false">TM-23727</guid><pubDate>Wed, 03 Jun 2026 14:23:53 GMT</pubDate></item><item><title><![CDATA[Instanced Actors: PCG on RuntimeGrid "None" assigns created IAManagers RuntimeGrid "MainGrid", causing cross-grid reference]]></title><description><![CDATA[<p><b>Context</b></p>

<p>PCG can be used to spawn Instanced Actors via the PCG IA Interop plugin, that makes Spawned Instanced Actors available as node. When a PCGActor placed in the level runs a PCG graph that spawns Instanced Actors, this creates Instanced Actors Managers with instances.</p>

<p><b>Problem</b></p>

<p>The created Instanced Actor Manager actors get <em>MainGrid</em> assigned as Runtime Grid, even if the PCGActor that spawned them didn’t have a Runtime Grid value (i.e. its <em>None</em>). Next time the map is loaded, this results in error messages:</p>

<blockquote><p>Actor /Game/MAP_ReproPCG.PCG_PlaceInstancedActors references an actor in a different runtime grid /Game/MAP_ReproPCG.InstancedActorsManager_-1_-1_0<br>
Actor /Game/MAP_ReproPCG.PCG_PlaceInstancedActors references an actor in a different runtime grid /Game/MAP_ReproPCG.InstancedActorsManager_0_-1_0<br>
Actor /Game/MAP_ReproPCG.PCG_PlaceInstancedActors references an actor in a different runtime grid /Game/MAP_ReproPCG.InstancedActorsManager_-1_0_0<br>
Actor /Game/MAP_ReproPCG.PCG_PlaceInstancedActors references an actor in a different runtime grid /Game/MAP_ReproPCG.InstancedActorsManager_0_0_0 </p></blockquote>

<p><b>Suggested Fix</b></p>

<p>The PCG actor and spawned IAMs runtime grids should match. If the PCG actor had it set to None, perhaps leave the IAMs value as None as well.</p>]]></description><link>https://issues.unrealengine.com/issue/UE-382301</link><guid isPermaLink="false">UE-382301</guid><pubDate>Tue, 02 Jun 2026 13:59:12 GMT</pubDate></item><item><title><![CDATA[Twinmotion sign-in error when attempting sign-in inside app]]></title><description><![CDATA[<p>Reported in SF [Link Removed]</p>

<p>Attempting to sign into Twinmotion from within the TM 2026.1 editor results in a consistent sign-in error using the sign-in buttons.</p>

<p>Initial sign-in during launch when logged into the Epic Games Launcher works correctly and this only affects sign-in after launch.</p>

<p>Only TM 2026.1 is affected. Previous versions do not have this issue.</p>]]></description><link>https://issues.unrealengine.com/issue/TM-23722</link><guid isPermaLink="false">TM-23722</guid><pubDate>Mon, 01 Jun 2026 11:20:29 GMT</pubDate></item><item><title><![CDATA[[Enhanced Input] Chord trigger fails when its referenced action lives in a lower-priority IMC]]></title><description><![CDATA[<h2><a name="Summary"></a>Summary</h2>

<p>A <tt>UInputTriggerChordAction</tt> does not fire when the action it references (the "chording action") is mapped in a different Input Mapping Context with a lower priority than the IMC containing the chorded action. Both keys can be held simultaneously and the chorded action never produces a <tt>Triggered</tt> event.</p>

<p>This blocks the documented and expected use case of layering context-specific chords on top of a base/default input map — for example, a vehicle or mount IMC defining a chord that uses the player's base modifier action.</p>

<p>&#8212;</p>

<h2><a name="Reproduction"></a>Reproduction</h2>

<h3><a name="Setup%28ineditor%29"></a>Setup (in-editor)</h3>

<ol>
	<li>Create two Input Actions:</li>
</ol>


<ul class="alternate" type="square">
	<li><tt>IA_Chording</tt> — Value Type: Boolean</li>
</ul>


<ul class="alternate" type="square">
	<li><tt>IA_Chorded</tt> — Value Type: Boolean</li>
</ul>


<ol>
	<li>Create two Input Mapping Contexts:</li>
</ol>


<ul class="alternate" type="square">
	<li><tt>IMC_Base</tt></li>
</ul>


<ul class="alternate" type="square">
	<li><tt>IMC_Overlay</tt></li>
</ul>


<ol>
	<li>In <tt>IMC_Base</tt>, add a mapping: <tt>IA_Chording</tt> → any key (e.g. <tt>A</tt>).</li>
	<li>In <tt>IMC_Overlay</tt>, add a mapping: <tt>IA_Chorded</tt> → a different key (e.g. <tt>S</tt>).</li>
	<li>On the <tt>IA_Chorded</tt> mapping in <tt>IMC_Overlay</tt>, add a <b>Chorded Action</b> trigger and set its <tt>ChordAction</tt> to <tt>IA_Chording</tt>.</li>
	<li>In your player controller (or wherever you set up Enhanced Input), add both IMCs via the Enhanced Input local player subsystem:</li>
</ol>


<ul class="alternate" type="square">
	<li><tt>IMC_Base</tt> at priority <b>1</b></li>
</ul>


<ul class="alternate" type="square">
	<li><tt>IMC_Overlay</tt> at priority <b>100</b></li>
</ul>


<ol>
	<li>Bind a delegate (or print string) to <tt>IA_Chorded</tt>'s <tt>Triggered</tt> event.</li>
	<li>PIE.</li>
</ol>


<h3><a name="Steps"></a>Steps</h3>

<ol>
	<li>Hold <tt>A</tt> (the chording-action key) and confirm <tt>IA_Chording</tt>'s <tt>Triggered</tt> event fires.</li>
	<li>While still holding <tt>A</tt>, also press <tt>S</tt> (the chorded-action key).</li>
</ol>


<h3><a name="Expected"></a>Expected</h3>

<p><tt>IA_Chorded</tt>'s <tt>Triggered</tt> event fires every tick while both keys are held.</p>

<h3><a name="Actual"></a>Actual</h3>

<p><tt>IA_Chorded</tt> never fires. The chord trigger silently reports its referenced action as inactive even though <tt>IA_Chording</tt> is producing <tt>Triggered</tt> events on the same tick.</p>

<p>&#8212;</p>

<h2><a name="Verification%3Aswapthepriorities"></a>Verification: swap the priorities</h2>

<p>Swap step 6 so <tt>IMC_Base</tt> is at priority <b>100</b> and <tt>IMC_Overlay</tt> is at priority <b>1</b>. With this ordering the chord fires correctly. This confirms the bug is a function of IMC priority ordering, not a fundamental cross-IMC incompatibility.</p>

<p>&#8212;</p>

<h2><a name="CRegressionRepro"></a>C++ Regression Repro</h2>

<p>Automation tests covering both orderings live at:</p>

<p><tt>Engine/Plugins/EnhancedInput/Source/InputEditor/Private/Tests/InputTriggerTest.cpp</tt></p>

<ul>
	<li><tt>Input.Triggers.Chords.CrossContextLowerPriority</tt> — reproduces the bug (fails before the fix).</li>
	<li><tt>Input.Triggers.Chords.CrossContextHigherPriority</tt> — sanity-check companion (passes before and after the fix).</li>
</ul>


<p>Run via: <tt>UE.EditorAutomation -RunTest="Input.Triggers.Chords.CrossContext"</tt>.</p>

<p>&#8212;</p>

<h2><a name="RootCause"></a>Root Cause</h2>

<p><tt>IEnhancedInputSubsystemInterface::ReorderMappings</tt> (<tt>EnhancedInputSubsystemInterface.cpp</tt>) promotes chording mappings ahead of chorded mappings, but <b>only within a single IMC</b>. Across IMCs the merged <tt>EnhancedActionMappings</tt> list is ordered strictly by IMC priority (high → low).</p>

<p>When the chord trigger and the action it references live in different IMCs, with the chorded mapping in the higher-priority IMC, the chorded mapping is processed first each tick in <tt>UEnhancedPlayerInput::PrepareInputDelegatesForEvaluation</tt>. Its chord trigger queries <tt>FindActionInstanceData(ChordAction)-&gt;GetEvaluatedActionTriggerState()</tt> — but the chord action's own mapping hasn't been processed this tick yet, so the <tt>TriggerStateTracker</tt> is still in its post-tick-reset state (<tt>None</tt>, set in <tt>EnhancedPlayerInput.cpp:436</tt> at the end of the previous tick). The chord trigger sees <tt>None</tt> and produces no event, regardless of whether the chord key is actually held.</p>]]></description><link>https://issues.unrealengine.com/issue/UE-380283</link><guid isPermaLink="false">UE-380283</guid><pubDate>Thu, 28 May 2026 17:48:48 GMT</pubDate></item><item><title><![CDATA[AutoSize triggers ensure on shortened Skel Anim Section moved past anim length]]></title><description><![CDATA[<p>In Sequencer, calling "Edit &gt; Auto Size" on a UMovieSceneSkeletalAnimationSection triggers the LowerBound &gt; UpperBound ensure in UMovieSceneSection::SetRange (MovieSceneSection.h:333) when the section has been shortened below the animation length and then moved so that its start frame is beyond the animation length.</p>

<p>Root cause is in UMovieSceneSkeletalAnimationSection::GetAutoSizeRange (MovieSceneSkeletalAnimationSection.cpp:337). It calls InnerToOuterTransform.TryTransformTime(InnerEndTime).Get(InnerEndTime), and when the inverse transform fails to map InnerEndTime to an outer time (because the value is outside the Inner Clamp or Inner Loop range), the .Get(InnerEndTime) fallback returns the raw inner-tick value. That value is then used as if it were an outer-tick value in GetInclusiveStartFrame() + (OuterEndTime - OuterStartTime).FrameNumber, mixing inner-tick and outer-tick values and producing a negative or otherwise invalid length. SetRange then refuses the range and Auto Size has no effect.</p>

<p>This behavior was introduced by CL 40829088 (
    <span class="jira-issue-macro resolved" data-jira-key="UE-254882">
                [Link Removed]
                                                    <span class="aui-lozenge aui-lozenge-subtle aui-lozenge-success jira-macro-single-issue-export-pdf">Closed</span>
            </span>
, fixed in 5.6), which replaced the previous TOptional check with a .Get(fallback) pattern.</p>]]></description><link>https://issues.unrealengine.com/issue/UE-381333</link><guid isPermaLink="false">UE-381333</guid><pubDate>Tue, 26 May 2026 20:54:22 GMT</pubDate></item><item><title><![CDATA[Enabling bUpdateComponentTransformToRootBone in a GeometryCollectionComponent causes broken particles to appear in the wrong location]]></title><description><![CDATA[<p>Enabling bUpdateComponentTransformToRootBone in a GeometryCollectionComponent causes broken particles to appear in the wrong location. When that flag is true, the moment the GeometryCollection (GC) breaks, the component is teleported, and the new position looks proportional to the distance traveled before hitting the surface.<br>
Verification on ChaosVisualDebugger indicates the GC is behaving as expected on the physics side. It looks like only the rendering is transported to the wrong place.<br>
I've confirmed this issue reproduces on UE5.4, 5.5, 5.6, and 5.7 (CL43620315).<br>
I was not able to pinpoint the cause, but I've included the callstack for USceneComponent::SetRelativeTransform, as I suspect the issue might be on that path.</p>
<h3><a name="%C2%A0"></a> </h3>]]></description><link>https://issues.unrealengine.com/issue/UE-297788</link><guid isPermaLink="false">UE-297788</guid><pubDate>Tue, 26 May 2026 16:15:20 GMT</pubDate></item><item><title><![CDATA[BoxOverlapActors fails to catch an Overlaped actor with a particular scale, from a particular position]]></title><description><![CDATA[<p>BoxOverlapActors fails to overlap a scaled Floor actor with a particular scale, from a particular position and extent.<br>
The setup is really specific and described in Steps to Reproduce.<br>
The required 3 conditions are:<br>
1. The Floor actor is scaled (X=500.000000,Y=500.000000,Z=1.000000)<br>
2. The BoxOverlapActors's BoxPos variable is (X=6400.000000,Y=6400.000000,Z=95.304688)<br>
3. The BoxOverlapActors's BoxExtent variable is (X=1360.000000,Y=1360.000000,Z=4643.937500)</p>

<p>I've tried variations of the variables and slight changes change the behavior.<br>
This reproduces in both Editor, PIE, and SIE.</p>

<p>I was not able to identify the root cause of the issue.</p>

<p>I've confirmed this behavior reproduces on versions 5.6 and 5.8 (CL45755840).</p>]]></description><link>https://issues.unrealengine.com/issue/UE-342357</link><guid isPermaLink="false">UE-342357</guid><pubDate>Tue, 26 May 2026 12:17:32 GMT</pubDate></item><item><title><![CDATA[Imported Substance materials behave incorrectly when applying UV rotation]]></title><description><![CDATA[<p>Reported in SF [Link Removed] and on the forums at <a href="https://forums.unrealengine.com/t/substance-3d-materials-not-reflecting-light-properly/2718611" class="external-link" rel="nofollow noreferrer">https://forums.unrealengine.com/t/substance-3d-materials-not-reflecting-light-properly/2718611</a></p>

<p>UV rotation behavior is incorrect for Substance materials that are imported into Twinmotion 2026.1. When applying a UV rotation, lighting and reflection handling are noticeably incorrect at any rotation aside from 180 degrees. At 0 degrees, the material is darker than is should be, progressively brightening until 180 degrees.</p>

<p>This behavior is unique to imported SBSAR files. The samples included in the Twinmotion library do not exhibit the same problem.</p>

<p>This is a regression introduced in 2026.1. A video demonstrating this problem is in the forum post. Attached a sample scene showing the issue.</p>]]></description><link>https://issues.unrealengine.com/issue/TM-23718</link><guid isPermaLink="false">TM-23718</guid><pubDate>Tue, 26 May 2026 10:06:34 GMT</pubDate></item><item><title><![CDATA[Landscape displaces after converting file to Twinmotion 2026.1]]></title><description><![CDATA[<p>Reported in SF [Link Removed]</p>

<p>The client has a file from Twinmotion 2025.2 that contains a sculpted landscape. When converting the file to Twinmotion 2026.1, the landscape becomes displaced from it’s original position, appearing higher than it should.</p>

<p>This effect is consistently reproducible in using the client file.</p>

<p>I was unable to reproduce it in a new scene with a containing only landscape assets.</p>]]></description><link>https://issues.unrealengine.com/issue/TM-23686</link><guid isPermaLink="false">TM-23686</guid><pubDate>Tue, 26 May 2026 10:00:45 GMT</pubDate></item><item><title><![CDATA[StreamingGeneration: Actor desc mutator phase now writes ActorDescView directly, breaking the cluster-invariant check in ValidateContainerInstanceDescriptors]]></title><description><![CDATA[<p>This report is from an EPS case: </p>

<p>We hit a regression upgrading our project from 5.7 to 5.8. Map Check (and any other path that ends up calling UWorldPartition::CheckForErrors) assert inside FWorldPartitionStreamingGenerator::ValidateContainerInstanceDescriptors, on the RuntimeGrid check():</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
<pre>for (const FGuid&amp; ActorGuid : Cluster)
{

const FStreamingGenerationActorDescView&amp; ActorDescView =

ContainerCollectionInstanceDescriptor.ActorDescViewMap-&gt;FindByGuidChecked(ActorGuid);

check(ActorDescView.GetRuntimeGrid() == ReferenceActorDescView.GetRuntimeGrid());

check(ActorDescView.GetIsSpatiallyLoaded() == ReferenceActorDescView.GetIsSpatiallyLoaded());

check(ActorDescView.GetContentBundleGuid() == ReferenceActorDescView.GetContentBundleGuid());

check(ActorDescView.GetExternalDataLayerAsset()== ReferenceActorDescView.GetExternalDataLayerAsset());

}</pre>
</div></div>

<p> </p>

<p> </p>

<p><ins>What changed between 5.7 and 5.8</ins></p>

<p>Phase ordering inside PreparationPhase did not change. The mutator is still called between two</p>

<p>ValidateContainerInstanceDescriptors() passes. Clusters are still built in UpdateContainerDescriptor → GenerateObjectsClusters from references only. What changed is what the mutator-apply loop writes into.</p>

<p> </p>

<p><b>5.7</b>:</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
<pre>FContainerCollectionInstanceDescriptor::FPerInstanceData PerInstanceData =
ContainerCollectionInstanceDescriptor.GetPerInstanceData(ActorGuid);

if (ActorDescViewMutator.RuntimeGrid.IsSet())
{
    PerInstanceData.RuntimeGrid = ActorDescViewMutator.RuntimeGrid.GetValue();
}

ContainerCollectionInstanceDescriptor.AddPerInstanceData(ActorGuid, PerInstanceData);</pre>
</div></div>

<p>Mutator writes a per-instance side-table. FStreamingGenerationActorDescView::GetRuntimeGrid() keeps returning the pre-mutation value, so the second ValidateContainerInstanceDescriptors pass sees a uniform grid per cluster and passes.</p>

<p> </p>

<p><b>5.8</b> (current):</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
<pre>if (FStreamingGenerationActorDescView* ActorDescView =
ContainerCollectionInstanceDescriptor.ActorDescViewMap-&gt;FindByGuid(ActorGuid))
{
   if (ActorDescViewMutator.RuntimeGrid.IsSet())
   {
      ActorDescView-&gt;SetRuntimeGrid(ActorDescViewMutator.RuntimeGrid.GetValue());
   }
// ... same pattern for bIsSpatiallyLoaded, bIsHLODRelevant, HLODLayer
}</pre>
</div></div>

<p>FPerInstanceData, AddPerInstanceData, GetPerInstanceData were removed; the mutator now writes the shared ActorDescView directly. The second ValidateContainerInstanceDescriptors pass now reads the post-mutation grid and trips the invariant whenever the mutator override touched only some of a ref-connected cluster.</p>

<p> </p>

<p><ins>Workaround:</ins></p>

<p>We have made a small internal change that re-splits each ref-built cluster by the four invariant keys right after MutateContainerINstanceDescriptors, before the second validate:</p>



<ol>
	<li><div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
<pre>if (MutateContainerInstanceDescriptors(...))
{
   SplitClustersByMutatedAttributes(); // bucket each cluster by (RuntimeGrid, bIsSpatiallyLoaded, ContentBundleGuid, ExternalDataLayerAsset)
   ValidateContainerInstanceDescriptors();
}
</pre>
</div></div></li>
</ol>
]]></description><link>https://issues.unrealengine.com/issue/UE-381148</link><guid isPermaLink="false">UE-381148</guid><pubDate>Mon, 25 May 2026 20:40:14 GMT</pubDate></item><item><title><![CDATA[Crash when Background Blur is added with Instanced Stereo enabled]]></title><link>https://issues.unrealengine.com/issue/UE-362230</link><guid isPermaLink="false">UE-362230</guid><pubDate>Fri, 22 May 2026 13:37:49 GMT</pubDate></item><item><title><![CDATA[UGeometryCollectionComponent::EventDispatcher gets registered for events twice what can result in duplicate collision events being fired]]></title><description><![CDATA[<p>UGeometryCollectionComponent::EventDispatcher gets registered for events twice, once in UGeometryCollectionComponent::RegisterForEvents() and again in UChaosGameplayEventDispatcher::OnRegister(). That can result in duplicate collision events being fired. DispatchConsumerData() takes different paths depending on whether there are more things listening for hit events than the total number of hit events, and the bug only exists in the path with more listeners, so it's required to have more BPs in the scene.</p>]]></description><link>https://issues.unrealengine.com/issue/UE-224746</link><guid isPermaLink="false">UE-224746</guid><pubDate>Thu, 21 May 2026 17:10:36 GMT</pubDate></item><item><title><![CDATA[When Adding Custom Bindings, get ensure that "Multiple persistent shared references detected for Sequencer..."]]></title><description><![CDATA[<p>Ensure:</p>

<p>Error&nbsp;&nbsp;&nbsp;&nbsp;LogOutputDevice&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Ensure condition failed: SequencerRefCount == 1 [Link Removed] <span class="error">&#91;Line: 967&#93;</span>&nbsp;</p>

<p>1.  Error&nbsp;&nbsp;&nbsp;&nbsp;LogOutputDevice&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Multiple persistent shared references detected for Sequencer. There should only be one persistent authoritative reference. Found 3 additional references which will result in FSequencer not being released correctly.</p>]]></description><link>https://issues.unrealengine.com/issue/UE-354235</link><guid isPermaLink="false">UE-354235</guid><pubDate>Thu, 21 May 2026 15:48:20 GMT</pubDate></item><item><title><![CDATA[Skeletal Mesh Cloth - Removing cloth collision sources doesn't remove the prerequisite, and the collision sources are not updated]]></title><description><![CDATA[<p>[Link Removed] </p>

<p>See proposed fix from partner:</p>

<p><span class="image-wrap" style="">[Image Removed]</span></p>]]></description><link>https://issues.unrealengine.com/issue/UE-370193</link><guid isPermaLink="false">UE-370193</guid><pubDate>Thu, 21 May 2026 14:53:25 GMT</pubDate></item><item><title><![CDATA[FNiagaraRendererMeshes::GetDynamicRayTracingInstances(...) corrupting GPUScene when rendering multiple views]]></title><description><![CDATA[<p>When rendering a game in splitscreen using Lumen HWRT, Nanite and a large number of Niagara Mesh Particles 1mil+, various meshes and actors will stop rendering.  Setting <font color="#ff991f">r.RayTracing.Geometry.NiagaraMeshes=0 </font>and running the game resolves the issue.  No warnings or errors are shown in the log or on screen.<font color="#ff991f">  </font></p>]]></description><link>https://issues.unrealengine.com/issue/UE-380600</link><guid isPermaLink="false">UE-380600</guid><pubDate>Wed, 20 May 2026 18:28:30 GMT</pubDate></item><item><title><![CDATA[Spline mesh crashing in FRayTracingDynamicGeometryCollection::AddDynamicMeshBatchForGeometryUpdate]]></title><description><![CDATA[<p>A crash occurs when using ray tracing with spline meshes preceded by the following ensure :</p>

<p><em>Ensure condition failed: NumCPUVertices &lt;= VertexBufferNumElements  File: Engine\Source\Runtime\Renderer\Private\RayTracing\RayTracingDynamicGeometry.cpp <span class="error">&#91;Line: 310&#93;</span></em></p>

<p><em>Vertex buffer contains 503 vertices, but RayTracingDynamicGeometryConverterCS dispatch command expects at least 3670051.</em></p>

<p>Taking a look at <b>FRayTracingDynamicGeometryCollection::AddDynamicMeshBatchForGeometryUpdate</b> and the <b>MeshBatch *from *UpdateParams *that is failing, shows garbage numbers in *MeshBatch.Elements<span class="error">&#91;0&#93;</span>.MaxVertexIndex</b> and <b>MeshBatch.Elements<span class="error">&#91;0&#93;</span>.MinVertexIndex</b>. This explains the assert, but not the why. The piece of code responsible for creating this mesh batch is <b>FSplineMeshSceneProxy::GetDynamicRayTracingInstances</b>.</p>

<p>The LodModel.sections and LODModel data don't appear to be correct and *MeshBatch.Elements<span class="error">&#91;0&#93;</span> *can be left in an uninitialized state leading to garbage values in MinVertexIndex and MaxVertexIndex.</p>

<p>A workaround is to default initialize <b>MeshBatch.Elements<span class="error">&#91;0&#93;</span></b> and use the sum of all the section vertex ranges.</p>]]></description><link>https://issues.unrealengine.com/issue/UE-241524</link><guid isPermaLink="false">UE-241524</guid><pubDate>Wed, 20 May 2026 00:01:02 GMT</pubDate></item><item><title><![CDATA[OCIO + nDisplay not producing expected output in Disguise]]></title><description><![CDATA[<p>Based on [Link Removed] </p>

<p>OCIO + nDisplay not producing expected output<br>
The issue is just that when using UE 5.6 or later the resulting colour looks off compared to what 5.5 and pevious versions would produce. I have made 2 other threads about this issue but I didn't have a repro without using our software and I didn't know what the actual problem was. However now I have found the error and was even able to make a workaround on the plugin side. I still wanted to explain what I found in case it's a bug and not intended.</p>



<p>Seems related to the [Link Removed] </p>]]></description><link>https://issues.unrealengine.com/issue/UE-366670</link><guid isPermaLink="false">UE-366670</guid><pubDate>Tue, 19 May 2026 18:06:05 GMT</pubDate></item><item><title><![CDATA[ApplyLocalExposure uses Output_ExtentInverse instead of Output_ViewportSizeInverse for bilateral grid UV]]></title><description><![CDATA[<p>The ApplyLocalExposureCS shader in PostProcessLocalExposure.usf computes UV coordinates for the LumBilateralGrid 3D texture using Output_ExtentInverse (1/RenderTargetSize) instead of Output_ViewportSizeInverse (1/ViewportSize). When the viewport is smaller than the render target (e.g., after resizing the editor viewport or changing r.screenpercentage), this produces incorrect UVs that don't span <span class="error">&#91;0,1&#93;</span> across the viewport, causing bloom/local exposure strength to change unexpectedly.</p>



<p>PostProcessLocalExposure.usf, ApplyLocalExposureCS function, line 48 (Engine/Shaders/Private/PostProcessLocalExposure.usf)</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
<pre>// BUGGY:
const float2 UV = (DispatchThreadId + 0.5f) * Output_ExtentInverse;</pre>
</div></div>

<p>This UV is passed to CalculateBaseLogLuminance() (in PostProcessHistogramCommon.ush), which uses it to compute BilateralGridUVW.xy = UV * LocalExposure_BilateralGridUVScale. Since Output_ExtentInverse is based on the full render target size rather than the viewport size, the UV is incorrect when viewport != render target.</p>

<div class="preformatted panel" style="border-width: 1px;"><div class="preformattedContent panelContent">
<pre>// FIXED:
const float2 UV = (DispatchThreadId + 0.5f) * Output_ViewportSizeInverse;</pre>
</div></div>

<p>Both Output_ExtentInverse and Output_ViewportSizeInverse are provided by the SCREEN_PASS_TEXTURE_VIEWPORT(Output) macro in ScreenPass.ush.</p>]]></description><link>https://issues.unrealengine.com/issue/UE-380317</link><guid isPermaLink="false">UE-380317</guid><pubDate>Tue, 19 May 2026 16:19:49 GMT</pubDate></item><item><title><![CDATA[AnimNotify Issue with LevelSequencer Actor with URO]]></title><description><![CDATA[<p>Sometimes AnimNotify does not fire when an animation is executed under the following conditions.<br>
1. The CharacterMesh's AnimationMode uses UseAnimationAsset<br>
2. CharacterMesh's URO is enabled (Enable Update Rate Optimizations) <br>
3. Using Animation Track on LevelSequencer to run the animation</p>

<p>When the animation runs, it appears that we calculate the AnimNotifies using PreviousPosition and CurrentPosition within the UAnimSequenceBase::GetAnimNotifiesFromDeltaPositions() function, so that those will fire in this frame.</p>

<p>The problem seems to be that when AnimNotify is running normally, it takes into account the time that the tick has not been updated with URO to calculate the PreviousPosition, but when it is run through Level Sequencer to trigger an animation, it does not take into account URO and enters the PreviousPosition.</p>

<p>Please watch the issues in the attached mp4.</p>]]></description><link>https://issues.unrealengine.com/issue/UE-282956</link><guid isPermaLink="false">UE-282956</guid><pubDate>Mon, 18 May 2026 08:45:04 GMT</pubDate></item></channel></rss>