Commit Graph
98 Commits
Author SHA1 Message Date
Noel Grandin 7d8e94444d convert a<b?a:b to std::min(a,b)
with something like

    git grep -nP '(.*)\s*<\s*(.*)\s*\?\s*\g1\s*:\s*\g2' -- *.?xx

Change-Id: Id5078b35961847feb78a66204fdb7598ee63fd23
Note: we also convert a>b?b:a
Reviewed-on: https://gerrit.libreoffice.org/47736
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2018-01-15 07:26:17 +01:00
Stephan Bergmann d1a510c9bd More loplugin:cstylecast: opencl
auto-rewrite with <https://gerrit.libreoffice.org/#/c/47798/> "Enable
loplugin:cstylecast for some more cases" plus
solenv/clang-format/reformat-formatted-files

Change-Id: Id28f5699a4a9c0078a1326e81e833b75951f97cc
2018-01-12 20:19:00 +01:00
Eike Rathke 8960ecc689 Explicitly qualify ICU types with icu:: namespace
It will be required by ICU 61 anyway, see
https://ssl.icu-project.org/repos/icu/trunk/icu4c/readme.html#RecBuild

Change-Id: Ib7accd75a6e35932048d779cf7bf0a5a33f8ed0d
Reviewed-on: https://gerrit.libreoffice.org/46741
Reviewed-by: Eike Rathke <erack@redhat.com>
Tested-by: Eike Rathke <erack@redhat.com>
2017-12-19 13:11:02 +01:00
Tomaž Vajngerl 1f8c3e3b78 Extract XmlWriter and XmlWalker from opencl into tools
In opencl we read and writer the profile xml with custom classes
XmlWriter and XmlWalker for reading. This classes are useful in
other places (very similar XmlWriter is used in test), so extract
the code from opencl and move it to a more common place - tools.

Refactoring of other usages will follow.

Change-Id: I8363e87b7c30083d299080adec3f99cb33ebe4cc
Reviewed-on: https://gerrit.libreoffice.org/44149
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2017-11-01 23:42:02 +01:00
Noel Grandin 9ee60319c6 loplugin:constmethod in idl,helpcompiler
Change-Id: I9b328fc0a3ebdd15a646ee6dab800ffbadb1aaef
Reviewed-on: https://gerrit.libreoffice.org/44050
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-10-30 13:06:54 +01:00
Stephan Bergmann d516b4e16a loplugin:includeform: opencl
Change-Id: I3646ae6fa573c673b27e6d8a552883687c98aad2
2017-10-23 22:46:00 +02:00
Mike Kaganski 362a21d3a1 Use explicit function names for fooA/fooW WinAPI; prefer fooW
We should only use generic foo function name when it takes params
that are also dependent on UNICODE define, like
LoadCursor( nullptr, IDC_ARROW )
where IDC_ARROW is defined in MSVC headers synchronised with
LoadCursor definition.

We should always use Unicode API for any file paths operations,
because otherwise we will get "?" for any character in path that
is not in current non-unicode codepage, which will result in failed
file operations.

Change-Id: I3a7f453ca0f893002d8a9764318919709fd8b633
Reviewed-on: https://gerrit.libreoffice.org/42935
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2017-09-30 11:23:41 +02:00
Jan-Marek Glogowski 73bc364347 Add tools::Time::GetMonotonicTicks (us)
This moves a combination of tools::Time::GetSystemTicks(), canvas
ElapsedTime::getSystemTime() and the opencl timing implementation
into tools::Time::GetMonotonicTicks() as a monotonic microsecond
time source.

Change-Id: I5c9263540b8af55b2eeca6126e288129427f6e8e
Reviewed-on: https://gerrit.libreoffice.org/41991
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2017-09-15 14:22:51 +02:00
Tor Lillqvist aa7dc5fa1d Get rid of need to use initial :: for ::opencl to avoid clash with sc::opencl
Rename the global opencl namespace to openclwrapper. Its public API is
after all declared in a file called openclwrapper.hxx. The confusion
started when part of the OpenCL code was moved out from sc some years
ago.

Change-Id: I98ebd8498b2244804411e5de9169eb619f86070b
2017-08-25 15:49:34 +03:00
Noel Grandin c9253818ec loplugin:oncevar
extend oncevar to any POD type

Change-Id: Ia98ee0a67f183e40fb0c38477760124b2c411dc0
Reviewed-on: https://gerrit.libreoffice.org/40564
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-31 08:25:07 +02:00
Noel Grandin e669f70613 loplugin:constparams in i18npool,opencl,svl
Change-Id: I23368c3ce6d29c7b2e758e209e5a8315e82a2818
Reviewed-on: https://gerrit.libreoffice.org/40051
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-07-18 08:19:59 +02:00
Noel Grandin 979c8c56b7 loplugin:oncevar in oox..sax
Change-Id: I0fee8bcddaeea48335e3be05761d2ad2c45020e2
Reviewed-on: https://gerrit.libreoffice.org/39238
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-06-26 08:56:47 +02:00
Jochen Nitschke 8511ee5cd1 no need to construct unique_ptr here
and std::move is not needed when returning unique_ptr

