I corrected a bug with the scalable rendering change I made on Friday.
@@ -2992,6 +2992,20 @@ Engine::GatherData(avtDataObjectWriter_p &writer,
currentCellCount = (int)
(ui_dob->GetNumberOfCells(polysOnly) * cellCountMultiplier);
+ // test if we've exceeded the scalable threshold already with proc 0's
+ // output
+ if (currentTotalGlobalCellCount == INT_MAX ||
+ currentCellCount == INT_MAX ||
+ (currentTotalGlobalCellCount + currentCellCount
+ > scalableThreshold))
+ {
+ debug5 << "exceeded scalable threshold of " << scalableThreshold
+ << endl;
+ thresholdExceeded = true;
+ }
+
+ if (writer->MustMergeParallelStreams())
+ {
// Determine the cell counts.
vector<long long> cellCounts;
cellCounts.push_back(currentCellCount);
@@ -3023,8 +3037,6 @@ Engine::GatherData(avtDataObjectWriter_p &writer,
currentCellCount = reducedCurrentCellCount;
}
- if (writer->MustMergeParallelStreams())
- {
// We only need to do the data exchange if we are below the
// threshold or we're being asked to send data regardless
// (the metadata case where we send basically the data
@@ -3097,6 +3109,8 @@ Engine::GatherData(avtDataObjectWriter_p &writer,
visitTimer->StopTimer(collectAndWriteData, descStr);
}
else // non-UI processes
+ {
+ if (writer->MustMergeParallelStreams())
{
avtDataObject_p dob = writer->GetInput();
@@ -3137,8 +3151,6 @@ Engine::GatherData(avtDataObjectWriter_p &writer,
currentCellCount = reducedCurrentCellCount;
}
- if (writer->MustMergeParallelStreams())
- {
// We only need to do the data exchange if we are below the
// threshold or we're being asked to send data regardless
// (the metadata case where we send basically the data
@@ -3155,14 +3167,11 @@ Engine::GatherData(avtDataObjectWriter_p &writer,
}
}
else
- {
- if (DebugStream::Level5())
{
debug5 << "not sending data to proc 0 because the data object "
<< "does not require parallel streams." << endl;
}
}
- }
// return requested arguments
if (currentNetworkGlobalCellCount != 0)
