From a9ece0f3d7b95e792dffc21bbc1cbd8aae7d929f Mon Sep 17 00:00:00 2001 From: Aaron Clarke Date: Thu, 12 Dec 2024 09:18:38 -0800 Subject: [PATCH 1/3] Reenabled labelling test with a capabilities check. --- impeller/renderer/backend/gles/test/reactor_unittests.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/impeller/renderer/backend/gles/test/reactor_unittests.cc b/impeller/renderer/backend/gles/test/reactor_unittests.cc index 8b4fbea4e547a..3215d560124ab 100644 --- a/impeller/renderer/backend/gles/test/reactor_unittests.cc +++ b/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->ObjectLabelKHR.IsAvailable()) { + 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); From 7375bc2353b28aa6cc57cff76d26de4c19e4a0b1 Mon Sep 17 00:00:00 2001 From: Aaron Clarke Date: Thu, 12 Dec 2024 10:13:45 -0800 Subject: [PATCH 2/3] added more complete check for debug label support --- impeller/renderer/backend/gles/proc_table_gles.cc | 10 ++++++++++ impeller/renderer/backend/gles/proc_table_gles.h | 2 ++ .../renderer/backend/gles/test/reactor_unittests.cc | 2 +- 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/impeller/renderer/backend/gles/proc_table_gles.cc b/impeller/renderer/backend/gles/proc_table_gles.cc index c4450e7b3b673..6a4c0cbb9e9ee 100644 --- a/impeller/renderer/backend/gles/proc_table_gles.cc +++ b/impeller/renderer/backend/gles/proc_table_gles.cc @@ -357,6 +357,16 @@ 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 { diff --git a/impeller/renderer/backend/gles/proc_table_gles.h b/impeller/renderer/backend/gles/proc_table_gles.h index ccc499af9dcca..8bc3ca76ba835 100644 --- a/impeller/renderer/backend/gles/proc_table_gles.h +++ b/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/impeller/renderer/backend/gles/test/reactor_unittests.cc b/impeller/renderer/backend/gles/test/reactor_unittests.cc index 3215d560124ab..da8c419083947 100644 --- a/impeller/renderer/backend/gles/test/reactor_unittests.cc +++ b/impeller/renderer/backend/gles/test/reactor_unittests.cc @@ -109,7 +109,7 @@ TEST(ReactorGLES, NameUntrackedHandle) { ProcTableGLES::Resolver resolver = kMockResolverGLES; auto proc_table = std::make_unique(resolver); - if (!proc_table->ObjectLabelKHR.IsAvailable()) { + if (!proc_table->SupportsDebugLabels()) { GTEST_SKIP() << "This device doesn't support labelling."; } From 6a3c8a1d36a4051b076afa1dd85dc739778e2cc0 Mon Sep 17 00:00:00 2001 From: Aaron Clarke Date: Thu, 12 Dec 2024 10:15:11 -0800 Subject: [PATCH 3/3] oops --- impeller/renderer/backend/gles/proc_table_gles.cc | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/impeller/renderer/backend/gles/proc_table_gles.cc b/impeller/renderer/backend/gles/proc_table_gles.cc index 6a4c0cbb9e9ee..a87b9df01efab 100644 --- a/impeller/renderer/backend/gles/proc_table_gles.cc +++ b/impeller/renderer/backend/gles/proc_table_gles.cc @@ -370,10 +370,7 @@ bool ProcTableGLES::SupportsDebugLabels() const { 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)) {