summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ui/ozone/platform/drm/gpu/drm_buffer.cc1
-rw-r--r--ui/ozone/platform/drm/gpu/drm_buffer.h1
-rw-r--r--ui/ozone/platform/drm/gpu/drm_window.cc3
-rw-r--r--ui/ozone/platform/drm/gpu/scanout_buffer.h2
-rw-r--r--ui/ozone/platform/drm/gpu/screen_manager.cc4
-rw-r--r--ui/ozone/platform/drm/gpu/screen_manager_unittest.cc4
-rw-r--r--ui/ozone/platform/drm/ozone_platform_gbm.cc3
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);
}