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

Unified Diff: gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_state.cc

Issue 245923008: Optimize GLES2DecoderImpl::ApplyDirtyState. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase on refactored gles2_cmd_decoder_unittest.cc Created 6 years, 8 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/service/gles2_cmd_decoder_unittest_context_state.cc
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_state.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_state.cc
index 00154b4945edbbca5840b2c4d65da48492a29b06..49ebfc3f27a17f1fbf2e9a41b50ae6c94d947a30 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_state.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_state.cc
@@ -66,6 +66,10 @@ class GLES2DecoderRestoreStateTest : public GLES2DecoderManualInitTest {
uint32 active_unit);
};
+INSTANTIATE_TEST_CASE_P(Service,
+ GLES2DecoderRestoreStateTest,
+ ::testing::Bool());
+
void GLES2DecoderRestoreStateTest::AddExpectationsForActiveTexture(
GLenum unit) {
EXPECT_CALL(*gl_, ActiveTexture(unit)).Times(1).RetiresOnSaturation();
@@ -94,7 +98,7 @@ void GLES2DecoderRestoreStateTest::InitializeContextState(
state->active_texture_unit = active_unit;
}
-TEST_F(GLES2DecoderRestoreStateTest, NullPreviousStateBGR) {
+TEST_P(GLES2DecoderRestoreStateTest, NullPreviousStateBGR) {
InitState init;
init.gl_version = "3.0";
init.bind_generates_resource = true;
@@ -123,7 +127,7 @@ TEST_F(GLES2DecoderRestoreStateTest, NullPreviousStateBGR) {
GetDecoder()->RestoreAllTextureUnitBindings(NULL);
}
-TEST_F(GLES2DecoderRestoreStateTest, NullPreviousState) {
+TEST_P(GLES2DecoderRestoreStateTest, NullPreviousState) {
InitState init;
init.gl_version = "3.0";
InitDecoder(init);
@@ -148,7 +152,7 @@ TEST_F(GLES2DecoderRestoreStateTest, NullPreviousState) {
GetDecoder()->RestoreAllTextureUnitBindings(NULL);
}
-TEST_F(GLES2DecoderRestoreStateTest, WithPreviousStateBGR) {
+TEST_P(GLES2DecoderRestoreStateTest, WithPreviousStateBGR) {
InitState init;
init.gl_version = "3.0";
init.bind_generates_resource = true;
@@ -173,7 +177,7 @@ TEST_F(GLES2DecoderRestoreStateTest, WithPreviousStateBGR) {
GetDecoder()->RestoreAllTextureUnitBindings(&prev_state);
}
-TEST_F(GLES2DecoderRestoreStateTest, WithPreviousState) {
+TEST_P(GLES2DecoderRestoreStateTest, WithPreviousState) {
InitState init;
init.gl_version = "3.0";
InitDecoder(init);
@@ -197,7 +201,7 @@ TEST_F(GLES2DecoderRestoreStateTest, WithPreviousState) {
GetDecoder()->RestoreAllTextureUnitBindings(&prev_state);
}
-TEST_F(GLES2DecoderRestoreStateTest, ActiveUnit1) {
+TEST_P(GLES2DecoderRestoreStateTest, ActiveUnit1) {
InitState init;
init.gl_version = "3.0";
InitDecoder(init);
@@ -228,7 +232,7 @@ TEST_F(GLES2DecoderRestoreStateTest, ActiveUnit1) {
GetDecoder()->RestoreAllTextureUnitBindings(&prev_state);
}
-TEST_F(GLES2DecoderRestoreStateTest, NonDefaultUnit0BGR) {
+TEST_P(GLES2DecoderRestoreStateTest, NonDefaultUnit0BGR) {
InitState init;
init.gl_version = "3.0";
init.bind_generates_resource = true;
@@ -267,7 +271,7 @@ TEST_F(GLES2DecoderRestoreStateTest, NonDefaultUnit0BGR) {
GetDecoder()->RestoreAllTextureUnitBindings(&prev_state);
}
-TEST_F(GLES2DecoderRestoreStateTest, NonDefaultUnit1BGR) {
+TEST_P(GLES2DecoderRestoreStateTest, NonDefaultUnit1BGR) {
InitState init;
init.gl_version = "3.0";
init.bind_generates_resource = true;
@@ -300,7 +304,7 @@ TEST_F(GLES2DecoderRestoreStateTest, NonDefaultUnit1BGR) {
GetDecoder()->RestoreAllTextureUnitBindings(&prev_state);
}
-TEST_F(GLES2DecoderRestoreStateTest, DefaultUnit0) {
+TEST_P(GLES2DecoderRestoreStateTest, DefaultUnit0) {
InitState init;
init.gl_version = "3.0";
InitDecoder(init);
@@ -337,7 +341,7 @@ TEST_F(GLES2DecoderRestoreStateTest, DefaultUnit0) {
GetDecoder()->RestoreAllTextureUnitBindings(&prev_state);
}
-TEST_F(GLES2DecoderRestoreStateTest, DefaultUnit1) {
+TEST_P(GLES2DecoderRestoreStateTest, DefaultUnit1) {
InitState init;
init.gl_version = "3.0";
InitDecoder(init);
@@ -368,6 +372,44 @@ TEST_F(GLES2DecoderRestoreStateTest, DefaultUnit1) {
GetDecoder()->RestoreAllTextureUnitBindings(&prev_state);
}
+TEST_P(GLES2DecoderManualInitTest, ContextStateCapabilityCaching) {
+ struct TestInfo {
+ GLenum gl_enum;
+ bool default_state;
+ bool expect_set;
+ };
+
+ // TODO(vmiura): Should autogen this to match build_gles2_cmd_buffer.py.
+ TestInfo test[] = {{GL_BLEND, false, true},
+ {GL_CULL_FACE, false, true},
+ {GL_DEPTH_TEST, false, false},
+ {GL_DITHER, true, true},
+ {GL_POLYGON_OFFSET_FILL, false, true},
+ {GL_SAMPLE_ALPHA_TO_COVERAGE, false, true},
+ {GL_SAMPLE_COVERAGE, false, true},
+ {GL_SCISSOR_TEST, false, true},
+ {GL_STENCIL_TEST, false, false},
+ {0, false, false}};
+
+ InitState init;
+ init.gl_version = "2.1";
+ InitDecoder(init);
+
+ for (int i = 0; test[i].gl_enum; i++) {
+ bool enable_state = test[i].default_state;
+
+ // Test setting default state initially is ignored.
+ EnableDisableTest(test[i].gl_enum, enable_state, test[i].expect_set);
+
+ // Test new and cached state changes.
+ for (int n = 0; n < 3; n++) {
+ enable_state = !enable_state;
+ EnableDisableTest(test[i].gl_enum, enable_state, test[i].expect_set);
+ EnableDisableTest(test[i].gl_enum, enable_state, test[i].expect_set);
+ }
+ }
+}
+
// TODO(vmiura): Tests for VAO restore.
// TODO(vmiura): Tests for ContextState::RestoreAttribute().

Powered by Google App Engine
This is Rietveld 408576698