Difference between revisions of "Image Pipeline"

From Second Life Wiki
Jump to navigation Jump to search
Line 14: Line 14:
=== HTTP Image Pipeline ===
=== HTTP Image Pipeline ===
[[Image:TextureFetch.jpg]]
[[Image:TextureFetch.jpg]]
=== HTTP Image State Machine ===
# '''Load From Cache*''' Load any Image data from the local cache
# Compare the cached data with the requested discard level. If no additional data is required, skip to '''Decode Image'''
# '''Request URL''' Request a URL for the image from the simulator (Note: URL requests are batched)
# '''Wait for URL''' Idle until the URL Response is received
# '''Request Image''' Request the Image data from the server using the URL provided
# '''Wait for Image''' Idle until the Image Response is received
# '''Decode Image*''' Decode the Image
# '''Cache Image*''' Cache the Image

Revision as of 16:18, 3 September 2007

Overview

  • The Image Pipeline refers to the pipeline for fetching images for use as textures or in the User Interface.
  • 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 system 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