Index: ui/ozone/platform/dri/gbm_buffer.cc |
diff --git a/ui/ozone/platform/dri/gbm_buffer.cc b/ui/ozone/platform/dri/gbm_buffer.cc |
index 84621da80d76c3f2f0ce426dbaa0b5d0a7600c63..f7828aff0bbaaf91602bab8c48c77337120c2589 100644 |
--- a/ui/ozone/platform/dri/gbm_buffer.cc |
+++ b/ui/ozone/platform/dri/gbm_buffer.cc |
@@ -69,12 +69,14 @@ GbmPixmap::GbmPixmap(scoped_refptr<GbmBuffer> buffer) |
} |
bool GbmPixmap::Initialize(DriWrapper* dri) { |
- if (drmPrimeHandleToFD(dri->get_fd(), buffer_->GetHandle(), DRM_CLOEXEC, |
- &dma_buf_)) { |
+ // We want to use the GBM API because it's going to call into libdrm |
+ // which might do some optimizations on buffer allocation, |
+ // especially when sharing buffers via DMABUF. |
+ dma_buf_ = gbm_bo_get_fd(buffer_->bo()); |
+ if (dma_buf_ < 0) { |
LOG(ERROR) << "Failed to export buffer to dma_buf"; |
return false; |
} |
- |
return true; |
} |