diff options
-rw-r--r-- | ui/ozone/platform/drm/gpu/drm_buffer.cc | 1 | ||||
-rw-r--r-- | ui/ozone/platform/drm/gpu/drm_buffer.h | 1 | ||||
-rw-r--r-- | ui/ozone/platform/drm/gpu/drm_window.cc | 3 | ||||
-rw-r--r-- | ui/ozone/platform/drm/gpu/scanout_buffer.h | 2 | ||||
-rw-r--r-- | ui/ozone/platform/drm/gpu/screen_manager.cc | 4 | ||||
-rw-r--r-- | ui/ozone/platform/drm/gpu/screen_manager_unittest.cc | 4 | ||||
-rw-r--r-- | ui/ozone/platform/drm/ozone_platform_gbm.cc | 3 |
7 files changed, 12 insertions, 6 deletions
diff --git a/ui/ozone/platform/drm/gpu/drm_buffer.cc b/ui/ozone/platform/drm/gpu/drm_buffer.cc index ec3d99a..e36c696 100644 --- a/ui/ozone/platform/drm/gpu/drm_buffer.cc +++ b/ui/ozone/platform/drm/gpu/drm_buffer.cc @@ -135,6 +135,7 @@ DrmBufferGenerator::~DrmBufferGenerator() { scoped_refptr<ScanoutBuffer> DrmBufferGenerator::Create( const scoped_refptr<DrmDevice>& drm, + gfx::BufferFormat format, const gfx::Size& size) { scoped_refptr<DrmBuffer> buffer(new DrmBuffer(drm)); SkImageInfo info = SkImageInfo::MakeN32Premul(size.width(), size.height()); diff --git a/ui/ozone/platform/drm/gpu/drm_buffer.h b/ui/ozone/platform/drm/gpu/drm_buffer.h index 76027b6..a04d4b6 100644 --- a/ui/ozone/platform/drm/gpu/drm_buffer.h +++ b/ui/ozone/platform/drm/gpu/drm_buffer.h @@ -73,6 +73,7 @@ class OZONE_EXPORT DrmBufferGenerator : public ScanoutBufferGenerator { // ScanoutBufferGenerator: scoped_refptr<ScanoutBuffer> Create(const scoped_refptr<DrmDevice>& drm, + gfx::BufferFormat format, const gfx::Size& size) override; private: diff --git a/ui/ozone/platform/drm/gpu/drm_window.cc b/ui/ozone/platform/drm/gpu/drm_window.cc index 910683a..0aa6284 100644 --- a/ui/ozone/platform/drm/gpu/drm_window.cc +++ b/ui/ozone/platform/drm/gpu/drm_window.cc @@ -167,7 +167,8 @@ bool DrmWindow::TestPageFlip(const std::vector<OverlayCheck_Params>& overlays, for (const auto& overlay : overlays) { gfx::Size size = (overlay.plane_z_order == 0) ? bounds().size() : overlay.buffer_size; - scoped_refptr<ScanoutBuffer> buffer = buffer_generator->Create(drm, size); + scoped_refptr<ScanoutBuffer> buffer = + buffer_generator->Create(drm, overlay.format, size); if (!buffer) return false; planes.push_back(OverlayPlane(buffer, overlay.plane_z_order, diff --git a/ui/ozone/platform/drm/gpu/scanout_buffer.h b/ui/ozone/platform/drm/gpu/scanout_buffer.h index d8712fa..53412e8 100644 --- a/ui/ozone/platform/drm/gpu/scanout_buffer.h +++ b/ui/ozone/platform/drm/gpu/scanout_buffer.h @@ -8,6 +8,7 @@ #include <stdint.h> #include "base/memory/ref_counted.h" +#include "ui/gfx/buffer_types.h" #include "ui/gfx/geometry/size.h" namespace ui { @@ -43,6 +44,7 @@ class ScanoutBufferGenerator { virtual scoped_refptr<ScanoutBuffer> Create( const scoped_refptr<DrmDevice>& drm, + gfx::BufferFormat format, const gfx::Size& size) = 0; }; diff --git a/ui/ozone/platform/drm/gpu/screen_manager.cc b/ui/ozone/platform/drm/gpu/screen_manager.cc index 2aba0d9..434f8c4 100644 --- a/ui/ozone/platform/drm/gpu/screen_manager.cc +++ b/ui/ozone/platform/drm/gpu/screen_manager.cc @@ -342,8 +342,8 @@ OverlayPlane ScreenManager::GetModesetBuffer( } scoped_refptr<DrmDevice> drm = controller->GetAllocationDrmDevice(); - scoped_refptr<ScanoutBuffer> buffer = - buffer_generator_->Create(drm, bounds.size()); + scoped_refptr<ScanoutBuffer> buffer = buffer_generator_->Create( + drm, gfx::BufferFormat::BGRA_8888, bounds.size()); if (!buffer) { LOG(ERROR) << "Failed to create scanout buffer"; return OverlayPlane(nullptr, 0, gfx::OVERLAY_TRANSFORM_INVALID, gfx::Rect(), diff --git a/ui/ozone/platform/drm/gpu/screen_manager_unittest.cc b/ui/ozone/platform/drm/gpu/screen_manager_unittest.cc index 662aba9..8d8a96ee 100644 --- a/ui/ozone/platform/drm/gpu/screen_manager_unittest.cc +++ b/ui/ozone/platform/drm/gpu/screen_manager_unittest.cc @@ -460,8 +460,8 @@ TEST_F(ScreenManagerTest, EnableControllerWhenWindowHasBuffer) { new ui::DrmWindow(1, device_manager_.get(), screen_manager_.get())); window->Initialize(); window->OnBoundsChanged(GetPrimaryBounds()); - scoped_refptr<ui::ScanoutBuffer> buffer = - buffer_generator_->Create(drm_, GetPrimaryBounds().size()); + scoped_refptr<ui::ScanoutBuffer> buffer = buffer_generator_->Create( + drm_, gfx::BufferFormat::BGRA_8888, GetPrimaryBounds().size()); window->QueueOverlayPlane(ui::OverlayPlane(buffer)); window->SchedulePageFlip(false /* is_sync */, base::Bind(&EmptySwapCallback)); screen_manager_->AddWindow(1, window.Pass()); diff --git a/ui/ozone/platform/drm/ozone_platform_gbm.cc b/ui/ozone/platform/drm/ozone_platform_gbm.cc index c496fd8..0a6e08c 100644 --- a/ui/ozone/platform/drm/ozone_platform_gbm.cc +++ b/ui/ozone/platform/drm/ozone_platform_gbm.cc @@ -78,9 +78,10 @@ class GbmBufferGenerator : public ScanoutBufferGenerator { // ScanoutBufferGenerator: scoped_refptr<ScanoutBuffer> Create(const scoped_refptr<DrmDevice>& drm, + gfx::BufferFormat format, const gfx::Size& size) override { scoped_refptr<GbmDevice> gbm(static_cast<GbmDevice*>(drm.get())); - return GbmBuffer::CreateBuffer(gbm, gfx::BufferFormat::BGRA_8888, size, + return GbmBuffer::CreateBuffer(gbm, format, size, gfx::BufferUsage::SCANOUT); } |