diff options
Diffstat (limited to '0001-adjust-buffer-format-order.patch')
-rw-r--r-- | 0001-adjust-buffer-format-order.patch | 65 |
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; + } |