Capture/Replay: Force validation on when capturing
Genshin Impact is using EGL_KHR_create_context_no_error to create a
context that exposes GL_KHR_no_error. If it successfully creates
the context, it sends down call sequences that check query
results available immediately after genning query objects:
glGenQueries(1, reinterpret_cast<GLuint *>(gReadBuffer));
UpdateQueryID(415, 0);
glGetQueryObjectuiv(gQueryMap[415], GL_QUERY_RESULT_AVAILABLE, ...);
This throws errors on every platform I have access to, with either
native or ANGLE as the driver. The spec is ambiguous as to whether
this should cause an error, but practically we can't allow this if we
want error free playback of traces.
To support this, we will force validation on in the context when
FrameCapture is enabled. When the app submits invalid calls, they
will be dropped by FrameCapture.
Test: Genshin Impact MEC
Bug: b/181794064
Change-Id: If882d27d74661cd95bc23687eff3056a0f64e3cc
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2921068
Commit-Queue: Cody Northrop <cnorthrop@google.com>
Reviewed-by:
Tim Van Patten <timvp@google.com>
Reviewed-by:
Jamie Madill <jmadill@chromium.org>
Showing
Please
register
or
sign in
to comment