Commit c38879910b50b96e76396b29a05b61891e20e71f

Tim Van Patten 2021-02-03T13:52:32

Capture/Replay Don't capture invalid commands Special Forces Group 2 issues invalid OpenGL ES commands, which are currently captured by ANGLE's frame capture. These invalid commands generate errors on both ANGLE and the native driver, causing the test to be marked as "failed". This CL updates FrameCapture::captureCall() to not capture invalid commands, which prevents replay errors. However, the other work related to the call is still performed, including: - maybeOverrideEntryPoint() - maybeCapturePreCallUpdates() - maybeCapturePostCallUpdates() This work is necessary, otherwise calls that update necessary members like FrameCapture::mClientArraySizes may be missed, causing leading to compilation failures related to missing symbols. For example, mClientArraySizes is updated via the following call stack: captureClientArraySnapshot() maybeCaptureDrawArraysClientData() maybeCapturePreCallUpdates() It's necessary for mClientArraySizes to contain non-zero values, so that the variable gClientArrays[] is output by WriteCppReplayIndexFiles(). Otherwise a compilation error will occur when it's referenced by a glVertexAttribPointer() call in the capture. Bug: angleproject:5592 Change-Id: I625a074e035eb75267d8384dc61ce6de1717af91 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2673068 Commit-Queue: Tim Van Patten <timvp@google.com> Reviewed-by: Jamie Madill <jmadill@chromium.org> Reviewed-by: Cody Northrop <cnorthrop@google.com>