mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-13 13:30:44 +00:00
9876b6e5cb
* Originally when I added the EXT_dsa emuluation, I targeted it specifically to only those functions that I call outside of the replay loop, for internal analysis purposes. For that reason the emulation was only applied to a separate hookset, and only during replay (not during capture). * However this doesn't account for some of the streamlined serialisation of functions like glBufferStorage, glBufferData, etc. To simplify code paths, I 'promote' all variants of these types of functions to the EXT_dsa variant (except ARB_dsa for texture functions which is actually different by not requiring the texture target parameter). * Note: most of these functions were emulated already (except three - glNamedBufferStorageEXT, glTextureBufferEXT and glTextureBufferRangeEXT) but on replay we didn't use the internal hookset, just the normal one, which was not emulated. * Rather than try to decide when these should use the internal hookset and when the regular one, or switch them all over to the internal hookset, instead re-evaluate the reason for a separate hookset in the first place: Emulating functions separately means the original func pointers are returned during capture time, for unsupported extensions. * However mesa has proven that unsupported extensions don't have to return NULL, as it's undefined what they return - they should not be called if the extension isn't available. So in actual fact there's little harm to be done by emulating in-place and returning some different pointers to the application. In the worst case, they get a bit of EXT_dsa emulation themselves.