Landscape RVT Loading Velocity

Hello,

We have an issue with Landscape RVT Textures loading velocity, In Build it takes forever for VT Textures to load on Landscape, they appear blurry and you can see VT Tiles loading slowly to correct Mip Level, moving camera to other area on landscape of course restarts the process and we can see new VT Tiles loading slowly again.

In Editor looking at Virtual Texture - Pending Mips mode the VT Cache seems stable and overall velocity is quite good, VT Cache doesn’t seem to get invalidate for no reason.

Some Details about Landscape:

Landscape Resolution: 3303x3303

Landscape Layers with Textures: 12 ( One layer has 2 Texture Samples.)

Landscape uses RVT for Displacement channel too, with Displacement Fade enabled in the Material Instance.

Here is the image if RVT Setup in the Landscape Material:

[Image Removed]

We are using 3 main Pools for VT, which is DXT5,DXT5 , BC4 and G16.

DXT5, DXT5 is used for Base Color, Normal, Roughness and Specular

BC4 is used for Displacement

G16 is used for World Height

Here is the DefaultEngine.ini setup for VT Pools:

+Pools=(Formats=(PF_DXT5,PF_DXT5),MinTileSize=0,MaxTileSize=0,SizeInMegabyte=150,bEnableResidencyMipMapBias=False,ResidencyMipMapBiasGroup=0,bAllowSizeScale=False,MinScaledSizeInMegabyte=0,MaxScaledSizeInMegabyte=0)

+Pools=(Formats=(PF_BC4),MinTileSize=0,MaxTileSize=0,SizeInMegabyte=20,bEnableResidencyMipMapBias=False,ResidencyMipMapBiasGroup=0,bAllowSizeScale=False,MinScaledSizeInMegabyte=0,MaxScaledSizeInMegabyte=0)

+Pools=(Formats=(PF_G16),MinTileSize=0,MaxTileSize=0,SizeInMegabyte=25,bEnableResidencyMipMapBias=False,ResidencyMipMapBiasGroup=0,bAllowSizeScale=False,MinScaledSizeInMegabyte=0,MaxScaledSizeInMegabyte=0)

Image of RVT Assets:

[Image Removed]

VT Pools are never overflowing, there is enough Memory and usage on all those VT Pools are around ~60-70% Max.

For the VT CVars currently in Build we have those, which is too low by default but increasing it doesn’t solve issue fully.

r.VT.MaxUploadsPerFrame.Streaming = 4 - Increasing it to 128 seems to make situation a bit better but doesn’t solve it completely.

r.VT.MaxUploadsPerFrame = 2 - Increasing it to 64 seems to make situation a bit better but doesn’t solve it completely.

Is there any recommendations to completely illuminate the issue with RVT Loading velocity, maybe advice on CVars and its values that could help as.

Thanks.

[Attachment Removed]

Your settings here all look reasonable, and it’s not expected that the Editor works well but the game with the same upload settings doesn’t.

Note that r.VT.MaxUploadsPerFrame is the more interesting cvar for RVT and r.VT.MaxUploadsPerFrame.Streaming is more for any streaming virtual texture.

Sometimes the appearance of slow loading is made worse when different mip levels are incoherent. You should check that any baked streaming mips are up to date. I mention that because we don’t show those by default in editor workflows. You can force them to show in the editor with a per RVT component setting or globally with r.VT.RVT.StreamingMips.UseInEditor=2.

Apart from that I recommend running with “stat virtual texturing” and seeing how fast the numbers shown converge after a camera move. Comparing that in game/editor might give some clues.

Best regards,

Jeremy

[Attachment Removed]