Neither of the methods are working. It seems that the vtk renderer is
not really the issue, but the mitkVtkPropRenderer:
The /mitk::VtkPropRenderer::Resize(int w, int h) /method only requests
an update from the mitk::RenderingManager, which is apparently executed
too late.
I changed the quick fix in the branch to this:
bool mitk::RenderingTestHelper::CompareRenderWindowAgainstReference(int
argc, char* argv[], double threshold)
{
m_RenderWindow->GetRenderer()->ForceImmediateUpdate();
this->Render();
// No more delay after this point
...
It works on my machine, but it would be good if someone else could test it.
Regards
Christoph
On 11.09.2014 14:42, Sascha Zelzer wrote:
Hi,
a fix for this issue would be great!
Did you try any of the vtkRenderWindow methods like Finalize() or
WaitForCompletion() instead of manually introducing a delay?
Best,
Sascha
On 09/11/2014 12:46 PM, Christoph Kolb wrote:
Hi Taylor,
thank you for the fix! The tests were also failing on some of our
machines, so I created a bug and a branch with your solution:
http://bugs.mitk.org/show_bug.cgi?id=18083
If there is a more flexible way to wait for the renderer, then we
should of course do that. But just now I can't think of a better
solution than the delay.
Regards
Christoph
On 10.09.2014 22:48, Taylor Braun-Jones wrote:
Hi all,
I am seeing a timing issue with some rendering unit tests. On my box
(Intel Core i7, NVidia Quadro 4000, CentOS 7) the following tests fail:
144 - mitkPointSetVtkMapper2D_openMeAlone640x480 (Failed)
145 - mitkPointSetVtkMapper2D_Pic3DPointSetForPic3D640x480 (Failed)
146 - mitkPointSetVtkMapper2D_openMeAloneGlyphType640x480 (Failed)
147 - mitkPointSetVtkMapper2D_openMeAloneTransformed640x480 (Failed)
149 - mitkSurfaceDepthPeelingTransparency_StanfordBunnySTL640x480
(Failed)
150 - ResliceInterpolationIsLinear (Failed)
151 - ResliceInterpolationIsCubic (Failed)
154 - mitkTextOverlay2DRenderingTest_ball (Failed)
156 - mitkTextOverlay3DRendering3DTest_ball (Failed)
157 - mitkTextOverlay3DColorRenderingTest_ball (Failed)
160 - mitkSurfaceGLMapper2DColorTest_RedBall (Failed)
161 - mitkSurfaceGLMapper2DColorTest_DasArmeSchwein (Failed)
162 - mitkSurfaceGLMapper2DOpacityTest_BallOpacity (Failed)
Looking at the details of one test, ResliceInterpolationIsLinear,
showed that it was failing with this error:
...
CompareRenderWindowAgainstReference test result
positive?<DartMeasurement name="ImageError"
type="numeric/double">100000000000000005250476025520442024870446858110815915491585411551180245798890819578637137508044786404370444383288387817694252323536043057564479218478670698284838720092657580373783023379478809005936895323497079994508111903896764088007465274278014249457925878882005684283811566947219638686545940054016.000</DartMeasurement><DartMeasurement
name="BaselineImage"
type="text/string">Standard</DartMeasurement>Failed Image Test :
100000000000000005250476025520442024870446858110815915491585411551180245798890819578637137508044786404370444383288387817694252323536043057564479218478670698284838720092657580373783023379478809005936895323497079994508111903896764088007465274278014249457925878882005684283811566947219638686545940054016.000
Image differencing failed to produce an image because images are
different size:
Valid image: 639, 479, 0
Test image: 99, 99, 0
<DartMeasurement name="WallTime"
type="numeric/double">0.078</DartMeasurement>
<DartMeasurement name="CPUTime"
type="numeric/double">0.060</DartMeasurement>
[FAILED]
Putting the the following 100ms delay solves the issue for all the
failing tests for me:
bool mitk::RenderingTestHelper::CompareRenderWindowAgainstReference(int argc,
char* argv[], double threshold)
{
this->Render();
vtksys::SystemTools::Delay(100); // <-- Fixes the failing unit tests
// ...
}
But is this legit fix or is it just hiding a problem?
From empirical testing on my box 5ms was not sufficient but 10ms was
- so 100ms is very conservative. If I put in something very long
like 3000 ms, I can see the rendered scene is in fact a very small
portion of the render window (about 100x100px like the error message
states) then right when the 3000 ms delay expires I very briefly see
the rendered image get stretched to the full size of the render window.
Thanks for any help,
Taylor
------------------------------------------------------------------------------
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
_______________________________________________
mitk-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mitk-users