From c9009090585237ee10a9b1295eb9a32ff7851e55 Mon Sep 17 00:00:00 2001 From: jonahwilliams Date: Wed, 11 Dec 2024 10:13:34 -0800 Subject: [PATCH] [Impeller] avoid expensive texture labeling w/ no validation layers. --- impeller/renderer/backend/vulkan/texture_vk.cc | 9 ++++++++- impeller/renderer/backend/vulkan/texture_vk.h | 1 + 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/impeller/renderer/backend/vulkan/texture_vk.cc b/impeller/renderer/backend/vulkan/texture_vk.cc index 7d432ef32de25..9e5826d7bbe0f 100644 --- a/impeller/renderer/backend/vulkan/texture_vk.cc +++ b/impeller/renderer/backend/vulkan/texture_vk.cc @@ -15,12 +15,19 @@ TextureVK::TextureVK(std::weak_ptr context, std::shared_ptr source) : Texture(source->GetTextureDescriptor()), context_(std::move(context)), - source_(std::move(source)) {} + source_(std::move(source)) { +#ifdef IMPELLER_DEBUG + has_validation_layers_ = HasValidationLayers(); +#endif // IMPELLER_DEBUG +} TextureVK::~TextureVK() = default; void TextureVK::SetLabel(std::string_view label) { #ifdef IMPELLER_DEBUG + if (!has_validation_layers_) { + return; + } auto context = context_.lock(); if (!context) { // The context may have died. diff --git a/impeller/renderer/backend/vulkan/texture_vk.h b/impeller/renderer/backend/vulkan/texture_vk.h index b608a26cc88af..7b454eca3b539 100644 --- a/impeller/renderer/backend/vulkan/texture_vk.h +++ b/impeller/renderer/backend/vulkan/texture_vk.h @@ -77,6 +77,7 @@ class TextureVK final : public Texture, public BackendCast { private: std::weak_ptr context_; std::shared_ptr source_; + bool has_validation_layers_ = false; // |Texture| void SetLabel(std::string_view label) override;