Index: ui/ozone/platform/dri/dri_buffer.cc |
diff --git a/ui/ozone/platform/dri/dri_buffer.cc b/ui/ozone/platform/dri/dri_buffer.cc |
index 547b3ca666186c84b9d00eb44e185b6553be77fe..9fa284f2d39611c73f772ca191944020752fac7e 100644 |
--- a/ui/ozone/platform/dri/dri_buffer.cc |
+++ b/ui/ozone/platform/dri/dri_buffer.cc |
@@ -53,20 +53,18 @@ DriBuffer::~DriBuffer() { |
dri_->DestroyDumbBuffer(info, handle_, stride_, pixels); |
} |
-bool DriBuffer::Initialize(const SkImageInfo& info) { |
+bool DriBuffer::Initialize(const SkImageInfo& info, |
+ bool should_register_framebuffer) { |
void* pixels = NULL; |
if (!dri_->CreateDumbBuffer(info, &handle_, &stride_, &pixels)) { |
VLOG(2) << "Cannot create drm dumb buffer"; |
return false; |
} |
- if (!dri_->AddFramebuffer(info.width(), |
- info.height(), |
- GetColorDepth(info.colorType()), |
- info.bytesPerPixel() << 3, |
- stride_, |
- handle_, |
- &framebuffer_)) { |
+ if (should_register_framebuffer && |
+ !dri_->AddFramebuffer( |
+ info.width(), info.height(), GetColorDepth(info.colorType()), |
+ info.bytesPerPixel() << 3, stride_, handle_, &framebuffer_)) { |
VLOG(2) << "Failed to register framebuffer: " << strerror(errno); |
return false; |
} |
@@ -106,7 +104,7 @@ scoped_refptr<ScanoutBuffer> DriBufferGenerator::Create( |
const gfx::Size& size) { |
scoped_refptr<DriBuffer> buffer(new DriBuffer(drm)); |
SkImageInfo info = SkImageInfo::MakeN32Premul(size.width(), size.height()); |
- if (!buffer->Initialize(info)) |
+ if (!buffer->Initialize(info, true /* should_register_framebuffer */)) |
return NULL; |
return buffer; |