Enable all remaining end2end tests on OpenGL ES backend.
This enables all the tests which pass on ES 3.2.
BUG=dawn:580
Change-Id: I56fde768a917d74f24e53cd2f7367aa165c4ac4f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/34720
Commit-Queue: Stephen White <senorblanco@chromium.org>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
diff --git a/src/tests/end2end/CopyTextureForBrowserTests.cpp b/src/tests/end2end/CopyTextureForBrowserTests.cpp
index ab1b470..d326d71 100644
--- a/src/tests/end2end/CopyTextureForBrowserTests.cpp
+++ b/src/tests/end2end/CopyTextureForBrowserTests.cpp
@@ -252,6 +252,7 @@
// OpenGL tests fails because 'WriteTexture' is unimplemented.
// Related bug : crbug.com/dawn/483
DAWN_SKIP_TEST_IF(IsOpenGL());
+ DAWN_SKIP_TEST_IF(IsOpenGLES());
constexpr uint32_t kWidth = 901;
constexpr uint32_t kHeight = 1001;
@@ -273,6 +274,7 @@
// OpenGL tests fails because 'WriteTexture' is unimplemented.
// Related bug : crbug.com/dawn/483
DAWN_SKIP_TEST_IF(IsOpenGL());
+ DAWN_SKIP_TEST_IF(IsOpenGLES());
constexpr uint32_t kWidth = 1;
constexpr uint32_t kHeight = 1001;
diff --git a/src/tests/end2end/EntryPointTests.cpp b/src/tests/end2end/EntryPointTests.cpp
index 7f06009..f3795ca 100644
--- a/src/tests/end2end/EntryPointTests.cpp
+++ b/src/tests/end2end/EntryPointTests.cpp
@@ -144,4 +144,5 @@
D3D12Backend({"use_tint_generator"}),
MetalBackend(),
OpenGLBackend(),
+ OpenGLESBackend(),
VulkanBackend());
diff --git a/src/tests/end2end/FenceTests.cpp b/src/tests/end2end/FenceTests.cpp
index 34d4198..e772c62 100644
--- a/src/tests/end2end/FenceTests.cpp
+++ b/src/tests/end2end/FenceTests.cpp
@@ -260,4 +260,9 @@
WaitForCompletedValue(fence, 4);
}
-DAWN_INSTANTIATE_TEST(FenceTests, D3D12Backend(), MetalBackend(), OpenGLBackend(), VulkanBackend());
+DAWN_INSTANTIATE_TEST(FenceTests,
+ D3D12Backend(),
+ MetalBackend(),
+ OpenGLBackend(),
+ OpenGLESBackend(),
+ VulkanBackend());
diff --git a/src/tests/end2end/GpuMemorySynchronizationTests.cpp b/src/tests/end2end/GpuMemorySynchronizationTests.cpp
index e0f6631..b208810 100644
--- a/src/tests/end2end/GpuMemorySynchronizationTests.cpp
+++ b/src/tests/end2end/GpuMemorySynchronizationTests.cpp
@@ -235,6 +235,7 @@
D3D12Backend(),
MetalBackend(),
OpenGLBackend(),
+ OpenGLESBackend(),
VulkanBackend());
class StorageToUniformSyncTests : public DawnTest {
@@ -422,6 +423,7 @@
D3D12Backend(),
MetalBackend(),
OpenGLBackend(),
+ OpenGLESBackend(),
VulkanBackend());
constexpr int kRTSize = 8;
@@ -696,4 +698,5 @@
D3D12Backend(),
MetalBackend(),
OpenGLBackend(),
+ OpenGLESBackend(),
VulkanBackend());
diff --git a/src/tests/end2end/IndexFormatTests.cpp b/src/tests/end2end/IndexFormatTests.cpp
index 6163b4d..b9953e1 100644
--- a/src/tests/end2end/IndexFormatTests.cpp
+++ b/src/tests/end2end/IndexFormatTests.cpp
@@ -483,6 +483,7 @@
D3D12Backend(),
MetalBackend(),
OpenGLBackend(),
+ OpenGLESBackend(),
VulkanBackend());
DAWN_INSTANTIATE_TEST(TriangleStripPrimitiveRestartTests,
D3D12Backend(),
diff --git a/src/tests/end2end/MultisampledRenderingTests.cpp b/src/tests/end2end/MultisampledRenderingTests.cpp
index 8513dd6..c3e766d 100644
--- a/src/tests/end2end/MultisampledRenderingTests.cpp
+++ b/src/tests/end2end/MultisampledRenderingTests.cpp
@@ -1072,6 +1072,7 @@
D3D12Backend({}, {"use_d3d12_render_pass"}),
MetalBackend(),
OpenGLBackend(),
+ OpenGLESBackend(),
VulkanBackend(),
MetalBackend({"emulate_store_and_msaa_resolve"}),
MetalBackend({"always_resolve_into_zero_level_and_layer"}),
diff --git a/src/tests/end2end/MultisampledSamplingTests.cpp b/src/tests/end2end/MultisampledSamplingTests.cpp
index 1e72857..9a220ac 100644
--- a/src/tests/end2end/MultisampledSamplingTests.cpp
+++ b/src/tests/end2end/MultisampledSamplingTests.cpp
@@ -265,4 +265,5 @@
D3D12Backend(),
MetalBackend(),
OpenGLBackend(),
+ OpenGLESBackend(),
VulkanBackend());
diff --git a/src/tests/end2end/ObjectCachingTests.cpp b/src/tests/end2end/ObjectCachingTests.cpp
index d20b603..d74b80c 100644
--- a/src/tests/end2end/ObjectCachingTests.cpp
+++ b/src/tests/end2end/ObjectCachingTests.cpp
@@ -375,4 +375,5 @@
D3D12Backend(),
MetalBackend(),
OpenGLBackend(),
+ OpenGLESBackend(),
VulkanBackend());
diff --git a/src/tests/end2end/OpArrayLengthTests.cpp b/src/tests/end2end/OpArrayLengthTests.cpp
index 2d8e465..44eaa4c 100644
--- a/src/tests/end2end/OpArrayLengthTests.cpp
+++ b/src/tests/end2end/OpArrayLengthTests.cpp
@@ -91,6 +91,7 @@
// TODO(cwallez@chromium.org): The computations for length() of unsized buffer is broken on
// Nvidia OpenGL. See https://bugs.chromium.org/p/dawn/issues/detail?id=197
DAWN_SKIP_TEST_IF(IsNvidia() && IsOpenGL());
+ DAWN_SKIP_TEST_IF(IsNvidia() && IsOpenGLES());
// Create a buffer to hold the result sizes and create a bindgroup for it.
wgpu::BufferDescriptor bufferDesc;
@@ -149,6 +150,7 @@
// TODO(cwallez@chromium.org): The computations for length() of unsized buffer is broken on
// Nvidia OpenGL. See https://bugs.chromium.org/p/dawn/issues/detail?id=197
DAWN_SKIP_TEST_IF(IsNvidia() && IsOpenGL());
+ DAWN_SKIP_TEST_IF(IsNvidia() && IsOpenGLES());
utils::BasicRenderPass renderPass = utils::CreateBasicRenderPass(device, 1, 1);
@@ -206,6 +208,7 @@
// TODO(cwallez@chromium.org): The computations for length() of unsized buffer is broken on
// Nvidia OpenGL. See https://bugs.chromium.org/p/dawn/issues/detail?id=197
DAWN_SKIP_TEST_IF(IsNvidia() && IsOpenGL());
+ DAWN_SKIP_TEST_IF(IsNvidia() && IsOpenGLES());
utils::BasicRenderPass renderPass = utils::CreateBasicRenderPass(device, 1, 1);
@@ -266,4 +269,5 @@
D3D12Backend(),
MetalBackend(),
OpenGLBackend(),
+ OpenGLESBackend(),
VulkanBackend());
diff --git a/src/tests/end2end/PipelineLayoutTests.cpp b/src/tests/end2end/PipelineLayoutTests.cpp
index 5c8eeeb..4679530 100644
--- a/src/tests/end2end/PipelineLayoutTests.cpp
+++ b/src/tests/end2end/PipelineLayoutTests.cpp
@@ -63,4 +63,5 @@
D3D12Backend(),
MetalBackend(),
OpenGLBackend(),
+ OpenGLESBackend(),
VulkanBackend());
diff --git a/src/tests/end2end/PrimitiveTopologyTests.cpp b/src/tests/end2end/PrimitiveTopologyTests.cpp
index 1f0be7e..1028895 100644
--- a/src/tests/end2end/PrimitiveTopologyTests.cpp
+++ b/src/tests/end2end/PrimitiveTopologyTests.cpp
@@ -303,4 +303,5 @@
D3D12Backend(),
MetalBackend(),
OpenGLBackend(),
+ OpenGLESBackend(),
VulkanBackend());
diff --git a/src/tests/end2end/QueueTests.cpp b/src/tests/end2end/QueueTests.cpp
index 6502315..79b9f5a 100644
--- a/src/tests/end2end/QueueTests.cpp
+++ b/src/tests/end2end/QueueTests.cpp
@@ -38,6 +38,7 @@
MetalBackend(),
NullBackend(),
OpenGLBackend(),
+ OpenGLESBackend(),
VulkanBackend());
class QueueWriteBufferTests : public DawnTest {};
@@ -179,6 +180,7 @@
// that WriteTexture implementation uses a DynamicUploader which might be false in the
// case of a future OpenGL implementation.
DAWN_SKIP_TEST_IF(IsOpenGL());
+ DAWN_SKIP_TEST_IF(IsOpenGLES());
utils::UnalignDynamicUploader(device);
@@ -197,6 +199,7 @@
D3D12Backend(),
MetalBackend(),
OpenGLBackend(),
+ OpenGLESBackend(),
VulkanBackend());
// For MinimumDataSpec bytesPerRow and rowsPerImage, compute a default from the copy extent.
diff --git a/src/tests/end2end/QueueTimelineTests.cpp b/src/tests/end2end/QueueTimelineTests.cpp
index 4ff0225..e786030 100644
--- a/src/tests/end2end/QueueTimelineTests.cpp
+++ b/src/tests/end2end/QueueTimelineTests.cpp
@@ -161,4 +161,5 @@
D3D12Backend(),
MetalBackend(),
OpenGLBackend(),
+ OpenGLESBackend(),
VulkanBackend());
diff --git a/src/tests/end2end/RenderBundleTests.cpp b/src/tests/end2end/RenderBundleTests.cpp
index baf731f..90c1823 100644
--- a/src/tests/end2end/RenderBundleTests.cpp
+++ b/src/tests/end2end/RenderBundleTests.cpp
@@ -199,4 +199,5 @@
D3D12Backend(),
MetalBackend(),
OpenGLBackend(),
+ OpenGLESBackend(),
VulkanBackend());
diff --git a/src/tests/end2end/RenderPassLoadOpTests.cpp b/src/tests/end2end/RenderPassLoadOpTests.cpp
index f82f58e..43454e7 100644
--- a/src/tests/end2end/RenderPassLoadOpTests.cpp
+++ b/src/tests/end2end/RenderPassLoadOpTests.cpp
@@ -290,4 +290,5 @@
D3D12Backend(),
MetalBackend(),
OpenGLBackend(),
+ OpenGLESBackend(),
VulkanBackend());
diff --git a/src/tests/end2end/RenderPassTests.cpp b/src/tests/end2end/RenderPassTests.cpp
index cf469f3..0594aa5 100644
--- a/src/tests/end2end/RenderPassTests.cpp
+++ b/src/tests/end2end/RenderPassTests.cpp
@@ -170,4 +170,5 @@
D3D12Backend({}, {"use_d3d12_render_pass"}),
MetalBackend(),
OpenGLBackend(),
+ OpenGLESBackend(),
VulkanBackend());
diff --git a/src/tests/end2end/SamplerTests.cpp b/src/tests/end2end/SamplerTests.cpp
index fa08b80..d652c15 100644
--- a/src/tests/end2end/SamplerTests.cpp
+++ b/src/tests/end2end/SamplerTests.cpp
@@ -185,4 +185,5 @@
D3D12Backend(),
MetalBackend(),
OpenGLBackend(),
+ OpenGLESBackend(),
VulkanBackend());
diff --git a/src/tests/end2end/ScissorTests.cpp b/src/tests/end2end/ScissorTests.cpp
index 3cf0fe5..f07a4b1 100644
--- a/src/tests/end2end/ScissorTests.cpp
+++ b/src/tests/end2end/ScissorTests.cpp
@@ -159,4 +159,5 @@
D3D12Backend(),
MetalBackend(),
OpenGLBackend(),
+ OpenGLESBackend(),
VulkanBackend());
diff --git a/src/tests/end2end/SubresourceRenderAttachmentTests.cpp b/src/tests/end2end/SubresourceRenderAttachmentTests.cpp
index f3dd0ec..010376c 100644
--- a/src/tests/end2end/SubresourceRenderAttachmentTests.cpp
+++ b/src/tests/end2end/SubresourceRenderAttachmentTests.cpp
@@ -159,4 +159,5 @@
D3D12Backend({}, {"use_d3d12_render_pass"}),
MetalBackend(),
OpenGLBackend(),
+ OpenGLESBackend(),
VulkanBackend());
diff --git a/src/tests/end2end/TextureFormatTests.cpp b/src/tests/end2end/TextureFormatTests.cpp
index 66b21c5..8cb1055 100644
--- a/src/tests/end2end/TextureFormatTests.cpp
+++ b/src/tests/end2end/TextureFormatTests.cpp
@@ -460,6 +460,8 @@
// Test the BGRA8Unorm format
TEST_P(TextureFormatTest, BGRA8Unorm) {
+ // TODO(crbug.com/dawn/596): BGRA is unsupported on OpenGL ES; add workaround or validation
+ DAWN_SKIP_TEST_IF(IsOpenGLES());
uint8_t maxValue = std::numeric_limits<uint8_t>::max();
std::vector<uint8_t> textureData = {maxValue, 1, 0, maxValue};
std::vector<float> uncompressedData = {0.0f, 1.0f / maxValue, 1.0f, 1.0f};
@@ -645,6 +647,7 @@
// TODO(cwallez@chromium.org): This format doesn't exist in OpenGL, emulate it using
// RGBA8UnormSrgb and swizzling / shader twiddling
DAWN_SKIP_TEST_IF(IsOpenGL());
+ DAWN_SKIP_TEST_IF(IsOpenGLES());
uint8_t maxValue = std::numeric_limits<uint8_t>::max();
std::vector<uint8_t> textureData = {0, 1, maxValue, 64, 35, 68, 152, 168};
@@ -795,4 +798,5 @@
D3D12Backend(),
MetalBackend(),
OpenGLBackend(),
+ OpenGLESBackend(),
VulkanBackend());
diff --git a/src/tests/end2end/TextureSubresourceTests.cpp b/src/tests/end2end/TextureSubresourceTests.cpp
index b80e8ef..337d14f 100644
--- a/src/tests/end2end/TextureSubresourceTests.cpp
+++ b/src/tests/end2end/TextureSubresourceTests.cpp
@@ -147,6 +147,9 @@
// Test different mipmap levels
TEST_P(TextureSubresourceTest, MipmapLevelsTest) {
+ // TODO(crbug.com/dawn/593): This test requires glTextureView, which is unsupported on GLES.
+ DAWN_SKIP_TEST_IF(IsOpenGLES());
+
// Create a texture with 2 mipmap levels and 1 layer
wgpu::Texture texture =
CreateTexture(2, 1,
@@ -173,6 +176,8 @@
// Test different array layers
TEST_P(TextureSubresourceTest, ArrayLayersTest) {
+ // TODO(crbug.com/dawn/593): This test requires glTextureView, which is unsupported on GLES.
+ DAWN_SKIP_TEST_IF(IsOpenGLES());
// Create a texture with 1 mipmap level and 2 layers
wgpu::Texture texture =
CreateTexture(1, 2,
@@ -209,4 +214,5 @@
D3D12Backend(),
MetalBackend(),
OpenGLBackend(),
+ OpenGLESBackend(),
VulkanBackend());
diff --git a/src/tests/end2end/TextureViewTests.cpp b/src/tests/end2end/TextureViewTests.cpp
index 139e5c6..e63a0eb 100644
--- a/src/tests/end2end/TextureViewTests.cpp
+++ b/src/tests/end2end/TextureViewTests.cpp
@@ -182,6 +182,8 @@
uint32_t textureMipLevels,
uint32_t textureViewBaseLayer,
uint32_t textureViewBaseMipLevel) {
+ // TODO(crbug.com/dawn/593): This test requires glTextureView, which is unsupported on GLES.
+ DAWN_SKIP_TEST_IF(IsOpenGLES());
ASSERT(textureViewBaseLayer < textureArrayLayers);
ASSERT(textureViewBaseMipLevel < textureMipLevels);
@@ -216,6 +218,8 @@
uint32_t textureMipLevels,
uint32_t textureViewBaseLayer,
uint32_t textureViewBaseMipLevel) {
+ // TODO(crbug.com/dawn/593): This test requires glTextureView, which is unsupported on GLES.
+ DAWN_SKIP_TEST_IF(IsOpenGLES());
ASSERT(textureViewBaseLayer < textureArrayLayers);
ASSERT(textureViewBaseMipLevel < textureMipLevels);
@@ -302,6 +306,9 @@
uint32_t textureViewBaseLayer,
uint32_t textureViewLayerCount,
bool isCubeMapArray) {
+ // TODO(crbug.com/dawn/600): In OpenGL ES, cube map textures cannot be treated as arrays
+ // of 2D textures. Find a workaround.
+ DAWN_SKIP_TEST_IF(IsOpenGLES());
constexpr uint32_t kMipLevels = 1u;
initTexture(textureArrayLayers, kMipLevels);
@@ -641,12 +648,14 @@
D3D12Backend(),
MetalBackend(),
OpenGLBackend(),
+ OpenGLESBackend(),
VulkanBackend());
DAWN_INSTANTIATE_TEST(TextureViewRenderingTest,
D3D12Backend(),
MetalBackend(),
OpenGLBackend(),
+ OpenGLESBackend(),
VulkanBackend());
class TextureViewTest : public DawnTest {};
@@ -667,4 +676,5 @@
D3D12Backend(),
MetalBackend(),
OpenGLBackend(),
+ OpenGLESBackend(),
VulkanBackend());