The Virtual Texturing Profiler module displays statistics about Streaming Virtual Texturing in your application. Virtual Texturing reduces the amount of GPU memory that your application uses, and the loading times of textures in your application if you have a lot of high resolution textures in your scene.
Note: To use the Virtual Texturing Profiler module, in your project’s Player Settings, you must enable Virtual Texturing (Edit > Project Settings > Player > Other Settings).
The chart displays information about the texture tiles that are on screen while your application is running, and how much memory the textures use. When you select the Virtual Texturing module, the lower pane of the Profiler window displays statistics such as how much cache size the virtual textures use.
The Virtual Texturing Profiler module’s chart is divided into the following categories:
Chart | Description |
---|---|
Required Tiles | The number of texture tiles that are visible on screen. These are the tiles that the shaders try to sample to render the current frame. |
Max Cache Mip Bias | The automatic mipmap bias applied to all textures with the same texture format. If this value is not zero, then the cache is not large enough to hold all of the tiles of that format that are visible. The higher the mip bias, the lower the texture quality. |
Max Cache Demand | The highest cache demand of all GPU caches this frame. |
Missing Streaming Tiles | The number of tiles that are currently visible on the screen but that are not in video memory yet. The application streams these tiles from the disk or copies them from main memory as soon as possible. |
Missing Disk Data | The remaining data (in bytes) that the application needs to read from the disk to satisfy the current frame. |
When you click on the Virtual Texturing Profiler module, the details pane in the lower half of the window displays further detailed statistics. These statistics are also available via the ProfilerRecorder API and in the Profiler Module Editor so you can add them to a custom Profiler module.
The statistics in the details pane are as follows:
Statistic | Description |
---|---|
Required Tiles | The number of texture tiles that are visible on screen. These are the tiles that the shaders try to sample to render the current frame. If all of these tiles are in the GPU caches then Unity renders the frame with the highest possible texture quality for the current cache sizes. Unless the Scene is frozen, then some of these tiles are not in the GPU memory yet. In this case, the virtual texturing sample uses a lower quality sample from a higher mipmap that is in memory, until the higher quality sample arrives in memory. The cache mipmap bias affects the number of required tiles. If the mipmap bias is not zero for all caches then the number of Required Tiles is lower than the number required for the optimal texture quality. |
Atlases | The number of virtual texture spaces or atlases (maximum of 64). Unity atlasses the textures that are streamed with virtual texturing into large virtual texture spaces. This is automatic and transparent. |
Max Cache Mip Bias | The mip bias of the GPU cache with the highest mip bias. If this is not zero then at least one of the caches is not large enough to hold all of the texture tiles to render the current frame at the optimal texture quality. |
Max Cache Demand | The highest cache demand of all GPU caches this frame represented as a percentage of the GPU. The GPU cache that has the highest demand might need to be larger to avoid mipmap biasing for this cache. If the Max Cache Demand statistic is a low percentage then the caches might be too large for the current render resolution and content. The main downside of this is that your application is using more GPU memory than it needs but this is not a problem if your application is not memory constrained. |
Total CPU Cache Size | The amount of memory that Unity allocates to stored texture tiles after it loads them from disk. |
Total GPU Cache Size | The size of all GPU caches that the Virtual Texturing module allocated in the selected frame. Unity only creates a GPU cache when a material that uses a texture of that texture format is rendered. |
Missing Disk Data (Player builds only) |
The remaining data (in bytes) that the application needs to read from disk to satisfy the current frame. There might be more disk read requests queued up from requests in previous frames that aren’t visible anymore. As such, this is the minimum amount of data that is read from disk if no new tiles become visible. The actual amount of data the application reads might be larger. |
Missing Streaming Tiles (Player builds only) |
The number of tiles that are currently visible on the screen but that are not in memory yet. These tiles are streamed from disk as soon as possible. This number could be higher if for example the camera moves. It should quickly fall to zero if the scene and camera freeze and no new tiles are visible. |
Read From Disk (Player builds only) |
The number of bytes of disk read operations that Unity completed this frame. |
% Cache demands (Player builds only) |
The amount of cache demand each graphics format uses. Note: This statistic is not available in custom profilers |
Mipmap bias per format (Player builds only) |
The amount of mipmap bias cache each graphics format uses. Note: This statistic is not available in custom profilers |