diff options
author | Peter Varga <pvarga@inf.u-szeged.hu> | 2023-05-12 10:57:08 +0200 |
---|---|---|
committer | Peter Varga <pvarga@inf.u-szeged.hu> | 2023-05-12 14:21:30 +0000 |
commit | 1d0e73815dbc1be4df5e329ed5e3827b42e0f584 (patch) | |
tree | 488bd8ebff9ea11cfa905aa5cbf830f46ee8d1cb | |
parent | 57864e9aa9b1304a2363a5fe50d0a85d1bfb7280 (diff) | |
download | qtwebengine-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.cc | 23 | ||||
-rw-r--r-- | chromium/gpu/command_buffer/service/shared_image/shared_image_factory.h | 3 |
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_; |