Commit b8d2664f by Yuly Novikov Committed by Commit Bot

Run angle_perftests on GLES backend

Adds OPENGLES_NULL configuration and selects between OPENGL and OPENGLES based on whether building for Android. Also 2 small changes to get the newly enabled tests to pass on N5X: 1. Require GL_EXT_texture_storage in TexSubImage test 2. Limit numVertexUniforms and numFragmentUniforms to 64 in MatrixUniforms test BUG=675997 Change-Id: I5439e5fb7e93b3a928f12594761115d56f60d81b Reviewed-on: https://chromium-review.googlesource.com/748522 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org>
parent 526543cb
...@@ -184,10 +184,10 @@ BindingsParams D3D9Params(AllocationStyle allocationStyle) ...@@ -184,10 +184,10 @@ BindingsParams D3D9Params(AllocationStyle allocationStyle)
return params; return params;
} }
BindingsParams OpenGLParams(AllocationStyle allocationStyle) BindingsParams OpenGLOrGLESParams(AllocationStyle allocationStyle)
{ {
BindingsParams params; BindingsParams params;
params.eglParameters = egl_platform::OPENGL_NULL(); params.eglParameters = egl_platform::OPENGL_OR_GLES(true);
params.allocationStyle = allocationStyle; params.allocationStyle = allocationStyle;
return params; return params;
} }
...@@ -202,7 +202,7 @@ ANGLE_INSTANTIATE_TEST(BindingsBenchmark, ...@@ -202,7 +202,7 @@ ANGLE_INSTANTIATE_TEST(BindingsBenchmark,
D3D11Params(AT_INITIALIZATION), D3D11Params(AT_INITIALIZATION),
D3D9Params(EVERY_ITERATION), D3D9Params(EVERY_ITERATION),
D3D9Params(AT_INITIALIZATION), D3D9Params(AT_INITIALIZATION),
OpenGLParams(EVERY_ITERATION), OpenGLOrGLESParams(EVERY_ITERATION),
OpenGLParams(AT_INITIALIZATION)); OpenGLOrGLESParams(AT_INITIALIZATION));
} // namespace angle } // namespace angle
...@@ -368,10 +368,10 @@ BufferSubDataParams BufferUpdateD3D9Params() ...@@ -368,10 +368,10 @@ BufferSubDataParams BufferUpdateD3D9Params()
return params; return params;
} }
BufferSubDataParams BufferUpdateOpenGLParams() BufferSubDataParams BufferUpdateOpenGLOrGLESParams()
{ {
BufferSubDataParams params; BufferSubDataParams params;
params.eglParameters = egl_platform::OPENGL(); params.eglParameters = egl_platform::OPENGL_OR_GLES(false);
params.vertexType = GL_FLOAT; params.vertexType = GL_FLOAT;
params.vertexComponentCount = 4; params.vertexComponentCount = 4;
params.vertexNormalized = GL_FALSE; params.vertexNormalized = GL_FALSE;
...@@ -384,7 +384,8 @@ TEST_P(BufferSubDataBenchmark, Run) ...@@ -384,7 +384,8 @@ TEST_P(BufferSubDataBenchmark, Run)
} }
ANGLE_INSTANTIATE_TEST(BufferSubDataBenchmark, ANGLE_INSTANTIATE_TEST(BufferSubDataBenchmark,
BufferUpdateD3D11Params(), BufferUpdateD3D9Params(), BufferUpdateD3D11Params(),
BufferUpdateOpenGLParams()); BufferUpdateD3D9Params(),
BufferUpdateOpenGLOrGLESParams());
} // namespace } // namespace
...@@ -106,9 +106,9 @@ ANGLE_INSTANTIATE_TEST(DrawCallPerfBenchmark, ...@@ -106,9 +106,9 @@ ANGLE_INSTANTIATE_TEST(DrawCallPerfBenchmark,
DrawCallPerfD3D11Params(false, false), DrawCallPerfD3D11Params(false, false),
DrawCallPerfD3D11Params(true, false), DrawCallPerfD3D11Params(true, false),
DrawCallPerfD3D11Params(true, true), DrawCallPerfD3D11Params(true, true),
DrawCallPerfOpenGLParams(false, false), DrawCallPerfOpenGLOrGLESParams(false, false),
DrawCallPerfOpenGLParams(true, false), DrawCallPerfOpenGLOrGLESParams(true, false),
DrawCallPerfOpenGLParams(true, true), DrawCallPerfOpenGLOrGLESParams(true, true),
DrawCallPerfValidationOnly(), DrawCallPerfValidationOnly(),
DrawCallPerfVulkanParams(false)); DrawCallPerfVulkanParams(false));
......
...@@ -59,10 +59,10 @@ DrawCallPerfParams DrawCallPerfD3D9Params(bool useNullDevice, bool renderToTextu ...@@ -59,10 +59,10 @@ DrawCallPerfParams DrawCallPerfD3D9Params(bool useNullDevice, bool renderToTextu
return params; return params;
} }
DrawCallPerfParams DrawCallPerfOpenGLParams(bool useNullDevice, bool renderToTexture) DrawCallPerfParams DrawCallPerfOpenGLOrGLESParams(bool useNullDevice, bool renderToTexture)
{ {
DrawCallPerfParams params; DrawCallPerfParams params;
params.eglParameters = useNullDevice ? OPENGL_NULL() : OPENGL(); params.eglParameters = OPENGL_OR_GLES(useNullDevice);
params.useFBO = renderToTexture; params.useFBO = renderToTexture;
return params; return params;
} }
......
...@@ -40,7 +40,7 @@ DrawCallPerfParams DrawCallPerfD3D11Params(bool useNullDevice, bool renderToText ...@@ -40,7 +40,7 @@ DrawCallPerfParams DrawCallPerfD3D11Params(bool useNullDevice, bool renderToText
DrawCallPerfParams DrawCallPerfD3D9Params(bool useNullDevice, bool renderToTexture); DrawCallPerfParams DrawCallPerfD3D9Params(bool useNullDevice, bool renderToTexture);
DrawCallPerfParams DrawCallPerfOpenGLParams(bool useNullDevice, bool renderToTexture); DrawCallPerfParams DrawCallPerfOpenGLOrGLESParams(bool useNullDevice, bool renderToTexture);
DrawCallPerfParams DrawCallPerfValidationOnly(); DrawCallPerfParams DrawCallPerfValidationOnly();
......
...@@ -175,10 +175,10 @@ DrawElementsPerfParams DrawElementsPerfD3D9Params(bool indexBufferChanged) ...@@ -175,10 +175,10 @@ DrawElementsPerfParams DrawElementsPerfD3D9Params(bool indexBufferChanged)
return params; return params;
} }
DrawElementsPerfParams DrawElementsPerfOpenGLParams(bool indexBufferChanged) DrawElementsPerfParams DrawElementsPerfOpenGLOrGLESParams(bool indexBufferChanged)
{ {
DrawElementsPerfParams params; DrawElementsPerfParams params;
params.eglParameters = angle::egl_platform::OPENGL(); params.eglParameters = angle::egl_platform::OPENGL_OR_GLES(false);
params.indexBufferChanged = indexBufferChanged; params.indexBufferChanged = indexBufferChanged;
return params; return params;
} }
...@@ -195,7 +195,7 @@ ANGLE_INSTANTIATE_TEST(DrawElementsPerfBenchmark, ...@@ -195,7 +195,7 @@ ANGLE_INSTANTIATE_TEST(DrawElementsPerfBenchmark,
DrawElementsPerfD3D11Params(true, true), DrawElementsPerfD3D11Params(true, true),
DrawElementsPerfD3D11Params(false, false), DrawElementsPerfD3D11Params(false, false),
DrawElementsPerfD3D11Params(true, false), DrawElementsPerfD3D11Params(true, false),
DrawElementsPerfOpenGLParams(false), DrawElementsPerfOpenGLOrGLESParams(false),
DrawElementsPerfOpenGLParams(true)); DrawElementsPerfOpenGLOrGLESParams(true));
} // namespace } // namespace
...@@ -344,10 +344,10 @@ InstancingPerfParams InstancingPerfD3D9Params() ...@@ -344,10 +344,10 @@ InstancingPerfParams InstancingPerfD3D9Params()
return params; return params;
} }
InstancingPerfParams InstancingPerfOpenGLParams() InstancingPerfParams InstancingPerfOpenGLOrGLESParams()
{ {
InstancingPerfParams params; InstancingPerfParams params;
params.eglParameters = OPENGL(); params.eglParameters = OPENGL_OR_GLES(false);
return params; return params;
} }
...@@ -359,6 +359,6 @@ TEST_P(InstancingPerfBenchmark, Run) ...@@ -359,6 +359,6 @@ TEST_P(InstancingPerfBenchmark, Run)
ANGLE_INSTANTIATE_TEST(InstancingPerfBenchmark, ANGLE_INSTANTIATE_TEST(InstancingPerfBenchmark,
InstancingPerfD3D11Params(), InstancingPerfD3D11Params(),
InstancingPerfD3D9Params(), InstancingPerfD3D9Params(),
InstancingPerfOpenGLParams()); InstancingPerfOpenGLOrGLESParams());
} // anonymous namespace } // anonymous namespace
...@@ -215,10 +215,10 @@ InterleavedAttributeDataParams D3D9Params() ...@@ -215,10 +215,10 @@ InterleavedAttributeDataParams D3D9Params()
return params; return params;
} }
InterleavedAttributeDataParams OpenGLParams() InterleavedAttributeDataParams OpenGLOrGLESParams()
{ {
InterleavedAttributeDataParams params; InterleavedAttributeDataParams params;
params.eglParameters = egl_platform::OPENGL(); params.eglParameters = egl_platform::OPENGL_OR_GLES(false);
return params; return params;
} }
...@@ -226,6 +226,6 @@ ANGLE_INSTANTIATE_TEST(InterleavedAttributeDataBenchmark, ...@@ -226,6 +226,6 @@ ANGLE_INSTANTIATE_TEST(InterleavedAttributeDataBenchmark,
D3D11Params(), D3D11Params(),
D3D11_9_3Params(), D3D11_9_3Params(),
D3D9Params(), D3D9Params(),
OpenGLParams()); OpenGLOrGLESParams());
} // anonymous namespace } // anonymous namespace
...@@ -128,10 +128,10 @@ LinkProgramParams LinkProgramD3D9Params() ...@@ -128,10 +128,10 @@ LinkProgramParams LinkProgramD3D9Params()
return params; return params;
} }
LinkProgramParams LinkProgramOpenGLParams() LinkProgramParams LinkProgramOpenGLOrGLESParams()
{ {
LinkProgramParams params; LinkProgramParams params;
params.eglParameters = OPENGL(); params.eglParameters = OPENGL_OR_GLES(false);
return params; return params;
} }
...@@ -143,6 +143,6 @@ TEST_P(LinkProgramBenchmark, Run) ...@@ -143,6 +143,6 @@ TEST_P(LinkProgramBenchmark, Run)
ANGLE_INSTANTIATE_TEST(LinkProgramBenchmark, ANGLE_INSTANTIATE_TEST(LinkProgramBenchmark,
LinkProgramD3D11Params(), LinkProgramD3D11Params(),
LinkProgramD3D9Params(), LinkProgramD3D9Params(),
LinkProgramOpenGLParams()); LinkProgramOpenGLOrGLESParams());
} // anonymous namespace } // anonymous namespace
...@@ -514,10 +514,11 @@ TEST_P(MultiviewCPUBoundBenchmark, Run) ...@@ -514,10 +514,11 @@ TEST_P(MultiviewCPUBoundBenchmark, Run)
} }
ANGLE_INSTANTIATE_TEST(MultiviewCPUBoundBenchmark, ANGLE_INSTANTIATE_TEST(MultiviewCPUBoundBenchmark,
NoAcceleration(egl_platform::OPENGL(), SmallWorkload()), NoAcceleration(egl_platform::OPENGL_OR_GLES(false), SmallWorkload()),
NoAcceleration(egl_platform::D3D11(), SmallWorkload()), NoAcceleration(egl_platform::D3D11(), SmallWorkload()),
SelectViewInGeometryShader(SmallWorkload()), SelectViewInGeometryShader(SmallWorkload()),
SelectViewInVertexShader(egl_platform::OPENGL(), SmallWorkload()), SelectViewInVertexShader(egl_platform::OPENGL_OR_GLES(false),
SmallWorkload()),
SelectViewInVertexShader(egl_platform::D3D11(), SmallWorkload())); SelectViewInVertexShader(egl_platform::D3D11(), SmallWorkload()));
TEST_P(MultiviewGPUBoundBenchmark, Run) TEST_P(MultiviewGPUBoundBenchmark, Run)
...@@ -526,10 +527,10 @@ TEST_P(MultiviewGPUBoundBenchmark, Run) ...@@ -526,10 +527,10 @@ TEST_P(MultiviewGPUBoundBenchmark, Run)
} }
ANGLE_INSTANTIATE_TEST(MultiviewGPUBoundBenchmark, ANGLE_INSTANTIATE_TEST(MultiviewGPUBoundBenchmark,
NoAcceleration(egl_platform::OPENGL(), BigWorkload()), NoAcceleration(egl_platform::OPENGL_OR_GLES(false), BigWorkload()),
NoAcceleration(egl_platform::D3D11(), BigWorkload()), NoAcceleration(egl_platform::D3D11(), BigWorkload()),
SelectViewInGeometryShader(BigWorkload()), SelectViewInGeometryShader(BigWorkload()),
SelectViewInVertexShader(egl_platform::OPENGL(), BigWorkload()), SelectViewInVertexShader(egl_platform::OPENGL_OR_GLES(false), BigWorkload()),
SelectViewInVertexShader(egl_platform::D3D11(), BigWorkload())); SelectViewInVertexShader(egl_platform::D3D11(), BigWorkload()));
} // anonymous namespace } // anonymous namespace
\ No newline at end of file
...@@ -212,10 +212,10 @@ PointSpritesParams D3D9Params() ...@@ -212,10 +212,10 @@ PointSpritesParams D3D9Params()
return params; return params;
} }
PointSpritesParams OpenGLParams() PointSpritesParams OpenGLOrGLESParams()
{ {
PointSpritesParams params; PointSpritesParams params;
params.eglParameters = egl_platform::OPENGL(); params.eglParameters = egl_platform::OPENGL_OR_GLES(false);
return params; return params;
} }
...@@ -226,5 +226,4 @@ TEST_P(PointSpritesBenchmark, Run) ...@@ -226,5 +226,4 @@ TEST_P(PointSpritesBenchmark, Run)
run(); run();
} }
ANGLE_INSTANTIATE_TEST(PointSpritesBenchmark, ANGLE_INSTANTIATE_TEST(PointSpritesBenchmark, D3D11Params(), D3D9Params(), OpenGLOrGLESParams());
D3D11Params(), D3D9Params(), OpenGLParams());
...@@ -90,7 +90,7 @@ std::string TexSubImageParams::suffix() const ...@@ -90,7 +90,7 @@ std::string TexSubImageParams::suffix() const
} }
TexSubImageBenchmark::TexSubImageBenchmark() TexSubImageBenchmark::TexSubImageBenchmark()
: ANGLERenderTest("TexSubImage", GetParam()), : ANGLERenderTest("TexSubImage", GetParam(), {"GL_EXT_texture_storage"}),
mProgram(0), mProgram(0),
mPositionLoc(-1), mPositionLoc(-1),
mTexCoordLoc(-1), mTexCoordLoc(-1),
...@@ -274,10 +274,10 @@ TexSubImageParams D3D9Params() ...@@ -274,10 +274,10 @@ TexSubImageParams D3D9Params()
return params; return params;
} }
TexSubImageParams OpenGLParams() TexSubImageParams OpenGLOrGLESParams()
{ {
TexSubImageParams params; TexSubImageParams params;
params.eglParameters = egl_platform::OPENGL(); params.eglParameters = egl_platform::OPENGL_OR_GLES(false);
return params; return params;
} }
...@@ -288,4 +288,4 @@ TEST_P(TexSubImageBenchmark, Run) ...@@ -288,4 +288,4 @@ TEST_P(TexSubImageBenchmark, Run)
run(); run();
} }
ANGLE_INSTANTIATE_TEST(TexSubImageBenchmark, D3D11Params(), D3D9Params(), OpenGLParams()); ANGLE_INSTANTIATE_TEST(TexSubImageBenchmark, D3D11Params(), D3D9Params(), OpenGLOrGLESParams());
...@@ -271,10 +271,10 @@ TextureSamplingParams D3D9Params() ...@@ -271,10 +271,10 @@ TextureSamplingParams D3D9Params()
return params; return params;
} }
TextureSamplingParams OpenGLParams() TextureSamplingParams OpenGLOrGLESParams()
{ {
TextureSamplingParams params; TextureSamplingParams params;
params.eglParameters = egl_platform::OPENGL(); params.eglParameters = egl_platform::OPENGL_OR_GLES(false);
return params; return params;
} }
...@@ -285,4 +285,4 @@ TEST_P(TextureSamplingBenchmark, Run) ...@@ -285,4 +285,4 @@ TEST_P(TextureSamplingBenchmark, Run)
run(); run();
} }
ANGLE_INSTANTIATE_TEST(TextureSamplingBenchmark, D3D11Params(), D3D9Params(), OpenGLParams()); ANGLE_INSTANTIATE_TEST(TextureSamplingBenchmark, D3D11Params(), D3D9Params(), OpenGLOrGLESParams());
...@@ -276,10 +276,10 @@ TexturesParams D3D9Params() ...@@ -276,10 +276,10 @@ TexturesParams D3D9Params()
return params; return params;
} }
TexturesParams OpenGLParams() TexturesParams OpenGLOrGLESParams()
{ {
TexturesParams params; TexturesParams params;
params.eglParameters = egl_platform::OPENGL_NULL(); params.eglParameters = egl_platform::OPENGL_OR_GLES(true);
return params; return params;
} }
...@@ -288,6 +288,6 @@ TEST_P(TexturesBenchmark, Run) ...@@ -288,6 +288,6 @@ TEST_P(TexturesBenchmark, Run)
run(); run();
} }
ANGLE_INSTANTIATE_TEST(TexturesBenchmark, D3D11Params(), D3D9Params(), OpenGLParams()); ANGLE_INSTANTIATE_TEST(TexturesBenchmark, D3D11Params(), D3D9Params(), OpenGLOrGLESParams());
} // namespace angle } // namespace angle
...@@ -396,8 +396,8 @@ UniformsParams MatrixUniforms(const EGLPlatformParameters &egl, DataMode dataMod ...@@ -396,8 +396,8 @@ UniformsParams MatrixUniforms(const EGLPlatformParameters &egl, DataMode dataMod
params.dataMode = dataMode; params.dataMode = dataMode;
// Reduce the number of uniforms to fit within smaller upper limits on some configs. // Reduce the number of uniforms to fit within smaller upper limits on some configs.
params.numVertexUniforms = 100; params.numVertexUniforms = 64;
params.numFragmentUniforms = 100; params.numFragmentUniforms = 64;
return params; return params;
} }
...@@ -414,9 +414,9 @@ ANGLE_INSTANTIATE_TEST(UniformsBenchmark, ...@@ -414,9 +414,9 @@ ANGLE_INSTANTIATE_TEST(UniformsBenchmark,
VectorUniforms(D3D11(), DataMode::REPEAT), VectorUniforms(D3D11(), DataMode::REPEAT),
VectorUniforms(D3D11(), DataMode::UPDATE), VectorUniforms(D3D11(), DataMode::UPDATE),
VectorUniforms(D3D11_NULL(), DataMode::UPDATE), VectorUniforms(D3D11_NULL(), DataMode::UPDATE),
VectorUniforms(OPENGL(), DataMode::UPDATE), VectorUniforms(OPENGL_OR_GLES(false), DataMode::UPDATE),
VectorUniforms(OPENGL(), DataMode::REPEAT), VectorUniforms(OPENGL_OR_GLES(false), DataMode::REPEAT),
VectorUniforms(OPENGL_NULL(), DataMode::UPDATE), VectorUniforms(OPENGL_OR_GLES(true), DataMode::UPDATE),
MatrixUniforms(D3D11(), DataMode::UPDATE), MatrixUniforms(D3D11(), DataMode::UPDATE),
MatrixUniforms(OPENGL(), DataMode::UPDATE), MatrixUniforms(OPENGL_OR_GLES(false), DataMode::UPDATE),
VectorUniforms(D3D11_NULL(), DataMode::REPEAT, ProgramMode::MULTIPLE)); VectorUniforms(D3D11_NULL(), DataMode::REPEAT, ProgramMode::MULTIPLE));
...@@ -373,6 +373,21 @@ EGLPlatformParameters OPENGLES(EGLint major, EGLint minor) ...@@ -373,6 +373,21 @@ EGLPlatformParameters OPENGLES(EGLint major, EGLint minor)
EGL_DONT_CARE); EGL_DONT_CARE);
} }
EGLPlatformParameters OPENGLES_NULL()
{
return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_OPENGLES_ANGLE, EGL_DONT_CARE,
EGL_DONT_CARE, EGL_PLATFORM_ANGLE_DEVICE_TYPE_NULL_ANGLE);
}
EGLPlatformParameters OPENGL_OR_GLES(bool useNullDevice)
{
#if defined(ANGLE_PLATFORM_ANDROID)
return useNullDevice ? OPENGLES_NULL() : OPENGLES();
#else
return useNullDevice ? OPENGL_NULL() : OPENGL();
#endif
}
EGLPlatformParameters VULKAN() EGLPlatformParameters VULKAN()
{ {
return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE); return EGLPlatformParameters(EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE);
......
...@@ -81,6 +81,9 @@ EGLPlatformParameters OPENGL_NULL(); ...@@ -81,6 +81,9 @@ EGLPlatformParameters OPENGL_NULL();
EGLPlatformParameters OPENGLES(); EGLPlatformParameters OPENGLES();
EGLPlatformParameters OPENGLES(EGLint major, EGLint minor); EGLPlatformParameters OPENGLES(EGLint major, EGLint minor);
EGLPlatformParameters OPENGLES_NULL();
EGLPlatformParameters OPENGL_OR_GLES(bool useNullDevice);
EGLPlatformParameters VULKAN(); EGLPlatformParameters VULKAN();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment