summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Varga <pvarga@inf.u-szeged.hu>2023-05-12 10:57:08 +0200
committerPeter Varga <pvarga@inf.u-szeged.hu>2023-05-12 14:21:30 +0000
commit1d0e73815dbc1be4df5e329ed5e3827b42e0f584 (patch)
tree488bd8ebff9ea11cfa905aa5cbf830f46ee8d1cb
parent57864e9aa9b1304a2363a5fe50d0a85d1bfb7280 (diff)
downloadqtwebengine-chromium-1d0e73815dbc1be4df5e329ed5e3827b42e0f584.tar.gz
[Backport] Fix SharedImageFactory log message
SharedImageFactory::GetFactoryByUsage() logs an error message if it failed to find a backing factory. SharedImageFactory was changed to try GetFactoryByUsage() more than once with different parameters now. Change the error message to only be logged when there is actually a failure to find a suitable factory. Low-Coverage-Reason: No tests for error logs. Bug: 1293509 Change-Id: Ic8390a8f3ee2729c4a2e33f5921ba635049e2d7c Review-URL: https://chromium-review.googlesource.com/c/chromium/src/+/3978950 Cr-Commit-Position: refs/heads/main@{#1063786} Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/477466 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
-rw-r--r--chromium/gpu/command_buffer/service/shared_image/shared_image_factory.cc23
-rw-r--r--chromium/gpu/command_buffer/service/shared_image/shared_image_factory.h3
2 files changed, 21 insertions, 5 deletions
diff --git a/chromium/gpu/command_buffer/service/shared_image/shared_image_factory.cc b/chromium/gpu/command_buffer/service/shared_image/shared_image_factory.cc
index 8f2866169bc..78253344fac 100644
--- a/chromium/gpu/command_buffer/service/shared_image/shared_image_factory.cc
+++ b/chromium/gpu/command_buffer/service/shared_image/shared_image_factory.cc
@@ -295,8 +295,10 @@ bool SharedImageFactory::CreateSharedImage(const Mailbox& mailbox,
DCHECK(format.is_single_plane());
auto* factory = GetFactoryByUsage(usage, format, size,
/*pixel_data=*/{}, gfx::EMPTY_BUFFER);
- if (!factory)
+ if (!factory) {
+ LogGetFactoryFailed(usage, format, gfx::EMPTY_BUFFER);
return false;
+ }
auto backing = factory->CreateSharedImage(
mailbox, format, surface_handle, size, color_space, surface_origin,
@@ -323,8 +325,11 @@ bool SharedImageFactory::CreateSharedImage(const Mailbox& mailbox,
} else {
factory = GetFactoryByUsage(usage, format, size, data, gfx::EMPTY_BUFFER);
}
- if (!factory)
+
+ if (!factory) {
+ LogGetFactoryFailed(usage, format, gfx::EMPTY_BUFFER);
return false;
+ }
auto backing =
factory->CreateSharedImage(mailbox, format, size, color_space,
@@ -368,8 +373,10 @@ bool SharedImageFactory::CreateSharedImage(const Mailbox& mailbox,
/*pixel_data=*/{}, gfx::EMPTY_BUFFER);
}
- if (!factory)
+ if (!factory) {
+ LogGetFactoryFailed(usage, si_format, gmb_type);
return false;
+ }
std::unique_ptr<SharedImageBacking> backing;
if (use_compound) {
@@ -571,12 +578,18 @@ SharedImageBackingFactory* SharedImageFactory::GetFactoryByUsage(
}
}
+ return nullptr;
+}
+
+void SharedImageFactory::LogGetFactoryFailed(
+ uint32_t usage,
+ viz::SharedImageFormat format,
+ gfx::GpuMemoryBufferType gmb_type) {
LOG(ERROR) << "Could not find SharedImageBackingFactory with params: usage: "
<< CreateLabelForSharedImageUsage(usage)
<< ", format: " << format.ToString()
- << ", share_between_threads: " << share_between_threads
+ << ", share_between_threads: " << IsSharedBetweenThreads(usage)
<< ", gmb_type: " << GmbTypeToString(gmb_type);
- return nullptr;
}
bool SharedImageFactory::RegisterBacking(
diff --git a/chromium/gpu/command_buffer/service/shared_image/shared_image_factory.h b/chromium/gpu/command_buffer/service/shared_image/shared_image_factory.h
index 616a0c43d86..f419c3e0dc7 100644
--- a/chromium/gpu/command_buffer/service/shared_image/shared_image_factory.h
+++ b/chromium/gpu/command_buffer/service/shared_image/shared_image_factory.h
@@ -134,6 +134,9 @@ class GPU_GLES2_EXPORT SharedImageFactory {
const gfx::Size& size,
base::span<const uint8_t> pixel_data,
gfx::GpuMemoryBufferType gmb_type);
+ void LogGetFactoryFailed(uint32_t usage,
+ viz::SharedImageFormat format,
+ gfx::GpuMemoryBufferType gmb_type);
raw_ptr<SharedImageManager> shared_image_manager_;
raw_ptr<SharedContextState> shared_context_state_;