Mesh Caching test

From Second Life Wiki
Revision as of 16:00, 18 January 2011 by Kurt Linden (talk | contribs)
Jump to navigation Jump to search

Scope

The Mesh Cache saved to VFS. The purpose of this test is to confirm that Mesh data is being cached where expected and when objects are in the cache those objects are retrieved from the cache and not re-requested. Also that expected behavior is occurring when the Mesh Cache is empty and full and any performance differences when viewing cached data.

Confirm Mesh Cache Tests

Using Show Render Display

  • The Mesh Cache data can be viewed in Develop > Show Info > Show Render
  • Log into area where you are not viewing or near any meshes. Confirm the mesh cache should indicate 0 / 0 Mb read/write (or close to it)
  • Import a mesh that is is larger than 4 kb (connery.dae or duck.dae will work) and rez the object in-world to an area where there are no other objects that will be added or removed during the test.
  • In Preferences > Setup select the Reset button next to Cache location to clear the cache (requires relog)
  • After login, view the rezed mesh and observe the change in MB Mesh data received - that is the size of the mesh in MB (confirm with packet sniffing??)
  • Confirm that that amount was also written to the cache in the Read/Write section
  • Delete the object
  • Rez the same object again and confirm that no change is seen in the MB Mesh data received also no change should be seen in the MB written to the cache. Confirm that MB Mesh cache read is the equivalent of the size of the mesh minus ~4 kb - the first 4 kb are fetched and cached previously when getting the header. This would confirm (according to the values displayed in the console) that the mesh cache was being used to retrieve the mesh object. (this value seems to not be consistent, filing issue to determine if this is expected behavior) SH-811

Note: Because the first 4 kb of a mesh is fetched and cached when getting the header, if the whole mesh is under 4 kbytes subsequent loads just pull from the cache (or if some LOD of the mesh fits in the first 4 KB) and no additional data is written to the cache for that mesh. Important to take this into account when confirming expected values in the Show Render display.

  • Log out
  • Log back in to same location
  • Confirm 0 MB of mesh data is received and 0 Mb written to the cache - the amount read from the cache should be consistent with the size of the mesh minus the 4 kb header (this value seems to not be consistent, filing issue to determine if this is expected behavior) SH-811
  • Log out
  • Clear the cache
  • Log in and fly around a region with several mesh objects
  • Observe and record the values for Mesh Data received and Mesh cache read and write
  • Log out and log back in and observe roughly the same Mesh data
  • Confirm that the the Show Render console that this mesh data is being read from the cache. There may be some additional mesh data received and written to the cache if not viewing exactly the same scene as in previous session.

Using VFS

  • Log in and clear the cache
  • Log back in
  • Observe the file /Users/kurt/Library/Caches/SecondLife/index.db2.x.xxxxxxxx was reset to 0 when clearing the cache
  • Rez a mesh object and observe the size of that file increases
  • Does this correlate to Mesh data received and Mesh Cache written data ??
  • Fill the VFS (need to determine how to do this) so the mesh cache is essentially full
  • Determine Expected Behavior here

Performance

  • Fly around a region with several mesh objects present - this should load these items into the cache
  • Log out and log back in to the same region and observe the viewer performance of loading the same mesh objects
  • Clear the cache and log out
  • Log back in to the same area and view meshes in the area
  • Note any differences in performance in terms of viewer load times and how fast meshes are showing in view between cached and non-cached meshes (this may be difficult to observe - large mesh objects may reveal this improvement more?)
  • Find large mesh scenes to confirm data is being read in Show Render display and not any performance issues


Show Render Display

  • To confirm Show Render info display is displaying valid data, use a packet sniffer to measure bandwidth usage between a session with an empty cache and a session with a full cache (or all objects cached?) Need to determine scope and process for this.

Meshes Linked to Prims

  • Confirm that a mesh object linked with a prim object shows the same expected values for data read and written to mesh cache.

Rigged mesh

  • Log in 2 users
  • Have one user wear a rigged mesh such as simplebot.dae
  • Confirm that another user viewing the rigged mesh shows Mesh data received and data written to Mesh Cache in Show Render Display
  • Confirm that the user wearing the mesh also sees Mesh data received and data written to Mesh Cache in Show Render Display