Symbols were amalgamated into a single table which worked up until recently.
This patch separates them so that there is a common list, then two separate ones
for desktop and OpenGL ES 2.0.
Similar to ARB_robustness, uses our current robustness framework. There are some
problems preventing this from being completely usable, but we can't do anything
about them yet. See the bug for more info.
In OpenGL it is allowed to try to delete a non-existent GL object, and we have code that relies on that in a fairly legitimate way, see discussion in the bug.
WGL has its own ARB_robustness implementation which we support with this patch.
I was able to confirm that it was correctly being activated and was polling
status correctly (i.e. the framework is running), but WGL itself doesn't
actually seem to stop the DoS correctly when a robust context is created.
This patch should improve performance of the robustness timer by not resetting
it each time a draw operation happens. It still checks if there's any activity
and, if not, it will stop firing it. It includes a single extra timer firing
after activity dies to make sure we don't miss anything. Also includes a fix for
robustness being marked as existing when it really isn't.