Description

Bindless textures do not appear to stream mip levels. This issue is separate from an already reported bindless virtual texture streaming issue.

When the editor is freshly launched or when mip levels for a bindless resource have been evicted from the streaming pool, they do not stream back in. This occurs regardless of distance or if a given mip level, such as mip0, is specified. The editor can pull higher mip levels in by opening the texture.

In a packaged project, this behaviour is also present. Notably, if the texture is used elsewhere in a bound fashion, mip streaming will occur, and the bindless texture will display the correct mip. What occurs when the bound texture does not stream a mip as high or higher than requested by the bindless texture has not been tested.

Steps to Reproduce

Using Bindless Textures will induce the issue in seemingly all cases, even when mip level is forced to 0. In Editor, it is possible that the highest mip is already loaded and will correctly display.

To reset this, r.Streaming.DropMips 3 should force the mip levels out of the streaming pool. They will not reload when using bindless resources. Alternatively, restarting the editor will do the same.

Steps:
1. Create a Bindless Texture Collection data asset and populate it with non-virtual-textures.
2. Sample any index of the collection in a material and force the mip level in the texture sampler to 0.
3. Drop mips or restart after closing the texture and the material. The material probably doesn't need to be closed, though.
4. Note that visually the texture is significantly degraded visually, and texture stats reports a low mip is in use.

Expected: mip levels work as they do in bound textures.
Actual: mip levels do not stream back in and get stuck at a lower resolution. 64x64 appears to be the most common resolution these bindless textures will sample at.

Have Comments or More Details?

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

5
Login to Vote

Fixed
ComponentUE - Rendering Architecture - RHI
Affects Versions5.65.5
Target Fix5.6
Fix Commit39714180
CreatedJan 29, 2025
ResolvedFeb 4, 2025
UpdatedFeb 5, 2025
View Jira Issue