When selecting a draw with a tessellation evaluation shader using
layout(quads), RenderDoc would emit an "Unexpected output topology"
error.
Additional changes:
* Fixes a typo in the VK_EXT_transform_feedback name in various debug
prints.
* Renames the "GS Out" 3D View tab in the Mesh Viewer to "GS/DS Out",
to match the corresponding table. This affects all APIs.
* This is completely invalid but better than crashing. This can happen as a
race-condition if the user injects into a running program that's already using
GL on one thread, before we've completed installing our hooks.
- Add VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP as a pNext to
ignore for VkPresentInfoKHR
- Remove RDCASSERT for pPresentInfo->pNext to be null, since it
can be not null, and there is a loop above the assert that checks
the pNext term.
- Disable GL and GLES drivers on GGP
- Add flags to keep symbols in release builds. Adds
minimal debug info that preserves backtraces.
- Disable python modules and qrenderdoc for GGP
* The apk targets api level 21 which is 5.0, so it still won't install on
anything older.
* We pop up a big warning to the user the first time they try and select such a
remote host.
* When needed on windows we convert to/from UTF-8. For most places this is easy
enough, the callstack processing is now moved to store most data as UTF-8 in
the first place.
* We can't emulate true separate shader objects, but we can emulate
glProgramUniform* which we use often, and silently drop attempts to make
programs separable. Then as long as elsewhere we can avoid actually relying on
separable programs.
* This will need to be used in combination with ARB_program_interface_query
emulation, but it's unlikely that that extension is available but
ARB_separate_shader_objects isn't.
`vkCmdFillBuffer` and `vkCmdUpdateBuffer` each replace the contents of the
buffer in the specified interval, so this should be treated as a CompleteWrite.
* This is most commonly caused by the application deleting a buffer bound to a
VAO and then drawing with the VAO. For unknown wild reasons this is actually
valid according to the GL spec but actually handling it correctly is
prohibitively expensive and not worth it.
* We cache the expensive check for draw validity while loading to reduce the
cost of this per-draw detection.