From 6f5151f6572bf22c88d0b3152bebeaa460ac4723 Mon Sep 17 00:00:00 2001 From: Stephen White Date: Tue, 1 Dec 2020 21:52:37 +0000 Subject: [PATCH] Enable D* end-to-end tests on OpenGL ES backend. This is mostly the set of tests which are enabled on Desktop GL, with the exception of tests which use glTextureView() (unsupported on GLES). BUG=dawn:580 Change-Id: I1dbefa394298f7dd31d65e920f1f4efeaebe90ec Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/34520 Commit-Queue: Stephen White Reviewed-by: Austin Eng --- src/tests/end2end/DebugMarkerTests.cpp | 1 + src/tests/end2end/DeprecatedAPITests.cpp | 1 + src/tests/end2end/DepthBiasTests.cpp | 5 +++++ src/tests/end2end/DepthStencilCopyTests.cpp | 2 ++ src/tests/end2end/DepthStencilSamplingTests.cpp | 7 +++++++ src/tests/end2end/DepthStencilStateTests.cpp | 1 + src/tests/end2end/DestroyTests.cpp | 1 + src/tests/end2end/DrawIndexedIndirectTests.cpp | 2 ++ src/tests/end2end/DrawIndexedTests.cpp | 1 + src/tests/end2end/DrawIndirectTests.cpp | 1 + src/tests/end2end/DrawTests.cpp | 7 ++++++- src/tests/end2end/DynamicBufferOffsetTests.cpp | 1 + 12 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/tests/end2end/DebugMarkerTests.cpp b/src/tests/end2end/DebugMarkerTests.cpp index 1ac1a01b1d..a8c4161b2a 100644 --- a/src/tests/end2end/DebugMarkerTests.cpp +++ b/src/tests/end2end/DebugMarkerTests.cpp @@ -49,4 +49,5 @@ DAWN_INSTANTIATE_TEST(DebugMarkerTests, D3D12Backend(), MetalBackend(), OpenGLBackend(), + OpenGLESBackend(), VulkanBackend()); diff --git a/src/tests/end2end/DeprecatedAPITests.cpp b/src/tests/end2end/DeprecatedAPITests.cpp index fadc056636..0119ac9c69 100644 --- a/src/tests/end2end/DeprecatedAPITests.cpp +++ b/src/tests/end2end/DeprecatedAPITests.cpp @@ -53,6 +53,7 @@ DAWN_INSTANTIATE_TEST(DeprecationTests, MetalBackend(), NullBackend(), OpenGLBackend(), + OpenGLESBackend(), VulkanBackend()); class BufferCopyViewDeprecationTests : public DeprecationTests { diff --git a/src/tests/end2end/DepthBiasTests.cpp b/src/tests/end2end/DepthBiasTests.cpp index b01bdeb1b3..2438c5433b 100644 --- a/src/tests/end2end/DepthBiasTests.cpp +++ b/src/tests/end2end/DepthBiasTests.cpp @@ -153,6 +153,7 @@ TEST_P(DepthBiasTests, PositiveBiasOnFloat) { // OpenGL uses a different scale than the other APIs DAWN_SKIP_TEST_IF(IsOpenGL()); + DAWN_SKIP_TEST_IF(IsOpenGLES()); // Draw quad flat on z = 0.25 with 0.25 bias RunDepthBiasTest(wgpu::TextureFormat::Depth32Float, 0, QuadAngle::Flat, @@ -172,6 +173,7 @@ TEST_P(DepthBiasTests, PositiveBiasOnFloat) { TEST_P(DepthBiasTests, PositiveBiasOnFloatWithClamp) { // Clamping support in OpenGL is spotty DAWN_SKIP_TEST_IF(IsOpenGL()); + DAWN_SKIP_TEST_IF(IsOpenGLES()); // Draw quad flat on z = 0.25 with 0.25 bias clamped at 0.125. RunDepthBiasTest(wgpu::TextureFormat::Depth32Float, 0, QuadAngle::Flat, @@ -213,6 +215,7 @@ TEST_P(DepthBiasTests, NegativeBiasOnFloat) { TEST_P(DepthBiasTests, NegativeBiasOnFloatWithClamp) { // Clamping support in OpenGL is spotty DAWN_SKIP_TEST_IF(IsOpenGL()); + DAWN_SKIP_TEST_IF(IsOpenGLES()); // Draw quad flat on z = 0.25 with -0.25 bias clamped at -0.125. RunDepthBiasTest(wgpu::TextureFormat::Depth32Float, 0, QuadAngle::Flat, @@ -331,6 +334,7 @@ TEST_P(DepthBiasTests, PositiveBiasOn24bit) { TEST_P(DepthBiasTests, PositiveBiasOn24bitWithClamp) { // Clamping support in OpenGL is spotty DAWN_SKIP_TEST_IF(IsOpenGL()); + DAWN_SKIP_TEST_IF(IsOpenGLES()); // Draw quad flat on z = 0.25 with 0.25 bias clamped at 0.125. RunDepthBiasTest(wgpu::TextureFormat::Depth24PlusStencil8, 0.4f, QuadAngle::Flat, @@ -366,4 +370,5 @@ DAWN_INSTANTIATE_TEST(DepthBiasTests, D3D12Backend(), MetalBackend(), OpenGLBackend(), + OpenGLESBackend(), VulkanBackend()); diff --git a/src/tests/end2end/DepthStencilCopyTests.cpp b/src/tests/end2end/DepthStencilCopyTests.cpp index 24c52e8ce4..5591cf1999 100644 --- a/src/tests/end2end/DepthStencilCopyTests.cpp +++ b/src/tests/end2end/DepthStencilCopyTests.cpp @@ -563,6 +563,7 @@ TEST_P(DepthStencilCopyTests, T2TBothAspectsThenCopyDepthThenStencil) { TEST_P(DepthStencilCopyTests, ToStencilAspect) { // Copies to a single aspect are unsupported on OpenGL. DAWN_SKIP_TEST_IF(IsOpenGL()); + DAWN_SKIP_TEST_IF(IsOpenGLES()); // TODO(enga): Figure out why this fails on MacOS Intel Iris. // It passes on AMD Radeon Pro and Intel HD Graphics 630. @@ -674,4 +675,5 @@ DAWN_INSTANTIATE_TEST(DepthStencilCopyTests, D3D12Backend(), MetalBackend(), OpenGLBackend(), + OpenGLESBackend(), VulkanBackend()); diff --git a/src/tests/end2end/DepthStencilSamplingTests.cpp b/src/tests/end2end/DepthStencilSamplingTests.cpp index 2531df0a41..21b25043af 100644 --- a/src/tests/end2end/DepthStencilSamplingTests.cpp +++ b/src/tests/end2end/DepthStencilSamplingTests.cpp @@ -576,6 +576,8 @@ TEST_P(DepthStencilSamplingTest, SampleDepth) { // Test that sampling a stencil texture with a render/compute pipeline works TEST_P(DepthStencilSamplingTest, SampleStencil) { + // TODO(crbug.com/dawn/593): This test requires glTextureView, which is unsupported on GLES. + DAWN_SKIP_TEST_IF(IsOpenGLES()); for (wgpu::TextureFormat format : kStencilFormats) { DoSamplingTest(TestAspect::Stencil, CreateSamplingRenderPipeline({TestAspect::Stencil}, 0), format, kStencilValues); @@ -588,6 +590,8 @@ TEST_P(DepthStencilSamplingTest, SampleStencil) { // Test that sampling a depth/stencil texture at components 1, 2, and 3 yield 0, 0, and 1 // respectively TEST_P(DepthStencilSamplingTest, SampleExtraComponents) { + // TODO(crbug.com/dawn/593): This test requires glTextureView, which is unsupported on GLES. + DAWN_SKIP_TEST_IF(IsOpenGLES()); // TODO(enga): In Metal, color textures' unspecified default components values // are (0, 0, 0, 1). Depth/stencil textures are undefined! Figure out what // to do here. @@ -618,6 +622,8 @@ TEST_P(DepthStencilSamplingTest, SampleExtraComponents) { // Test sampling both depth and stencil with a render/compute pipeline works. TEST_P(DepthStencilSamplingTest, SampleDepthAndStencilRender) { + // TODO(crbug.com/dawn/593): This test requires glTextureView, which is unsupported on GLES. + DAWN_SKIP_TEST_IF(IsOpenGLES()); wgpu::SamplerDescriptor samplerDesc; wgpu::Sampler sampler = device.CreateSampler(&samplerDesc); @@ -763,4 +769,5 @@ DAWN_INSTANTIATE_TEST(DepthStencilSamplingTest, D3D12Backend(), MetalBackend(), OpenGLBackend(), + OpenGLESBackend(), VulkanBackend()); diff --git a/src/tests/end2end/DepthStencilStateTests.cpp b/src/tests/end2end/DepthStencilStateTests.cpp index bb614bfa3f..25cfaacce7 100644 --- a/src/tests/end2end/DepthStencilStateTests.cpp +++ b/src/tests/end2end/DepthStencilStateTests.cpp @@ -751,5 +751,6 @@ DAWN_INSTANTIATE_TEST(DepthStencilStateTest, D3D12Backend(), MetalBackend(), OpenGLBackend(), + OpenGLESBackend(), VulkanBackend({"vulkan_use_d32s8"}, {}), VulkanBackend({}, {"vulkan_use_d32s8"})); diff --git a/src/tests/end2end/DestroyTests.cpp b/src/tests/end2end/DestroyTests.cpp index 37440f804a..c29a456805 100644 --- a/src/tests/end2end/DestroyTests.cpp +++ b/src/tests/end2end/DestroyTests.cpp @@ -158,4 +158,5 @@ DAWN_INSTANTIATE_TEST(DestroyTest, D3D12Backend(), MetalBackend(), OpenGLBackend(), + OpenGLESBackend(), VulkanBackend()); diff --git a/src/tests/end2end/DrawIndexedIndirectTests.cpp b/src/tests/end2end/DrawIndexedIndirectTests.cpp index 14ecda5f24..76127c8c1f 100644 --- a/src/tests/end2end/DrawIndexedIndirectTests.cpp +++ b/src/tests/end2end/DrawIndexedIndirectTests.cpp @@ -122,6 +122,7 @@ TEST_P(DrawIndexedIndirectTest, BaseVertex) { // TODO(crbug.com/dawn/161): add workaround for OpenGL index buffer offset (could be compute // shader that adds it to the draw calls) DAWN_SKIP_TEST_IF(IsOpenGL()); + DAWN_SKIP_TEST_IF(IsOpenGLES()); RGBA8 filled(0, 255, 0, 255); RGBA8 notFilled(0, 0, 0, 0); @@ -163,4 +164,5 @@ DAWN_INSTANTIATE_TEST(DrawIndexedIndirectTest, D3D12Backend(), MetalBackend(), OpenGLBackend(), + OpenGLESBackend(), VulkanBackend()); diff --git a/src/tests/end2end/DrawIndexedTests.cpp b/src/tests/end2end/DrawIndexedTests.cpp index d0d1055437..760b1d1239 100644 --- a/src/tests/end2end/DrawIndexedTests.cpp +++ b/src/tests/end2end/DrawIndexedTests.cpp @@ -135,4 +135,5 @@ DAWN_INSTANTIATE_TEST(DrawIndexedTest, D3D12Backend(), MetalBackend(), OpenGLBackend(), + OpenGLESBackend(), VulkanBackend()); diff --git a/src/tests/end2end/DrawIndirectTests.cpp b/src/tests/end2end/DrawIndirectTests.cpp index 86253a7bc4..e84b25502e 100644 --- a/src/tests/end2end/DrawIndirectTests.cpp +++ b/src/tests/end2end/DrawIndirectTests.cpp @@ -126,4 +126,5 @@ DAWN_INSTANTIATE_TEST(DrawIndirectTest, D3D12Backend(), MetalBackend(), OpenGLBackend(), + OpenGLESBackend(), VulkanBackend()); diff --git a/src/tests/end2end/DrawTests.cpp b/src/tests/end2end/DrawTests.cpp index f0dc2ddcb3..bb4a0e8476 100644 --- a/src/tests/end2end/DrawTests.cpp +++ b/src/tests/end2end/DrawTests.cpp @@ -102,4 +102,9 @@ TEST_P(DrawTest, Uint32) { Test(6, 1, 0, 0, filled, filled); } -DAWN_INSTANTIATE_TEST(DrawTest, D3D12Backend(), MetalBackend(), OpenGLBackend(), VulkanBackend()); +DAWN_INSTANTIATE_TEST(DrawTest, + D3D12Backend(), + MetalBackend(), + OpenGLBackend(), + OpenGLESBackend(), + VulkanBackend()); diff --git a/src/tests/end2end/DynamicBufferOffsetTests.cpp b/src/tests/end2end/DynamicBufferOffsetTests.cpp index d60f493f32..a050d3b82a 100644 --- a/src/tests/end2end/DynamicBufferOffsetTests.cpp +++ b/src/tests/end2end/DynamicBufferOffsetTests.cpp @@ -407,4 +407,5 @@ DAWN_INSTANTIATE_TEST(DynamicBufferOffsetTests, D3D12Backend(), MetalBackend(), OpenGLBackend(), + OpenGLESBackend(), VulkanBackend());