diff --git a/engine/src/flutter/impeller/renderer/backend/gles/proc_table_gles.cc b/engine/src/flutter/impeller/renderer/backend/gles/proc_table_gles.cc index a87b9df01efab..e7cf345f75e1e 100644 --- a/engine/src/flutter/impeller/renderer/backend/gles/proc_table_gles.cc +++ b/engine/src/flutter/impeller/renderer/backend/gles/proc_table_gles.cc @@ -129,7 +129,7 @@ ProcTableGLES::ProcTableGLES( // NOLINT(google-readability-function-size) #undef IMPELLER_PROC - if (!description_->HasDebugExtension()) { + if (!IP_ENABLE_GLES_LABELING || !description_->HasDebugExtension()) { PushDebugGroupKHR.Reset(); PopDebugGroupKHR.Reset(); ObjectLabelKHR.Reset(); diff --git a/engine/src/flutter/impeller/renderer/backend/gles/proc_table_gles.h b/engine/src/flutter/impeller/renderer/backend/gles/proc_table_gles.h index 95cac1867330f..87308fb4d327f 100644 --- a/engine/src/flutter/impeller/renderer/backend/gles/proc_table_gles.h +++ b/engine/src/flutter/impeller/renderer/backend/gles/proc_table_gles.h @@ -14,6 +14,9 @@ #include "impeller/renderer/backend/gles/description_gles.h" #include "impeller/renderer/backend/gles/gles.h" +/// Enable to allow GLES to push/pop labels for usage in GPU traces +#define IP_ENABLE_GLES_LABELING false + namespace impeller { const char* GLErrorToString(GLenum value); diff --git a/engine/src/flutter/impeller/renderer/backend/gles/test/reactor_unittests.cc b/engine/src/flutter/impeller/renderer/backend/gles/test/reactor_unittests.cc index 86323b268fba0..3010e4c4806de 100644 --- a/engine/src/flutter/impeller/renderer/backend/gles/test/reactor_unittests.cc +++ b/engine/src/flutter/impeller/renderer/backend/gles/test/reactor_unittests.cc @@ -98,13 +98,7 @@ TEST(ReactorGLES, UntrackedHandle) { TEST(ReactorGLES, NameUntrackedHandle) { auto mock_gles_impl = std::make_unique>(); - - EXPECT_CALL(*mock_gles_impl, GenTextures(1, _)) - .WillOnce([](GLsizei size, GLuint* queries) { queries[0] = 1234; }); - EXPECT_CALL(*mock_gles_impl, - ObjectLabelKHR(_, 1234, _, ::testing::StrEq("hello, joe!"))) - .Times(1); - ON_CALL(*mock_gles_impl, IsTexture).WillByDefault(::testing::Return(GL_TRUE)); + NiceMock* raw_mock_gles = mock_gles_impl.get(); std::shared_ptr mock_gles = MockGLES::Init(std::move(mock_gles_impl)); @@ -115,6 +109,13 @@ TEST(ReactorGLES, NameUntrackedHandle) { GTEST_SKIP() << "This device doesn't support labelling."; } + EXPECT_CALL(*raw_mock_gles, GenTextures(1, _)) + .WillOnce([](GLsizei size, GLuint* queries) { queries[0] = 1234; }); + EXPECT_CALL(*raw_mock_gles, + ObjectLabelKHR(_, 1234, _, ::testing::StrEq("hello, joe!"))) + .Times(1); + ON_CALL(*raw_mock_gles, IsTexture).WillByDefault(::testing::Return(GL_TRUE)); + auto worker = std::make_shared(); auto reactor = std::make_shared(std::move(proc_table)); reactor->AddWorker(worker);