That's a mystery. It doesn't appear on Windows. I find it odd that OS X would
require the use of vertex array objects when you open a 3.x context, but that's
what the error text appears to imply. I did a quick web search and didn't see
any discussion of such a message.
-Paul
On 3/2/2012 5:10 PM, David Garcia wrote:
> Following Paul advice I try osgWorks (2.0.0) teapot. I got different errors. In
> the state I have add to extract more information:
> gc->getState()->setCheckForGLErrors(osg::State::ONCE_PER_ATTRIBUTE);
>
> The output is in the zip file (errors.txt).
_______________________________________________
osg-users mailing list
osg-...@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
David Garcia
Technical Director
<signature.gif>
If you are not getting correct rendering unless you bind a VAO, then that sounds
like a possible driver bug. On Windows, for example, I am able to get correct
rendering if I modify osgsimplegl3 as follows:
* Change the "#version 140" to "#version 150" in both shader source strings.
* Change the version string from "3.1" to "3.2".
* Set the profile bit to 0x1 (WGL's core profile bit).
Then, "osgsimplegl3 teapot.osg" renders correctly without any warnings or errors.
Assuming it's a driver bug, I'm not sure how we'd want to work around it.
However, I imagine a submission to add VAO support to OSG Drawables might be
considered by Robert for inclusion in a future release.
-Paul
On 3/3/2012 4:08 PM, David Garcia wrote:
>
> Paul,
>
> Seems that OSG must use VAO. Look at this message for the same error:
> http://lwjgl.org/forum/index.php?topic=4071.msg22035#msg22035
>
> And then this comment in the next message:
> "Oups... My Bad. OpenGL 3.2 Core REQUIRES the use of VAOs (not just VBOs...)
> I added VAO instructions, now It work perfectly !"
>
> Maybe this will make sense to you :)
>
> David
>
> On Mar 3, 2012, at 23:58 , David Garcia <da...@aimsun.com
> <mailto:da...@aimsun.com>> wrote:
>
>>
>> Paul,
>>
>> I cannot help, my knowlenge in GL3 is quite limited. As far as I know Lion
>> implementation is strictly Core profile only and probably OSG is mixing GL3
>> with older profiles. You can find a bit more information, but not too much, in
>> the Apple Developer forums.
>>
>> My original problem was to use a GLSL 1.5 program in OSG's Mac version. In
>> Windows and Linux the system will create the best profile possible for OSG,
>> automatically and without enabling GL3 explicitly, and, in my case, is version
>> 3.3. In Mac the developer must create explicitly a 3.2 profile. This is not
>> the case in OSG and my app fails.
>>
>> As far as I know my only options are either to code the GLSL function in
>> version 1.2 or run OSG in GL3 mode.
>>
>> Best regards,
>>
>> David
>>
>> On Mar 3, 2012, at 2:56 , Paul Martz <pma...@skew-matrix.com
>> <mailto:pma...@skew-matrix.com>> wrote:
>>
>>> I'm assuming you are referring to the shader program info log message:
>>> Validation Failed: No vertex array object bound.
>>>
>>> That's a mystery. It doesn't appear on Windows. I find it odd that OS X would
>>> require the use of vertex array objects when you open a 3.x context, but
>>> that's what the error text appears to imply. I did a quick web search and
>>> didn't see any discussion of such a message.
>>> -Paul
>>>
>>>
>>> On 3/2/2012 5:10 PM, David Garcia wrote:
>>>> Following Paul advice I try osgWorks (2.0.0) teapot. I got different errors. In
>>>> the state I have add to extract more information:
>>>> gc->getState()->setCheckForGLErrors(osg::State::ONCE_PER_ATTRIBUTE);
>>>>
>>>> The output is in the zip file (errors.txt).
>>> _______________________________________________
>>> osg-users mailing list
>>> osg-...@lists.openscenegraph.org <mailto:osg-...@lists.openscenegraph.org>
>>> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>>
>> *
>> David Garcia*
>> Technical Director
>> <signature.gif>
>>
>
> *
> David Garcia*
> Technical Director
I believe the poster in that LWJGL thread is mistaken. Vertex array objects are not required in a 3.2 core profile context. See the OpenGL 3.2 core profile spec, which clearly states that a default (ID = 0) vertex array object is used when the app hasn't explicit bound an app-created VAO.
Yes, I think so too. Unfortunately Apple decides that a VAO is required. I can fill a radar and ask in the developer forums but, for now, what is the best solution?