From fa62122c984366569acbf85e0ec3e083fba23676 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Sat, 16 Mar 2019 12:30:30 +0100 Subject: [PATCH] GL: add XFAIL to some well-known failures with Intel Windows drivers. --- src/Magnum/GL/Test/FramebufferGLTest.cpp | 5 +++++ src/Magnum/GL/Test/MeshGLTest.cpp | 12 ++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/Magnum/GL/Test/FramebufferGLTest.cpp b/src/Magnum/GL/Test/FramebufferGLTest.cpp index c8bdb2761..2d3e409b8 100644 --- a/src/Magnum/GL/Test/FramebufferGLTest.cpp +++ b/src/Magnum/GL/Test/FramebufferGLTest.cpp @@ -2148,6 +2148,11 @@ void FramebufferGLTest::implementationColorReadFormat() { PixelFormat format = framebuffer.implementationColorReadFormat(); PixelType type = framebuffer.implementationColorReadType(); + + #ifdef CORRADE_TARGET_WINDOWS + CORRADE_EXPECT_FAIL_IF((Context::current().detectedDriver() & Context::DetectedDriver::IntelWindows) && data.renderbufferFormat != RenderbufferFormat::RGBA8, + "Framebuffer format queries on Intel Windows drivers are broken beyond repair for any non-trivial value."); + #endif MAGNUM_VERIFY_NO_GL_ERROR(); CORRADE_COMPARE(format, data.expectedFormat); CORRADE_COMPARE(type, data.expectedType); diff --git a/src/Magnum/GL/Test/MeshGLTest.cpp b/src/Magnum/GL/Test/MeshGLTest.cpp index 097fa5366..9d27f72f7 100644 --- a/src/Magnum/GL/Test/MeshGLTest.cpp +++ b/src/Magnum/GL/Test/MeshGLTest.cpp @@ -1071,7 +1071,11 @@ void MeshGLTest::addVertexBufferMatrixNxNd() { MAGNUM_VERIFY_NO_GL_ERROR(); { - CORRADE_EXPECT_FAIL_IF(Context::current().detectedDriver() & (Context::DetectedDriver::Amd|Context::DetectedDriver::NVidia), "Somehow only first two values are extracted"); + auto drivers = Context::DetectedDriver::Amd|Context::DetectedDriver::NVidia; + #ifdef CORRADE_TARGET_WINDOWS + drivers |= Context::DetectedDriver::IntelWindows; + #endif + CORRADE_EXPECT_FAIL_IF(Context::current().detectedDriver() & drivers, "Somehow only first two values are extracted on AMD, NVidia and Intel Windows drivers."); CORRADE_COMPARE(value, Math::Vector3(315, 65201, 2576)); } @@ -1169,7 +1173,11 @@ void MeshGLTest::addVertexBufferMatrixMxNd() { MAGNUM_VERIFY_NO_GL_ERROR(); { - CORRADE_EXPECT_FAIL_IF(Context::current().detectedDriver() & (Context::DetectedDriver::Amd|Context::DetectedDriver::NVidia), "Somehow only first two values are extracted"); + auto drivers = Context::DetectedDriver::Amd|Context::DetectedDriver::NVidia; + #ifdef CORRADE_TARGET_WINDOWS + drivers |= Context::DetectedDriver::IntelWindows; + #endif + CORRADE_EXPECT_FAIL_IF(Context::current().detectedDriver() & drivers, "Somehow only first two values are extracted on AMD, NVidia and Intel Windows drivers."); CORRADE_COMPARE(value, Math::Vector3(315, 65201, 2576)); }