* This is better than testing by platform/platform version, because we can check
specifically for extensions and avoid running a test we know will fail because
extensions aren't supported.
* Instead of only doing a very lightweight check to see if the API is available
up-front, we now share the API initialisation among all API tests far enough
to determine availability of extensions, features, etc. Then we can precisely
determine which tests are available and which aren't before running.
* This is primarily around initial states - either a resource which is from a
previous frame and maybe wasn't dirtied and needs initial states created for
it when it's modified mid-frame, or a resource that's created and destroyed
all within one frame.
* We also fix a number of issues that could cause incorrect formats to be
generated.
* Test cases added for D3D11/GL/Vulkan to test different struct types. These
aren't automated at the moment because most of the code they're testing is in
the UI itself.
* We also pick the output pixel in the CBuffer_Zoo tests to ensure the API
agrees with our interpretation of the data.
* Follow-up commit will tidy D3D cbuffer code that needs it.
* This is the only way in GL to do rendering from one mip to another. We handle
it and display the whole texture even if it's temporarily constricted, and
display the mip state in the pipeline viewer.
* If the mip state is constricted at the start of the frame capture, only mips
0..MAX will be visible at all and other mips will be assumed to not be valid.
* Where available - on Win8+ basically. On win7 the video doesn't play (but most
of the demo also doesn't work, so that's not much change).
* Added a short 10kb clip from Caminandes (http://www.caminandes.com/sharing)
* If we create in a bare pointer then just cast to a smart pointer, it adds a
ref instead of stealing it. Just only allow creating smart pointers in the
first place.
* This is kind of a "damned if you do, damned if you don't" situation. If the
cullmode is wrong, having it show up as failures in depth/stencil overlays is
misleading. However if the cullmode is deliberate setting it to no-cull may
ruin the results of those overlays.
* The original behaviour of leaving cullmode as is ends up being a better
tradeoff, since at least when it is misleading you can use the culling overlay
to show the failure there. If culling is disabled it makes depth/stencil
overlays useless in situations with no recourse.
* Also add a test of a depth-clipped triangle to overlay tests
* Built entirely independently of the main renderdoc build (for now).
* Contains python scripts & framework for running tests on a renderdoc build,
which will be run nightly.