| 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;
|
| }
|
|
|