Request for Details of ChangeList related to a previous solved BinkMedia Crashing problem.

Previously, I reported a crashing issue related to BinkMedia plugin and was provided with a ChangeList Number 42992084.

[Occasional crashes when exiting PIE related to Bink [Content removed]

Unfortunately, due to permission restrictions, I don’t have access to Perforce to view the details of this ChangeList. Would it be possible for you to kindly share the specific changes included in this ChangeList? Any information such as the modified files, key code adjustments, or a brief description of the changes would be greatly appreciated.

重现步骤

Here is a diff

16,24c16,17

< static void Bink_DrawOverlays_Internal(FRHICommandListImmediate &RHICmdList, const UGameViewportClient* gameViewport) {

< if (!GEngine || !gameViewport || !gameViewport->Viewport) {

< return;

< }

<

< FVector2D screenSize;

< gameViewport->GetViewportSize(screenSize);

< const FTextureRHIRef &backbuffer = gameViewport->Viewport->GetRenderTargetTexture();

< if(!backbuffer.GetReference())

---

> static void Bink_DrawOverlays_Internal(FRHICommandListImmediate &RHICmdList, FTextureRHIRef BackBuffer, FVector2D ScreenSize) {

> if(!BackBuffer.GetReference())

30c23

< FrameInfo.screen_resource = backbuffer.GetReference();

---

> FrameInfo.screen_resource = BackBuffer.GetReference();

32,34c25,27

< FrameInfo.width = screenSize.X;

< FrameInfo.height = screenSize.Y;

< FrameInfo.sdr_or_hdr = backbuffer->GetFormat() == PF_A2B10G10R10 ? 1 : 0;

---

> FrameInfo.width = ScreenSize.X;

> FrameInfo.height = ScreenSize.Y;

> FrameInfo.sdr_or_hdr = BackBuffer->GetFormat() == PF_A2B10G10R10 ? 1 : 0;

43,44c36

< TWeakObjectPtr<UGameViewportClient> gameViewport = (GEngine != nullptr) ? GEngine->GameViewport : nullptr;

< if (!gameViewport.IsValid()) {

---

> if (!GEngine || !GEngine->GameViewport || !GEngine->GameViewport->Viewport) {

48c40,48

< ENQUEUE_RENDER_COMMAND(BinkOverlays)([gameViewport](FRHICommandListImmediate& RHICmdList)

---

> FVector2D ScreenSize;

> GEngine->GameViewport->GetViewportSize(ScreenSize);

> FTextureRHIRef BackBuffer = GEngine->GameViewport->Viewport->GetRenderTargetTexture();

>

> if (!BackBuffer.IsValid()) {

> return;

> }

>

> ENQUEUE_RENDER_COMMAND(BinkOverlays)([ScreenSize, BackBuffer](FRHICommandListImmediate& RHICmdList)

50,53c50

< if (gameViewport.IsValid())

< {

< Bink_DrawOverlays_Internal(RHICmdList, gameViewport.Get());

< }

---

> Bink_DrawOverlays_Internal(RHICmdList, BackBuffer, ScreenSize);