[osg-users] ATI GLSL bug regarding uniform arrays?
David Guthrie
dguthrie at alionscience.com
Tue Jan 29 08:51:30 PST 2008
I disagree that it is not something for OSG to work around. ATI will
accept the name of the uniform without the [], but OSG validates the
names directly, making it so you can't bind that uniform name. So one
could write code that would work with the same shaders and the same
code on both ati and nvidia using direct OpenGL code, but not with
OSG. Plus, you can't ifdef ATI. It's also very hard to detect if you
should use [] or not because you can't see what the names of the
parameters are until after the shader is compiled. We have a system
where we bind uniforms in an XML file. We don't want to make an ATI
version and an NVIDIA version.
If OSG just stripped off the [] when checking the names, it would work
for all cases. OSG already works around implementation details, picks
the right extensions to use for point sprites, etc. OSG should do all
it can to make the code work the same on different drivers and vendors
implementations.
---
David Guthrie
dguthrie at alionscience.com
Alion Science and Technology
BMH Operation - A CMMI Maturity Level 3 Organization
5365 Robin Hood Road, Suite 100
Norfolk, VA 23513-2416
(757) 857-5670, ext 269, Fax (757) 857-6781
On Jan 29, 2008, at 10:56 AM, Mike Weiblen wrote:
> Hi,
>
> Agreed this is not for OSG to workaround.
> But rather than do without arrays, couldn't your app conditionally
> append the "[0]"?
> Not clear why this is a showstopper. Just curious.
>
> -- mew
>
>
>> -----Original Message-----
>> From: osg-users-bounces at lists.openscenegraph.org [mailto:osg-users-
>> bounces at lists.openscenegraph.org] On Behalf Of Christian Muschick
>> Sent: Tuesday, January 29, 2008 4:38 AM
>> To: osg-users at lists.openscenegraph.org
>> Subject: [osg-users] ATI GLSL bug regarding uniform arrays?
>>
>>
>> Hello!
>>
>> There seems to be a bug in ATI OpenGl drivers when using uniform
>> arrays.
>> For e.g. the uniform array "float arr[3]" I have found that
>> getUniformLocation("arr") returns an error while
>> getUniformLocation("arr[0]") returns the desired value.
>>
>> This is in clear contrast to the glGetUniformLocation documentation,
>> where it says:
>> "... Except if the last part of name indicates a uniform variable
>> array,
>> the location of the first element of an array can be retrieved by
> using
>> the name of the array, or by using the name appended by "[0]"."
>>
>> Has anybody else experienced this issue? I expect no workaround will
> be
>> implemented in OSG, so I'll have to do without array uniforms?
>>
>> If nothing else, this should warn anybody searching for ATI and array
>> uniforms...
>>
>> regards
>> cm
>> _______________________________________________
>> osg-users mailing list
>> osg-users at lists.openscenegraph.org
>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-
>> openscenegraph.org
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20080129/d294c54b/attachment.html
More information about the osg-users
mailing list