Hello Michael,

On 08/06/2014 10:22 AM, Michael Raab wrote:
> we have some problems, actually crashes, on client laptop that use Intel
> HD chips. The problems are linked to the usage of BlendChunk's and I
> think we have narrowed it down to the BlendEquation.
> It seems Intel HD chips and their drivers do not support GL_ARB_imaging
> extension, which is necessary for glBlendEquation. This problem arised
> with the switch from 1.8 to 2.0. I checked the BlendChunk implementation
> for differences and I've got a presumption what may be the problem. In
> 1.8 the BlendChunk uses ::hasExtension() to check for GL_ARB_imaging.
> 2.0 uses hasExtOrVersion(). So I guess that the GL version is large
> enough to get a true here even if the extension is not supported. What
> is the reason why this check was changed?

my guess would be because it is in the standard since GL version 1.4 or 
thereabouts - not that that would be the first time Intel drivers 
claiming some version/feature as supported and then happily ignore it ;)
Let me take a look at your follow up patch and see if we can get this to 
work for both conforming and broken drivers.

> Furthermore I've improved some other things:
> 1.) TextureBuffer::processPreDeactivate(): Check if image is assigned to
> TextureObj, before accessing it..

fixed,

> 2.) OSGGeoSplitVertexArrayPumpGroup/OSGGeoVertexArrayPumpGroup: We had
> some Geometries that had at certain times no vertices. Calling
> glDrawArray with vertexCount 0 caused crashes on some graphics cards. I
> added a check here.

fixed,

> 3.) OSGImage: Added simple hash calculation to be able to compare images
> faster.

+    this->_hashCode = seed;
+    for(UInt32 i=0; i<_mfPixel.size(); ++i)
+    {
+        this->_hashCode =
+            this->_hashCode * prime + (Int32)(&(_mfPixel[i]));
+    }
+
+    this->_hashCode = seed;

err, it looks to me like there's some typos in this [1] and I'm afraid 
as is this does not give me a warm fuzzy feeling...
Is the caching of the hash value important for you (given that it gets 
invalidated by a change to _any_ field of the image)? Otherwise I would 
slightly prefer to not make this a member function (Image already has a 
hugely fat interface), but a free utility function. Also, using 
OSG::SizeT for the hash code would make this play more nicely with C++11 
std::hash, which uses std::size_t.

> 4.) OSGBlendChunk: In some cases glBlendEquation was used where
> glBlendEquationEXT should have be used.

-> other mail.

Thanks for the fixes!

        Cheers,
                Carsten


[1] hash code gets overwritten to seed,
you seem to be using the address of pixel (truncated to 32 bit) not the 
content?

------------------------------------------------------------------------------
Infragistics Professional
Build stunning WinForms apps today!
Reboot your WinForms applications with our WinForms controls. 
Build a bridge from your legacy apps to the future.
http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk
_______________________________________________
Opensg-users mailing list
Opensg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensg-users

Reply via email to