blob: 1117fa59572cb0a5f423fbd342201a685a508dd7 [file] [log] [blame]
jchen1082af6202018-06-22 10:59:52 +08001//
2// Copyright 2018 The ANGLE Project Authors. All rights reserved.
3// Use of this source code is governed by a BSD-style license that can be
4// found in the LICENSE file.
5//
6
7// ParallelShaderCompileTest.cpp : Tests of the GL_KHR_parallel_shader_compile extension.
8
9#include "test_utils/ANGLETest.h"
10
11using namespace angle;
12
13namespace
14{
15
16class ParallelShaderCompileTest : public ANGLETest
17{
18 protected:
19 ParallelShaderCompileTest()
20 {
21 setWindowWidth(128);
22 setWindowHeight(128);
23 setConfigRedBits(8);
24 setConfigGreenBits(8);
25 setConfigBlueBits(8);
26 setConfigAlphaBits(8);
27 }
28
29 void SetUp() override { ANGLETest::SetUp(); }
30
31 void TearDown() override { ANGLETest::TearDown(); }
32
33 bool ensureParallelShaderCompileExtensionAvailable()
34 {
35 if (extensionRequestable("GL_KHR_parallel_shader_compile"))
36 {
37 glRequestExtensionANGLE("GL_KHR_parallel_shader_compile");
38 }
39
40 if (!extensionEnabled("GL_KHR_parallel_shader_compile"))
41 {
42 return false;
43 }
44 return true;
45 }
46};
47
48// Test basic functionality of GL_KHR_parallel_shader_compile
49TEST_P(ParallelShaderCompileTest, Basic)
50{
51 ANGLE_SKIP_TEST_IF(!ensureParallelShaderCompileExtensionAvailable());
52
53 GLint count = 0;
54 glMaxShaderCompilerThreadsKHR(8);
55 EXPECT_GL_NO_ERROR();
56 glGetIntegerv(GL_MAX_SHADER_COMPILER_THREADS_KHR, &count);
57 EXPECT_GL_NO_ERROR();
58 EXPECT_EQ(8, count);
59}
60
61ANGLE_INSTANTIATE_TEST(ParallelShaderCompileTest,
62 ES2_D3D9(),
63 ES2_D3D11(),
64 ES2_D3D11_FL9_3(),
65 ES2_OPENGL(),
66 ES2_OPENGLES(),
67 ES2_VULKAN());
68
69} // namespace