From ba25b2cbc30707476682bf7308c201b8f798b8db Mon Sep 17 00:00:00 2001 From: Martin Stransky Date: Tue, 28 Jun 2022 18:18:25 +0200 Subject: Updated to 102.0, Applied patch from https://src.fedoraproject.org/rpms/firefox/pull-request/43 --- D149238.diff | 84 +++++++----------------------------------------------------- 1 file changed, 9 insertions(+), 75 deletions(-) (limited to 'D149238.diff') diff --git a/D149238.diff b/D149238.diff index 290c536..e89c1bf 100644 --- a/D149238.diff +++ b/D149238.diff @@ -1,86 +1,20 @@ -diff -up firefox-101.0.1/gfx/config/gfxVars.h.D149238.diff firefox-101.0.1/gfx/config/gfxVars.h ---- firefox-101.0.1/gfx/config/gfxVars.h.D149238.diff 2022-06-14 14:28:15.301514131 +0200 -+++ firefox-101.0.1/gfx/config/gfxVars.h 2022-06-14 14:29:32.221087732 +0200 +diff -up firefox-102.0/gfx/config/gfxVars.h.D149238.diff firefox-102.0/gfx/config/gfxVars.h +--- firefox-102.0/gfx/config/gfxVars.h.D149238.diff 2022-06-23 09:08:47.000000000 +0200 ++++ firefox-102.0/gfx/config/gfxVars.h 2022-06-28 16:40:54.130895063 +0200 @@ -91,7 +91,8 @@ class gfxVarReceiver; _(AllowWebGPU, bool, false) \ _(UseVP8HwDecode, bool, false) \ _(UseVP9HwDecode, bool, false) \ -- _(HwDecodedVideoNoCopy, bool, false) -+ _(HwDecodedVideoNoCopy, bool, false) \ +- _(HwDecodedVideoZeroCopy, bool, false) ++ _(HwDecodedVideoZeroCopy, bool, false) \ + _(UseDMABufSurfaceExport, bool, true) /* Add new entries above this line. */ -diff -up firefox-101.0.1/gfx/gl/SharedSurfaceDMABUF.cpp.D149238.diff firefox-101.0.1/gfx/gl/SharedSurfaceDMABUF.cpp ---- firefox-101.0.1/gfx/gl/SharedSurfaceDMABUF.cpp.D149238.diff 2022-06-14 14:28:15.297513997 +0200 -+++ firefox-101.0.1/gfx/gl/SharedSurfaceDMABUF.cpp 2022-06-14 14:28:15.301514131 +0200 -@@ -9,6 +9,7 @@ - #include "GLContextEGL.h" - #include "MozFramebuffer.h" - #include "mozilla/layers/LayersSurfaces.h" // for SurfaceDescriptor, etc -+#include "mozilla/gfx/gfxVars.h" - - namespace mozilla::gl { - -@@ -27,22 +28,39 @@ UniquePtr SharedSu - const auto& context = gle->mContext; - const auto& egl = *(gle->mEgl); - -- if (!HasDmaBufExtensions(gle)) { -- return nullptr; -- } -- -- auto fb = MozFramebuffer::Create(desc.gl, desc.size, 0, false); -- if (!fb) return nullptr; -- -- const auto buffer = reinterpret_cast(fb->ColorTex()); -- const auto image = -- egl.fCreateImage(context, LOCAL_EGL_GL_TEXTURE_2D, buffer, nullptr); -- if (!image) return nullptr; -- -- const RefPtr surface = DMABufSurfaceRGBA::CreateDMABufSurface( -- desc.gl, image, desc.size.width, desc.size.height); -- if (!surface) return nullptr; -+ RefPtr surface; -+ UniquePtr fb; - -+ if (!HasDmaBufExtensions(gle) || !gfx::gfxVars::UseDMABufSurfaceExport()) { -+ // Use MESA_image_dma_buf_export is not supported or it's broken. -+ // Create dmabuf surface directly via. GBM and create -+ // EGLImage/framebuffer over it. -+ const auto flags = static_cast( -+ DMABUF_TEXTURE | DMABUF_USE_MODIFIERS | DMABUF_ALPHA); -+ surface = DMABufSurfaceRGBA::CreateDMABufSurface(desc.size.width, -+ desc.size.height, flags); -+ if (!surface || !surface->CreateTexture(desc.gl)) { -+ return nullptr; -+ } -+ const auto tex = surface->GetTexture(); -+ fb = MozFramebuffer::CreateForBacking(desc.gl, desc.size, 0, false, -+ LOCAL_GL_TEXTURE_2D, tex); -+ if (!fb) return nullptr; -+ } else { -+ // Use MESA_image_dma_buf_export so create EGLImage/framebuffer directly -+ // and derive dmabuf from it. -+ fb = MozFramebuffer::Create(desc.gl, desc.size, 0, false); -+ if (!fb) return nullptr; -+ -+ const auto buffer = reinterpret_cast(fb->ColorTex()); -+ const auto image = -+ egl.fCreateImage(context, LOCAL_EGL_GL_TEXTURE_2D, buffer, nullptr); -+ if (!image) return nullptr; -+ -+ surface = DMABufSurfaceRGBA::CreateDMABufSurface( -+ desc.gl, image, desc.size.width, desc.size.height); -+ if (!surface) return nullptr; -+ } - return AsUnique(new SharedSurface_DMABUF(desc, std::move(fb), surface)); - } - -diff -up firefox-101.0.1/gfx/thebes/gfxPlatform.cpp.D149238.diff firefox-101.0.1/gfx/thebes/gfxPlatform.cpp ---- firefox-101.0.1/gfx/thebes/gfxPlatform.cpp.D149238.diff 2022-06-08 23:06:36.000000000 +0200 -+++ firefox-101.0.1/gfx/thebes/gfxPlatform.cpp 2022-06-14 14:28:15.302514165 +0200 -@@ -2851,6 +2851,17 @@ void gfxPlatform::InitWebGLConfig() { +diff -up firefox-102.0/gfx/thebes/gfxPlatform.cpp.D149238.diff firefox-102.0/gfx/thebes/gfxPlatform.cpp +--- firefox-102.0/gfx/thebes/gfxPlatform.cpp.D149238.diff 2022-06-23 09:08:47.000000000 +0200 ++++ firefox-102.0/gfx/thebes/gfxPlatform.cpp 2022-06-28 16:40:54.130895063 +0200 +@@ -2861,6 +2861,17 @@ void gfxPlatform::InitWebGLConfig() { gfxVars::SetAllowEglRbab(false); } } -- cgit