From 89d39ea122f16665a414dfc313b0d0dc001ea5a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Morva=20Krist=C3=B3f?= Date: Sat, 13 Dec 2025 19:00:15 +0100 Subject: [PATCH] Fix texture sample crash after resizing RT --- Source/AsyncReadRT/Private/AsyncReadRTAction.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Source/AsyncReadRT/Private/AsyncReadRTAction.cpp b/Source/AsyncReadRT/Private/AsyncReadRTAction.cpp index f6f63da..2aa4bfa 100644 --- a/Source/AsyncReadRT/Private/AsyncReadRTAction.cpp +++ b/Source/AsyncReadRT/Private/AsyncReadRTAction.cpp @@ -77,9 +77,6 @@ void UAsyncReadRTAction::Activate() check(TextureResource); check(TextureResource->GetRenderTargetTexture()); - X = FMath::Clamp(X, 0, RT->SizeX - 1); - Y = FMath::Clamp(Y, 0, RT->SizeY - 1); - StartFrame = GFrameCounter; ENQUEUE_RENDER_COMMAND(FCopyRTAsync)([bFlushRHI = bFlushRHI, X = X, Y = Y, AsyncReadPtr = TWeakObjectPtr(this), TextureRHI = TextureResource->GetRenderTargetTexture(), ReadData = ReadRTData](FRHICommandListImmediate& RHICmdList) @@ -113,11 +110,14 @@ void UAsyncReadRTAction::Activate() IORHITextureCPU = RHICreateTexture2D(1, 1, TextureRHI->GetFormat(), 1, 1, TexCreate_CPUReadback, ERHIAccess::CopyDest, CreateInfo); #endif + const int32 SrcX = FMath::Clamp(X, 0, static_cast(TextureRHI->GetSizeX()) - 1); + const int32 SrcY = FMath::Clamp(Y, 0, static_cast(TextureRHI->GetSizeY()) - 1); + FRHICopyTextureInfo CopyTextureInfo; CopyTextureInfo.Size = FIntVector(1, 1, 1); CopyTextureInfo.SourceMipIndex = 0; CopyTextureInfo.DestMipIndex = 0; - CopyTextureInfo.SourcePosition = FIntVector(X, Y, 0); + CopyTextureInfo.SourcePosition = FIntVector(SrcX, SrcY, 0); CopyTextureInfo.DestPosition = FIntVector(0, 0, 0); RHICmdList.Transition(FRHITransitionInfo(TextureRHI, ERHIAccess::Unknown, ERHIAccess::CopySrc));