* On some GPUs the stencil output comes in all channels, not just green, and
it's unclear if this is legal or not. To be safe just mask out the green we
expect.
* The python we were using on trusty was EOL and so breaking in sphinx. Rather
than continuing on trusty, we upgrade to bionic and deliberately target gcc-5
and clang-3.8 (the only thing we care about being old/minspec to ensure we
don't break it).
* This is needed particularly for integer textures which are incomplete if
sampled (even with a non-sampling instruction) with the default LINEAR
filtering.
* Previously if a handle was reused, and then a stale descriptor referencing the
old handle was removed it would remove the *new* object from the list of
referenced resources. This could cause a resource to be not included in a
capture if nothing else added a new reference.
* When the renderpass has an initialLayout = UNDEFINED, that applies to the
whole resource on 3D textures even if we're only rendering to a slice at a
time
* On all APIs structs are aligned up to 16-byte alignment, and on D3D as with
arrays then elements coming after the struct can be packed into the padding
after the last struct element.
* These tests ensure that texture rendering works correctly for all different
types of texture types, and for all formats, across different APIs, including
across a remote-proxy connection.
* Subresource handling is more consistent - we pass around a struct now that
contains the array slice, mip level, and sample. We remove the concept of
'MSAA textures count samples as extra slices within the real slices' and
internalise that completely. This also means we have a consistent set
everywhere that we need to refer to a subresource.
* Functions that used to be in the ReplayOutput and use a couple of implicit
parameters from the texture viewer configuration are now in the
ReplayController and take them explicitly. This includes GetMinMax,
GetHistogram, and PickPixel.
* Since these functions aren't ReplayOutput relative, if you want to decode the
custom shader texture or the overlay texture you need to pass that ID
directly.
* We assume that fxc won't output a denormalised float in the bytecode, and this
prevents us from flushing integer inputs to otherwise flushable float-type
operations