Skip EGL Image Tests if no KHR_gl_texture_2D_image
These tests segfault on my machine, Linux AMD Radeon Pro WX 3200
series Polaris12 without this change.
Bug: dawn:2206
Change-Id: I38c629e2c4fb211ebd4c64971d36aca6eea707aa
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/157924
Reviewed-by: Stephen White <senorblanco@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Auto-Submit: Gregg Tavares <gman@chromium.org>
Commit-Queue: Gregg Tavares <gman@chromium.org>
diff --git a/src/dawn/tests/white_box/EGLImageWrappingTests.cpp b/src/dawn/tests/white_box/EGLImageWrappingTests.cpp
index f54e7be..ba41b30 100644
--- a/src/dawn/tests/white_box/EGLImageWrappingTests.cpp
+++ b/src/dawn/tests/white_box/EGLImageWrappingTests.cpp
@@ -27,6 +27,7 @@
#include <EGL/egl.h>
+#include <string>
#include <utility>
#include <vector>
@@ -57,6 +58,7 @@
reinterpret_cast<PFNEGLGETCURRENTCONTEXTPROC>(LoadProc("eglGetCurrentContext"));
GetCurrentDisplay =
reinterpret_cast<PFNEGLGETCURRENTDISPLAYPROC>(LoadProc("eglGetCurrentDisplay"));
+ QueryString = reinterpret_cast<PFNEGLQUERYSTRINGPROC>(LoadProc("eglQueryString"));
}
private:
@@ -71,6 +73,7 @@
PFNEGLDESTROYIMAGEPROC DestroyImage;
PFNEGLGETCURRENTCONTEXTPROC GetCurrentContext;
PFNEGLGETCURRENTDISPLAYPROC GetCurrentDisplay;
+ PFNEGLQUERYSTRINGPROC QueryString;
private:
DynamicLib mlibEGL;
@@ -130,6 +133,16 @@
return {wgpu::FeatureName::DawnInternalUsages};
}
+ bool HasExtension(const char* string) {
+ return strstr(egl.QueryString(egl.GetCurrentDisplay(), EGL_EXTENSIONS), string) != nullptr;
+ }
+
+ void SetUp() override {
+ DawnTest::SetUp();
+ // TODO(crbug.com/dawn/2206): remove this check if possible.
+ DAWN_TEST_UNSUPPORTED_IF(!HasExtension("KHR_gl_texture_2D_image"));
+ }
+
public:
ScopedEGLImage CreateEGLImage(uint32_t width,
uint32_t height,