// // Copyright 2022 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. // #include "test_utils/ANGLETest.h" #include <vector> #include "GLSLANG/ShaderLang.h" #include "test_utils/gl_raii.h" usingnamespaceangle; class ShaderBinaryTest : public ANGLETest<> { … }; // This tests the ability to successfully create and load a shader binary. TEST_P(ShaderBinaryTest, CreateAndLoadBinary) { … } // Check invalid gl call parameters, such as providing a GL type when a shader handle is expected. TEST_P(ShaderBinaryTest, InvalidCallParams) { … } // Check attempting to get source code from a shader that was loaded with glShaderBinary. TEST_P(ShaderBinaryTest, GetSourceFromBinaryShader) { … } // Create a program from both shader source code and a binary blob. TEST_P(ShaderBinaryTest, CombineSourceAndBinaryShaders) { … } // Test that shaders loaded with glShaderBinary do not cause false hits in the program cache. TEST_P(ShaderBinaryTest, ProgramCacheWithShaderBinary) { … } class ShaderBinaryTestES31 : public ShaderBinaryTest { … }; // Test all shader stages TEST_P(ShaderBinaryTestES31, AllShaderStages) { … } // Test glShaderBinary with complex shaders TEST_P(ShaderBinaryTestES31, ComplexShader) { … } // Use this to select which configurations (e.g. which renderer, which GLES major version) these // tests should be run against. ANGLE_INSTANTIATE_TEST_ES2_AND_ES3_AND_ES31(…); GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(…); ANGLE_INSTANTIATE_TEST_ES31(…);