Change-Id: I9b4d2d6b8a41b570a9bd99e44a743ff161b78c59
Reviewed-on: https://gerrit.libreoffice.org/38385
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-06-04 20:42:45 +02:00
Stephan Bergmann fbf8fa7e47 Improved loplugin:redundantcast static_cast handling: opencl
Change-Id: I45fc65e3b27e0c57d041c4f724c23d90ec1448d3
2017-06-02 09:37:11 +02:00
Noel Grandin 307be8c9ce clang-tidy readability-redundant-control-flow
Change-Id: I832f7ef0f1bd55e365db7e49823fe8bc30390c04
Reviewed-on: https://gerrit.libreoffice.org/38215
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-05-31 08:33:40 +02:00
Noel Grandin 2ccde70d60 teach redundantcast plugin about functional casts
Change-Id: Iac8ccd17d9e46ebb2cb55db7adb06c469bbd4ea0
Reviewed-on: https://gerrit.libreoffice.org/37910
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-05-30 08:50:31 +02:00
Noel Grandin ef513fd4b0 remove unnecessary use of OString::getStr
Change-Id: I0490efedf459190521f4339854b3394d57765fdb
Reviewed-on: https://gerrit.libreoffice.org/38058
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-05-28 19:44:08 +02:00
Stephan Bergmann d4a5e6b42c Turn macro into function
Change-Id: I6df7a287da74e49857e7fa3f0ba1cf67ab3bc74a
2017-05-17 11:31:51 +02:00
Kohei Yoshida b4f341389c Revert the wrong "cleanup" change.
Introduced by 63df0796f5.

Change-Id: I2481bcef144bd30571e69130d22f6d313dbddfea
Reviewed-on: https://gerrit.libreoffice.org/36968
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-04-26 11:24:59 +02:00
Chris Sherlock da64d198ec tools: svstream.hxx needs only errcode.hxx & not errinf.hxx
Change-Id: Ia28e35ae5af4f601e9a586a3deffbcd61702b0ca
Reviewed-on: https://gerrit.libreoffice.org/36896
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Chris Sherlock <chris.sherlock79@gmail.com>
2017-04-25 09:31:31 +02:00
Noel Grandin 63df0796f5 clang-tidy readability-simplify-boolean-expr in oox..sal
Change-Id: I1e14e5b15d2dd9e35477f8189cbecf0b443b9381
Reviewed-on: https://gerrit.libreoffice.org/36875
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-04-24 11:31:02 +02:00
Jochen Nitschke 5301985417 cppcheck: memleak (false positive)
but manage ownership from start

Change-Id: I22d855d89bd93c56fbbcc1fb64e757fc950aa791
Reviewed-on: https://gerrit.libreoffice.org/33391
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2017-01-22 13:54:22 +00:00
Stephan Bergmann 4d6353aa9d New loplugin:conststringvar: opencl
Change-Id: Ib5762151cff4c903c73ec8d487ec8fbe54a9255a
2017-01-10 08:11:17 +01:00
Stephan Bergmann e681b38402 No apparent reason for an unnamed namespace in an include file here
Change-Id: I1017459520ba4f0e544f0fa00419789c8cd86609
2016-12-21 14:57:56 +01:00
Tomaž Vajngerl 21e8ed8b5f tdf#103395 opencl: don't initialize OpenCL when disabled
If SAL_DISABLE_OPENCL is set we don't want to do any kind of
OpenCL initialization. Put an extra guard in fillOpenCLInfo
(and similar methods in opencl package) to prevent that.

Put the check if OpenCL can be used into one place which checks
SAL_DISABLE_OPENCL and UseOpenCL in configuration.

