diff --git a/src/Magnum/GL/Test/CubeMapTextureGLTest.cpp b/src/Magnum/GL/Test/CubeMapTextureGLTest.cpp index 31ca434d9..c9340e36e 100644 --- a/src/Magnum/GL/Test/CubeMapTextureGLTest.cpp +++ b/src/Magnum/GL/Test/CubeMapTextureGLTest.cpp @@ -1265,9 +1265,13 @@ void CubeMapTextureGLTest::fullImageQuery() { MAGNUM_VERIFY_NO_GL_ERROR(); CORRADE_COMPARE(image.size(), Vector3i(2, 2, 6)); - CORRADE_COMPARE_AS(Containers::arrayCast(image.data()).suffix(FullPixelStorageData[testCaseInstanceId()].offset), - FullPixelStorageData[testCaseInstanceId()].data, - TestSuite::Compare::Container); + { + CORRADE_EXPECT_FAIL_IF((Context::current().detectedDriver() & Context::DetectedDriver::Mesa) && FullPixelStorageData[testCaseInstanceId()].storage != PixelStorage{}, + "Mesa drivers can't handle non-default pixel storage for full cubemap image queries."); + CORRADE_COMPARE_AS(Containers::arrayCast(image.data()).suffix(FullPixelStorageData[testCaseInstanceId()].offset), + FullPixelStorageData[testCaseInstanceId()].data, + TestSuite::Compare::Container); + } } void CubeMapTextureGLTest::fullImageQueryBuffer() { @@ -1293,8 +1297,12 @@ void CubeMapTextureGLTest::fullImageQueryBuffer() { CORRADE_COMPARE(image.size(), Vector3i(2, 2, 6)); const auto imageData = image.buffer().data(); - CORRADE_COMPARE_AS(Containers::arrayCast(imageData).suffix(FullPixelStorageData[testCaseInstanceId()].offset), - FullPixelStorageData[testCaseInstanceId()].data, TestSuite::Compare::Container); + { + CORRADE_EXPECT_FAIL_IF((Context::current().detectedDriver() & Context::DetectedDriver::Mesa) && FullPixelStorageData[testCaseInstanceId()].storage != PixelStorage{}, + "Mesa drivers can't handle non-default pixel storage for full cubemap image queries."); + CORRADE_COMPARE_AS(Containers::arrayCast(imageData).suffix(FullPixelStorageData[testCaseInstanceId()].offset), + FullPixelStorageData[testCaseInstanceId()].data, TestSuite::Compare::Container); + } } void CubeMapTextureGLTest::compressedFullImageQuery() { @@ -1320,9 +1328,13 @@ void CubeMapTextureGLTest::compressedFullImageQuery() { MAGNUM_VERIFY_NO_GL_ERROR(); CORRADE_COMPARE(image.size(), (Vector3i{4, 4, 6})); - CORRADE_COMPARE_AS(Containers::arrayCast(image.data()).suffix(CompressedFullPixelStorageData[testCaseInstanceId()].offset), - CompressedFullPixelStorageData[testCaseInstanceId()].data, - TestSuite::Compare::Container); + { + CORRADE_EXPECT_FAIL_IF((Context::current().detectedDriver() & Context::DetectedDriver::Mesa) && CompressedFullPixelStorageData[testCaseInstanceId()].storage != CompressedPixelStorage{}, + "Mesa drivers can't handle non-default pixel storage for full cubemap image queries."); + CORRADE_COMPARE_AS(Containers::arrayCast(image.data()).suffix(CompressedFullPixelStorageData[testCaseInstanceId()].offset), + CompressedFullPixelStorageData[testCaseInstanceId()].data, + TestSuite::Compare::Container); + } } void CubeMapTextureGLTest::compressedFullImageQueryBuffer() { @@ -1350,9 +1362,13 @@ void CubeMapTextureGLTest::compressedFullImageQueryBuffer() { CORRADE_COMPARE(image.size(), (Vector3i{4, 4, 6})); const auto imageData = image.buffer().data(); - CORRADE_COMPARE_AS(Containers::arrayCast(imageData).suffix(CompressedFullPixelStorageData[testCaseInstanceId()].offset), - CompressedFullPixelStorageData[testCaseInstanceId()].data, - TestSuite::Compare::Container); + { + CORRADE_EXPECT_FAIL_IF((Context::current().detectedDriver() & Context::DetectedDriver::Mesa) && CompressedFullPixelStorageData[testCaseInstanceId()].storage != CompressedPixelStorage{}, + "Mesa drivers can't handle non-default pixel storage for full cubemap image queries."); + CORRADE_COMPARE_AS(Containers::arrayCast(imageData).suffix(CompressedFullPixelStorageData[testCaseInstanceId()].offset), + CompressedFullPixelStorageData[testCaseInstanceId()].data, + TestSuite::Compare::Container); + } } #endif diff --git a/src/Magnum/GL/Test/TextureGLTest.cpp b/src/Magnum/GL/Test/TextureGLTest.cpp index 50b9cf92a..388885bc3 100644 --- a/src/Magnum/GL/Test/TextureGLTest.cpp +++ b/src/Magnum/GL/Test/TextureGLTest.cpp @@ -2148,9 +2148,13 @@ void TextureGLTest::compressedImage3D() { MAGNUM_VERIFY_NO_GL_ERROR(); CORRADE_COMPARE(image.size(), Vector3i{4}); - CORRADE_COMPARE_AS(Containers::arrayCast(image.data()).suffix(CompressedPixelStorage3DData[testCaseInstanceId()].offset), - CompressedPixelStorage3DData[testCaseInstanceId()].data, - TestSuite::Compare::Container); + { + CORRADE_EXPECT_FAIL_IF((Context::current().detectedDriver() & Context::DetectedDriver::Mesa) && CompressedPixelStorage3DData[testCaseInstanceId()].storage != CompressedPixelStorage{}, + "Mesa drivers can't handle non-default compressed 3D pixel storage."); + CORRADE_COMPARE_AS(Containers::arrayCast(image.data()).suffix(CompressedPixelStorage3DData[testCaseInstanceId()].offset), + CompressedPixelStorage3DData[testCaseInstanceId()].data, + TestSuite::Compare::Container); + } #endif } @@ -2182,9 +2186,13 @@ void TextureGLTest::compressedImage3DBuffer() { MAGNUM_VERIFY_NO_GL_ERROR(); CORRADE_COMPARE(image.size(), Vector3i{4}); - CORRADE_COMPARE_AS(Containers::arrayCast(imageData).suffix(CompressedPixelStorage3DData[testCaseInstanceId()].offset), - CompressedPixelStorage3DData[testCaseInstanceId()].data, - TestSuite::Compare::Container); + { + CORRADE_EXPECT_FAIL_IF((Context::current().detectedDriver() & Context::DetectedDriver::Mesa) && CompressedPixelStorage3DData[testCaseInstanceId()].storage != CompressedPixelStorage{}, + "Mesa drivers can't handle non-default compressed 3D pixel storage."); + CORRADE_COMPARE_AS(Containers::arrayCast(imageData).suffix(CompressedPixelStorage3DData[testCaseInstanceId()].offset), + CompressedPixelStorage3DData[testCaseInstanceId()].data, + TestSuite::Compare::Container); + } #endif } #endif @@ -2265,7 +2273,8 @@ void TextureGLTest::compressedSubImage3D() { { CORRADE_EXPECT_FAIL_IF(CompressedPixelStorage3DData[testCaseInstanceId()].storage == CompressedPixelStorage{} && (Context::current().detectedDriver() & Context::DetectedDriver::NVidia), "Default compressed pixel storage behaves weirdly with BPTC compression on NVidia."); - + CORRADE_EXPECT_FAIL_IF((Context::current().detectedDriver() & Context::DetectedDriver::Mesa), + "Mesa drivers can't handle compressed 3D pixel storage for subimages."); CORRADE_COMPARE_AS(Containers::arrayCast(image.data()), Containers::arrayView(CompressedSubData3DComplete), TestSuite::Compare::Container); @@ -2305,7 +2314,8 @@ void TextureGLTest::compressedSubImage3DBuffer() { { CORRADE_EXPECT_FAIL_IF(CompressedPixelStorage3DData[testCaseInstanceId()].storage == CompressedPixelStorage{} && (Context::current().detectedDriver() & Context::DetectedDriver::NVidia), "Default compressed pixel storage behaves weirdly with BPTC compression on NVidia."); - + CORRADE_EXPECT_FAIL_IF((Context::current().detectedDriver() & Context::DetectedDriver::Mesa), + "Mesa drivers can't handle compressed 3D pixel storage for subimages."); CORRADE_COMPARE_AS(Containers::arrayCast(imageData), Containers::arrayView(CompressedSubData3DComplete), TestSuite::Compare::Container); @@ -2343,7 +2353,8 @@ void TextureGLTest::compressedSubImage3DQuery() { { CORRADE_EXPECT_FAIL_IF(CompressedPixelStorage3DData[testCaseInstanceId()].storage == CompressedPixelStorage{} && (Context::current().detectedDriver() & Context::DetectedDriver::NVidia), "Default compressed pixel storage behaves weirdly with BPTC compression on NVidia."); - + CORRADE_EXPECT_FAIL_IF((Context::current().detectedDriver() & Context::DetectedDriver::Mesa), + "Mesa drivers can't handle compressed 3D pixel storage for subimages."); CORRADE_COMPARE_AS(Containers::arrayCast(image.data()).suffix(CompressedPixelStorage3DData[testCaseInstanceId()].offset), CompressedPixelStorage3DData[testCaseInstanceId()].data, TestSuite::Compare::Container); @@ -2379,7 +2390,8 @@ void TextureGLTest::compressedSubImage3DQueryBuffer() { { CORRADE_EXPECT_FAIL_IF(CompressedPixelStorage3DData[testCaseInstanceId()].storage == CompressedPixelStorage{} && (Context::current().detectedDriver() & Context::DetectedDriver::NVidia), "Default compressed pixel storage behaves weirdly with BPTC compression on NVidia."); - + CORRADE_EXPECT_FAIL_IF((Context::current().detectedDriver() & Context::DetectedDriver::Mesa), + "Mesa drivers can't handle compressed 3D pixel storage for subimages."); CORRADE_COMPARE_AS(Containers::arrayCast(imageData).suffix(CompressedPixelStorage3DData[testCaseInstanceId()].offset), CompressedPixelStorage3DData[testCaseInstanceId()].data, TestSuite::Compare::Container);