Capture/Replay: recreate the EGL window if contexts don't match

In addition enable affected tests.

Bug: angleproject:5955
Change-Id: I4fb72e38a633daa4565d3c0ae7cddb6ace7226f1
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2891775
Commit-Queue: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Cody Northrop <cnorthrop@google.com>
This commit is contained in:
Gert Wollny 2021-05-12 12:07:42 +02:00 коммит произвёл Commit Bot
Родитель 2303f19cb0
Коммит ee2f330203
4 изменённых файлов: 14 добавлений и 1 удалений

Просмотреть файл

@ -62,6 +62,13 @@ class CaptureReplayTests
mOSWindow->disableErrorMessageDialog();
mOSWindow->setVisible(true);
if (mEGLWindow && !mEGLWindow->isContextVersion(testTraceInfo.replayContextMajorVersion,
testTraceInfo.replayContextMinorVersion))
{
EGLWindow::Delete(&mEGLWindow);
mEGLWindow = nullptr;
}
if (!mEGLWindow)
{
mEGLWindow = EGLWindow::New(testTraceInfo.replayContextMajorVersion,

Просмотреть файл

@ -25,7 +25,6 @@ SimpleOperationTest.ClearAndSwap/*
SimpleOperationTest.DrawQuadAndSwap/*
# Crashed tests
BlendMinMaxTest.*
BlitFramebufferANGLETest.*
BufferDataTest.*
ClipDistanceTest.*

Просмотреть файл

@ -90,6 +90,11 @@ EGLContext EGLWindow::getContext() const
return mContext;
}
bool EGLWindow::isContextVersion(EGLint glesMajorVersion, EGLint glesMinorVersion) const
{
return mClientMajorVersion == glesMajorVersion && mClientMinorVersion == glesMinorVersion;
}
bool EGLWindow::initializeGL(OSWindow *osWindow,
angle::Library *glWindowingLibrary,
angle::GLESDriverType driverType,

Просмотреть файл

@ -112,6 +112,8 @@ class ANGLE_UTIL_EXPORT EGLWindow : public GLWindowBase
EGLSurface getSurface() const;
EGLContext getContext() const;
bool isContextVersion(EGLint glesMajorVersion, EGLint glesMinorVersion) const;
// Internally initializes the Display, Surface and Context.
bool initializeGL(OSWindow *osWindow,
angle::Library *glWindowingLibrary,