# How can I use Streaming Virtual Texture in projects with MANY/MASSIVE textures without blurry them

**URL:** <https://forums.unrealengine.com/t/how-can-i-use-streaming-virtual-texture-in-projects-with-many-massive-textures-without-blurry-them/2612548>\
**Category:** Rendering\
**Tags:** Virtual-Texturing, unreal-engine, Rendering, question\
**Created:** [July 21, 2025, 5:18am UTC](https://forums.unrealengine.com/t/how-can-i-use-streaming-virtual-texture-in-projects-with-many-massive-textures-without-blurry-them/2612548 "2025-07-21T05:18:51Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![Yuri9447](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Yuri9447](https://forums.unrealengine.com/u/Yuri9447)\
**Post date:** [July 21, 2025, 5:18am UTC](https://forums.unrealengine.com/t/how-can-i-use-streaming-virtual-texture-in-projects-with-many-massive-textures-without-blurry-them/2612548/1 "2025-07-21T05:18:51Z")

</div>

Hi Everyone. I was recently enabling Streaming Virtual Texture in my project which has about 20k textures(UI textures not included) in it. However, these virtual textures got blurred in runtime. More informations are as follows:

1. When typing r.VT.Residency.Notify 1 in console, There willl be yellow colored warning information saying that “VT Pool [DXT1] is oversubscribed. Setting MipBias 0”;
2. When typing r.VT.Verbose 1 in console, there will be many output log says that “Space 0, vAddr 0@0 is not allocated to any AllocatedVT but was still requested” and “VT dropped -XXX loaded requests”. “-XXX” is a negative integer number.
3. Camera is not moving when I try the above operations.
4. I have tried to adjust the fixed pool and transient pool settings in editor and packaged builds but still get a blurred result.
5. I did not change the Tile Size Setting of Virtual Texture in Project Settings. So I am still using the default setting.

So here are my questions:

1. Are there any documentations or slides which talk about the insides of Streaming Virtual Texturing of Unreal Engine.
2. How about increase the Tile Size Setting, cause I feel like the virtual page might not be enough.

It will be a great help if anyone know something about this. Many Thanks!!!

---

<div class="post-metadata">

**Author:** ![malik\_217](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@malik\_217](https://forums.unrealengine.com/u/malik_217)\
**Post date:** [July 21, 2025, 6:54am UTC](https://forums.unrealengine.com/t/how-can-i-use-streaming-virtual-texture-in-projects-with-many-massive-textures-without-blurry-them/2612548/2 "2025-07-21T06:54:06Z")

</div>

I think you might be having texture streaming pool error, which would be visible written red on your viewport.

Most probably something like this :

 ![image](https://d3kjluh73b9h9o.cloudfront.net/original/4X/f/8/1/f811237118450e4d44f3c8c1041d958e5b2ee86f.png)

If yes then type “ **r.Streaming.PoolSize** ” in your console command and by default it should be 1000 if you’ve not changed anything, then increase it up to 3000 or 4000 but it will increase the use of your performance.

---

<div class="post-metadata">

**Author:** ![Yuri9447](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Yuri9447](https://forums.unrealengine.com/u/Yuri9447)\
**Post date:** [July 21, 2025, 9:42am UTC](https://forums.unrealengine.com/t/how-can-i-use-streaming-virtual-texture-in-projects-with-many-massive-textures-without-blurry-them/2612548/3 "2025-07-21T09:42:23Z")

</div>

@malik_217 Hi, Thanks for your reply. So I’ve tried this already, but still not working. What you mentioned will work if I use regular texture(not Streaming Virtual Texture) because before I enable VTs for my textures, they will get blurred if “r.Streaming.PoolSize” is small. So Streaming VTs has different pools I guess.

---

<div class="post-metadata">

**Author:** ![malik\_217](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@malik\_217](https://forums.unrealengine.com/u/malik_217)\
**Post date:** [July 21, 2025, 9:46am UTC](https://forums.unrealengine.com/t/how-can-i-use-streaming-virtual-texture-in-projects-with-many-massive-textures-without-blurry-them/2612548/4 "2025-07-21T09:46:30Z")

</div>

Maybe try lowering resolution of your textures, like you might be having 4k or 8k textures for many tiny things in which it won’t matter that if it is 2k or 4k.

So try lowering those, that might help.

---

<div class="post-metadata">

**Author:** ![comlys](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/comlys/32/998665_2.png) [@comlys](https://forums.unrealengine.com/u/comlys)\
**Post date:** [July 21, 2025, 5:52pm UTC](https://forums.unrealengine.com/t/how-can-i-use-streaming-virtual-texture-in-projects-with-many-massive-textures-without-blurry-them/2612548/5 "2025-07-21T17:52:44Z")

</div>

I wrote this for offline rendering but it could be helpful here.

> **[Troubleshooting Blurry Virtual Textures for Linear Content | Community tutorial](https://dev.epicgames.com/community/learning/tutorials/vjpW/unreal-engine-troubleshooting-blurry-virtual-textures-for-linear-content)**
>
> A guide on how to troubleshoot blurry Virtual Textures in Unreal Engine

`r.Streaming.PoolSize` will not affect Virtual Textures, as they have their own pool.

---

<div class="post-metadata">

**Author:** ![Yuri9447](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Yuri9447](https://forums.unrealengine.com/u/Yuri9447)\
**Post date:** [July 28, 2025, 8:25am UTC](https://forums.unrealengine.com/t/how-can-i-use-streaming-virtual-texture-in-projects-with-many-massive-textures-without-blurry-them/2612548/6 "2025-07-28T08:25:48Z")

</div>

@comlys Great Post, THANK U! I managed to fix my issue by change the virtual texture tile size from the default 128x128 to 64x64 and repackage my project, the blurry textures are gone. Now I’ve come to another problem. So I understand that there comes a “Virtual Texture Tax” but I wonder if there is some way which makes this “Tax” low and gives much more quicker responses when camera moves around the scene. Meaning that the engine can streaming as quickly as possible when camera zooming while keeping relatively low performance costs. I will continue digging the CVars and other docs.

---

<div class="post-metadata">

**Author:** ![comlys](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/comlys/32/998665_2.png) [@comlys](https://forums.unrealengine.com/u/comlys)\
**Post date:** [July 28, 2025, 5:52pm UTC](https://forums.unrealengine.com/t/how-can-i-use-streaming-virtual-texture-in-projects-with-many-massive-textures-without-blurry-them/2612548/7 "2025-07-28T17:52:47Z")

</div>

I would make sure that the pool size is configured as appropriately as possible. That should hopefully allow you to be optimized with any possible re-processing.

---

<div class="post-metadata">

**Author:** ![Yuri9447](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Yuri9447](https://forums.unrealengine.com/u/Yuri9447)\
**Post date:** [August 4, 2025, 5:42am UTC](https://forums.unrealengine.com/t/how-can-i-use-streaming-virtual-texture-in-projects-with-many-massive-textures-without-blurry-them/2612548/8 "2025-08-04T05:42:33Z")

</div>

Hi @comlys , Are there possibilities creating multiple physical pools for a single format. For DXT1 there is an upper bound that only one single 16k physical texture can be used(about 128Mib). I’ve noticed that there is a CVar “r.VT.SplitPhysicalPoolSize” that can split into multiple physical pools. But it seems to be related to page table memory optimization and will not create multiple 128Mib DXT1 physical pools. So is there any configuration that I can refer to? Many Thanks!

---

<div class="post-metadata">

**Author:** ![Yuri9447](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Yuri9447](https://forums.unrealengine.com/u/Yuri9447)\
**Post date:** [August 6, 2025, 2:49am UTC](https://forums.unrealengine.com/t/how-can-i-use-streaming-virtual-texture-in-projects-with-many-massive-textures-without-blurry-them/2612548/9 "2025-08-06T02:49:52Z")

</div>

Hi @comlys , there is another problem when using VTs in MRQ. If change the tile size from 128 to 64(since the VT pool is oversubscribed), there are chances that the MRQ will stall forever(and I did not setting any VT CVars). I’ve used Unreal Insights to profile the stall rease and it shows that FVirtualTextureSystem::SubmitRequests is taking up infinity time. Also in packaged builds, it seems ok roaming around the scene if change tile size to 64. But if modify some updating related VT CVars, It will also get stuck. Change the VT feedback factor from 1(MRQ default) to larger value will make the stall chance lower but not 100%.

---

<div class="post-metadata">

**Author:** ![comlys](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/comlys/32/998665_2.png) [@comlys](https://forums.unrealengine.com/u/comlys)\
**Post date:** [August 6, 2025, 6:34pm UTC](https://forums.unrealengine.com/t/how-can-i-use-streaming-virtual-texture-in-projects-with-many-massive-textures-without-blurry-them/2612548/10 "2025-08-06T18:34:02Z")

</div>

> Are there possibilities creating multiple physical pools for a single format

Not that I am aware of unfortunately.

> If change the tile size from 128 to 64(since the VT pool is oversubscribed), there are chances that the MRQ will stall forever(and I did not setting any VT CVars). I’ve used Unreal Insights to profile the stall rease and it shows that FVirtualTextureSystem::SubmitRequests is taking up infinity time.

I have not seen this before. Do you have a repro you could share. Does it complain about anything in the logs?

---

<div class="post-metadata">

**Author:** ![Yuri9447](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Yuri9447](https://forums.unrealengine.com/u/Yuri9447)\
**Post date:** [August 7, 2025, 5:04am UTC](https://forums.unrealengine.com/t/how-can-i-use-streaming-virtual-texture-in-projects-with-many-massive-textures-without-blurry-them/2612548/12 "2025-08-07T05:04:29Z")

</div>

Hi @comlys ,I can’t provide you the repo as I have no access to public net but I will provide as many informations as possible. First a pic of Unreal Insights trace is as follows:

 ![Pic_20250807121400](https://d3kjluh73b9h9o.cloudfront.net/original/4X/d/b/3/db3d09c8243f5278d0a21b1e8456b5b9efe61abb.jpeg)

1. The Game Thread is stucked getting the MRQ preview texture;
2. The Render Thread is also stucked;
3. The Task System Foreground Worker Thread is stucked submitting virtual texture requests.  
The infinity part of the trace file will not show up until I kill the editor process in task manager.

It seems when using offscreen rendering with MRQ will fix this issues.

And in the log files, there will be GPU timeout warning right before editor got stuck. An example will be:

“LogD3D12RHI: Warning: GPU timeout: A payload (0x\*\*\*\*\*\*\*\*\*\*) on the [0x\*\*\*\*\*\*\*\*, Compute] has not complete after X seconds.”

---

<div class="post-metadata">

**Author:** ![Yuri9447](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Yuri9447](https://forums.unrealengine.com/u/Yuri9447)\
**Post date:** [August 11, 2025, 1:04pm UTC](https://forums.unrealengine.com/t/how-can-i-use-streaming-virtual-texture-in-projects-with-many-massive-textures-without-blurry-them/2612548/13 "2025-08-11T13:04:37Z")

</div>

Hi @comlys , Could this be a bug in UE5.4. I noticed there is a new CVar in UE5.6 “r.VT.WaitBeforeUpdate” which roughly means the Update Process of VT will wait for FSceneRenderBuilder to finish async delete tasks(which might trigger material proxy deletion and calls to RemoveAllProducerDestroyedCallbacks()). And RemoveAllProducerDestroyedCallbacks() can’t be called during a virtual texture update. So in my case which I use UE5.4, the deletion of material proxys and the update of VTs run concurrently which causes a race condition. Just a guessing.

---

<div class="post-metadata">

**Author:** ![comlys](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/comlys/32/998665_2.png) [@comlys](https://forums.unrealengine.com/u/comlys)\
**Post date:** [August 14, 2025, 5:25pm UTC](https://forums.unrealengine.com/t/how-can-i-use-streaming-virtual-texture-in-projects-with-many-massive-textures-without-blurry-them/2612548/14 "2025-08-14T17:25:01Z")

</div>

It’s certainly possible. They did a lot of work around VT stability in the last couple of releases. I would def try it in 5.6 and see if it solves your problem.

---

<div class="post-metadata">

**Author:** ![Yuri9447](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Yuri9447](https://forums.unrealengine.com/u/Yuri9447)\
**Post date:** [August 18, 2025, 6:06am UTC](https://forums.unrealengine.com/t/how-can-i-use-streaming-virtual-texture-in-projects-with-many-massive-textures-without-blurry-them/2612548/16 "2025-08-18T06:06:05Z")

</div>

@comlys Moving to 5.6 seems ok, I’ve not encountered a stall in MRQ so far. Again thanks for your kind help.
