Edit

kc3-lang/angle/src/tests/gl_tests/ParallelShaderCompileTest.cpp

Branch :

  • Show log

    Commit

  • Author : jchen10
    Date : 2018-06-22 10:59:52
    Hash : 82af620e
    Message : ParallelCompile: Add entry points. Add the extension text, entry points and validations. BUG=chromium:849576 TEST=angle_end2end_tests Change-Id: I4c06ee30e4f4fe9bb1c1fecada747b9c78fed0ea Reviewed-on: https://chromium-review.googlesource.com/1103789 Reviewed-by: Jamie Madill <jmadill@chromium.org> Commit-Queue: Jie A Chen <jie.a.chen@intel.com>

  • src/tests/gl_tests/ParallelShaderCompileTest.cpp
  • //
    // Copyright 2018 The ANGLE Project Authors. All rights reserved.
    // Use of this source code is governed by a BSD-style license that can be
    // found in the LICENSE file.
    //
    
    // ParallelShaderCompileTest.cpp : Tests of the GL_KHR_parallel_shader_compile extension.
    
    #include "test_utils/ANGLETest.h"
    
    using namespace angle;
    
    namespace
    {
    
    class ParallelShaderCompileTest : public ANGLETest
    {
      protected:
        ParallelShaderCompileTest()
        {
            setWindowWidth(128);
            setWindowHeight(128);
            setConfigRedBits(8);
            setConfigGreenBits(8);
            setConfigBlueBits(8);
            setConfigAlphaBits(8);
        }
    
        void SetUp() override { ANGLETest::SetUp(); }
    
        void TearDown() override { ANGLETest::TearDown(); }
    
        bool ensureParallelShaderCompileExtensionAvailable()
        {
            if (extensionRequestable("GL_KHR_parallel_shader_compile"))
            {
                glRequestExtensionANGLE("GL_KHR_parallel_shader_compile");
            }
    
            if (!extensionEnabled("GL_KHR_parallel_shader_compile"))
            {
                return false;
            }
            return true;
        }
    };
    
    // Test basic functionality of GL_KHR_parallel_shader_compile
    TEST_P(ParallelShaderCompileTest, Basic)
    {
        ANGLE_SKIP_TEST_IF(!ensureParallelShaderCompileExtensionAvailable());
    
        GLint count = 0;
        glMaxShaderCompilerThreadsKHR(8);
        EXPECT_GL_NO_ERROR();
        glGetIntegerv(GL_MAX_SHADER_COMPILER_THREADS_KHR, &count);
        EXPECT_GL_NO_ERROR();
        EXPECT_EQ(8, count);
    }
    
    ANGLE_INSTANTIATE_TEST(ParallelShaderCompileTest,
                           ES2_D3D9(),
                           ES2_D3D11(),
                           ES2_D3D11_FL9_3(),
                           ES2_OPENGL(),
                           ES2_OPENGLES(),
                           ES2_VULKAN());
    
    }  // namespace