Index: NoesisInstance.cpp
===================================================================
--- NoesisInstance.cpp	(revision 16499)
+++ NoesisInstance.cpp	(revision 16500)
@@ -362,7 +362,6 @@
 	RenderDevice->SetScene(Scene);
 	RenderDevice->SetRHICmdList(&RHICmdList);
 	RenderDevice->SetGammaAndContrast(EngineGamma, SlateContrast);
-	Renderer->SetRenderRegion(0.f, 0.f, Right - Left, Bottom - Top);
 	if (WithViewProj)
 	{
 		if (IsMobileMultiView || IsInstancedStereo)
@@ -390,10 +389,6 @@
 	const auto ViewFamily = View->Family;
 
 	ViewRect = View->ViewRect;
-	Left = ViewRect.Min.X;
-	Top = ViewRect.Min.Y;
-	Right = ViewRect.Max.X;
-	Bottom = ViewRect.Max.Y;
 	Scene = ViewFamily->Scene;
 	WorldTime = ViewFamily->Time;
 	IsMobileMultiView = View->bIsMobileMultiViewEnabled && View->StereoPass == EStereoscopicPass::eSSP_PRIMARY;
@@ -418,7 +413,7 @@
 			auto RightEyeViewProjectionMatrix = InstancedView->ViewMatrices.GetViewProjectionMatrix();
 			RightEyeViewProj = UnrealToNoesisViewProj(RightEyeViewProjectionMatrix, InstancedRight - InstancedLeft, InstancedBottom - InstancedTop);
 
-			RHICmdList.SetViewport(Left, Top, 0.0f, View->InstancedStereoWidth, Bottom, 1.0f);
+			RHICmdList.SetViewport(ViewRect.Min.X, ViewRect.Min.Y, 0.0f, View->InstancedStereoWidth, ViewRect.Max.Y, 1.0f);
 		}
 		else
 #endif
@@ -438,7 +433,7 @@
 			auto RightEyeViewProjectionMatrix = InstancedView->ViewMatrices.GetViewProjectionMatrix();
 			RightEyeViewProj = UnrealToNoesisViewProj(RightEyeViewProjectionMatrix, InstancedRight - InstancedLeft, InstancedBottom - InstancedTop);
 
-			RHICmdList.SetStereoViewport(Left, InstancedLeft, Top, InstancedTop, 0.0f, Right, InstancedRight, Bottom, InstancedBottom, 1.0f);
+			RHICmdList.SetStereoViewport(ViewRect.Min.X, InstancedLeft, ViewRect.Min.Y, InstancedTop, 0.0f, ViewRect.Max.X, InstancedRight, ViewRect.Max.Y, InstancedBottom, 1.0f);
 		}
 	}
 	else
@@ -446,7 +441,7 @@
 		auto MonoViewProjectionMatrix = View->ViewMatrices.GetViewProjectionMatrix();
 		ViewProj = UnrealToNoesisViewProj(MonoViewProjectionMatrix, Right - Left, Bottom - Top);
 
-		RHICmdList.SetViewport(Left, Top, 0.0f, Right, Bottom, 1.0f);
+		RHICmdList.SetViewport(ViewRect.Min.X, ViewRect.Min.Y, 0.0f, ViewRect.Max.X, ViewRect.Max.Y, 1.0f);
 	}
 
 	// We shouldn't use the versions of Render that use ViewProj if it's invalid, but we still need to call Render
@@ -1093,8 +1088,12 @@
 
 		ENQUEUE_RENDER_COMMAND(FNoesisInstance_Tick3DWidget_UpdateSlateElement)
 		(
-			[NoesisSlateElement = NoesisSlateElement, Scene = Scene, WorldTime = WorldTime](FRHICommandListImmediate& RHICmdList)
+			[NoesisSlateElement = NoesisSlateElement, Scene = Scene, WorldTime = WorldTime, Left = Left, Top = Top, Right = Left + Width, Bottom = Top + Height](FRHICommandListImmediate& RHICmdList)
 			{
+				NoesisSlateElement->Left = Left;
+				NoesisSlateElement->Top = Top;
+				NoesisSlateElement->Right = Right;
+				NoesisSlateElement->Bottom = Bottom;
 				NoesisSlateElement->Scene = Scene;
 				NoesisSlateElement->WorldTime = WorldTime;
 				NoesisSlateElement->UpdateRenderTree();
