summaryrefslogtreecommitdiff
path: root/external/skia
AgeCommit message (Collapse)Author
2020-07-21external/skia: Fix previous std::result_of_t -> std::invoke_result_t changeStephan Bergmann
...84c412cb8392d306ab87fc06855677612f9938a6 "external/skia: Deprecated std::result_of_t has been removed from C++20" Change-Id: I7d14306039dbcdbc9509471402299d8cbb9e48c8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99168 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-07-20external/skia: Deprecated std::result_of_t has been removed from C++20Stephan Bergmann
...and is no longer provided at least by VS 2019 16.6.4 when using --with-latest-c++ Change-Id: I4655e2a2b3c4c9411ee6f5b9b42137e1bd7ac3fb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99046 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-07-12update pchesCaolán McNamara
Change-Id: I75602277a5a26b012a12f2c4f4b7ff5bb663b0b9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/98474 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2020-07-01update Skia to chrome/m85 snapshotLuboš Luňák
Change-Id: I3af3517c9c213e0db8365aecd0a008d817ca4dcf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97592 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-06-30direct 8bit gray -> RGBA conversion in SkiaSalBitmapLuboš Luňák
Change-Id: Ic77f9b8f9244e7fdaca78f91686645eee421d18f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97288 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-06-25log properly the compiler used to compile SkiaLuboš Luňák
Using #define's directly from VCL will report the compiler used to compile VCL, which may be different from the one used for Skia. Also truncate the log file on opening. Change-Id: Iddf613613df20505f1abe1dd5468dcc8c7041410 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97090 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-06-22add debugging hints to Skia READMELuboš Luňák
Change-Id: I32d9a8bf19cbff709c088c0e0a1d4830e877e88d
2020-05-20external/skia: Mark c++20.patch.0 as reported upstreamStephan Bergmann
Change-Id: Ia8434915829682880c0f2161f935d6608a18fd81 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94555 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-05-19external/skia: Adapt to C++20 rewritten equality comparisonsStephan Bergmann
...by avoiding the selection of rewritten ones that would use synthesized operator== with non-bool return type: > workdir/UnpackedTarball/skia/src/core/SkVM.cpp:1317:37: error: return type 'skvm::I32' of selected 'operator==' function for rewritten '==' comparison is not 'bool' > select(s == 0.0f , d * (1-src.a) > ~ ^ ~~~~ > workdir/UnpackedTarball/skia/src/core/SkVM.cpp:1217:17: note: in instantiation of function template specialization 'skvm::Builder::blend(SkBlendMode, skvm::Color, skvm::Color)::(anonymous class)::operator()<skvm::F32, skvm::F32>' requested here > fn(src.r, dst.r), > ^ > workdir/UnpackedTarball/skia/src/core/SkVM.cpp:1311:43: note: in instantiation of function template specialization 'skvm::Builder::blend(SkBlendMode, skvm::Color, skvm::Color)::(anonymous class)::operator()<(lambda at workdir/UnpackedTarball/skia/src/core/SkVM.cpp:1311:44)>' requested here > return apply_rgb_srcover_a([&](auto s, auto d) { > ^ > workdir/UnpackedTarball/skia/src/core/SkVM.h:912:23: note: declared here > static inline I32 operator==(float x, F32 y) { return y->eq(x,y); } > ^ (There are more such operators here that could cause similar issues, but I only adapted the one that caused the overall build of LibreOffice to fail.) Change-Id: Ib880191f8bfa44dacb65692e27f32d2e62a96371 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94473 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-05-18update to Skia chrome/m84 snapshotLuboš Luňák
Change-Id: I7c5ad1673776fd0991a61b4c9f9a947e42764f44 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94414 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-05-11avoid deep copies of pixels with Skia raster surfaces (tdf#132856)Luboš Luňák
SkCanvas::draw() leads to deep copies of the source bitmap, moreover RasterWindowContext_win allocates the pixels in a way that SkSurface_Raster has to do a deep copy because of not owning the pixels. Change-Id: I22f6a2c0f96faf99f94140eff26ec0c22fae96d9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93958 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-05-11skia: add SkOpts_crc32Rene Engelhard
I get /usr/bin/ld: /home/rene/libreoffice-7.0.0~alpha1/workdir/GenCxxObject/UnpackedTarball/skia/src/core/SkOpts.o: in function `SkOpts::Init()': ././workdir/UnpackedTarball/skia/src/core/SkOpts.cpp:135: undefined reference to `SkOpts::Init_crc32()' collect2: error: ld returned 1 exit status make[2]: *** [/home/rene/libreoffice-7.0.0~alpha1/external/skia/Library_skia.mk:10: /home/rene/libreoffice-7.0.0~alpha1/instdir/program/libskialo.so] Error 1 on aarch64 otherwise Change-Id: I713df3438e48fb7cb08ecdb07a998d21068ab464 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93901 Tested-by: Rene Engelhard <rene@debian.org> Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-05-06always build Skia optimized, unless --enable-skia=debugLuboš Luňák
In raster mode the performance may make quite a difference, this is the drawing library (that's now the Windows default) and LO developers mostly do not need to debug Skia itself. Change-Id: I42f0407d37a2294b062a41d94566e8a4f5f4354b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/93557 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-04-21better handling of SSEx,AVX intrinsics for ClangLuboš Luňák
Clang-cl interprets MSVC's -arch option a bit differently (for MSVC -arch:SSE2 seems to mean SSE2+, but SSE2-only for Clang). So use Clang's -mxxx options when using clang-cl as CC/CXX. Also check intrinsics once again if using CLANG_CC/CXX to compile Skia. Change-Id: I64cd368ef4e5f4fcf1dbe877a1129f418d273a47 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92618 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-04-20prefer building Skia with Clang if possible (tdf#131697)Luboš Luňák
I.e. try to find and use Clang even if the default compiler is something else. Skia is optimized to be built with Clang(-cl) and in CPU-based raster mode some operations are several times slower if built with something else (e.g. fmax/fmin do not get optimized to inline assembly). It is enough to select Clang to be installed in the MSVS installer. At this point it unclear how to handle release binaries, if it should work this way and enforced, or maybe Clang could be used for building everything, or maybe some other way. Change-Id: I6b95a0f2d5cbf176942d9e01136990b14be6dba8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92415 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-04-13skia: make gcc not crash again for x86 buildsThorsten Behrens
Papered over already with a bandaid in c13f75de521cfb67ca4db431708f8cd366b23587, happened again after skia upgrade; let's now fix th eICE on CentOS7 devtoolset-7's gcc proper. It appears that this error workdir/UnpackedTarball/skia/third_party/skcms/src/Transform_inl.h:696:13: note: The ABI for passing parameters with 16-byte alignment has changed in GCC 4.6 static void clut(const skcms_A2B* a2b, F* r, F* g, F* b, F a) { ^~~~ workdir/UnpackedTarball/skia/third_party/skcms/skcms.cpp: At global scope: workdir/UnpackedTarball/skia/third_party/skcms/skcms.cpp:2645:1: internal compiler error: Segmentation fault is caused by the clut() function still inlined for gcc. Patch makes this go away by leaving clut() with external visibility, thus getting gcc to outline it. Original Google hack with __attribute__((noinline)) alone appears insufficient. Change-Id: I8a566994ac815ae480ef1ce1b80c4fb59bef2f92 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/92094 Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2020-04-10prefer DirectWrite for Skia's Windows text renderingLuboš Luňák
Change-Id: Ibfb6206751126def10905bb22effbe1a947cd6d6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91968 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-04-07optimize bit depth conversions to/from Skia where possibleLuboš Luňák
Skia has an optimized function for RGB->RGBA conversion that we are going to do often because 24bpp is the most common LO image format. The function is private, so patch that. Also optimize 32bpp->8bpp conversion with gray palette. Change-Id: I48b06f80d5ca9e1c8e3ee51da61e87541bd83d5a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91768 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-04-06do not build OpenGL support in SkiaLuboš Luňák
We currently do not use it. If somebody wants to add support for that, you're welcome, but until then there's no point in building this. Change-Id: Ia714a6babdac1824e6cca3438794a0945e175c14 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91746 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-04-06update Skia to chrome/m83Luboš Luňák
Change-Id: I350cbdf753f3d6f61623e384c4446c9c6890f041 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91745 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-03-31build Skia on Windows with UNICODE setLuboš Luňák
Skia uses the Windows generic macros that map to the ANSI *A variants or the unicode *W variants of functions/types, but in LO code we mostly use explicitly the *W variants and do not set the UNICODE define. So build Skia with UNICODE and explicitly use *W API in SKia's API that we use. Change-Id: I689797b30a412820f97d9ce88e9fe078ead2cf76 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91376 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-03-27fix LOGFONTA/GetObjectW() mismatch and remove Skia HFONT hack (tdf#131426)Luboš Luňák
The GetObjectA/W() functions are type-unsafe, and since we #undef GetObject I accidentally used GetObjectW() with LOGFONT that was LOGFONTA. This caused the font name to be broken, which made Skia use a different font. This means that Skia doesn't actually need the HFONT passing hack. Change-Id: I67b8d18fef6a92f8839b1652e051da96d01c3a4e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/91202 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-03-20Missing include (Windows --disable-pch; for HFONT)Stephan Bergmann
Change-Id: Ia1dcd0d6b9f66517a6c2fe0186ed77e007677261 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90800 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-03-18(do not) use SK_GAMMA_APPLY_TO_A8 also for Skia text on WindowsLuboš Luňák
This is the Windows variant of the SK_GAMMA_APPLY_TO_A8 disabling, again I don't quite understand why we need to disable this, but with this patch Skia text rendering on Windows seems to be pixel-perfect when compared with the VCL gen backend. Change-Id: Iafc1e6353430e695dafa67d19eefd968d4f02ae2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90696 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-03-18update Skia to chrome/m82Luboš Luňák
Also don't build pdf and jpeg support, it's not needed. Change-Id: I5f10b1279072dbaba7695aecba5e415853ae308b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90666 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-03-18implement text rendering using directly Skia (Windows)Luboš Luňák
The Windows code needed for Skia text rendering. Like with the X11 code, the font is slightly lighter than with Skia disabled, but otherwise it seems to work. And like the X11 code this also requires patching Skia to use the font we want. Change-Id: Ib5ba52e4ba51b6523617072b77ed5446e7343f46 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90582 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-03-18implement text rendering using directly Skia (X11)Luboš Luňák
The Cairo-based way reuses code that is used for OpenGL, but it's needlessly complicated, given that Skia itself is capable of text rendering as well. This requires a small patch for Skia so that it uses the FcPattern* we use for selecting a font. The rendering with this commit is usable, but visually the result is noticeably different, so this will need tweaks to the font rendering (TBD). Change-Id: I058c282307106c929ccc9faa7b2bddfabf0f0a2c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/90580 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-02-10add (Vulkan) blacklisting to SkiaLuboš Luňák
Currently there's nothing blacklisted, but this is the code. And there's not much point in blacklisting CPU-based raster Skia, so check only for Vulkan. Since this requires accessing Vulkan to get the driver info, this commit also reorganizes a bit getting a GrContext when there's no actual window, so that it's usable for the test. Change-Id: I042af0470fb635d8ea471a40837bfcd102d7016f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88205 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-02-01remove outdated TODO from skia externalLuboš Luňák
Change-Id: Ibe17072dd0c1f4b7f76d05a2dac0e2cbf1eb151d
2020-02-01Skia: fix #define MemoryBarrier coming from winnt.h from pchMike Kaganski
... resulting in error message C:/lo/src/build/workdir/UnpackedTarball/skia/src/gpu/gl/GrGLGpu.cpp(3771): error C2039: 'f__faststorefence': is not a member of 'GrGLInterface::Functions' Change-Id: If69c0067abe287dd276c685cde6be3b31a1ce950 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87780 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2020-01-31update Skia to chrome/m81Luboš Luňák
Change-Id: I62ac293ac5fde3716b2db1421301f3a4aed0bcc9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/87763 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-01-17For now, work around Clang 11 -flax-vector-conversion=integer in external/skiaStephan Bergmann
<https://github.com/llvm/llvm-project/commit/ b72a8c65e4e34779b6bc9e466203f553f5294486> "PR17164: Change clang's default behavior from -flax-vector-conversions=all to -flax-vector-conversions=integer" broke the build with > In file included from /data/sbergman/lo-clang/core/workdir/UnpackedTarball/skia/src/core/SkOpts.cpp:43: > /data/sbergman/lo-clang/core/workdir/UnpackedTarball/skia/src/opts/SkRasterPipeline_opts.h:713:26: error: no matching function for call to '_mm_and_ps' > return _mm_or_ps(_mm_and_ps(c, t), _mm_andnot_ps(c, e)); > ^~~~~~~~~~ > /data/sbergman/llvm/inst/lib/clang/11.0.0/include/xmmintrin.h:404:1: note: candidate function not viable: no known conversion from 'sse2::I32' (aka 'V<int32_t>') to '__m128' (vector of 4 'float' values) for 1st argument > _mm_and_ps(__m128 __a, __m128 __b) > ^ etc. We could pass in -flax-vector-conversions=all on the compiler command line for Clang 11, but that option is not understood by older versions, so for now just disable the failing JUMPER_IS_SSE2/JUMPER_IS_SSE41 code paths. Ultimately, the skia code will need to be fixed. Change-Id: If3202789f5f08bb40cf2ad8f6bcef5b5b3e462dd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86939 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2020-01-14fix Skia CPU instruction set support (tdf#129546)Luboš Luňák
It was a mistake to compile the SkOpts.cpp file with the highest CPU set available. I got confused by what SK_CPU_SSE_LEVEL means. That setting is the lowest set supported, so we should leave it at whatever Skia's SkPreConfig.h detects it to be from the actual compiler flags (the ones used for building everything). SkOpts::init() does runtime checks only for sets _lower_ than what SK_CPU_SSE_LEVEL says, so by compiling the file with the highest set all these runtime checks got disabled and it was assumed that the set defined by SK_CPU_SSE_LEVEL is always available. Change-Id: I839370645a9cafbede2d37017b9332cc739fc317 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/86682 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2020-01-06avoid Skia assert on leaked resourcesLuboš Luňák
Change-Id: Ie9d9117c43d19b9391f8e0dee6825076aaa12706 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/85582 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2019-12-29skia: make gcc not crash for x86 buildsThorsten Behrens
Otherwise at least on x86, gcc bails out with an ICE: skia/third_party/skcms/src/Transform_inl.h: In function ‘void baseline::clut(const skcms_A2B*, baseline::F*, baseline::F*, baseline::F*, baseline::F)’: skia/third_party/skcms/src/Transform_inl.h:695:13: note: The ABI for passing parameters with 16-byte alignment has changed in GCC 4.6 static void clut(const skcms_A2B* a2b, F* r, F* g, F* b, F a) { ^~~~ skia/third_party/skcms/skcms.cpp: At global scope: skia/third_party/skcms/skcms.cpp:2613:1: internal compiler error: Segmentation fault } ^ Likely reason: optimizer stumbles over F being non-register-passable, c.f. https://stackoverflow.com/questions/39383193/compiling-legacy-gcc-code-with-avx-vector-warnings Fix is an obvious bandaid, but fixes build for CentOS7 devtoolset-7. I suspect though that non-avx/sse2 builds are not a supported scenario for skia, in the end... Change-Id: Iaff734de8dc8b9a6fbf868c13810074f9667720b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/85933 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
2019-12-12external/skia: Further -Werror=deprecated-copy-dtor for Clang 10 trunkStephan Bergmann
...where the warning finds more occurrences than with GCC Change-Id: I12303de8f3b2d3299e847480e556ad03663d5401 Reviewed-on: https://gerrit.libreoffice.org/85040 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-12update Skia to chrome/m80Luboš Luňák
Change-Id: I26782c8bd3d8ce34cbf7ce5a00b884436d37cb85 Reviewed-on: https://gerrit.libreoffice.org/84617 Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2019-12-04external/skia: Fix -Werror=deprecated-copy-dtorStephan Bergmann
...happening when LO code includes skia files: > vcl/skia/gdiimpl.cxx: In member function ‘void SkiaSalGraphicsImpl::createOffscreenSurface()’: > vcl/skia/gdiimpl.cxx:246:83: error: implicitly-declared ‘sk_app::VulkanWindowContext::SharedGrContext& sk_app::VulkanWindowContext::SharedGrContext::operator=(const sk_app::VulkanWindowContext::SharedGrContext&)’ is deprecated [-Werror=deprecated-copy-dtor] > 246 | mOffscreenGrContext = sk_app::VulkanWindowContext::getSharedGrContext(); > | ^ > In file included from vcl/inc/skia/gdiimpl.hxx:29, > from vcl/skia/gdiimpl.cxx:20: > workdir/UnpackedTarball/skia/tools/sk_app/VulkanWindowContext.h:35:9: note: because ‘sk_app::VulkanWindowContext::SharedGrContext’ has user-provided ‘sk_app::VulkanWindowContext::SharedGrContext::~SharedGrContext()’ > 35 | ~SharedGrContext() { shared.reset(); checkDestroyShared(); } > | ^ See e9e4eb0736d5582fa37dcad20bf5826c50029249 "Fix some -Werror=deprecated-copy-dtor" for details about -Wdeprecated-copy-dtor. Change-Id: Ic393acff5c4d8e3eaa78b4dfed51626f73e95ed4 Reviewed-on: https://gerrit.libreoffice.org/84425 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2019-12-03split instrinsics CXXFLAGS per each instruction setLuboš Luňák
The common usage pattern should be having one source file per each instruction set and then one source file compiled with neutral flags that dispatches to the relevant code based on runtime checks. Which means that there can't be any one "correct" flag, otherwise all files would get compiled e.g. with SSE4.2 but then CPUs capable only of SSE2 would crash running that code. Change-Id: I362bf66f672dae4588a48effe3bcd30c34ea75b3 Reviewed-on: https://gerrit.libreoffice.org/84227 Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Tested-by: Jenkins Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
2019-11-29do not explicitly link to libGLXLuboš Luňák
Apparently it doesn't exist on some old distros, and libGL links to libGLX anyway. Change-Id: I71ed5aef9e2309b34f9fed6fd1825c1cdb6b1afb
2019-11-27external/skia: -Werror,-Wdeprecated-copyStephan Bergmann
> In file included from vcl/skia/gdiimpl.cxx:20: > In file included from vcl/inc/skia/gdiimpl.hxx:28: > In file included from workdir/UnpackedTarball/skia/include/core/SkSurface.h:13: > workdir/UnpackedTarball/skia/include/core/SkSurfaceProps.h:66:5: error: definition of implicit copy assignment operator for 'SkSurfaceProps' is deprecated because it has a user-declared copy constructor [-Werror,-Wdeprecated-copy] > SkSurfaceProps(const SkSurfaceProps& other); > ^ > workdir/UnpackedTarball/skia/tools/sk_app/DisplayParams.h:16:8: note: in implicit copy assignment operator for 'SkSurfaceProps' first required here > struct DisplayParams { > ^ > workdir/UnpackedTarball/skia/tools/sk_app/VulkanWindowContext.h:57:24: note: in implicit copy assignment operator for 'sk_app::DisplayParams' first required here > fDisplayParams = params; > ^ with recent Clang 10 trunk, similar to ae71a0adef64b292ab01194817d2d763f7c85433 "Remove some redundantly user-declared copy ctors and assignment ops" Change-Id: I71263d8b3725478afc3a72f6f3ee9d73a277a8fd Reviewed-on: https://gerrit.libreoffice.org/83907 Reviewed-by: Michael Stahl <michael.stahl@cib.de> Tested-by: Michael Stahl <michael.stahl@cib.de>
2019-11-27external/skia: C++20 comparison operator fixStephan Bergmann
Missing const leads to overload resolution ambiguity when a synthesized candidate of operator == for a reversed-argument rewrite conflicts with the actual operator ==, due to the asymmetric const-ness of the implicit object parameter and the RHS parameter: > In file included from workdir/UnpackedTarball/skia/src/shaders/SkLightingShader.cpp:15: > In file included from workdir/UnpackedTarball/skia/src/core/SkReadBuffer.h:13: > In file included from workdir/UnpackedTarball/skia/include/core/SkFont.h:13: > In file included from workdir/UnpackedTarball/skia/include/core/SkTypeface.h:16: > In file included from workdir/UnpackedTarball/skia/include/core/SkString.h:15: > workdir/UnpackedTarball/skia/include/private/SkTArray.h:389:35: error: use of overloaded operator '!=' is ambiguous (with operand types 'SkLights::Light' and 'SkLights::Light') > if (fItemArray[index] != right.fItemArray[index]) { > ~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~ > workdir/UnpackedTarball/skia/src/shaders/SkLightingShader.cpp:268:35: note: in instantiation of member function 'SkTArray<SkLights::Light, false>::operator==' requested here > return fDirectionalLights == lightingFP.fDirectionalLights && > ^ > workdir/UnpackedTarball/skia/src/shaders/SkLights.h:90:14: note: candidate function > bool operator!=(const Light& other) { return !(this->operator==(other)); } > ^ > workdir/UnpackedTarball/skia/src/shaders/SkLights.h:83:14: note: candidate function > bool operator==(const Light& other) { > ^ > workdir/UnpackedTarball/skia/src/shaders/SkLights.h:83:14: note: candidate function (with reversed parameter order) Change-Id: I61b28e191b36f84df6920b4143809d1f497b9113 Reviewed-on: https://gerrit.libreoffice.org/83900 Reviewed-by: Michael Stahl <michael.stahl@cib.de> Tested-by: Michael Stahl <michael.stahl@cib.de>
2019-11-27do not require Vulkan devel package for SkiaLuboš Luňák
I don't see why this should use libvulkan.so, using libvulkan.so.1 should do as well, and quite possibly any future libvulkan.so.2 could be binary-incompatible anyway. Change-Id: I46be40da7fbfdcb59c947e6d088820e580cf4c44
2019-11-27patch Skia bug with copying data with different alpha typeLuboš Luňák
https://bugs.chromium.org/p/skia/issues/detail?id=9662 Change-Id: Ic5208c2c817912cddbfae4b86e3b3647306262fb
2019-11-27fix Skia with --enable-pch=fullLuboš Luňák
Change-Id: I6bec47e373c042d1ffb3607bf5dca9dfe2509466
2019-11-27solve the Skia lerp() conflict differentlyLuboš Luňák
New versions of libstdc++ provide lerp() in the global namespace, older ones don't, but it depends on the libstdc++ version and not the c++ version. Since the function is local, just "rename" it. Change-Id: I37896190c620350739fba9b8ce6544f945519244
2019-11-27disable Skia resource leak checking on exitLuboš Luňák
This is normally enabled in Skia debug builds and it asserts if there is a problem, which there is with a number of our unittests that leak something (usually a VirtualDevice). Those are non-trivial to find and don't matter in practice (or if they do they should be fixed for all VCL backends), so just disable the Skia check. Change-Id: I0a0721d8a3f0f961e14513574f4b3cc88ec1e62c
2019-11-27make Skia GPU offscreen surfaces work with unittestsLuboš Luňák
Skia is now patched to be able to create also invalid sk_app::WindowContext that will just initialize the shared GrContext. And always use that GrContext, even for tests, because some tests first create a offscreen surfaces and only later create windows, which before this patch led to mixing GrContext instances. Change-Id: Ic79c0719f98f6ac48527c2ea2a9a9a69412adeff
2019-11-27make Skia VCL backend fall back to raster if vulkan doesn't workLuboš Luňák
Change-Id: Ic446f6f85e5ebc2e50cb51a3ed1e732b8976a193
2019-11-27fix Skia offscreen GPU-backed drawingLuboš Luňák
The previous approach of using multiple GrContext instances apparently does not work, it's not possible to do drawing operations that involve objects using two different GrContext's. So patch Skia to use just one GrContext for our needs. See vcl/skia/README for details. Change-Id: I2bd3d3c618bf7f8ff45b2f37cbd086d2289940aa