Change-Id: Icc216d4299d3a7942843117ab9b9411de8075b11
Reviewed-on: https://gerrit.libreoffice.org/30025
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2016-10-24 08:35:15 +00:00
Tomaž Vajngerl baeb3b43fb opencl: convert to C++11 for loop
Change-Id: Id96a3816eb7ef2241f5a6a57b164e1e366eb357a
Reviewed-on: https://gerrit.libreoffice.org/29693
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2016-10-18 22:13:24 +00:00
Tomaž Vajngerl 4eea4af892 tdf#103204 opencl: initialize command queue on demand
Change-Id: Ie3da1d6ec91e951b1ffc15abf376c7af57789e47
Reviewed-on: https://gerrit.libreoffice.org/29802
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
2016-10-18 09:01:14 +00:00
Stephan Bergmann 52659c125e clang-cl loplugin: opencl
Change-Id: I7e0e79d67d6701e519f841d893c9b7b2f5ebef80
Reviewed-on: https://gerrit.libreoffice.org/29858
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
2016-10-16 14:18:32 +00:00
Andrea Gelmini 6445d8d7d6 Fix typos
Change-Id: Icfc61fcc5ace717bca4bea988243674afe31e6f8
Reviewed-on: https://gerrit.libreoffice.org/29435
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2016-10-01 19:08:07 +00:00
Stephan Bergmann ca3c8526ef Valgrind reports read of uninitialized bCLBool
...during e.g. CppunitTest_sc_subsequent_filters_test, where
CL_DEVICE_LINKER_AVAILABLE is apparently a later addition (<https://
www.khronos.org/registry/cl/sdk/1.2/docs/man/xhtml/clGetDeviceInfo.html>
mentions it while <https://www.khronos.org/registry/cl/sdk/1.0/docs/man/xhtml/
clGetDeviceInfo.html> doesn't).

Change-Id: Icdaeffa4adb0765a6317f443130fa295761eb93f
2016-09-21 13:17:31 +02:00
Michael Stahl b647996a9b replace sal_Size with std::size_t (or sal_uInt64 for SvStream pos)
... except in include/rtl, include/sal, include/uno, where sal_Size is
retained for compatibility, and where callers of rtl functions pass in
pointers that are incompatible on MSVC.

Change-Id: I8344453780689f5120ba0870e44965b6d292450c
2016-09-15 12:01:11 +02:00
Stephan Bergmann cd252e3ad8 loplugin:stringconstant: adapt to improved OUStringLiteral1 (opencl)
Change-Id: I0da7434b67148824d1c2343f8ecb2b069df6baa2
2016-08-30 15:28:28 +02:00
Jochen Nitschke 33b38082ca put StreamMode masks in scope of enum class
Change-Id: I77682f7e289a59b986bb84edf014029a20266470
Reviewed-on: https://gerrit.libreoffice.org/28420
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
Tested-by: Noel Grandin <noelgrandin@gmail.com>
2016-08-27 12:06:15 +00:00
Caolán McNamara e1d50431a0 coverity#1371130 'Constant' variable guards dead code
Change-Id: I94ac63f009cb398ef88e4889084bb9a99eb8bf6c
2016-08-19 13:00:44 +01:00
Tor Lillqvist 32881f0183 tdf#100965: Restart on initialisation-time OpenCL crash
Add a flag to the OpenCLZone indicating whether we are performing the
first-start OpenCL functionality verification, so that if we run into
a crash that is caught by the VCL VCLExceptionSignal_impl() handler,
we terminate the process with the EXITHELPER_NORMAL_RESTART
status after first having disabled OpenCL use. The wrapper process will
then restart soffice.bin. This is for Windows only so far.

This matches what we do if OpenGL fails early during start of
LibreOffice.

Change-Id: Ibb9bf3a86b7521bf16728de2a118ad4323be674b
Reviewed-on: https://gerrit.libreoffice.org/28086
Reviewed-by: Tor Lillqvist <tml@collabora.com>
Tested-by: Tor Lillqvist <tml@collabora.com>
2016-08-14 06:54:03 +00:00
Noel Grandin f12476f0f6 loplugin:countusersofdefaultparams in oox..sd
Change-Id: I4504939a3957606979c6ac36af6611e1fe072d01
Reviewed-on: https://gerrit.libreoffice.org/27902
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-08-05 11:50:45 +00:00
Noel Grandin 508c95f1b6 improve passstuffbyref return analysis
Change-Id: I4258bcc97273d8bb7a8c4879fac02a427f76e18c
Reviewed-on: https://gerrit.libreoffice.org/27317
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
2016-07-27 06:48:25 +00:00
Laszlo Nemeth 00a58dfead Need to try to avoid TDR also with NVIDIA cards on Windows 7 or earlier
(TDR is Timeout detection and recovery, was introduced in Vista.)

Change-Id: Ic49629adf7630e61cebcdfcc431ca96ba3fbaf7e
Reviewed-on: https://gerrit.libreoffice.org/27518
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
2016-07-26 07:41:38 +00:00
Tor Lillqvist dbdfd36f8a SAL_DETAIL_WHERE already ends with a space
Change-Id: I273e0e4301246122bd9e02556b771dc485877350
2016-07-22 18:59:59 +03:00
Michael Meeks e9a1afbd3e tdf#100883 - opencl impls. that use SEH are still bad.
Amazingly we fell-back to the old calculation path for
crashes in older LibreOffices, might as well have this on master.

Change-Id: Ifc1de41c93329207d7a1917c736e361d840c2821
Reviewed-on: https://gerrit.libreoffice.org/27166
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2016-07-12 20:01:25 +00:00
Michael Meeks c44726c482 desktop: validate OpenCL drivers before use.
OpenCL validation needs to happen before drivers are used in
anger. This should isolate any crashes, and/or mis-behavior to
We use app version, CL driver version and file time-stamp to
trigger re-testing the device. If anything fails: hard disable
OpenCL.

We use an opencl validation sheet (cl-test.ods) and install it.
It is a minimal CL set - it requires a very short formula group
length, and combines several CL functions into few formulae to
test more.

The sheet structure, in particular the manual squaring / SQRT is
necessary to stick within the default CL subset, and ensure that
formulae are CL enabled from the root of the dependency tree up.

Change-Id: I18682dbdf9a8ba9c16d52bad4447e9acce97f0a3
Reviewed-on: https://gerrit.libreoffice.org/27131
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2016-07-12 08:39:01 +00:00
Stephan Bergmann 9c711f05fa Remove bogus dependency from opencl to configmgr
Since f41eb66302 "opencl: OpenCLZone, detect CL
device change and disable CL on crash" vcl links against opencl (so indirectly
linked against configmgr), which caused CppunitTest_configmgr_unit to include
the configmgr object files both statically (through
gb_CppunitTest_use_library_objects) and through the linked-in configmgr dynamic
library, which in turn caused ASan builds to report an ODR violation for a
doubly defined 'typeinfo name for configmgr::Access'.

