Robert, Sounds good. Thanks for taking the time to verify that you were able to reproduce the problem on your end.
-- Dan > -----Original Message----- > From: Robert Osfield [mailto:robert.osfi...@gmail.com] > Sent: Thursday, February 26, 2009 10:47 AM > To: OpenSceneGraph Users > Subject: Re: [osg-users] Problems with non-resized NPOT > texturesandtrilinearmin filter > > HI Dan, > > I don't know the answer to this off the top of my head. These changes > are party of a 3rd party submission that I reviewed but now can't > remember the details. I'm afraid I'm juggling a couple of tasks right > now so can't dive into look into debugging this issue right away. > Perhaps others who've tinkered with this code will be able to spot the > problem/and a solution, if not then I'll come back to this once I've > cleared my intray a bit more. > > Robert. > > On Thu, Feb 26, 2009 at 5:45 PM, Gilbert, Daniel R. > <daniel.r.gilb...@saic.com> wrote: > > Robert, > > > > I tracked the problem down to where it is failing down in > > Texture::mipmapAfterTexImage(), which ultimately gets > called from the > > call to applyTexImage2D_load() in Texure2D::apply(). > > > > void Texture::mipmapAfterTexImage(State& state, GenerateMipmapMode > > beforeResult) const > > { > > switch (beforeResult) > > { > > case GENERATE_MIPMAP: > > { > > unsigned int contextID = state.getContextID(); > > TextureObject* textureObject = > getTextureObject(contextID); > > if (textureObject) <=== IS NULL > > { > > osg::FBOExtensions* fbo_ext = > > osg::FBOExtensions::instance(contextID, true); > > fbo_ext->glGenerateMipmapEXT(textureObject->_target); > > } > > } > > break; > > o > > o > > o > > } > > > > The passed in value of beforeResult is GENERATE_MIPMAP. The call to > > getTextureObject(contextID) simply returns: > > > > /** Returns a pointer to the texture object for the current > > context. */ > > inline TextureObject* getTextureObject(unsigned int > contextID) > > const > > { > > return _textureObjectBuffer[contextID].get(); > > } > > > > Since r8606 moved the assignment of > _textureObjectBuffer[contextID] to > > *after* the call to applyTexImage2D_load() it's returning a > NULL pointer > > so the call to glGenerateMipmapEXT never occurs. No error > message is > > displayed so we're none the wiser. > > > > Considering that the assignment to > _textureObjectBuffer[contextID] was > > moved in order to avoid a crash, where should the > assignment occur in > > order to avoid crashes while still properly generating MipMaps? > > > > -- Dan > > > > > >> -----Original Message----- > >> From: Gilbert, Daniel R. > >> Sent: Thursday, February 26, 2009 7:17 AM > >> To: OpenSceneGraph Users > >> Subject: Re: [osg-users] Problems with non-resized NPOT > >> texturesandtrilinear min filter > >> > >> Robert, > >> > >> Thanks for confirming that it isn't just me. Well, at least > >> on machines > >> with an Nvidia card. Does anyone with an ATI card experience > >> this same > >> issue with the samples I posted? > >> > >> I'll try digging deeper as you suggest, though like I > mentioned in my > >> original post I was able to make it work simply by reverting the > >> location of the _textureObjectBuffer assignment in > >> Texture2D.cpp back to > >> where it was before r8606. > >> > >> -- Dan > >> > >> > -----Original Message----- > >> > From: Robert Osfield [mailto:robert.osfi...@gmail.com] > >> > Sent: Thursday, February 26, 2009 12:58 AM > >> > To: OpenSceneGraph Users > >> > Subject: Re: [osg-users] Problems with non-resized NPOT > >> > textures andtrilinear min filter > >> > > >> > Hi Dan, > >> > > >> > On Wed, Feb 25, 2009 at 10:02 PM, Gilbert, Daniel R. > >> > <daniel.r.gilb...@saic.com> wrote: > >> > > Are others able to reproduce this same behavior using my > >> > attached sample? > >> > > >> > Just tried the test models on my Kubuntu 8.10/Gefore8800GTS > >> > cards and I get: > >> > > >> > npot_skydome_linear_noresize.osg works. > >> > npot_skydome_trilinear_noresize.osg fails. > >> > npot_skydome_trilinear_resize.osg works. > >> > > >> > I also don't get any OpenGL errors when > >> > npot_skydome_trilinear_noresize.osg fails. > >> > > >> > > Any thoughts on how to attempt a fix? > >> > > >> > It could well be a driver issue, but also might be an > OSG issue... > >> > > >> > When you have a model without mipmaps you have to generate them, > >> > either by using gluScaleImage or using the one of the > two hardware > >> > mipmap extension. It'd be worth digging into > osg::Texture/Texture2D > >> > to see what code paths it's taking to ask for the mipmap > generation. > >> > > >> > Robert. > >> > > >> > > >> > >> > > _______________________________________________ > > osg-users mailing list > > osg-users@lists.openscenegraph.org > > > http://lists.openscenegraph.org/listinfo.cgi/osg-users-opensce negraph.org > > > > _______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org