PresentMon
PresentMon copied to clipboard
Middleware Rework
#284 #275 The above 2 issues entail considerable changes to the middleware. Since the currently middleware is a placeholder created (due to time constraints) back when the V2 API was implemented, this is a good opportunity to rework it to be sustainable and scalable as originally intended.
Goals for rework:
- Share calculation logic between frame and polled systems (as well as OPM) (#275)
- Telemetry alignment middleware side (#284 #403)
- Full support of multi-adapter queries, removal of current caches and shims (#284 #404)
- Shared access and caching of intermediate frame data between frame and dynamic queries
- Robust log reporting of errors, warnings, info w/ verbose dumping of bulk calculated data
- Improved approach to navigating multiple frames for intermediate generation (here or in IPC or both)
- Middleware reports consumed metrics / tracked devices to service
- Errors are handled consistently with clear paths to recovery or failure (no ignored error conditions)
- Remove redundant caching relating to static data etc.
- Control of stat window placement from API via explicit timestamp (#474)
- Restore multi swapchain behavior
- Better architecture of the Middleware code to address the obj size limit issue and improve organization
- Eliminate the defunct virtualization (ConcreteMiddleware)