Change-Id: I9ae8637ac02c116dd2d03017f2ebb4004f4b14ad
2016-07-12 10:31:55 +02:00
Stephan Bergmann f541b99855 loplugin:nullptr: Better heuristic to determine code shared between C and C++
Change-Id: I51e1c5fa4639e51fac90f92adf3d87d12960d589
2016-07-11 14:32:07 +02:00
Tomaž Vajngerl f41eb66302 opencl: OpenCLZone, detect CL device change and disable CL on crash
Guard OpenCL calls with OpenCLZone, so if a OpenCL call crashes we
detect this and disable OpenCL so next time the user doesn't encounter
the crash at the same calculation because he has a broken OpenCL
drivers. Similar has been implemented for OpenGL with good results.

Additionaly we persistently remember a known good OpenCL device ID and
driver version so we can match this and perform calculation tests when
they change. This is to ensure that the selected OpenCL device performs
as we expect. In this commit the calculation tests aren't included yet.

Remove complex static initializer in opencl wrapper library.

Change-Id: I1a8b81ee31298731efcf63dc6a476955afc035e9
Reviewed-on: https://gerrit.libreoffice.org/27064
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
2016-07-11 06:52:31 +00:00
Michael Meeks ef47ce2397 tdf#90336 - further cleanup of OpenCL options page.
Still problematic; since we only show OpenCL as being available
if it has already been initialized and used.

Change-Id: I5e82a3f778f4f2025408330b6d9da51402d01e79
Reviewed-on: https://gerrit.libreoffice.org/26866
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
2016-07-01 19:02:57 +00:00
Tor Lillqvist 68106cbac5 Don't waste too much time evaluating the "score" for the "native CPU"
This code took tens of second typically, which is utterly pointless.
Instead run the loop for max a second, after which estimate how long
it would have taken to process all of the data.

Don't confuse the "native CPU" term here with a CPU-based device
of an actual OpenCL implementation. That is a completely different
thing. This "native CPU" thing here is just our way to estimate how
much time it takes to do calculations using normal C++ code on the
CPU.

Change-Id: I92f5eedc06bbaaef6a9b5322fefec9d41f0db505
Reviewed-on: https://gerrit.libreoffice.org/26774
Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
Tested-by: Jenkins <ci@libreoffice.org>
2016-06-29 16:09:15 +00:00
Tor Lillqvist 4e3bcddeb5 Add some SAL_INFO output
Change-Id: I8b47034f5b1fed465415399de89979102df8d9a7
2016-06-27 18:17:03 +03:00
Tor Lillqvist c62baccba2 Add some informative comments
Change-Id: I3c85543efe824c06781486aff2d836e5ba48e66e
2016-06-27 18:16:02 +03:00
Stephan Bergmann 4d49c9601c Let loplugin:passstuffbyref also look at fn defn not preceded by any decl
Change-Id: I752bc96d2d521d790e919283cabb14b6526626f4
2016-06-08 17:14:34 +02:00
Michael Stahl 62d270116b tools: rename SvStream::Read/Write to ReadBytes/WriteBytes
Change-Id: Ib788a30d413436aa03f813aa2fddcbc4d6cd2f9a
Reviewed-on: https://gerrit.libreoffice.org/25972
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
2016-06-06 18:09:11 +00:00