Emulate ARB_vertex_attrib_binding on replay if it's not available

* Fortunately the extension doesn't add any functionality that can't be achieved
  through the old bindings, it's just better decoupled.
* What we do is set up our own VAO attrib/binding tracking, and translate all
  the functions (old and new style) into the equivalent modifications of that
  state, then each time a change happens we flush out the attribs and bindings
  using the old attrib functions.
* We also intercept the queries to the new bindings and return the right values,
  so even if loading a capture that uses ARB_vertex_attrib_binding would work as
  expected (as all the translation to old bindings happens under the emulation
  layer).
This commit is contained in:
baldurk
2019-02-13 18:50:53 +00:00
parent 180b6f7cdc
commit f2d092640f
3 changed files with 489 additions and 9 deletions
-1
View File
@@ -21,7 +21,6 @@ Replay requirements
RenderDoc assumes a certain minimum feature set on replay. On desktop this means you must be able to create a 3.2 context with the following extensions available:
* GL_ARB_vertex_attrib_binding
* GL_ARB_program_interface_query
* GL_ARB_separate_shader_objects
* GL_ARB_sampler_objects