[Libreoffice-commits] core.git: Branch 'feature/calc-pluggable-opencl' - sc/source
Kohei Yoshida
kohei.yoshida at collabora.com
Tue Sep 17 20:34:28 PDT 2013
sc/source/filter/oox/formulabuffer.cxx | 1 -
sc/source/filter/oox/worksheetfragment.cxx | 9 +++++++++
2 files changed, 9 insertions(+), 1 deletion(-)
New commits:
commit 8e70478af81d36b7a513c49640a04093d6c99040
Author: Kohei Yoshida <kohei.yoshida at collabora.com>
Date: Tue Sep 17 23:34:11 2013 -0400
In xlsx, a better heuristic is based on worksheet dimension.
And start OpenCL kernel compilation right away if the dimension is
large enough to make the sheet import slow.
Change-Id: Iee3e8dc1f0cb64eb1d8778db19c6edd73e971136
diff --git a/sc/source/filter/oox/formulabuffer.cxx b/sc/source/filter/oox/formulabuffer.cxx
index cc8a50a..21e383f 100644
--- a/sc/source/filter/oox/formulabuffer.cxx
+++ b/sc/source/filter/oox/formulabuffer.cxx
@@ -65,7 +65,6 @@ void FormulaBuffer::finalizeImport()
FormulaDataMap::iterator cellIt = maCellFormulas.find( nTab );
if ( cellIt != maCellFormulas.end() )
{
- compileOpenCLKernels();
applyCellFormulas( cellIt->second );
}
diff --git a/sc/source/filter/oox/worksheetfragment.cxx b/sc/source/filter/oox/worksheetfragment.cxx
index b8ad658..93cacd7 100644
--- a/sc/source/filter/oox/worksheetfragment.cxx
+++ b/sc/source/filter/oox/worksheetfragment.cxx
@@ -511,7 +511,16 @@ void WorksheetFragment::importDimension( const AttributeList& rAttribs )
be set. If the cell A1 exists, the used area will be updated while
importing the cell. */
if( (aRange.EndColumn > 0) || (aRange.EndRow > 0) )
+ {
extendUsedArea( aRange );
+
+ // Start pre-compiling OpenCL kernels if we have a large number of
+ // cells to import. The current threshold is 100,000.
+ double fCellCount = aRange.EndColumn - aRange.StartColumn + 1.0;
+ fCellCount *= aRange.EndRow - aRange.StartRow + 1.0;
+ if (fCellCount > 100000.0)
+ compileOpenCLKernels();
+ }
}
void WorksheetFragment::importSheetFormatPr( const AttributeList& rAttribs )
More information about the Libreoffice-commits
mailing list