When using Indirect Virtual Textures (UVirtualTextureCollection), non-square textures turn grey at distance.
# Cause
UnpackIndirectVirtualTexturePageTableUniform() in IndirectVirtualTextureCommon.ush reconstructs MaxLevel as using max(Info.BlockWidth, Info.BlockHeight), but FAllocatedVirtualTexture() in AllocatedVirtualTexture.cpp calculates it using Min(FullWidthInTiles, FullHeightInTiles). For non-square VTs these disagree, so the indirect path over-estimates the mip count. At distance (high mip levels) the shader reads non-existent mip. Square textures and VTs which don’t use the indirect path are unaffected.
# Fix
Match behavior between c++ and shader. Either both should use min or both max.
[Attachment Removed]