summaryrefslogtreecommitdiffstats
path: root/0001-adjust-buffer-format-order.patch
diff options
context:
space:
mode:
Diffstat (limited to '0001-adjust-buffer-format-order.patch')
-rw-r--r--0001-adjust-buffer-format-order.patch65
1 files changed, 65 insertions, 0 deletions
diff --git a/0001-adjust-buffer-format-order.patch b/0001-adjust-buffer-format-order.patch
new file mode 100644
index 0000000..23830ce
--- /dev/null
+++ b/0001-adjust-buffer-format-order.patch
@@ -0,0 +1,65 @@
+From 44a44adecbc97242371cf67f8bbd5553c95fa123 Mon Sep 17 00:00:00 2001
+From: Yaowei Zhou <yaowei.zhou@intel.com>
+Date: Wed, 18 Jan 2023 17:00:50 +0800
+Subject: [PATCH] Adjust the order of wayland drm and zwp dma buf in WaylandBufferFactory
+
+Adjust the order as buffer format implementation of zwp dma buffer from
+Mutter, which will cause inconsistent with gbm support format list of
+GPU process.
+
+Bug: N/A
+Change-Id: Ice63c52fbd6eff0a099c35c0943e24c1fd1a1d70
+---
+
+diff --git a/ui/ozone/platform/wayland/host/wayland_buffer_factory.cc b/ui/ozone/platform/wayland/host/wayland_buffer_factory.cc
+index 2376d77..7d6c032e 100644
+--- a/ui/ozone/platform/wayland/host/wayland_buffer_factory.cc
++++ b/ui/ozone/platform/wayland/host/wayland_buffer_factory.cc
+@@ -25,13 +25,13 @@
+ uint32_t planes_count,
+ wl::OnRequestBufferCallback callback) const {
+ DCHECK(SupportsDmabuf());
+- if (wayland_zwp_dmabuf_) {
++ if (wayland_drm_) {
++ wayland_drm_->CreateBuffer(fd, size, strides, offsets, modifiers, format,
++ planes_count, std::move(callback));
++ } else if (wayland_zwp_dmabuf_) {
+ wayland_zwp_dmabuf_->CreateBuffer(fd, size, strides, offsets, modifiers,
+ format, planes_count,
+ std::move(callback));
+- } else if (wayland_drm_) {
+- wayland_drm_->CreateBuffer(fd, size, strides, offsets, modifiers, format,
+- planes_count, std::move(callback));
+ } else {
+ // This method must never be called if neither zwp_linux_dmabuf or wl_drm
+ // are supported.
+@@ -52,10 +52,11 @@
+ wl::BufferFormatsWithModifiersMap
+ WaylandBufferFactory::GetSupportedBufferFormats() const {
+ #if defined(WAYLAND_GBM)
+- if (wayland_zwp_dmabuf_)
+- return wayland_zwp_dmabuf_->supported_buffer_formats();
+- else if (wayland_drm_)
++ if (wayland_drm_) {
+ return wayland_drm_->supported_buffer_formats();
++ } else if (wayland_zwp_dmabuf_) {
++ return wayland_zwp_dmabuf_->supported_buffer_formats();
++ }
+ #endif
+ return {};
+ }
+@@ -71,10 +72,11 @@
+
+ bool WaylandBufferFactory::CanCreateDmabufImmed() const {
+ #if defined(WAYLAND_GBM)
+- if (wayland_zwp_dmabuf_)
+- return wayland_zwp_dmabuf_->CanCreateBufferImmed();
+- else if (wayland_drm_)
++ if (wayland_drm_) {
+ return wayland_drm_->CanCreateBufferImmed();
++ } else if (wayland_zwp_dmabuf_) {
++ return wayland_zwp_dmabuf_->CanCreateBufferImmed();
++ }
+ #endif
+ return false;
+ }