Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(191)

Unified Diff: gpu/command_buffer/tests/gl_program_unittest.cc

Issue 1143393007: Teach GPU command buffer whether a context is webgl. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: gpu/command_buffer/tests/gl_program_unittest.cc
diff --git a/gpu/command_buffer/tests/gl_program_unittest.cc b/gpu/command_buffer/tests/gl_program_unittest.cc
index c0abb12aa81688a9d60fd55ebca18f6e92bc8fee..ef11ae4955fbfc814956c03ff1c8167dce24f2b5 100644
--- a/gpu/command_buffer/tests/gl_program_unittest.cc
+++ b/gpu/command_buffer/tests/gl_program_unittest.cc
@@ -25,6 +25,15 @@ class GLProgramTest : public testing::Test {
GLManager gl_;
};
+class WebGLProgramTest : public GLProgramTest {
+ protected:
+ void SetUp() override {
+ GLManager::Options options;
+ options.webgl_version = 1;
+ gl_.Initialize(options);
+ }
+};
+
TEST_F(GLProgramTest, GetSetUniform) {
static const char* v_shader_str = SHADER(
attribute vec4 a_vertex;
@@ -189,7 +198,7 @@ TEST_F(GLProgramTest, UniformsInCurrentProgram) {
GLTestHelper::CheckGLError("no errors", __LINE__);
}
-TEST_F(GLProgramTest, DeferCompileWithExt) {
+TEST_F(WebGLProgramTest, DeferCompileWithExt) {
// This test must have extensions enabled.
gles2::ContextGroup* context_group = gl_.decoder()->GetContextGroup();
gles2::FeatureInfo* feature_info = context_group->feature_info();
@@ -212,16 +221,7 @@ TEST_F(GLProgramTest, DeferCompileWithExt) {
}
)";
- // First compile and link to be shader compiles.
- GLuint vs_good = GLTestHelper::CompileShader(GL_VERTEX_SHADER, v_shdr_str);
- GLuint fs_good = GLTestHelper::CompileShader(GL_FRAGMENT_SHADER, f_shdr_str);
- GLuint program_good = GLTestHelper::LinkProgram(vs_good, fs_good);
- GLint linked_good = 0;
- glGetProgramiv(program_good, GL_LINK_STATUS, &linked_good);
- EXPECT_NE(0, linked_good);
-
- // Disable extension and be sure shader no longer compiles.
- ASSERT_TRUE(glEnableFeatureCHROMIUM("webgl_enable_glsl_webgl_validation"));
+ // Extension is disabled by default and be sure shader does not compile.
GLuint vs_bad = GLTestHelper::CompileShader(GL_VERTEX_SHADER, v_shdr_str);
GLuint fs_bad = GLTestHelper::CompileShader(GL_FRAGMENT_SHADER, f_shdr_str);
GLuint program_bad = GLTestHelper::LinkProgram(vs_bad, fs_bad);
@@ -229,26 +229,18 @@ TEST_F(GLProgramTest, DeferCompileWithExt) {
glGetProgramiv(program_bad, GL_LINK_STATUS, &linked_bad);
EXPECT_EQ(0, linked_bad);
- // Relinking good compilations without extension disabled should still link.
- GLuint program_defer_good = GLTestHelper::LinkProgram(vs_good, fs_good);
- GLint linked_defer_good = 0;
- glGetProgramiv(program_defer_good, GL_LINK_STATUS, &linked_defer_good);
- EXPECT_NE(0, linked_defer_good);
-
// linking bad compilations with extension enabled should still not link.
- GLuint vs_bad2 = GLTestHelper::CompileShader(GL_VERTEX_SHADER, v_shdr_str);
- GLuint fs_bad2 = GLTestHelper::CompileShader(GL_FRAGMENT_SHADER, f_shdr_str);
glRequestExtensionCHROMIUM("GL_EXT_frag_depth");
- GLuint program_bad2 = GLTestHelper::LinkProgram(vs_bad2, fs_bad2);
- GLint linked_bad2 = 0;
- glGetProgramiv(program_bad2, GL_LINK_STATUS, &linked_bad2);
- EXPECT_EQ(0, linked_bad2);
+ program_bad = GLTestHelper::LinkProgram(vs_bad, fs_bad);
+ linked_bad = 0;
+ glGetProgramiv(program_bad, GL_LINK_STATUS, &linked_bad);
+ EXPECT_EQ(0, linked_bad);
// Be sure extension was actually turned on by recompiling.
- GLuint vs_good2 = GLTestHelper::LoadShader(GL_VERTEX_SHADER, v_shdr_str);
- GLuint fs_good2 = GLTestHelper::LoadShader(GL_FRAGMENT_SHADER, f_shdr_str);
- GLuint program_good2 = GLTestHelper::SetupProgram(vs_good2, fs_good2);
- EXPECT_NE(0u, program_good2);
+ GLuint vs_good = GLTestHelper::LoadShader(GL_VERTEX_SHADER, v_shdr_str);
+ GLuint fs_good = GLTestHelper::LoadShader(GL_FRAGMENT_SHADER, f_shdr_str);
+ GLuint program_good = GLTestHelper::SetupProgram(vs_good, fs_good);
+ EXPECT_NE(0u, program_good);
}
TEST_F(GLProgramTest, DeleteAttachedShaderLinks) {
« gpu/command_buffer/service/context_group.h ('K') | « gpu/command_buffer/tests/gl_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698