Image Pipeline

From Second Life Wiki
Jump to navigation Jump to search

Overview

  • The Image Pipeline refers to the pipeline for fetching images and decoding them into textures.
  • The image pipeline consists of the following steps:
    • Request for image data
    • Retrieval of image data from the local cache if available
    • Retrieval of image data from the servers if required
    • Decompression of the image data into texture data for use by the graphics system

System Overview

Local Texture Caching

Simulator Pipeline

  • The current system for fetching images from the servers goes through the simulator using UDP.
  • This system is not well documented and will be replaced by the HTTP Image Pipeline

HTTP Image Pipeline

TextureFetch.jpg

HTTP Image State Machine

  1. Load From Cache* Load any Image data from the local cache
  2. Compare the cached data with the requested discard level. If no additional data is required, skip to Decode Image
  3. Request URL Request a URL for the image from the simulator (Note: URL requests are batched)
  4. Wait for URL Idle until the URL Response is received
  5. Request Image Request the Image data from the server using the URL provided
  6. Wait for Image Idle until the Image Response is received
  7. Decode Image* Decode the Image
  8. Cache Image* Cache the Image
  • Note: These steps are actually implemented using an asynchronous request / response pattern, but because this is internal to the client, that is not illustrated here.