Hi Robert, +1 to Ulrich patch. :)
2012/4/6 Robert Osfield <[email protected]> > Hi Jordi, > > I have reviewed your patch and Ulrich's and feel that Ulrich's a bit > cleaner so I have gone with his change. Could you please update to > latest svn/trunk and check that this works fine with your compiler. > > Thanks, > Robert. > > On 3 April 2012 11:51, Jordi Torres <[email protected]> wrote: > > Hi, > > > > Last changes breaks our linux compilation (Ubuntu 10.04 gcc 4.4.3), I > guess > > you don't see these errors with gcc > 4.4.3: > > > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp: In member > function > > ‘bool osg::Uniform::getElement(unsigned int, osg::Matrix2&) const’: > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp:2149: error: > > ‘template<class T, unsigned int ColN, unsigned int RowN> class > > osg::MatrixTemplate’ used without template parameters > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp: In member > function > > ‘bool osg::Uniform::getElement(unsigned int, osg::Matrix3&) const’: > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp:2157: error: > > ‘template<class T, unsigned int ColN, unsigned int RowN> class > > osg::MatrixTemplate’ used without template parameters > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp: In member > function > > ‘bool osg::Uniform::getElement(unsigned int, osg::Matrix2x3&) const’: > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp:2173: error: > > ‘template<class T, unsigned int ColN, unsigned int RowN> class > > osg::MatrixTemplate’ used without template parameters > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp: In member > function > > ‘bool osg::Uniform::getElement(unsigned int, osg::Matrix2x4&) const’: > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp:2181: error: > > ‘template<class T, unsigned int ColN, unsigned int RowN> class > > osg::MatrixTemplate’ used without template parameters > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp: In member > function > > ‘bool osg::Uniform::getElement(unsigned int, osg::Matrix3x2&) const’: > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp:2189: error: > > ‘template<class T, unsigned int ColN, unsigned int RowN> class > > osg::MatrixTemplate’ used without template parameters > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp: In member > function > > ‘bool osg::Uniform::getElement(unsigned int, osg::Matrix3x4&) const’: > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp:2197: error: > > ‘template<class T, unsigned int ColN, unsigned int RowN> class > > osg::MatrixTemplate’ used without template parameters > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp: In member > function > > ‘bool osg::Uniform::getElement(unsigned int, osg::Matrix4x2&) const’: > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp:2205: error: > > ‘template<class T, unsigned int ColN, unsigned int RowN> class > > osg::MatrixTemplate’ used without template parameters > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp: In member > function > > ‘bool osg::Uniform::getElement(unsigned int, osg::Matrix4x3&) const’: > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp:2213: error: > > ‘template<class T, unsigned int ColN, unsigned int RowN> class > > osg::MatrixTemplate’ used without template parameters > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp: In member > function > > ‘bool osg::Uniform::getElement(unsigned int, osg::Matrix2d&) const’: > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp:2259: error: > > ‘template<class T, unsigned int ColN, unsigned int RowN> class > > osg::MatrixTemplate’ used without template parameters > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp: In member > function > > ‘bool osg::Uniform::getElement(unsigned int, osg::Matrix3d&) const’: > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp:2267: error: > > ‘template<class T, unsigned int ColN, unsigned int RowN> class > > osg::MatrixTemplate’ used without template parameters > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp: In member > function > > ‘bool osg::Uniform::getElement(unsigned int, osg::Matrix2x3d&) const’: > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp:2287: error: > > ‘template<class T, unsigned int ColN, unsigned int RowN> class > > osg::MatrixTemplate’ used without template parameters > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp: In member > function > > ‘bool osg::Uniform::getElement(unsigned int, osg::Matrix2x4d&) const’: > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp:2295: error: > > ‘template<class T, unsigned int ColN, unsigned int RowN> class > > osg::MatrixTemplate’ used without template parameters > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp: In member > function > > ‘bool osg::Uniform::getElement(unsigned int, osg::Matrix3x2d&) const’: > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp:2303: error: > > ‘template<class T, unsigned int ColN, unsigned int RowN> class > > osg::MatrixTemplate’ used without template parameters > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp: In member > function > > ‘bool osg::Uniform::getElement(unsigned int, osg::Matrix3x4d&) const’: > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp:2311: error: > > ‘template<class T, unsigned int ColN, unsigned int RowN> class > > osg::MatrixTemplate’ used without template parameters > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp: In member > function > > ‘bool osg::Uniform::getElement(unsigned int, osg::Matrix4x2d&) const’: > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp:2319: error: > > ‘template<class T, unsigned int ColN, unsigned int RowN> class > > osg::MatrixTemplate’ used without template parameters > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp: In member > function > > ‘bool osg::Uniform::getElement(unsigned int, osg::Matrix4x3d&) const’: > > /home/jizquierdo/osg_testing/trunk/src/osg/Uniform.cpp:2327: error: > > ‘template<class T, unsigned int ColN, unsigned int RowN> class > > osg::MatrixTemplate’ used without template parameters > > make[2]: *** [src/osg/CMakeFiles/osg.dir/Uniform.o] Error 1 > > > > attached is a patch to fix the problems. > > > > > > > > > > > > 2012/3/30 David Callu <[email protected]> > >> > >> Hi Robert > >> > >> > >> I change in shader "#version 420 compatibility" by required extensions > >> I change the hardware support test like in osgVolume > >> > >> > >> I try to optimize osgatomiccounter example in many way but I haven't got > >> better result. > >> - I try to disable VSync, didn't change the frame time, > >> - I try to do double/triple/... buffering of atomic counter buffer, > didn't > >> change the frame time, > >> > >> To resume, N=number of buffer > >> with N=2 ot N=3 > >> if I write/use the Buffer N and I read the buffer N, Draw time ~= GPU > time > >> I suppose application have to wait GL finish its work before read the > >> buffer > >> > >> if I write/use the Buffer N and I read the buffer N-1, Draw time ~= GPU > >> time > >> well, application is not blocked by GL, so what happen ? > >> > >> if I write/use the Buffer N and I read the buffer N+1, Draw time ~= GPU > >> time > >> same comment > >> > >> with N=4 and above > >> if I write/use the Buffer N and I read the buffer N+1, Draw time ~= 0,35 > >> and GPU time ~= 14.5 > >> so application can easily read the buffer, but GL take a while to bind > >> buffer for write/use in next frame. > >> > >> > >> > >> So if my brain is not too crazy after so many test, > >> Atomic counter buffer take a while to swap between read and write mode. > >> Read a buffer used in current frame or in previous frame take a while. > >> Read a buffer used 3 frame ago or above is really fast but next bind > will > >> take a while. > >> > >> To reproduce my test, export OSG_NOTIFY_LEVEL=INFO and use options > >> --num-buffer Number of buffer use in buffer ring for read/write > >> usage. > >> --num-read Number of buffer readback in FinalDrawCallback. > >> --offset Number of buffer in buffer ring between buffer > >> write/use in > >> shader and buffer readback in FinalDrawCallback. > >> > >> > >> Perhaps an example without all this test stuff will be better to show > >> howto use Atomic Counter Buffer. > >> Thoughts ? > >> > >> > >> Cheers > >> David > >> > >> > >> 2012/3/29 Robert Osfield <[email protected]> > >>> > >>> Hi David, > >>> > >>> I have now merged and checked in all your changes, the OSG now support > >>> atomic counter buffer ;-) > >>> > >>> Robert. > >>> _______________________________________________ > >>> osg-submissions mailing list > >>> [email protected] > >>> > >>> > http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org > >> > >> > >> > >> _______________________________________________ > >> osg-submissions mailing list > >> [email protected] > >> > >> > http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org > >> > > > > > > > > -- > > Jordi Torres Fabra > > > > gvSIG 3D blog > > http://gvsig3d.blogspot.com > > Instituto de Automática e Informática Industrial > > http://www.ai2.upv.es > > > > _______________________________________________ > > osg-submissions mailing list > > [email protected] > > > http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org > > > _______________________________________________ > osg-submissions mailing list > [email protected] > > http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org > -- Jordi Torres Fabra gvSIG 3D blog http://gvsig3d.blogspot.com Instituto de Automática e Informática Industrial http://www.ai2.upv.es
_______________________________________________ osg-submissions mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-submissions-openscenegraph.org
