Difference between revisions of "LLViewerApp"
Jump to navigation
Jump to search
Steve Linden (talk | contribs) |
Steve Linden (talk | contribs) |
||
Line 8: | Line 8: | ||
= Tasks = | = Tasks = | ||
== Phase 1 == | == Phase 1 == | ||
* Create a LLViewerApp class based on LLApp | |||
* Create a LLViewerApp class based on | ** Move class initialization and parameter parsing to LLViewerApp | ||
* 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 error handling to LLViewerApp (errors set a flag and sleep, LLViewerApp generates the exception) | ** Move all debug/info/warning/error text printing to LLViewerApp | ||
* Move all debug/info/warning/error text printing to LLViewerApp | *** Print text to a buffer instead of stdio | ||
** Print text to a buffer instead of stdio | *** Send the buffer to stdio in LLViewerApp loop | ||
** 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 | * Create a LLViewerThread class based on LLThread | ||
* Move the main loop into LLViewerThread | ** Move the main loop into LLViewerThread | ||
* Eliminate viewer.cpp | |||
* Create proper C++ abstractions for any remaining code in 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 | * Add a 'watchdog' to LLViewerApp to detect infinite loops and trigger a crash | ||
* Ensure that the crash handler generates proper stack information for LLViewerThread | ** 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 == | == Phase 2 == | ||
=== LLViewerLogin === | === LLViewerLogin === |
Revision as of 16:14, 8 August 2007
Objectives
- 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
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