endlosschleife1 at googlemail.com
Fri Apr 29 04:56:58 EDT 2011
I'm not an OpenGL expert, but while playing around with the
vtkOpenGLGPUVolumeRayCastMapper in VTK 5.6.1 (to add texture compression
support) I noticed the following:
I was running multiple parallel maximum intensity projections of a data set
(multiple threads rendering into separate vtkOpenGLRenderWindows). In the
Update(...) method glTexImage3D got called three times during my tests. Once
with a proxy texture, twice with the actual texture. Apparently there are
multiple checks to verify first that enough texture memory is available
before the volume (or subvolumes) finally gets uploaded to the GPU.
Now if I remove one of the vtkgl::TexImage3D calls (the one directly after
the test with the proxy texture) I get an about 30% better rendering
performance with 4 parallel MIPs. 3 parallel MIPs still have the same
performance. In general my observation was that there is a linear
performance degradation for multiple MIPs until a certain threshold where
the performance degradation was higher than linear, which made sense to me,
assuming that the threshold is the point where the volume does not
completely fit into texture anymore. So it appears like the number of
vtkgl::TextImage3D calls correlates with when I reach this threshold.
Is it possible that these memory checks actually cause a waste of GPU
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the vtk-developers