Version: 2020.2
Streaming Virtual Texturing
How Streaming Virtual Texturing works

Streaming Virtual Texturing requirements and compatibility

Unity version: 2020.1.0b9 or newer

Render pipeline support

In Unity 2020.1, with High Definition Render Pipeline versions 9.0.0-preview and newer, you can use Streaming Virtual Texturing (SVT) in Shaders you create with Shader Graph.

System requirements

GPU requirements

  • GPU compute
  • Texture2DArrays
  • AsyncReadBack

Supported platforms

  • Windows
  • Mac
  • Linux
  • Playstation 4
  • Xbox One

Supported graphics APIs

  • DirectX 11
  • DirectX 12
  • Metal
  • Vulkan

Texture compatibility

  • SVT is built on top of Unity Texture2D. SVT textures go through the same importer, which limits the maximum texture size. Currently, SVT doesn’t support textures larger than 16K x 16K. It also does not support UDIM Textures, or merging tiled image files into one large texture.

  • SVT doesn’t support all texture graphics formats. The supported formats are:

    • GraphicsFormat::kFormatRGBA_DXT1_SRGB
    • GraphicsFormat::kFormatRGBA_DXT1_UNorm
    • GraphicsFormat::kFormatRGBA_DXT3_SRGB
    • GraphicsFormat::kFormatRGBA_DXT3_UNorm
    • GraphicsFormat::kFormatR_BC4_UNorm
    • GraphicsFormat::kFormatRG_BC5_UNorm
    • GraphicsFormat::kFormatRGB_BC6H_SFloat
    • GraphicsFormat::kFormatRGB_BC6H_UFloat
    • GraphicsFormat::kFormatRGBA_BC7_SRGB
    • GraphicsFormat::kFormatRGBA_BC7_UNorm
    • GraphicsFormat::kFormatR8_SRGB
    • GraphicsFormat::kFormatR8_UNorm
    • GraphicsFormat::kFormatR8G8_SRGB
    • GraphicsFormat::kFormatR8G8_UNorm
    • GraphicsFormat::kFormatR8G8B8_SRGB
    • GraphicsFormat::kFormatR8G8B8_UNorm
    • GraphicsFormat::kFormatR8G8B8A8_SRGB
    • GraphicsFormat::kFormatR8G8B8A8_UNorm
    • GraphicsFormat::kFormatR16_SFloat
    • GraphicsFormat::kFormatR16_UNorm
    • GraphicsFormat::kFormatR16G16_SFloat
    • GraphicsFormat::kFormatR16G16_UNorm
    • GraphicsFormat::kFormatR16G16B16A16_SFloat
    • GraphicsFormat::kFormatR16G16B16A16_UNorm
    • GraphicsFormat::kFormatR32_SFloat
    • GraphicsFormat::kFormatR32G32_SFloat
    • GraphicsFormat::kFormatR32G32B32A32_SFloat
    • GraphicsFormat::kFormatA2B10G10R10_UNormPack32
  • SVT does not support the following:

    • Mirror wrap mode.
    • Per-axis clamping (for example, repeating horizontally while clamping vertically).
    • Textures with resolutions that aren’t a power of two.
  • Textures in SVT don’t have mipmaps smaller than the tile size (128 x 128 pixels). SVT clamps the sampling to this mip, so you can see aliasing for certain content at a distance.

  • SVT supports streaming from disk only in the Player, and not in the Editor.

  • The maximum anisotropic filtering level is 8, because each tile has an 8-pixel border.

  • You cannot set textures that are part of a stack dynamically in the Player. In the Player, you cannot call Material.SetTexture or Renderer.SetPropertyBlock to modify the Texture Stack.

Unity feature compatibility

  • SVT does not support the following:

    • AssetBundles, including Addressables and Live Link.
    • Scriptable Build Pipeline (SBP) and Subscenes.
    • Crunch compression.
  • The aspect ratios of stack layers must match.

Streaming Virtual Texturing
How Streaming Virtual Texturing works