Age | Commit message (Collapse) | Author |
|
(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>
|
|
Change-Id: I273e0e4301246122bd9e02556b771dc485877350
|
|
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>
|
|
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>
|
|
Since f41eb66302208f384a475fb20c98b6d1b0676cb6 "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
|
|
Change-Id: I51e1c5fa4639e51fac90f92adf3d87d12960d589
|
|
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>
|
|
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>
|
|
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>
|
|
Change-Id: I8b47034f5b1fed465415399de89979102df8d9a7
|
|
Change-Id: I3c85543efe824c06781486aff2d836e5ba48e66e
|
|
Change-Id: I752bc96d2d521d790e919283cabb14b6526626f4
|
|
Change-Id: Ib788a30d413436aa03f813aa2fddcbc4d6cd2f9a
Reviewed-on: https://gerrit.libreoffice.org/25972
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
|
|
Change-Id: I756bb57d471db3d3ca1d9c3733d359c7c16b4e66
Reviewed-on: https://gerrit.libreoffice.org/24959
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Mark Page <aptitude@btconnect.com>
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
Change-Id: Ibb6bc9a17418a8fb0b5f882285088a5b80fd5beb
|
|
Change-Id: I1c1894fcf533291b34a662b6efb96dcfa75b92b3
Reviewed-on: https://gerrit.libreoffice.org/24760
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Michael Stahl <mstahl@redhat.com>
|
|
Change-Id: If0d87b6679765fc6d1f9300c6972845cf3742b9c
Reviewed-on: https://gerrit.libreoffice.org/24674
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
Tested-by: Noel Grandin <noelgrandin@gmail.com>
|
|
Change-Id: I66f34570c49f647cb1fd7775ef263e5e720d8064
|
|
Change-Id: I97911406d55464f042922a2e37b33f92e2c024ef
|
|
are actually pointer vars.
Also convert from regex to normal code, so we can enable this
plugin all the time.
Change-Id: Ie36a25ecba61c18f99c77c77646d6459a443cbd1
Reviewed-on: https://gerrit.libreoffice.org/24391
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
|
|
Change-Id: Ia6254777bc7972e2272dba542e315a8d3bd0fdf0
|
|
changes:
- Clew misses a lot of things, added defines needed for gathering
platform and device info.
- Refactored profile saving and loading to use libxml2 instead
the weird type of saving the profile data.
- Added an additional "log" file which is similar to the OpenGL
but it writes the OpenCL relevant information like which devices
and platforms are available (+ all the extra useful version
information) and which device was selected (if any at all).
Change-Id: I0fe793c756f8f4f1761fe120fc361df36e581903
Reviewed-on: https://gerrit.libreoffice.org/24270
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Tested-by: Tomaž Vajngerl <quikee@gmail.com>
|
|
For consistency with what 38cd1d9a5f00dc69ba0d60e2fe6957090c7a26d1 "clew: move
this foreign code to external/clew" did for clew.c. Library_scfilt depends on
clew/clew.h, simply make it depend on the full clew external.
Change-Id: Idcbf56a69084e108832c8970507ebea0f7ff400b
Reviewed-on: https://gerrit.libreoffice.org/24035
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Stephan Bergmann <sbergman@redhat.com>
|
|
libOpenCL.so is just the symbolic link to it, typically from
a development package. (On Fedora, from ocl-icd-devel.)
(Sure, libOpenCL.so.1 is also a symbolic link on Fedora, to
libOpenCL.so.1.0.0. But anyway, libOpenCL.so.1 is not from a
development package, but from ocl-icd.)
Change-Id: I18ca2e52e025001f709b1b57e12cd01d5b52d08e
|
|
stage 2 of replacing usage of various checks for the windows platform
with the compiler-defined '_WIN32' macro
In this stage we focus on replacing usage of the WIN macro
Change-Id: Ie8a4a63198a6de96bd158ecd707dadafb9c8ea84
Reviewed-on: https://gerrit.libreoffice.org/22393
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
|
|
Change-Id: Ia5b4a5010afd72ce59629dbc9b2045177a155182
Reviewed-on: https://gerrit.libreoffice.org/21867
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
Tested-by: Noel Grandin <noelgrandin@gmail.com>
|
|
detect when we can convert a new/delete sequence on a local variable to
use std::unique_ptr
Change-Id: Iecae4e4197eccdfacfce2eed39aa4a69e4a660bc
Reviewed-on: https://gerrit.libreoffice.org/19884
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
|
|
Change-Id: I414c1e7fa1b13d23f15f82d883ab95cf11f09299
|
|
Change-Id: I60189077f872dd5da3633b15b67b7b7729a75d0d
|
|
Change-Id: I95404b553f594ced1e2e8b4b8ddf34c08180128f
|
|
- improvements to the plugin to find more method calls
- improvements to python script to remove more false+
- fix the FORCE_COMPILE_ALL build flag to include code in
the $WORKDIR
Change-Id: I4d6015dcb9b9d60c26f0bcee8abad807177a7836
Reviewed-on: https://gerrit.libreoffice.org/19064
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
|
|
Change-Id: I35456b2a3ad2a84a1d045f09cdfb29e4c19b8350
|
|
We use only one OpenCL device per context or program, so get rid of
half-implemented (or half-reverted?) "support" for multiple devices per
context.
Change-Id: I951f29e867e5b3f96f6e051567ee38d607bd7ecf
|
|
Will make it less demanding on low-end hardware, where the device
driver is unresponsive for too long when an OpenCL kernel handling lots
of data is executing. This makes Windows restart the driver which is
problematic.
I tried several approaches of splitting, both at higher levels in sc
and at the lowest level just before creating and executing the OpenCL
kernel(s). This seems to be the most minimal and local approach. Doing
it at the lower level would have required too much poking into our
obscure OpenCL code, like passing an offset parameter to every kernel.
Use a simple heuristic to find out whether to split. On the
problematic low-end devices, CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT is
4, while for more performant devices it is 1 or 8.
|
|
Change-Id: I3fd9e1599c5ad812879a58cf1dabbcd393105e1c
Reviewed-on: https://gerrit.libreoffice.org/18564
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I96ef317e974a9db1713ad3005d0efcecb2bacda5
|
|
Is not a good idea after all, says mmeeks. Plus, we should check if
the device actually supports it (with clGetDeviceInfo
(CL_DEVICE_QUEUE_PROPERTIES) before attempting to use it.
This reverts commit a4681be5347fe24867b4f603dc57942c3306227b.
Change-Id: I11896ab2d40bd8abcb11a21ce5df4eb75816013a
|
|
This may reduce some degree of dependency on boost.
Done by running a script like:
git grep -l '#include *.boost/scoped_array.hpp.' \
| xargs sed -i -e 's@#include *.boost/scoped_array.hpp.@#include <memory>@'
git grep -l '\(boost::\)\?scoped_array<\([^<>]*\)>' \
| xargs sed -i -e 's/\(boost::\)\?scoped_array<\([^<>]*\)>/std::unique_ptr<\2[]>/'
... and then killing duplicate or unnecessary includes,
while changing manually
m_xOutlineStylesCandidates in xmloff/source/text/txtimp.cxx,
extensions/source/ole/unoconversionutilities.hxx, and
extensions/source/ole/oleobjw.cxx.
Change-Id: I3955ed3ad99b94499a7bd0e6e3a09078771f9bfd
Reviewed-on: https://gerrit.libreoffice.org/16289
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
|
|
Change-Id: I1c8cf28803694f81985b9d1c61c62d28158a2f71
|
|
Change-Id: I69193471b9633902d92d0db34b266af52038146a
|
|
rtl/string.hxx and rtl/ustring.hxx both unnecessarily #include <sal/log.hxx>
(and don't make use of it themselves), but many other files happen to depend on
it. Cleaned up some, but something like
grep -FwL sal/log.hxx $(git grep -Elw \
'SAL_INFO|SAL_INFO_IF|SAL_WARN|SAL_WARN_IF') -- \*.cxx)
shows lots more files that potentially need fixing before the include can be
removed from rtl/string.hxx and rtl/ustring.hxx.
Change-Id: Ibf033363e83d37851776f392dc0b077381cd8b90
|
|
Change-Id: I7e6315bf2a2e3d6e089ef8f5eacc69d2b413374a
|
|
Change-Id: Ied81ede9aaf045866596adc40d357cbbddb3d704
|
|
When an OpenCL platform has no devices (of the requested type), calls to
clGetDeviceIDs() are required to return with the error value
CL_DEVICE_NOT_FOUND.
Some platforms (e.g. Clover as of Mesa 10.4.2) do not touch their output
parameters in such cases, which means that in some conditions the `num`
variable where the number of devices of the platform should be stored
may be used uninitialized. This can lead to segmentations faults in the
subsequent calls to clGetDeviceInfo().
Simply reinitializing num to 0 is sufficient to prevent the segfault in
the case of Mesa, but proper error handling is included for
completeness.
Change-Id: Ia25192f6aa953838a545a9e7c9fca050d2703b60
Reviewed-on: https://gerrit.libreoffice.org/14700
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Tor Lillqvist <tml@collabora.com>
|
|
Change-Id: Icb28114d3939063dedaedbd0ce370210b3721fc5
|
|
and boost:make_shared->std::make_shared
Change-Id: Ic1e187c52c856a7b27817967b2caa8920f23a98d
|
|
There is nothing Calc-specific in this function, and surely it will be good to
output OpenCL errors symbolically also in the opencl module.
Change-Id: Ibe7d0d036f24dd87e06b8290224e1033dda0f3d1
|
|
So move it there. While at it, make it use SAL_WARN() instead of
printf.
Also, add a few more SAL_WARN() and SAL_INFO().
Change-Id: Ib058fb20d07757331ca364a8d7649abc59e9494b
|
|
Change-Id: I93c590a71ea768511a89d6fe17dc7aa01fe73b02
|
|
Change-Id: Ia3195a21ad46b4c9830ee6293135dfe5945986a2
Reviewed-on: https://gerrit.libreoffice.org/13985
Reviewed-by: Noel Grandin <noelgrandin@gmail.com>
Tested-by: Noel Grandin <noelgrandin@gmail.com>
|