Re: [osg-users] OpenGL 3.2 support in OS X 10.7 (Lion)

207 views
Skip to first unread message

Paul Martz

unread,
Mar 2, 2012, 8:56:41 PM3/2/12
to OpenSceneGraph Users
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
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

David Garcia

unread,
Mar 3, 2012, 5:58:40 PM3/3/12
to OpenSceneGraph Users

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


David Garcia
 
Technical Director 

David Garcia

unread,
Mar 3, 2012, 6:08:37 PM3/3/12
to OpenSceneGraph Users

Paul,

Seems that OSG must use VAO. Look at this message for the same error:

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

David Garcia
 
Technical Director 
<signature.gif>

David Garcia

unread,
Mar 3, 2012, 6:48:45 PM3/3/12
to OpenSceneGraph Users

Paul,

A step closer, the teapot now appears.

error_2.txt.zip
PastedGraphic-1.png
signature.gif

Paul Martz

unread,
Mar 4, 2012, 2:03:47 PM3/4/12
to OpenSceneGraph Users
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.

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

David Garcia

unread,
Mar 4, 2012, 3:55:53 PM3/4/12
to OpenSceneGraph Users

Paul,

On Mar 4, 2012, at 20:03 , Paul Martz <pma...@skew-matrix.com> wrote:

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? 

Best regards,

  David

Robert Osfield

unread,
Mar 5, 2012, 9:22:23 AM3/5/12
to OpenSceneGraph Users
Hi David,

On 4 March 2012 20:55, David Garcia <da...@aimsun.com> wrote:
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?

The think that we should implement proper VAO support. I'm not familiar with this new feature yet, but would guess that it should probably sit in osg::Array and osg::BufferData.  I'm open to suggestions.

Robert.

Craig Bosma

unread,
Oct 3, 2012, 11:45:57 AM10/3/12
to OpenSceneGraph Users
Robert, Paul, et. al:

Has any further discussion or work gone into adding proper VAO support
to OSG? I'm interested in contributing if I can, mostly because I'd
like to see full 3.2 support for OS X.

Craig

Paul Martz

unread,
Oct 3, 2012, 12:55:27 PM10/3/12
to OpenSceneGraph Users
Hi Craig -- as far as I know, no one is using vertex array objects with OSG.

I am using OSG built for GL3 in an external OpenGL 3/4 project, but for file
loading only, not for rendering. (The external project requires OSG built for
GL3 in order to avoid including both gl.h and gl3.h in the same source.) I'm
using OSG svn trunk HEAD for this, and it works great on both Windows and OSX
(not yet tested on Linux). But the external project does the rendering, not OSG,
so my work here doesn't help you with OSG's current lack of VAO support.

I think it'd be great to have VAO support in OSG. You might want to post some
design ideas here for discussion, and review by Robert (as it would involve
changes to core OSG).
-Paul
Reply all
Reply to author
Forward
0 new messages