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

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

Issue 2623963002: ozone: Allocate scanout buffers according to KMS modifiers. (Closed)
Patch Set: Remove unused modifier_. 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 f30e9502b5cb4d57b117d9ba7c136f1081a25078..934b4741b42bcf3b44a6208f26539d76f385bcb7 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_);
@@ -31,10 +33,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