Replay each drawcall with correct state
Create a texture to store before/after values as we go along

* In the case where blending is disabled this gives us the passing shader
  output value (when blending is enabled we need to get the in between
  fragments, if any.
Check whether tests are on/off and detect trivial test failures
Add uint8_t -> float SRGB conversion function (using LUT)
Interpret/convert pixel values as appropriate to fully expanded form
For each matching event determine which tests it fails (if any).