* Unfortunately ID3D11Multithread::SetMultithreadProtected adds an auto-locking
thread safe mode for all D3D functions, so we have to add a check for it and a
lock to every context function. This will add a small amount of overhead even
when the mode isn't enabled, but it shouldn't be significant.
* 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)
* We handle 4:4:4, 4:2:2, and 4:2:0, with packed, 2-plane and 3-plane formats,
for 8, 10, 12, and 16 bit depths.
* This covers most common formats but still leaves a few out - NV11, palettised
formats, V208/V408 JPG formats.
* This could happen if the image is created mid-frame and its layout isn't
serialised out in the BeginCaptureFrame chunk, and prevents us from trying to
use an image while it's UNDEFINED.
* When we replay a draw and artificially call our loadRP renderpasses, we need
to be careful to handle the barriers to and from the expected image layouts
when the renderpass itself has layout transitions.
* 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.
* If we use a mounted network drive as the JSON path but then elevate to
register, the elevated run will not get the mounted drive but the full UNC
path. This will cause renderdoc to constantly think it needs to re-register.
* Converting to UNC first gives us a baseline comparison.
* 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