|
|
| (3 intermediate revisions by 2 users not shown) |
| Line 1: |
Line 1: |
| = Objectives =
| | See [[Viewer App Cleanup]] |
| * Improve the stability and maintainability of the Second Life Viewer code by cleaning up the initialization and main loop code
| |
| * Move the main loop to a separate thread so that infinite loops can be detected and debugged
| |
| = See Also =
| |
| * [[Viewer Roadmap]]
| |
| * [[User Interface Roadmap]]
| |
| | |
| = Tasks =
| |
| == Phase 1 ==
| |
| * Create a LLViewerApp class based on LLApp
| |
| ** Move class initialization and parameter parsing to LLViewerApp
| |
| ** Move all error handling to LLViewerApp (errors set a flag and sleep, LLViewerApp generates the exception)
| |
| ** Move all debug/info/warning/error text printing to LLViewerApp
| |
| *** Print text to a buffer instead of stdio
| |
| *** Send the buffer to stdio in LLViewerApp loop
| |
| *** Use a proper window for viewing console text in the Viewer
| |
| *** Move unheeded warnings to debugs
| |
| *** Clean up info messages
| |
| * Create a LLViewerThread class based on LLThread
| |
| ** Move the main loop into LLViewerThread
| |
| * Eliminate viewer.cpp
| |
| ** Create proper C++ abstractions for any remaining code in viewer.cpp
| |
| * Add a 'watchdog' to LLViewerApp to detect infinite loops and trigger a crash
| |
| ** Ensure that the crash handler generates proper stack information for LLViewerThread
| |
| ** Add a 'Debug > Test > Force Crash', 'Force Infinite Loop', and 'Force Deadlock' debug options
| |
| == Test Plan ==
| |
| * Run Second Life on all platforms. Include all available hardware configurations (Intel, AMD, PPC, single processor, dual core, dual processor)
| |
| ** Run frame rate tests and ensure that frame rate is at least 95% of current client's frame rate
| |
| * Force a crash using the debug option. Make sure that a crash report is sent.
| |
| * Force an infinite loop using the debug option. Make sure that a crash report is sent.
| |
| * Force a deadlock using the debug option. Make sure that a crash report is sent.
| |
| * Use Client > Console > Debug Console to view debug messages while running
| |
| ** Ensure that they get displayed in order
| |
| * Scan the log file after a session and look for any warnings.
| |
| ** Report any warnings that show up.
| |
| ** Check for any unhelpful info messages
| |
| | |
| == Phase 2 ==
| |
| === LLViewerLogin ===
| |
| * Abstract the login sequence into a class
| |
| === Eliminate startup.cpp ===
| |
| * Create proper C++ abstractions for startup using LLViewerLogin
| |
| === Lightweight Client ===
| |
| * Create a client that logs in to Second Life without running the 3D render pipeline
| |