download.lst | 4 external/skia/Library_skia.mk | 55 ++++++-- external/skia/UnpackedTarball_skia.mk | 2 external/skia/fix-pch.patch.1 | 40 ++---- external/skia/macosmetal.patch.1 | 59 ++++----- external/skia/make-api-visible.patch.1 | 148 +++++++++++++++-------- external/skia/share-grcontext.patch.1 | 115 ++++++----------- external/skia/ubsan-missing-typeinfo.patch.1 | 4 external/skia/windows-define-conflict.patch.1 | 6 external/skia/windows-libraries-system32.patch.1 | 9 - vcl/osx/salgdiutils.cxx | 2 vcl/skia/SkiaHelper.cxx | 4 vcl/skia/osx/gdiimpl.cxx | 8 - vcl/skia/x11/gdiimpl.cxx | 6 14 files changed, 257 insertions(+), 205 deletions(-)
New commits: commit 4924a9f73fae17c14cc445e2804d4025a17acd30 Author: Noel Grandin <[email protected]> AuthorDate: Thu Oct 10 14:39:39 2024 +0200 Commit: Noel Grandin <[email protected]> CommitDate: Sat Oct 12 17:50:01 2024 +0200 update to skia m129 Change-Id: Iea920a34b11695aba32f15921018cf53f418d09a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/174846 Tested-by: Jenkins Reviewed-by: Noel Grandin <[email protected]> diff --git a/download.lst b/download.lst index 19ee54473b5b..b8d7680761ff 100644 --- a/download.lst +++ b/download.lst @@ -626,8 +626,8 @@ RHINO_TARBALL := rhino-1.7.15.zip # three static lines # so that git cherry-pick # will not run into conflicts -SKIA_SHA256SUM := 4b0b32dc197db9b4eaec46e225b72d0d06fe68407f96d834f23151acef6f142b -SKIA_TARBALL := skia-m128-cd98397d0c2c3eb1d5a8d76aade3c87c2e0d28ac.tar.xz +SKIA_SHA256SUM := 2520148d5c1d024fa6c7124a3bd8ff82754d3ee5171295954734e84427575cd0 +SKIA_TARBALL := skia-m129-dda581d538cb6532cda841444e7b4ceacde01ec9.tar.xz # three static lines # so that git cherry-pick # will not run into conflicts diff --git a/external/skia/Library_skia.mk b/external/skia/Library_skia.mk index d1d1bd6494bc..84bbf92c6b15 100644 --- a/external/skia/Library_skia.mk +++ b/external/skia/Library_skia.mk @@ -140,6 +140,24 @@ $(eval $(call gb_Library_add_exception_objects,skia,\ $(eval $(call gb_Library_set_generated_cxx_suffix,skia,cpp)) +# from file skia/gn/BUILD.gn:17, target "skia_component("window")" +# +ifeq ($(SKIA_GPU),VULKAN) +$(eval $(call gb_Library_add_generated_exception_objects,skia,\ + UnpackedTarball/skia/tools/window/VulkanWindowContext \ +)) +ifneq ($(filter-out WNT MACOSX,$(OS)),) +$(eval $(call gb_Library_add_generated_exception_objects,skia,\ + UnpackedTarball/skia/tools/window/unix/GaneshVulkanWindowContext_unix \ +)) +endif +ifeq ($(OS),WNT) +$(eval $(call gb_Library_add_generated_exception_objects,skia,\ + UnpackedTarball/skia/tools/window/win/VulkanWindowContext_win \ +)) +endif +endif + # from file skia/gn/BUILD.gn:416, target "optional("fontmgr_fontconfig")" # ifneq ($(filter-out WNT MACOSX,$(OS)),) @@ -237,25 +255,36 @@ ifeq ($(OS),WNT) $(eval $(call gb_Library_add_generated_exception_objects,skia,\ UnpackedTarball/skia/src/ports/SkDebug_win \ UnpackedTarball/skia/src/ports/SkOSFile_win \ - UnpackedTarball/skia/src/ports/SkOSLibrary_win \ )) else ifeq ($(OS),MACOSX) $(eval $(call gb_Library_add_generated_exception_objects,skia,\ UnpackedTarball/skia/src/ports/SkDebug_stdio \ UnpackedTarball/skia/src/ports/SkImageGeneratorCG \ UnpackedTarball/skia/src/ports/SkOSFile_posix \ - UnpackedTarball/skia/src/ports/SkOSLibrary_posix \ )) else $(eval $(call gb_Library_add_generated_exception_objects,skia,\ UnpackedTarball/skia/src/ports/SkDebug_stdio \ UnpackedTarball/skia/src/ports/SkOSFile_posix \ - UnpackedTarball/skia/src/ports/SkOSLibrary_posix \ )) endif -# from file skia/gn/BUILD.gn:1903, target "test_lib("gpu_tool_utils")" +# from file skia/gn/BUILD.gn:1904, target "test_lib("load_dynamic_library")" +# +ifeq ($(SKIA_GPU),VULKAN) +ifeq ($(OS),WNT) +$(eval $(call gb_Library_add_generated_exception_objects,skia,\ + UnpackedTarball/skia/tools/library/LoadDynamicLibrary_win \ +)) +else +$(eval $(call gb_Library_add_generated_exception_objects,skia,\ + UnpackedTarball/skia/tools/library/LoadDynamicLibrary_posix \ +)) +endif +endif + +# from file skia/gn/BUILD.gn:1915, target "test_lib("gpu_tool_utils")" # ifeq ($(SKIA_GPU),VULKAN) $(eval $(call gb_Library_add_generated_exception_objects,skia,\ @@ -271,18 +300,15 @@ $(eval $(call gb_Library_add_generated_exception_objects,skia,\ $(if $(filter LINUX,$(OS)),UnpackedTarball/skia/tools/window/unix/RasterWindowContext_unix) \ $(if $(filter WNT,$(OS)),UnpackedTarball/skia/tools/window/win/RasterWindowContext_win) \ )) -ifeq ($(SKIA_GPU),VULKAN) -$(eval $(call gb_Library_add_generated_exception_objects,skia,\ - UnpackedTarball/skia/tools/window/VulkanWindowContext \ - $(if $(filter LINUX,$(OS)),UnpackedTarball/skia/tools/window/unix/VulkanWindowContext_unix) \ - $(if $(filter WNT,$(OS)),UnpackedTarball/skia/tools/window/win/VulkanWindowContext_win) \ -)) -endif ifeq ($(SKIA_GPU),METAL) $(eval $(call gb_Library_add_generated_objcxxobjects,skia,\ UnpackedTarball/skia/tools/window/MetalWindowContext \ - $(if $(filter MACOSX,$(OS)),UnpackedTarball/skia/tools/window/mac/MetalWindowContext_mac) \ )) +ifeq ($(OS),MACOSX) +$(eval $(call gb_Library_add_generated_objcxxobjects,skia,\ + UnpackedTarball/skia/tools/window/mac/GaneshMetalWindowContext_mac \ +)) +endif endif # from file skia/gn/codec.gni, target "skia_codec_core" @@ -780,6 +806,7 @@ $(eval $(call gb_Library_add_generated_exception_objects,skia,\ UnpackedTarball/skia/src/sksl/transform/SkSLHoistSwitchVarDeclarationsAtTopLevel \ UnpackedTarball/skia/src/sksl/transform/SkSLRenamePrivateSymbols \ UnpackedTarball/skia/src/sksl/transform/SkSLReplaceConstVarsWithLiterals \ + UnpackedTarball/skia/src/sksl/transform/SkSLReplaceSplatCastsWithSwizzles \ UnpackedTarball/skia/src/sksl/transform/SkSLRewriteIndexedSwizzle \ )) @@ -1077,12 +1104,12 @@ $(eval $(call gb_Library_add_generated_exception_objects,skia,\ UnpackedTarball/skia/src/gpu/DataUtils \ UnpackedTarball/skia/src/gpu/DitherUtils \ UnpackedTarball/skia/src/gpu/MutableTextureState \ - UnpackedTarball/skia/src/gpu/PipelineUtils \ UnpackedTarball/skia/src/gpu/RectanizerPow2 \ UnpackedTarball/skia/src/gpu/RectanizerSkyline \ UnpackedTarball/skia/src/gpu/ResourceKey \ UnpackedTarball/skia/src/gpu/ShaderErrorHandler \ UnpackedTarball/skia/src/gpu/SkBackingFit \ + UnpackedTarball/skia/src/gpu/SkSLToBackend \ UnpackedTarball/skia/src/gpu/Swizzle \ UnpackedTarball/skia/src/gpu/TiledTextureUtils \ UnpackedTarball/skia/src/gpu/tessellate/FixedCountBufferUtils \ @@ -1090,13 +1117,13 @@ $(eval $(call gb_Library_add_generated_exception_objects,skia,\ UnpackedTarball/skia/src/text/gpu/DistanceFieldAdjustTable \ UnpackedTarball/skia/src/text/gpu/GlyphVector \ UnpackedTarball/skia/src/text/gpu/SDFMaskFilter \ - UnpackedTarball/skia/src/text/gpu/SDFTControl \ UnpackedTarball/skia/src/text/gpu/SkChromeRemoteGlyphCache \ UnpackedTarball/skia/src/text/gpu/Slug \ UnpackedTarball/skia/src/text/gpu/SlugImpl \ UnpackedTarball/skia/src/text/gpu/StrikeCache \ UnpackedTarball/skia/src/text/gpu/SubRunAllocator \ UnpackedTarball/skia/src/text/gpu/SubRunContainer \ + UnpackedTarball/skia/src/text/gpu/SubRunControl \ UnpackedTarball/skia/src/text/gpu/TextBlob \ UnpackedTarball/skia/src/text/gpu/TextBlobRedrawCoordinator \ UnpackedTarball/skia/src/text/gpu/VertexFiller \ diff --git a/external/skia/UnpackedTarball_skia.mk b/external/skia/UnpackedTarball_skia.mk index 1430ffbb5a20..60481be5de23 100644 --- a/external/skia/UnpackedTarball_skia.mk +++ b/external/skia/UnpackedTarball_skia.mk @@ -33,7 +33,7 @@ skia_patches := \ windows-libraries-system32.patch.1 \ allow-no-es2restrictions.patch.1 \ vk_mem_alloc.patch.1 \ - macosmetal.patch.0 \ + macosmetal.patch.1 \ redefinition-of-op.patch.0 \ 0001-Added-missing-include-cstdio.patch \ fix-SkDebugf-link-error.patch.1 \ diff --git a/external/skia/fix-pch.patch.1 b/external/skia/fix-pch.patch.1 index 235b63be6908..e64ac72fea4e 100644 --- a/external/skia/fix-pch.patch.1 +++ b/external/skia/fix-pch.patch.1 @@ -1,19 +1,17 @@ -diff --git a/include/private/SkColorData.h b/include/private/SkColorData.h -index a59e7b0446..960b4c0313 100644 ---- a/include/private/SkColorData.h -+++ b/include/private/SkColorData.h -@@ -382,4 +382,6 @@ constexpr SkPMColor4f SK_PMColor4fILLEGAL = { SK_FloatNegativeInfinity, +diff -ur skia.org/include/private/SkColorData.h skia/include/private/SkColorData.h +--- skia.org/include/private/SkColorData.h 2024-10-10 13:25:03.614133252 +0200 ++++ skia/include/private/SkColorData.h 2024-10-10 13:25:12.144187524 +0200 +@@ -382,4 +382,6 @@ SK_FloatNegativeInfinity, SK_FloatNegativeInfinity, SK_FloatNegativeInfinity }; +template <> uint32_t SkPMColor4f::toBytes_RGBA() const; + #endif // SkColorData_DEFINED -diff --git a/src/core/SkM44.cpp b/src/core/SkM44.cpp -index 02b1741763..4cece999d2 100644 ---- a/src/core/SkM44.cpp -+++ b/src/core/SkM44.cpp -@@ -341,6 +341,8 @@ SkM44 SkM44::LookAt(const SkV3& eye, const SkV3& center, const SkV3& up) { +diff -ur skia.org/src/core/SkM44.cpp skia/src/core/SkM44.cpp +--- skia.org/src/core/SkM44.cpp 2024-10-10 13:25:03.659133538 +0200 ++++ skia/src/core/SkM44.cpp 2024-10-10 13:25:12.144187524 +0200 +@@ -340,6 +340,8 @@ return m; } @@ -22,22 +20,20 @@ index 02b1741763..4cece999d2 100644 SkM44 SkM44::Perspective(float near, float far, float angle) { SkASSERT(far > near); -diff --git a/src/gpu/ganesh/vk/GrVkSemaphore.cpp b/src/gpu/ganesh/vk/GrVkSemaphore.cpp -index 70c7f0ea80..ab8319a447 100644 ---- a/src/gpu/ganesh/vk/GrVkSemaphore.cpp -+++ b/src/gpu/ganesh/vk/GrVkSemaphore.cpp -@@ -10,6 +10,7 @@ - #include "include/gpu/ganesh/vk/GrVkBackendSemaphore.h" +diff -ur skia.org/src/gpu/ganesh/vk/GrVkSemaphore.cpp skia/src/gpu/ganesh/vk/GrVkSemaphore.cpp +--- skia.org/src/gpu/ganesh/vk/GrVkSemaphore.cpp 2024-10-10 13:25:03.679133665 +0200 ++++ skia/src/gpu/ganesh/vk/GrVkSemaphore.cpp 2024-10-10 13:25:12.144187524 +0200 +@@ -12,6 +12,7 @@ + #include "include/private/base/SkAssert.h" #include "src/gpu/ganesh/vk/GrVkGpu.h" #include "src/gpu/ganesh/vk/GrVkUtil.h" +#include "tools/gpu/vk/GrVulkanDefines.h" - #ifdef VK_USE_PLATFORM_WIN32_KHR - // windows wants to define this as CreateSemaphoreA or CreateSemaphoreW -diff --git a/src/utils/win/SkDWriteGeometrySink.h b/src/utils/win/SkDWriteGeometrySink.h -index af4909aaaf..825ec35c83 100644 ---- a/src/utils/win/SkDWriteGeometrySink.h -+++ b/src/utils/win/SkDWriteGeometrySink.h + #include <string.h> + +diff -ur skia.org/src/utils/win/SkDWriteGeometrySink.h skia/src/utils/win/SkDWriteGeometrySink.h +--- skia.org/src/utils/win/SkDWriteGeometrySink.h 2024-10-10 13:25:03.683133691 +0200 ++++ skia/src/utils/win/SkDWriteGeometrySink.h 2024-10-10 13:25:12.144187524 +0200 @@ -13,6 +13,8 @@ class SkPath; diff --git a/external/skia/macosmetal.patch.0 b/external/skia/macosmetal.patch.1 similarity index 79% rename from external/skia/macosmetal.patch.0 rename to external/skia/macosmetal.patch.1 index 342f735e9ea4..fbf6962340fc 100644 --- a/external/skia/macosmetal.patch.0 +++ b/external/skia/macosmetal.patch.1 @@ -1,32 +1,12 @@ ---- tools/window/mac/WindowContextFactory_mac.h 2022-02-16 06:03:39.000000000 -0500 -+++ tools/window/mac/WindowContextFactory_mac.h 2023-01-25 08:09:00.000000000 -0500 -@@ -19,15 +19,8 @@ - - struct DisplayParams; - --static inline CGFloat GetBackingScaleFactor(NSView* view) { -- #ifdef SK_BUILD_FOR_IOS -- UIScreen* screen = view.window.screen ?: [UIScreen mainScreen]; -- return screen.nativeScale; -- #else -- NSScreen* screen = view.window.screen ?: [NSScreen mainScreen]; -- return screen.backingScaleFactor; -- #endif --} -+SK_API CGFloat GetBackingScaleFactor(NSView* view); -+SK_API void ResetBackingScaleFactor(); - - struct MacWindowInfo { - NSView* fMainView; --- /dev/null 2023-01-25 09:20:55.000000000 -0500 -+++ tools/window/mac/WindowContextFactory_mac.mm 2023-01-25 09:21:22.000000000 -0500 ++++ skia.org/tools/window/mac/WindowContextFactory_mac.mm 2023-01-25 09:21:22.000000000 -0500 @@ -0,0 +1,57 @@ +/* + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + -+#include "tools/window/mac/WindowContextFactory_mac.h" ++#include "tools/window/mac/MacWindowInfo.h" + +namespace skwindow { + @@ -78,18 +58,19 @@ +} + +} // namespace sk_app ---- tools/window/mac/MetalWindowContext_mac.mm 2024-08-31 15:49:57 -+++ tools/window/mac/MetalWindowContext_mac.mm 2024-09-25 20:09:32 +diff -ur skia.org/tools/window/mac/GaneshMetalWindowContext_mac.mm skia/tools/window/mac/GaneshMetalWindowContext_mac.mm +--- skia.org/tools/window/mac/GaneshMetalWindowContext_mac.mm 2024-10-10 13:50:06.102852791 +0200 ++++ skia/tools/window/mac/GaneshMetalWindowContext_mac.mm 2024-10-10 13:53:34.821323595 +0200 @@ -11,6 +11,8 @@ - #import <Cocoa/Cocoa.h> - #import <QuartzCore/CAConstraintLayoutManager.h> + #include "tools/window/MetalWindowContext.h" + #include "tools/window/mac/MacWindowInfo.h" +#include <sal/log.hxx> + - using skwindow::DisplayParams; - using skwindow::MacWindowInfo; - using skwindow::internal::MetalWindowContext; -@@ -66,8 +68,7 @@ + #import <Cocoa/Cocoa.h> + #import <QuartzCore/CAConstraintLayoutManager.h> + +@@ -65,8 +67,7 @@ fMetalLayer.autoresizingMask = kCALayerHeightSizable | kCALayerWidthSizable; fMetalLayer.contentsGravity = kCAGravityTopLeft; fMetalLayer.magnificationFilter = kCAFilterNearest; @@ -99,7 +80,7 @@ fMainView.layer = fMetalLayer; fMainView.wantsLayer = YES; -@@ -86,6 +87,18 @@ +@@ -85,6 +86,18 @@ fMetalLayer.drawableSize = backingSize; fMetalLayer.contentsScale = backingScaleFactor; @@ -118,3 +99,19 @@ fWidth = backingSize.width; fHeight = backingSize.height; } +diff -ur skia.org/tools/window/mac/MacWindowInfo.h skia/tools/window/mac/MacWindowInfo.h +--- skia.org/tools/window/mac/MacWindowInfo.h 2024-10-10 13:50:06.102852791 +0200 ++++ skia/tools/window/mac/MacWindowInfo.h 2024-10-10 13:51:30.227006251 +0200 +@@ -22,10 +22,8 @@ + NSView* fMainView; + }; + +-static inline CGFloat GetBackingScaleFactor(NSView* view) { +- NSScreen* screen = view.window.screen ?: [NSScreen mainScreen]; +- return screen.backingScaleFactor; +-} ++SK_API CGFloat GetBackingScaleFactor(NSView* view); ++SK_API void ResetBackingScaleFactor(); + + } // namespace skwindow + diff --git a/external/skia/make-api-visible.patch.1 b/external/skia/make-api-visible.patch.1 index f8bf5d5debbb..776f987a60f6 100644 --- a/external/skia/make-api-visible.patch.1 +++ b/external/skia/make-api-visible.patch.1 @@ -1,57 +1,123 @@ -diff -ur skia.org/tools/window/mac/WindowContextFactory_mac.h skia/tools/window/mac/WindowContextFactory_mac.h ---- skia.org/tools/window/mac/WindowContextFactory_mac.h 2024-10-04 14:26:29.787526193 +0200 -+++ skia/tools/window/mac/WindowContextFactory_mac.h 2024-10-04 14:28:08.353196733 +0200 -@@ -53,7 +53,7 @@ - #endif +diff -ur skia.org/tools/window/WindowContext.h skia/tools/window/WindowContext.h +--- skia.org/tools/window/WindowContext.h 2024-10-12 15:57:21 ++++ skia/tools/window/WindowContext.h 2024-10-12 15:58:48 +@@ -23,7 +23,7 @@ + + namespace skwindow { + +-class WindowContext { ++class SK_API WindowContext { + public: + WindowContext(const DisplayParams&); + +diff -ur skia.org/tools/window/mac/GaneshMetalWindowContext_mac.h skia/tools/window/mac/GaneshMetalWindowContext_mac.h +--- skia.org/tools/window/mac/GaneshMetalWindowContext_mac.h 2024-10-12 15:57:21 ++++ skia/tools/window/mac/GaneshMetalWindowContext_mac.h 2024-10-12 15:59:18 +@@ -8,6 +8,7 @@ + #ifndef GaneshMetalWindowContext_mac_DEFINED + #define GaneshMetalWindowContext_mac_DEFINED + ++#include "include/private/base/SkAPI.h" + #include <memory> + + namespace skwindow { +@@ -15,7 +16,7 @@ + struct DisplayParams; + struct MacWindowInfo; + +-std::unique_ptr<WindowContext> MakeGaneshMetalForMac(const MacWindowInfo&, const DisplayParams&); ++SK_API std::unique_ptr<WindowContext> MakeGaneshMetalForMac(const MacWindowInfo&, const DisplayParams&); + } // namespace skwindow - #ifdef SK_METAL --std::unique_ptr<WindowContext> MakeMetalForMac(const MacWindowInfo&, const DisplayParams&); -+SK_API std::unique_ptr<WindowContext> MakeMetalForMac(const MacWindowInfo&, const DisplayParams&); - #if defined(SK_GRAPHITE) - std::unique_ptr<WindowContext> MakeGraphiteMetalForMac(const MacWindowInfo&, const DisplayParams&); #endif -diff -ur skia.org/tools/window/unix/WindowContextFactory_unix.h skia/tools/window/unix/WindowContextFactory_unix.h ---- skia.org/tools/window/unix/WindowContextFactory_unix.h 2024-10-04 14:26:29.787526193 +0200 -+++ skia/tools/window/unix/WindowContextFactory_unix.h 2024-10-04 14:29:16.184625681 +0200 -@@ -35,7 +35,7 @@ - }; +diff -ur skia.org/tools/window/unix/GaneshGLWindowContext_unix.h skia/tools/window/unix/GaneshGLWindowContext_unix.h +--- skia.org/tools/window/unix/GaneshGLWindowContext_unix.h 2024-10-12 15:57:21 ++++ skia/tools/window/unix/GaneshGLWindowContext_unix.h 2024-10-12 15:59:44 +@@ -8,6 +8,7 @@ + #ifndef GaneshGLWindowContext_unix_DEFINED + #define GaneshGLWindowContext_unix_DEFINED + ++#include "include/private/base/SkAPI.h" + #include <memory> + + namespace skwindow { +@@ -15,7 +16,7 @@ + struct DisplayParams; + struct XlibWindowInfo; + +-std::unique_ptr<WindowContext> MakeGaneshGLForXlib(const XlibWindowInfo&, const DisplayParams&); ++SK_API std::unique_ptr<WindowContext> MakeGaneshGLForXlib(const XlibWindowInfo&, const DisplayParams&); + } // namespace skwindow - #ifdef SK_VULKAN --std::unique_ptr<WindowContext> MakeVulkanForXlib(const XlibWindowInfo&, const DisplayParams&); -+SK_API std::unique_ptr<WindowContext> MakeVulkanForXlib(const XlibWindowInfo&, const DisplayParams&); - #if defined(SK_GRAPHITE) - std::unique_ptr<WindowContext> MakeGraphiteVulkanForXlib(const XlibWindowInfo&, - const DisplayParams&); -@@ -43,11 +43,11 @@ #endif +diff -ur skia.org/tools/window/unix/GaneshVulkanWindowContext_unix.h skia/tools/window/unix/GaneshVulkanWindowContext_unix.h +--- skia.org/tools/window/unix/GaneshVulkanWindowContext_unix.h 2024-10-12 15:57:21 ++++ skia/tools/window/unix/GaneshVulkanWindowContext_unix.h 2024-10-12 15:58:48 +@@ -8,6 +8,7 @@ + #ifndef GaneshVulkanWindowContext_unix_DEFINED + #define GaneshVulkanWindowContext_unix_DEFINED + ++#include "include/private/base/SkAPI.h" + #include <memory> + + namespace skwindow { +@@ -15,7 +16,7 @@ + struct DisplayParams; + struct XlibWindowInfo; + +-std::unique_ptr<WindowContext> MakeGaneshVulkanForXlib(const XlibWindowInfo&, const DisplayParams&); ++SK_API std::unique_ptr<WindowContext> MakeGaneshVulkanForXlib(const XlibWindowInfo&, const DisplayParams&); + } // namespace skwindow - #ifdef SK_GL --std::unique_ptr<WindowContext> MakeGLForXlib(const XlibWindowInfo&, const DisplayParams&); -+SK_API std::unique_ptr<WindowContext> MakeGLForXlib(const XlibWindowInfo&, const DisplayParams&); #endif +diff -ur skia.org/tools/window/unix/GraphiteDawnVulkanWindowContext_unix.h skia/tools/window/unix/GraphiteDawnVulkanWindowContext_unix.h +--- skia.org/tools/window/unix/GraphiteDawnVulkanWindowContext_unix.h 2024-10-12 15:57:21 ++++ skia/tools/window/unix/GraphiteDawnVulkanWindowContext_unix.h 2024-10-12 15:58:48 +@@ -8,6 +8,7 @@ + #ifndef GraphiteDawnVulkanWindowContext_unix_DEFINED + #define GraphiteDawnVulkanWindowContext_unix_DEFINED + ++#include "include/private/base/SkAPI.h" + #include <memory> + + namespace skwindow { +@@ -15,7 +16,7 @@ + struct DisplayParams; + struct XlibWindowInfo; - #if defined(SK_DAWN) && defined(SK_GRAPHITE) -std::unique_ptr<WindowContext> MakeGraphiteDawnVulkanForXlib(const XlibWindowInfo&, +SK_API std::unique_ptr<WindowContext> MakeGraphiteDawnVulkanForXlib(const XlibWindowInfo&, const DisplayParams&); - #endif + } // namespace skwindow -@@ -55,7 +55,7 @@ - const DisplayParams&); - #endif +diff -ur skia.org/tools/window/unix/RasterWindowContext_unix.h skia/tools/window/unix/RasterWindowContext_unix.h +--- skia.org/tools/window/unix/RasterWindowContext_unix.h 2024-10-12 15:57:21 ++++ skia/tools/window/unix/RasterWindowContext_unix.h 2024-10-12 15:58:48 +@@ -8,6 +8,7 @@ + #ifndef RasterWindowContext_unix_DEFINED + #define RasterWindowContext_unix_DEFINED + ++#include "include/private/base/SkAPI.h" + #include <memory> + + namespace skwindow { +@@ -15,7 +16,7 @@ + struct DisplayParams; + struct XlibWindowInfo; -std::unique_ptr<WindowContext> MakeRasterForXlib(const XlibWindowInfo&, const DisplayParams&); +SK_API std::unique_ptr<WindowContext> MakeRasterForXlib(const XlibWindowInfo&, const DisplayParams&); - } // namespace skwindow + #endif diff -ur skia.org/tools/window/win/WindowContextFactory_win.h skia/tools/window/win/WindowContextFactory_win.h ---- skia.org/tools/window/win/WindowContextFactory_win.h 2024-10-04 14:26:29.787526193 +0200 -+++ skia/tools/window/win/WindowContextFactory_win.h 2024-10-04 14:30:25.346039651 +0200 -@@ -13,28 +13,30 @@ +--- skia.org/tools/window/win/WindowContextFactory_win.h 2024-10-12 15:57:21 ++++ skia/tools/window/win/WindowContextFactory_win.h 2024-10-12 16:00:18 +@@ -13,28 +13,31 @@ #include <memory> ++#include "include/private/base/SkAPI.h" +#include "include/core/SkTypes.h" + namespace skwindow { @@ -83,7 +149,7 @@ diff -ur skia.org/tools/window/win/WindowContextFactory_win.h skia/tools/window/ #endif #ifdef SK_DAWN -@@ -44,7 +46,7 @@ +@@ -43,7 +46,7 @@ #endif #endif @@ -92,15 +158,3 @@ diff -ur skia.org/tools/window/win/WindowContextFactory_win.h skia/tools/window/ } // namespace skwindow -diff -ur skia.org/tools/window/WindowContext.h skia/tools/window/WindowContext.h ---- skia.org/tools/window/WindowContext.h 2024-10-04 14:26:29.787526193 +0200 -+++ skia/tools/window/WindowContext.h 2024-10-04 14:27:39.148004258 +0200 -@@ -23,7 +23,7 @@ - - namespace skwindow { - --class WindowContext { -+class SK_API WindowContext { - public: - WindowContext(const DisplayParams&); - diff --git a/external/skia/share-grcontext.patch.1 b/external/skia/share-grcontext.patch.1 index 78a6169e0fa5..e627539a013a 100644 --- a/external/skia/share-grcontext.patch.1 +++ b/external/skia/share-grcontext.patch.1 @@ -1,8 +1,8 @@ -diff -ur skia.org/tools/window/mac/MetalWindowContext_mac.mm skia/tools/window/mac/MetalWindowContext_mac.mm ---- skia.org/tools/window/mac/MetalWindowContext_mac.mm 2024-10-10 11:56:54.809832489 +0200 -+++ skia/tools/window/mac/MetalWindowContext_mac.mm 2024-10-10 11:57:00.206867701 +0200 -@@ -47,10 +47,14 @@ - } +diff -ur skia.org/tools/window/mac/GaneshMetalWindowContext_mac.mm skia/tools/window/mac/GaneshMetalWindowContext_mac.mm +--- skia.org/tools/window/mac/GaneshMetalWindowContext_mac.mm 2024-10-10 14:11:32.362258108 +0200 ++++ skia/tools/window/mac/GaneshMetalWindowContext_mac.mm 2024-10-10 14:12:40.748630164 +0200 +@@ -46,10 +46,14 @@ + MetalWindowContext_mac::~MetalWindowContext_mac() { this->destroyContext(); } bool MetalWindowContext_mac::onInitializeContext() { + // Allow creating just the shared context, without an associated window. @@ -18,8 +18,8 @@ diff -ur skia.org/tools/window/mac/MetalWindowContext_mac.mm skia/tools/window/m // resize ignores the passed values and uses the fMainView directly. diff -ur skia.org/tools/window/MetalWindowContext.h skia/tools/window/MetalWindowContext.h ---- skia.org/tools/window/MetalWindowContext.h 2024-10-10 11:56:54.809832489 +0200 -+++ skia/tools/window/MetalWindowContext.h 2024-10-10 11:57:00.206867701 +0200 +--- skia.org/tools/window/MetalWindowContext.h 2024-10-10 14:11:32.362258108 +0200 ++++ skia/tools/window/MetalWindowContext.h 2024-10-10 14:11:44.341323063 +0200 @@ -14,13 +14,18 @@ #include "tools/window/WindowContext.h" @@ -72,8 +72,8 @@ diff -ur skia.org/tools/window/MetalWindowContext.h skia/tools/window/MetalWindo } // namespace skwindow::internal diff -ur skia.org/tools/window/MetalWindowContext.mm skia/tools/window/MetalWindowContext.mm ---- skia.org/tools/window/MetalWindowContext.mm 2024-10-10 11:56:54.808832483 +0200 -+++ skia/tools/window/MetalWindowContext.mm 2024-10-10 11:57:00.206867701 +0200 +--- skia.org/tools/window/MetalWindowContext.mm 2024-10-10 14:11:32.362258108 +0200 ++++ skia/tools/window/MetalWindowContext.mm 2024-10-10 14:11:44.341323063 +0200 @@ -35,50 +35,84 @@ } @@ -199,40 +199,9 @@ diff -ur skia.org/tools/window/MetalWindowContext.mm skia/tools/window/MetalWind +} + } //namespace skwindow::internal -diff -ur skia.org/tools/window/unix/VulkanWindowContext_unix.cpp skia/tools/window/unix/VulkanWindowContext_unix.cpp ---- skia.org/tools/window/unix/VulkanWindowContext_unix.cpp 2024-10-10 11:56:54.809832489 +0200 -+++ skia/tools/window/unix/VulkanWindowContext_unix.cpp 2024-10-10 11:57:00.207867708 +0200 -@@ -24,7 +24,7 @@ - return nullptr; - } - -- auto createVkSurface = [&info, instProc](VkInstance instance) -> VkSurfaceKHR { -+ internal::VulkanWindowContext::CreateVkSurfaceFn createVkSurface = [&info, instProc](VkInstance instance) -> VkSurfaceKHR { - static PFN_vkCreateXcbSurfaceKHR createXcbSurfaceKHR = nullptr; - if (!createXcbSurfaceKHR) { - createXcbSurfaceKHR = -@@ -48,6 +48,9 @@ - - return surface; - }; -+ // Allow creating just the shared context, without an associated window. -+ if(info.fWindow == None) -+ createVkSurface = nullptr; - - auto canPresent = [&info, instProc](VkInstance instance, VkPhysicalDevice physDev, - uint32_t queueFamilyIndex) { -@@ -73,7 +76,7 @@ - createVkSurface, - canPresent, - instProc)); -- if (!ctx->isValid()) { -+ if (!ctx->isValid() && createVkSurface != nullptr) { - return nullptr; - } - return ctx; diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanWindowContext.cpp ---- skia.org/tools/window/VulkanWindowContext.cpp 2024-10-10 11:56:54.809832489 +0200 -+++ skia/tools/window/VulkanWindowContext.cpp 2024-10-10 11:59:09.535711120 +0200 +--- skia.org/tools/window/VulkanWindowContext.cpp 2024-10-10 14:11:32.362258108 +0200 ++++ skia/tools/window/VulkanWindowContext.cpp 2024-10-10 14:15:27.179546520 +0200 @@ -31,9 +31,13 @@ #endif @@ -301,7 +270,7 @@ diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanW PFN_vkGetPhysicalDeviceProperties localGetPhysicalDeviceProperties = reinterpret_cast<PFN_vkGetPhysicalDeviceProperties>( -@@ -88,24 +103,42 @@ +@@ -88,24 +103,43 @@ backendContext.fInstance, VK_NULL_HANDLE)); if (!localGetPhysicalDeviceProperties) { @@ -345,7 +314,8 @@ diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanW + physDevVersion, + &extensions, + d->fInterface.get(), -+ skgpu::ThreadSafe::kNo); ++ skgpu::ThreadSafe::kNo, ++ /*blockSize=*/std::nullopt); + + fShared = fGlobalShared; + } // if( !fShared ) @@ -355,7 +325,7 @@ diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanW GET_PROC(DestroySurfaceKHR); GET_PROC(GetPhysicalDeviceSurfaceSupportKHR); GET_PROC(GetPhysicalDeviceSurfaceCapabilitiesKHR); -@@ -113,7 +146,6 @@ +@@ -113,7 +147,6 @@ GET_PROC(GetPhysicalDeviceSurfacePresentModesKHR); GET_DEV_PROC(DeviceWaitIdle); GET_DEV_PROC(QueueWaitIdle); @@ -363,7 +333,7 @@ diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanW GET_DEV_PROC(CreateSwapchainKHR); GET_DEV_PROC(DestroySwapchainKHR); GET_DEV_PROC(GetSwapchainImagesKHR); -@@ -121,55 +153,44 @@ +@@ -121,56 +154,44 @@ GET_DEV_PROC(QueuePresentKHR); GET_DEV_PROC(GetDeviceQueue); @@ -374,7 +344,8 @@ diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanW - physDevVersion, - &extensions, - fInterface.get(), -- skgpu::ThreadSafe::kNo); +- skgpu::ThreadSafe::kNo, +- /*blockSize=*/std::nullopt); - - fContext = GrDirectContexts::MakeVulkan(backendContext, fDisplayParams.fGrContextOptions); + // No actual window, used just to create the shared GrContext. @@ -429,7 +400,7 @@ diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanW nullptr); if (VK_SUCCESS != res) { return false; -@@ -177,14 +198,14 @@ +@@ -178,14 +199,14 @@ SkAutoMalloc surfaceFormatAlloc(surfaceFormatCount * sizeof(VkSurfaceFormatKHR)); VkSurfaceFormatKHR* surfaceFormats = (VkSurfaceFormatKHR*)surfaceFormatAlloc.get(); @@ -446,7 +417,7 @@ diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanW nullptr); if (VK_SUCCESS != res) { return false; -@@ -192,7 +213,7 @@ +@@ -193,7 +214,7 @@ SkAutoMalloc presentModeAlloc(presentModeCount * sizeof(VkPresentModeKHR)); VkPresentModeKHR* presentModes = (VkPresentModeKHR*)presentModeAlloc.get(); @@ -455,7 +426,7 @@ diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanW presentModes); if (VK_SUCCESS != res) { return false; -@@ -308,8 +329,8 @@ +@@ -309,8 +330,8 @@ swapchainCreateInfo.imageArrayLayers = 1; swapchainCreateInfo.imageUsage = usageFlags; @@ -466,7 +437,7 @@ diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanW swapchainCreateInfo.imageSharingMode = VK_SHARING_MODE_CONCURRENT; swapchainCreateInfo.queueFamilyIndexCount = 2; swapchainCreateInfo.pQueueFamilyIndices = queueFamilies; -@@ -325,27 +346,27 @@ +@@ -326,27 +347,27 @@ swapchainCreateInfo.clipped = true; swapchainCreateInfo.oldSwapchain = fSwapchain; @@ -499,7 +470,7 @@ diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanW } return true; -@@ -355,10 +376,10 @@ +@@ -356,10 +377,10 @@ VkImageUsageFlags usageFlags, SkColorType colorType, VkSharingMode sharingMode) { @@ -512,7 +483,7 @@ diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanW // set up initial image layouts and create surfaces fImageLayouts = new VkImageLayout[fImageCount]; -@@ -374,7 +394,7 @@ +@@ -375,7 +395,7 @@ info.fFormat = format; info.fImageUsageFlags = usageFlags; info.fLevelCount = 1; @@ -521,7 +492,7 @@ diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanW info.fProtected = skgpu::Protected(fDisplayParams.fCreateProtectedNativeBackend); info.fSharingMode = sharingMode; -@@ -417,8 +437,8 @@ +@@ -418,8 +438,8 @@ fBackbuffers = new BackbufferInfo[fImageCount + 1]; for (uint32_t i = 0; i < fImageCount + 1; ++i) { fBackbuffers[i].fImageIndex = -1; @@ -532,7 +503,7 @@ diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanW &fBackbuffers[i].fRenderSemaphore)); SkASSERT(result == VK_SUCCESS); } -@@ -431,8 +451,8 @@ +@@ -432,8 +452,8 @@ if (fBackbuffers) { for (uint32_t i = 0; i < fImageCount + 1; ++i) { fBackbuffers[i].fImageIndex = -1; @@ -543,7 +514,7 @@ diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanW fBackbuffers[i].fRenderSemaphore, nullptr)); } -@@ -457,42 +477,59 @@ +@@ -458,42 +478,59 @@ void VulkanWindowContext::destroyContext() { if (this->isValid()) { fQueueWaitIdle(fPresentQueue); @@ -569,13 +540,13 @@ diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanW fContext.reset(); - fInterface.reset(); + fShared.reset(); ++ ++ checkDestroyShared(); ++} - if (VK_NULL_HANDLE != fDevice) { - fDestroyDevice(fDevice, nullptr); - fDevice = VK_NULL_HANDLE; -+ checkDestroyShared(); -+} -+ +void VulkanWindowContext::checkDestroyShared() +{ + if(!fGlobalShared || !fGlobalShared->unique()) // TODO mutex? @@ -617,7 +588,7 @@ diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanW } VulkanWindowContext::BackbufferInfo* VulkanWindowContext::getAvailableBackbuffer() { -@@ -518,35 +555,35 @@ +@@ -519,35 +556,35 @@ semaphoreInfo.pNext = nullptr; semaphoreInfo.flags = 0; VkSemaphore semaphore; @@ -659,7 +630,7 @@ diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanW return nullptr; } } -@@ -571,7 +608,7 @@ +@@ -572,7 +609,7 @@ info.fNumSemaphores = 1; info.fSignalSemaphores = &beSemaphore; skgpu::MutableTextureState presentState = skgpu::MutableTextureStates::MakeVulkan( @@ -668,7 +639,7 @@ diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanW auto dContext = surface->recordingContext()->asDirectContext(); dContext->flush(surface, info, &presentState); dContext->submit(); -@@ -592,4 +629,6 @@ +@@ -593,4 +630,6 @@ fQueuePresentKHR(fPresentQueue, &presentInfo); } @@ -676,9 +647,9 @@ diff -ur skia.org/tools/window/VulkanWindowContext.cpp skia/tools/window/VulkanW + } // namespace skwindow::internal diff -ur skia.org/tools/window/VulkanWindowContext.h skia/tools/window/VulkanWindowContext.h ---- skia.org/tools/window/VulkanWindowContext.h 2024-10-10 11:56:54.808832483 +0200 -+++ skia/tools/window/VulkanWindowContext.h 2024-10-10 11:57:00.207867708 +0200 -@@ -15,19 +15,23 @@ +--- skia.org/tools/window/VulkanWindowContext.h 2024-10-10 14:11:32.361258102 +0200 ++++ skia/tools/window/VulkanWindowContext.h 2024-10-10 14:11:44.342323068 +0200 +@@ -13,19 +13,23 @@ #include "tools/gpu/vk/VkTestUtils.h" #include "tools/window/WindowContext.h" @@ -704,7 +675,7 @@ diff -ur skia.org/tools/window/VulkanWindowContext.h skia/tools/window/VulkanWin void resize(int w, int h) override { this->createSwapchain(w, h, fDisplayParams); -@@ -47,9 +51,15 @@ +@@ -45,9 +49,15 @@ VulkanWindowContext(const DisplayParams&, CreateVkSurfaceFn, CanPresentFn, PFN_vkGetInstanceProcAddr); @@ -720,7 +691,7 @@ diff -ur skia.org/tools/window/VulkanWindowContext.h skia/tools/window/VulkanWin struct BackbufferInfo { uint32_t fImageIndex; // image this is associated with -@@ -62,11 +72,6 @@ +@@ -60,11 +70,6 @@ void destroyBuffers(); void onSwapBuffers() override; @@ -732,7 +703,7 @@ diff -ur skia.org/tools/window/VulkanWindowContext.h skia/tools/window/VulkanWin // Create functions CreateVkSurfaceFn fCreateVkSurfaceFn; CanPresentFn fCanPresentFn; -@@ -86,20 +91,46 @@ +@@ -84,20 +89,46 @@ PFN_vkAcquireNextImageKHR fAcquireNextImageKHR = nullptr; PFN_vkQueuePresentKHR fQueuePresentKHR = nullptr; @@ -785,8 +756,8 @@ diff -ur skia.org/tools/window/VulkanWindowContext.h skia/tools/window/VulkanWin uint32_t fImageCount; diff -ur skia.org/tools/window/win/VulkanWindowContext_win.cpp skia/tools/window/win/VulkanWindowContext_win.cpp ---- skia.org/tools/window/win/VulkanWindowContext_win.cpp 2024-10-10 11:56:54.809832489 +0200 -+++ skia/tools/window/win/VulkanWindowContext_win.cpp 2024-10-10 11:57:00.207867708 +0200 +--- skia.org/tools/window/win/VulkanWindowContext_win.cpp 2024-10-10 14:11:32.362258108 +0200 ++++ skia/tools/window/win/VulkanWindowContext_win.cpp 2024-10-10 14:11:44.342323068 +0200 @@ -25,7 +25,7 @@ return nullptr; } @@ -816,8 +787,8 @@ diff -ur skia.org/tools/window/win/VulkanWindowContext_win.cpp skia/tools/window } return ctx; diff -ur skia.org/tools/window/WindowContext.h skia/tools/window/WindowContext.h ---- skia.org/tools/window/WindowContext.h 2024-10-10 11:56:54.809832489 +0200 -+++ skia/tools/window/WindowContext.h 2024-10-10 11:57:00.207867708 +0200 +--- skia.org/tools/window/WindowContext.h 2024-10-10 14:11:32.361258102 +0200 ++++ skia/tools/window/WindowContext.h 2024-10-10 14:11:44.342323068 +0200 @@ -10,9 +10,9 @@ #include "include/core/SkRefCnt.h" #include "include/core/SkSurfaceProps.h" diff --git a/external/skia/ubsan-missing-typeinfo.patch.1 b/external/skia/ubsan-missing-typeinfo.patch.1 index 3e88bc0cc491..ff1a670a3e05 100644 --- a/external/skia/ubsan-missing-typeinfo.patch.1 +++ b/external/skia/ubsan-missing-typeinfo.patch.1 @@ -2,8 +2,8 @@ diff -ur skia.org/src/image/SkImage_Base.h skia/src/image/SkImage_Base.h --- skia.org/src/image/SkImage_Base.h 2023-07-12 10:59:47.006358109 +0200 +++ skia/src/image/SkImage_Base.h 2023-07-12 11:15:00.028292134 +0200 @@ -44,7 +44,7 @@ - - namespace skgpu { namespace graphite { class Recorder; } } + class Recorder; + } -class SkImage_Base : public SkImage { +class SK_API SkImage_Base : public SkImage { diff --git a/external/skia/windows-define-conflict.patch.1 b/external/skia/windows-define-conflict.patch.1 index afabe3db145f..20fde50786a0 100644 --- a/external/skia/windows-define-conflict.patch.1 +++ b/external/skia/windows-define-conflict.patch.1 @@ -7,6 +7,6 @@ diff -ur skia.org/src/gpu/vk/vulkanmemoryallocator/VulkanAMDMemoryAllocator.h sk const VulkanExtensions* extensions, - const VulkanInterface* interface, + const VulkanInterface* vinterface, - ThreadSafe); - - ~VulkanAMDMemoryAllocator() override; + ThreadSafe, + std::optional<VkDeviceSize> blockSize); + diff --git a/external/skia/windows-libraries-system32.patch.1 b/external/skia/windows-libraries-system32.patch.1 index 45c0e35d1cfa..ba0917ad1c38 100644 --- a/external/skia/windows-libraries-system32.patch.1 +++ b/external/skia/windows-libraries-system32.patch.1 @@ -1,9 +1,8 @@ -diff --git a/src/ports/SkOSLibrary_win.cpp b/src/ports/SkOSLibrary_win.cpp -index d2dcbe0af6..c288bbf177 100644 ---- a/src/ports/SkOSLibrary_win.cpp -+++ b/src/ports/SkOSLibrary_win.cpp +diff -ur skia.org/tools/library/LoadDynamicLibrary_win.cpp skia/tools/library/LoadDynamicLibrary_win.cpp +--- skia.org/tools/library/LoadDynamicLibrary_win.cpp 2024-10-10 13:48:13.491741916 +0200 ++++ skia/tools/library/LoadDynamicLibrary_win.cpp 2024-10-10 13:48:43.266759521 +0200 @@ -11,7 +11,7 @@ - #include "src/ports/SkOSLibrary.h" + #include "tools/library/LoadDynamicLibrary.h" void* SkLoadDynamicLibrary(const char* libraryName) { - return LoadLibraryA(libraryName); diff --git a/vcl/osx/salgdiutils.cxx b/vcl/osx/salgdiutils.cxx index a125ca98644c..ecc886be0243 100644 --- a/vcl/osx/salgdiutils.cxx +++ b/vcl/osx/salgdiutils.cxx @@ -37,7 +37,7 @@ #include <osx/saldata.hxx> #if HAVE_FEATURE_SKIA -#include <tools/window/mac/WindowContextFactory_mac.h> +#include <tools/window/mac/MacWindowInfo.h> #include <skia/osx/gdiimpl.hxx> #endif diff --git a/vcl/skia/SkiaHelper.cxx b/vcl/skia/SkiaHelper.cxx index 09a294b86207..bd9c5a2c21b2 100644 --- a/vcl/skia/SkiaHelper.cxx +++ b/vcl/skia/SkiaHelper.cxx @@ -57,8 +57,12 @@ bool isAlphaMaskBlendingEnabled() { return false; } #if defined(MACOSX) #include <premac.h> #endif +#ifdef SK_VULKAN #include <tools/window/VulkanWindowContext.h> +#endif +#ifdef SK_METAL #include <tools/window/MetalWindowContext.h> +#endif #if defined(MACOSX) #include <postmac.h> #endif diff --git a/vcl/skia/osx/gdiimpl.cxx b/vcl/skia/osx/gdiimpl.cxx index d7c4194ae5d0..b5a1035bf592 100644 --- a/vcl/skia/osx/gdiimpl.cxx +++ b/vcl/skia/osx/gdiimpl.cxx @@ -23,11 +23,13 @@ #include <skia/utils.hxx> #include <skia/zone.hxx> -#include <tools/window/mac/WindowContextFactory_mac.h> +//#include <tools/window/mac/WindowContextFactory_mac.h> #include <quartz/CoreTextFont.hxx> #include <quartz/SystemFontList.hxx> #include <skia/quartz/cgutils.h> +#include <tools/window/mac/MacWindowInfo.h> +#include <tools/window/mac/GaneshMetalWindowContext_mac.h> #include <SkBitmap.h> #include <SkCanvas.h> @@ -86,7 +88,7 @@ void AquaSkiaSalGraphicsImpl::createWindowSurfaceInternal(bool forceRaster) mSurface = createSkSurface(GetWidth() * mScaling, GetHeight() * mScaling); break; case RenderMetal: - mWindowContext = skwindow::MakeMetalForMac(macWindow, displayParams); + mWindowContext = skwindow::MakeGaneshMetalForMac(macWindow, displayParams); // Like with other GPU contexts, create a proxy offscreen surface (see // flushSurfaceToWindowContext()). Here it's additionally needed because // it appears that Metal surfaces cannot be read from, which would break things @@ -403,7 +405,7 @@ std::unique_ptr<skwindow::WindowContext> createMetalWindowContext(bool /*tempora skwindow::DisplayParams displayParams; skwindow::MacWindowInfo macWindow; macWindow.fMainView = nullptr; - return skwindow::MakeMetalForMac(macWindow, displayParams); + return skwindow::MakeGaneshMetalForMac(macWindow, displayParams); } } diff --git a/vcl/skia/x11/gdiimpl.cxx b/vcl/skia/x11/gdiimpl.cxx index 3f93c5da9c8f..4d15b6d5fd7a 100644 --- a/vcl/skia/x11/gdiimpl.cxx +++ b/vcl/skia/x11/gdiimpl.cxx @@ -18,7 +18,9 @@ #include <skia/x11/gdiimpl.hxx> -#include <tools/window/unix/WindowContextFactory_unix.h> +#include <tools/window/unix/RasterWindowContext_unix.h> +#include <tools/window/unix/GaneshVulkanWindowContext_unix.h> +#include <tools/window/unix/XlibWindowInfo.h> #include <skia/utils.hxx> #include <skia/zone.hxx> @@ -112,7 +114,7 @@ X11SkiaSalGraphicsImpl::createWindowContext(Display* display, Drawable drawable, : kRGBA_8888_SkColorType); return skwindow::MakeRasterForXlib(winInfo, displayParams); case RenderVulkan: - return skwindow::MakeVulkanForXlib(winInfo, displayParams); + return skwindow::MakeGaneshVulkanForXlib(winInfo, displayParams); case RenderMetal: abort(); break;
