Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(374)

Unified Diff: ui/ozone/platform/drm/gpu/gbm_buffer_base.cc

Issue 2627193003: ozone: Allocate scanout buffers according to KMS modifiers. (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/ozone/platform/drm/gpu/gbm_buffer_base.cc
diff --git a/ui/ozone/platform/drm/gpu/gbm_buffer_base.cc b/ui/ozone/platform/drm/gpu/gbm_buffer_base.cc
index a031b80061ae8be172e7b6a3f371be508d4dc7ad..83cea290d14e8aeab3df0883959e8de900573cdb 100644
--- a/ui/ozone/platform/drm/gpu/gbm_buffer_base.cc
+++ b/ui/ozone/platform/drm/gpu/gbm_buffer_base.cc
@@ -15,7 +15,9 @@ namespace ui {
GbmBufferBase::GbmBufferBase(const scoped_refptr<GbmDevice>& drm,
gbm_bo* bo,
uint32_t format,
- uint32_t flags)
+ uint32_t flags,
+ uint64_t modifier,
+ uint32_t addfb_flags)
: drm_(drm), bo_(bo) {
if (flags & GBM_BO_USE_SCANOUT) {
DCHECK(bo_);
@@ -27,10 +29,17 @@ GbmBufferBase::GbmBufferBase(const scoped_refptr<GbmDevice>& drm,
uint32_t strides[4] = {0};
strides[0] = gbm_bo_get_stride(bo);
uint32_t offsets[4] = {0};
+ uint64_t modifiers[4] = {0};
+ modifiers[0] = modifier;
+ // AddFramebuffer2 only considers the modifiers if addfb_flags has
+ // DRM_MODE_FB_MODIFIERS set. We only set that when we've created
+ // a bo with modifiers, otherwise, we rely on the "no modifiers"
+ // behavior doing the right thing.
if (!drm_->AddFramebuffer2(gbm_bo_get_width(bo), gbm_bo_get_height(bo),
framebuffer_pixel_format_, handles, strides,
- offsets, &framebuffer_, 0)) {
+ offsets, modifiers, &framebuffer_,
+ addfb_flags)) {
PLOG(ERROR) << "Failed to register buffer";
return;
}
« no previous file with comments | « ui/ozone/platform/drm/gpu/gbm_buffer_base.h ('k') | ui/ozone/platform/drm/gpu/hardware_display_controller.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698