summaryrefslogtreecommitdiff
path: root/desktop/source
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@collabora.com>2016-07-12 19:30:53 +0100
committerMichael Meeks <michael.meeks@collabora.com>2016-07-12 20:01:25 +0000
commite9a1afbd3e12c6935cbacbff84b1b70fea0add85 (patch)
treef46663c1c4ed9f9d942c37ac76d165ae67a59550 /desktop/source
parent37204431c68a4725b4539fa35e9fcea4fe94c166 (diff)
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>
Diffstat (limited to 'desktop/source')
-rw-r--r--desktop/source/app/opencl.cxx12
1 files changed, 12 insertions, 0 deletions
diff --git a/desktop/source/app/opencl.cxx b/desktop/source/app/opencl.cxx
index 09f2204e07ca..4c75ae76c269 100644
--- a/desktop/source/app/opencl.cxx
+++ b/desktop/source/app/opencl.cxx
@@ -46,6 +46,8 @@ bool testOpenCLCompute(const Reference< XDesktop2 > &xDesktop, const OUString &r
bool bSuccess = false;
css::uno::Reference< css::lang::XComponent > xComponent;
+ sal_uInt64 nKernelFailures = opencl::kernelFailures;
+
SAL_INFO("opencl", "Starting CL test spreadsheet");
try {
@@ -95,11 +97,21 @@ bool testOpenCLCompute(const Reference< XDesktop2 > &xDesktop, const OUString &r
SAL_WARN("opencl", "OpenCL testing failed - disabling: " << e.Message);
}
+ if (nKernelFailures != opencl::kernelFailures)
+ {
+ // tdf#100883 - defeat SEH exception handling fallbacks.
+ SAL_WARN("opencl", "OpenCL kernels failed to compile, "
+ "or took SEH exceptions "
+ << nKernelFailures << " != " << opencl::kernelFailures);
+ bSuccess = false;
+ }
+
if (!bSuccess)
OpenCLZone::hardDisable();
if (xComponent.is())
xComponent->dispose();
+
return bSuccess;
}