Here is a list of all supported features in GLAVE, followed by a TODO list of features that we'd like to add soon in the development process. We've also listed the features that we'd "like to have" in the future, but don't have a short-term plan to implement.
Feel Free to vote things up in the lists, attempt to implement them yourself, or add to the list!
As you complete an item, please copy / paste it into the SUPPORTED FEATURES section.
SUPPORTED FEATURES
- Generating & loading traces
- Replay traces within the UI w/ pause, continue, stop ability
- Timeline shows CPU time of each API call
- API entrypoints names & parameters displayed in UI
- Tracing and replay standard output gets directed to Output window
- Plugin-based UI allows for extensibility to other APIs
- Search API Call Tree
- API Call Tree Enhancements:
- Draw call navigation buttons
- Draw calls are shown in bold font
- Export API Calls as Text file
TODO LIST
- Hide / show columns on API Call Tree
- Additional replay support:
- Auto-pause on Validation layer error or warning
- Single-step the replay
- Timeline pointer gets updated in real-time of replayed API call
- I (PeterLValve) implemented this locally, but the performance cost to update the UI was not worthwhile. This should be revisited once the replay is actually performed in a different thread.
- Run the replay in a separate thread from the UI
- Pop-out replay window to be floating so it can replay at larger dimensions
- Settings dialog
- State dependency graph at selected API Call
- Group API Calls by:
- Frame boundary
- API-specific debug groups
- Command Buffer Submission
- Render vs State calls
- Trace Thread ID
- Saving 'session' data:
- Capture state from replay
- Rewind the replay
- Custom viewers of each state type
- Per API entrypoint call stacks
- Collect and display machine information
- 64-bit build supports 32-bit trace files
- Timeline enhancements:
- Pan & Zoom
- Click call will cause API Call Tree to highlight call
- Optimize trace file loading by memory-mapping the file
LIKE TO HAVE FUTURE FEATURE IDEAS
- Export trace file into *.cpp/h files that compile into a runnable application
- Editing, adding, removal of API calls
- Shader editing
- Hyperlink API Call Tree to state-specific windows