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 c4450e7b3b..a87b9df01e 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 @@ -357,13 +357,20 @@ static bool ResourceIsLive(const ProcTableGLES& gl, FML_UNREACHABLE(); } +bool ProcTableGLES::SupportsDebugLabels() const { + if (debug_label_max_length_ <= 0) { + return false; + } + if (!ObjectLabelKHR.IsAvailable()) { + return false; + } + return true; +} + bool ProcTableGLES::SetDebugLabel(DebugResourceType type, GLint name, std::string_view label) const { - if (debug_label_max_length_ <= 0) { - return true; - } - if (!ObjectLabelKHR.IsAvailable()) { + if (!SupportsDebugLabels()) { return true; } if (!ResourceIsLive(*this, type, name)) { 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 ccc499af9d..8bc3ca76ba 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 @@ -314,6 +314,8 @@ class ProcTableGLES { bool IsCurrentFramebufferComplete() const; + bool SupportsDebugLabels() const; + bool SetDebugLabel(DebugResourceType type, GLint name, std::string_view label) const; 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 8b4fbea4e5..da8c419083 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 @@ -95,7 +95,7 @@ TEST(ReactorGLES, UntrackedHandle) { EXPECT_TRUE(reactor->React()); } -TEST(ReactorGLES, DISABLED_NameUntrackedHandle) { +TEST(ReactorGLES, NameUntrackedHandle) { auto mock_gles_impl = std::make_unique(); EXPECT_CALL(*mock_gles_impl, GenTextures(1, _)) @@ -108,6 +108,11 @@ TEST(ReactorGLES, DISABLED_NameUntrackedHandle) { MockGLES::Init(std::move(mock_gles_impl)); ProcTableGLES::Resolver resolver = kMockResolverGLES; auto proc_table = std::make_unique(resolver); + + if (!proc_table->SupportsDebugLabels()) { + GTEST_SKIP() << "This device doesn't support labelling."; + } + auto worker = std::make_shared(); auto reactor = std::make_shared(std::move(proc_table)); reactor->AddWorker(worker);