Description

This is a regression, it worked correctly up to UE 5.5 but behaves incorrectly in UE 5.6 up to latest.

When a regular texture with sRGB enabled is converted to a virtual texture, its thumbnail in the Content Browser becomes brighter, as if sRGB had been turned off. If the engine is restarted, the thumbnail colors start correct, but they get incorrectly brighter again once the asset is loaded (which triggers thumbnail refreshes on mouseover and/or while editing the asset).

A preliminary investigation was not able to determine the exact root cause of this behavior, but uncovered some extra information:

  • The issue seems to be related to CL 30324010 and CL 30327472. Reverting the latter seems to eliminate this particular problem, but it brings back the bug that it was meant to solve.
  • CL 30327472 pretends the texture is not virtual when creating FBatchedElementTexture2DPreviewParameters for an FCanvasTileItem inside UTextureThumbnailRenderer::Draw() [TextureThumbnailRenderer.cpp]. This affects FBatchedElementTexture2DPreviewParameters::BindShaders() [Texture2DPreview.cpp] on the render thread, which will run with bIsVirtualTexture=false. As a result, this function does not set "Parameters.InPhysicalTexture" to the result of FAllocatedVirtualTexture::GetPhysicalTextureSRV(), which takes sRGB into account. Instead, it sets Parameters.InTexture to the FVirtualTexture2DResource directly.
  • A dirty workaround is to change the Gamma that gets fed into "Parameters.PackedParams" inside FBatchedElementTexture2DPreviewParameters::BindShaders(). Instead of using "InGamma" directly:

===== BEGIN CODE =====

float UsedGamma = InGamma;
if (!bIsVirtualTexture && Texture->bSRGB && ((FTextureResource*)Texture)->GetVirtualTexture2DResource() != nullptr)
UsedGamma = 1.0f;

Parameters.ColorWeights = FMatrix44f(ColorWeights);
Parameters.PackedParams = FVector4f(UsedGamma, MipLevel, bIsNormalMap ? 1.0f : -1.0f, bIsSingleVTPhysicalSpace ? 0 : LayerIndex);

===== END CODE =====

Note that these parameters get fed to [SimpleElementTexture2DPreviewPixelShader.usf].

Steps to Reproduce

1. Duplicate any regular 2D color texture (with sRGB enabled) or import a new one.
2. Convert the texture to virtual. Thumbnail becomes incorrectly brighter.
3. Save, then restart the engine. Thumbnail starts with correct color.
4. Load or open the virtual texture asset. Thumbnail becomes incorrectly brighter.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-357270 in the post.

0
Login to Vote

Unresolved
ComponentUE - Editor
Affects Versions5.65.75.8
CreatedDec 9, 2025
UpdatedFeb 26, 2026
View Jira Issue