Reenabled labelling test with a capabilities check. (#57160)
fixes https://github.com/flutter/flutter/issues/160180
I'm unable to reproduce the problem locally but this is the most likely cause.
[C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
diff --git a/impeller/renderer/backend/gles/proc_table_gles.cc b/impeller/renderer/backend/gles/proc_table_gles.cc
index c4450e7..a87b9df 100644
--- a/impeller/renderer/backend/gles/proc_table_gles.cc
+++ b/impeller/renderer/backend/gles/proc_table_gles.cc
@@ -357,13 +357,20 @@
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/impeller/renderer/backend/gles/proc_table_gles.h b/impeller/renderer/backend/gles/proc_table_gles.h
index ccc499a..8bc3ca7 100644
--- a/impeller/renderer/backend/gles/proc_table_gles.h
+++ b/impeller/renderer/backend/gles/proc_table_gles.h
@@ -314,6 +314,8 @@
bool IsCurrentFramebufferComplete() const;
+ bool SupportsDebugLabels() const;
+
bool SetDebugLabel(DebugResourceType type,
GLint name,
std::string_view label) const;
diff --git a/impeller/renderer/backend/gles/test/reactor_unittests.cc b/impeller/renderer/backend/gles/test/reactor_unittests.cc
index 8b4fbea..da8c419 100644
--- a/impeller/renderer/backend/gles/test/reactor_unittests.cc
+++ b/impeller/renderer/backend/gles/test/reactor_unittests.cc
@@ -95,7 +95,7 @@
EXPECT_TRUE(reactor->React());
}
-TEST(ReactorGLES, DISABLED_NameUntrackedHandle) {
+TEST(ReactorGLES, NameUntrackedHandle) {
auto mock_gles_impl = std::make_unique<MockGLESImpl>();
EXPECT_CALL(*mock_gles_impl, GenTextures(1, _))
@@ -108,6 +108,11 @@
MockGLES::Init(std::move(mock_gles_impl));
ProcTableGLES::Resolver resolver = kMockResolverGLES;
auto proc_table = std::make_unique<ProcTableGLES>(resolver);
+
+ if (!proc_table->SupportsDebugLabels()) {
+ GTEST_SKIP() << "This device doesn't support labelling.";
+ }
+
auto worker = std::make_shared<TestWorker>();
auto reactor = std::make_shared<ReactorGLES>(std::move(proc_table));
reactor->AddWorker(worker);