summaryrefslogtreecommitdiffstats
path: root/ozone-add-va-api-support-to-wayland.patch
diff options
context:
space:
mode:
Diffstat (limited to 'ozone-add-va-api-support-to-wayland.patch')
-rw-r--r--ozone-add-va-api-support-to-wayland.patch128
1 files changed, 0 insertions, 128 deletions
diff --git a/ozone-add-va-api-support-to-wayland.patch b/ozone-add-va-api-support-to-wayland.patch
deleted file mode 100644
index 5abe859..0000000
--- a/ozone-add-va-api-support-to-wayland.patch
+++ /dev/null
@@ -1,128 +0,0 @@
-From: Maksim Sisov <msisov@igalia.com>
-Date: Wed, 20 Jan 2021 09:50:22 +0200
-Subject: [PATCH] ozone/wayland: add VA-API support.
-
-This patch ads VA-API support utilizing old VA-API path used for
-ChromeOS, which can be buggy on some devices (currently tested
-on Intel Gen8 and Gen9 with Gen8 having some minor bugs).
-
-It's known that a new VA-API is being developed atm and once it's ready,
-we will switch to a new path, which should be more stable.
-
-Upstream-Status: Inappropriate
-
-The patch is based on the old va-api path. ChromeOS
-team is working on the new path, which will be also employed
-by Wayland later.
-
----
-diff --git a/media/gpu/vaapi/vaapi_picture_factory.cc b/media/gpu/vaapi/vaapi_picture_factory.cc
-index 54825cd..0a57166 100644
---- a/media/gpu/vaapi/vaapi_picture_factory.cc
-+++ b/media/gpu/vaapi/vaapi_picture_factory.cc
-@@ -105,7 +105,7 @@ uint32_t VaapiPictureFactory::GetGLTextureTarget() {
- }
-
- gfx::BufferFormat VaapiPictureFactory::GetBufferFormat() {
--#if BUILDFLAG(USE_VAAPI_X11)
-+#if BUILDFLAG(IS_LINUX)
- return gfx::BufferFormat::RGBX_8888;
- #else
- return gfx::BufferFormat::YUV_420_BIPLANAR;
-diff --git a/media/gpu/vaapi/vaapi_picture_native_pixmap.cc b/media/gpu/vaapi/vaapi_picture_native_pixmap.cc
-index 18c6c22..fe614b6 100644
---- a/media/gpu/vaapi/vaapi_picture_native_pixmap.cc
-+++ b/media/gpu/vaapi/vaapi_picture_native_pixmap.cc
-@@ -4,6 +4,7 @@
-
- #include "media/gpu/vaapi/vaapi_picture_native_pixmap.h"
-
-+#include "media/gpu/macros.h"
- #include "media/gpu/vaapi/va_surface.h"
- #include "media/gpu/vaapi/vaapi_wrapper.h"
- #include "ui/gfx/buffer_format_util.h"
-@@ -40,7 +41,21 @@ VaapiPictureNativePixmap::~VaapiPictureNativePixmap() = default;
- bool VaapiPictureNativePixmap::DownloadFromSurface(
- scoped_refptr<VASurface> va_surface) {
- DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
-- return vaapi_wrapper_->BlitSurface(*va_surface, *va_surface_);
-+ if (!vaapi_wrapper_->SyncSurface(va_surface->id())) {
-+ VLOGF(1) << "Cannot sync VPP input surface";
-+ return false;
-+ }
-+ if (!vaapi_wrapper_->BlitSurface(*va_surface, *va_surface_)) {
-+ VLOGF(1) << "Cannot convert decoded image into output buffer";
-+ return false;
-+ }
-+
-+ // Sync target surface since the buffer is returning to client.
-+ if (!vaapi_wrapper_->SyncSurface(va_surface_->id())) {
-+ VLOGF(1) << "Cannot sync VPP output surface";
-+ return false;
-+ }
-+ return true;
- }
-
- bool VaapiPictureNativePixmap::AllowOverlay() const {
-diff --git a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
-index 37e3520..9d17122 100644
---- a/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
-+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.cc
-@@ -560,12 +560,12 @@ void VaapiVideoDecodeAccelerator::InitiateSurfaceSetChange(
- requested_visible_rect_ = visible_rect;
- if (buffer_allocation_mode_ == BufferAllocationMode::kSuperReduced) {
- // Add one to the reference frames for the one being currently egressed.
-- requested_num_reference_frames_ = num_reference_frames + 1;
-+ requested_num_reference_frames_ = num_reference_frames + 4;
- requested_num_pics_ = num_pics - num_reference_frames;
- } else if (buffer_allocation_mode_ == BufferAllocationMode::kReduced) {
- // Add one to the reference frames for the one being currently egressed,
- // and an extra allocation for both |client_| and |decoder_|.
-- requested_num_reference_frames_ = num_reference_frames + 2;
-+ requested_num_reference_frames_ = num_reference_frames + 5;
- requested_num_pics_ = num_pics - num_reference_frames + 1;
- } else {
- requested_num_reference_frames_ = 0;
-diff --git a/ui/ozone/platform/wayland/gpu/gbm_pixmap_wayland.cc b/ui/ozone/platform/wayland/gpu/gbm_pixmap_wayland.cc
-index 1a5016b..eca714b 100644
---- a/ui/ozone/platform/wayland/gpu/gbm_pixmap_wayland.cc
-+++ b/ui/ozone/platform/wayland/gpu/gbm_pixmap_wayland.cc
-@@ -32,7 +32,9 @@ GbmPixmapWayland::GbmPixmapWayland(WaylandBufferManagerGpu* buffer_manager)
- buffer_id_(buffer_manager->AllocateBufferID()) {}
-
- GbmPixmapWayland::~GbmPixmapWayland() {
-- if (created_wl_buffer_)
-+ // gfx::BufferUsage::SCANOUT_VDA_WRITE doesn't result in creation of
-+ // wl_buffers.
-+ if (created_wl_buffer_ && usage_ != gfx::BufferUsage::SCANOUT_VDA_WRITE)
- buffer_manager_->DestroyBuffer(buffer_id_);
- }
-
-diff --git a/ui/ozone/platform/wayland/gpu/gbm_pixmap_wayland.h b/ui/ozone/platform/wayland/gpu/gbm_pixmap_wayland.h
-index 84ebcba..dfb2675 100644
---- a/ui/ozone/platform/wayland/gpu/gbm_pixmap_wayland.h
-+++ b/ui/ozone/platform/wayland/gpu/gbm_pixmap_wayland.h
-@@ -92,6 +92,9 @@ class GbmPixmapWayland : public gfx::NativePixmap {
-
- // Says a wl_buffer has been created and must removed.
- bool created_wl_buffer_ = false;
-+
-+ // Tells the usage of this pixmap.
-+ gfx::BufferUsage usage_ = gfx::BufferUsage::SCANOUT;
- };
-
- } // namespace ui
-diff --git a/ui/ozone/platform/wayland/ozone_platform_wayland.cc b/ui/ozone/platform/wayland/ozone_platform_wayland.cc
-index afbd464..189678f 100644
---- a/ui/ozone/platform/wayland/ozone_platform_wayland.cc
-+++ b/ui/ozone/platform/wayland/ozone_platform_wayland.cc
-@@ -295,6 +295,9 @@ class OzonePlatformWayland : public OzonePlatform,
- properties->supports_global_screen_coordinates =
- features::IsWaylandScreenCoordinatesEnabled();
-
-+ // Let the media know this platform supports va-api.
-+ properties->supports_vaapi = true;
-+
- initialised = true;
- }
-