Common base for platform-specific implementations of GPU diagnostic buffer. The diagnostic buffer contains GPU messages (debug logs, shader asserts, etc.) and GPU progress breadcrumbs. This buffer is persistently mapped and can be accessed on CPU at any point, including after a GPU crash has been detected. Platform-specific code is responsible for allocating the actual underlying resource and binding it to shaders that need it. Diagnostic buffer functionality may be used independently of GPU breadcrumbs.