What Are the Recommended Texture Streaming Settings for High-, Mid-, and Low-End Mobile Devices in Unity?
What are the recommended settings for Texture Streaming? How should it generally be configured for high end, mid range, and low end devices?
For Texture Streaming , parameter settings should be configured according to device performance tiers high, mid, and low to achieve the best balance between visual quality and memory usage. Below are the recommended strategies for different device levels. Core Parameter Overview Memory Budget The texture memory budget determines the threshold at which Unity starts managing Mipmap loading. All textures, including non streaming textures, are counted within this budget. Max Level Reduction This defines the maximum number of Mipmap levels that can be discarded. Its priority is higher than Memory Budget . For example, if set to , Unity will load at most Mipmap level 2 and smaller levels. Add All Cameras Enabled by default. This activates streaming for all cameras. If finer control is required, disable it and manually add Streaming Controller components to specific cameras. Renderers Per Frame This determines how many Renderers are processed per frame. It directly affects CPU cost. It is recommended to adjust this dynamically based on frame rate to avoid stuttering. Recommended Settings by Device Tier 1. High End Devices Goal: Maximize visual quality and fully utilize hardware resources. Recommended settings: Memory Budget: 512MB ~ 1GB Ensure it is slightly higher than Max Level Reduction: 0 or 1 Other suggestions: Increase Async Upload Time Slice and Buffer Size appropriately to speed up texture upload. Enable: to reduce repeated I/O through caching. Advantages: Higher texture quality Minimal visible texture popping Note: Monitor carefully to avoid exceeding physical memory and causing OOM. 2. Mid End Devices Goal: Balance visual quality and performance while controlling memory peaks. Recommended settings: Memory Budget: 200MB ~ 300MB Max Level Reduction: 1 ~ 2 Renderers Per Frame: 256 ~ 512 fine tuned based on actual frame rate Async Upload: : 4ms : 16MB Recommended practice: Use real device testing to determine , then set the budget to around 1.2× that value for safety margin. 3. Low End Devices Goal: Ensure stable performance while strictly controlling memory usage. Recommended settings: Memory Budget: 100MB ~ 150MB Max Level Reduction: 2 ~ 3 This forces lower Mipmap levels and saves memory. Texture Quality: Can be combined with Half Res mode to further reduce non critical texture memory. Renderers Per Frame: 128 ~ 256 This helps reduce per frame CPU overhead. Force enable via code: This avoids cases where Editor settings may not take effect on mobile devices. Important: UI textures should always have Streaming Mipmap disabled , because they do not require distance based LOD, and enabling it only wastes CPU and memory. Key Practical Recommendations 1. Texture Streaming Must Be Enabled in Code Enabling it only in Quality Settings may not work correctly on mobile platforms. Always call: during startup. 2. Always Validate on Real Devices Texture memory usage in the Editor is usually much higher than on real devices because of different loading paths. All optimization results must be verified on target hardware. 3. Enable Streaming Selectively Only enable Streaming Mipmap for scene model textures. Should be disabled for: UI textures Icons Textures without Mipmaps Also ensure: Generate Mipmap is enabled Read/Write Enabled is disabled because CPU side memory is not affected by Texture Streaming. 4. Dynamic Adjustment Strategy Reference Use the following formula to estimate the minimum delay required for smooth camera switching: Combined with: to determine whether loading is complete and ensure smoother transitions. 5. Lightmap Streaming Support Enable Lightmap Streaming Enabled in Player Settings. It is also controlled by Memory Budget and Max Level Reduction . Summary The final Texture Streaming configuration should be determined based on: Actual project asset scale Target device profile data It is recommended to use GameOptim GOT Online texture memory reports for quantitative analysis and iterative optimization.