<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p><br>
</p>
<br>
<div class="moz-cite-prefix">On 21.08.2017 18:34, Robert Osfield
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:CAFN7Y+V59OWXbwe5xrYbRbi6r+9vmMZ9qFZ9AwruXGyiLD+2iw@mail.gmail.com">
<div dir="ltr">Hi Sandro,<br>
<div class="gmail_extra"><br>
<div class="gmail_quote">On 21 August 2017 at 17:21, Sandro
Mani <span dir="ltr"><<a
href="mailto:manisandro@gmail.com" target="_blank"
moz-do-not-send="true">manisandro@gmail.com</a>></span>
wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF">Are you building the OSG with
defaults? Or are you building the OSG for just GL3?<br>
<span class="gmail-">
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra"> </div>
</div>
</blockquote>
</span> %cmake -DBUILD_OSG_EXAMPLES=ON
-DBUILD_DOCUMENTATION=ON -DOSG_GL1_AVAILABLE=ON
-DOSG_GL2_AVAILABLE=ON -DOPENGL_PROFILE=GLCORE
-DOPENGL_HEADER1="#include <GL/gl.h>"<span
class="gmail-"><br>
</span></div>
</blockquote>
<div><br>
</div>
<div>That's a bit of ugly mix. </div>
</div>
</div>
</div>
</blockquote>
Agreed, I didn't put much though into it, I just checked that I hit
the OSG_GL3_FEATURES when doing the work on the context.<br>
<blockquote type="cite"
cite="mid:CAFN7Y+V59OWXbwe5xrYbRbi6r+9vmMZ9qFZ9AwruXGyiLD+2iw@mail.gmail.com">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div>Things should work with just:<br>
<br>
</div>
<div>cmake .<br>
</div>
<div>make -j 4 # 4 is number of cores available<br>
<br>
</div>
<div>When you using the OPENGL_PROFILE it'll set the
OSG_*_AVAILABLE options for you, but in general build with
defaults unless you specifically need a particular feature
set. <br>
</div>
</div>
</div>
</div>
</blockquote>
Well, in this case I needed it though, right? I mean, OPENGL_PROFILE
defaults to "GL2".<br>
<blockquote type="cite"
cite="mid:CAFN7Y+V59OWXbwe5xrYbRbi6r+9vmMZ9qFZ9AwruXGyiLD+2iw@mail.gmail.com">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div><br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px
0.8ex;border-left:1px solid
rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF"><span class="gmail-"> <br>
<blockquote type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<div>What viewer are using with osgEarth?
osgEarth itself is typically used as NodeKit
with end user application creating their own
viewer and with it graphics contexts. This
means even if osgEarth's own example
programs changed the way they create
graphics context you'd end up with issues.<br>
</div>
</div>
</div>
</div>
</blockquote>
</span> Running with osgearth_viewer, I get two calls to
osgViewer::GraphicsWindowX11::<wbr>init. The first one
where, I assume, it tries to determine the capabilities
of hardware/driver in use, and this calls Traits without
a DisplaySettings instance:<br>
<br>
#0 osgViewer::GraphicsWindowX11::<wbr>init
(this=this@entry=0x1004ad330)<br>
at
/usr/src/debug/OpenSceneGraph-<wbr>3.5.7-0.2.gitbfbaeca.fc27.x86_<wbr>64/src/osgViewer/<wbr>GraphicsWindowX11.cpp:915<br>
#1 0x00007f3e23ae4b50 in osgViewer::GraphicsWindowX11::<wbr>GraphicsWindowX11
(traits=0x1003760d0, this=<optimized out>)<br>
at
/usr/src/debug/OpenSceneGraph-<wbr>3.5.7-0.2.gitbfbaeca.fc27.x86_<wbr>64/include/osgViewer/api/X11/<wbr>GraphicsWindowX11:56<br>
#2 X11WindowingSystemInterface::<wbr>createGraphicsContext
(this=<optimized out>, traits=0x1003760d0)<br>
at
/usr/src/debug/OpenSceneGraph-<wbr>3.5.7-0.2.gitbfbaeca.fc27.x86_<wbr>64/src/osgViewer/<wbr>GraphicsWindowX11.cpp:2269<br>
#3 0x00007f3e241e81b7 in osg::GraphicsContext::<wbr>createGraphicsContext
(traits=traits@entry=<wbr>0x1003760d0)<br>
at
/usr/src/debug/OpenSceneGraph-<wbr>3.5.7-0.2.gitbfbaeca.fc27.x86_<wbr>64/src/osg/GraphicsContext.<wbr>cpp:128<br>
#4 0x00007f3e2350c256 in MyGraphicsContext::<wbr>MyGraphicsContext
(this=<synthetic pointer>)<br>
at
/usr/src/debug/osgearth-2.9-0.<wbr>2.git43d4ba5.fc27.x86_64/src/<wbr>osgEarth/Capabilities.cpp:76<br>
#5 osgEarth::Capabilities::<wbr>Capabilities
(this=0x100390f30)<br>
at
/usr/src/debug/osgearth-2.9-0.<wbr>2.git43d4ba5.fc27.x86_64/src/<wbr>osgEarth/Capabilities.cpp:162<br>
#6 0x00007f3e236897a5 in osgEarth::Registry::<wbr>initCapabilities
(this=0x1002a7af0)<br>
at
/usr/src/debug/osgearth-2.9-0.<wbr>2.git43d4ba5.fc27.x86_64/src/<wbr>osgEarth/Registry.cpp:484<br>
#7 0x00007f3e23689829 in osgEarth::Registry::<wbr>getCapabilities
(this=0x1002a7af0)<br>
at
/usr/src/debug/osgearth-2.9-0.<wbr>2.git43d4ba5.fc27.x86_64/src/<wbr>osgEarth/Registry.cpp:468<br>
#8 0x00007f3dfa209486 in osgEarth::Registry::<wbr>capabilities
()<br>
at
/usr/src/debug/osgearth-2.9-0.<wbr>2.git43d4ba5.fc27.x86_64/src/<wbr>osgEarth/Registry:149<br>
#9
osgEarth::Drivers::<wbr>MPTerrainEngine::<wbr>MPTerrainEngineNode::<wbr>MPTerrainEngineNode
(this=0x100a1ac60)<br>
at
/usr/src/debug/osgearth-2.9-0.<wbr>2.git43d4ba5.fc27.x86_64/src/<wbr>osgEarthDrivers/engine_mp/<wbr>MPTerrainEngineNode.cpp:202<br>
[...]<br>
<br>
Then, a second time here:<br>
<br>
#0 osgViewer::GraphicsWindowX11::<wbr>init
(this=this@entry=0x100676840)<br>
at
/usr/src/debug/OpenSceneGraph-<wbr>3.5.7-0.2.gitbfbaeca.fc27.x86_<wbr>64/src/osgViewer/<wbr>GraphicsWindowX11.cpp:915<br>
#1 0x00007f3e23ae4b50 in osgViewer::GraphicsWindowX11::<wbr>GraphicsWindowX11
(traits=0x10052c100, this=<optimized out>)<br>
at
/usr/src/debug/OpenSceneGraph-<wbr>3.5.7-0.2.gitbfbaeca.fc27.x86_<wbr>64/include/osgViewer/api/X11/<wbr>GraphicsWindowX11:56<br>
#2 X11WindowingSystemInterface::<wbr>createGraphicsContext
(this=<optimized out>, traits=0x10052c100)<br>
at
/usr/src/debug/OpenSceneGraph-<wbr>3.5.7-0.2.gitbfbaeca.fc27.x86_<wbr>64/src/osgViewer/<wbr>GraphicsWindowX11.cpp:2269<br>
#3 0x00007f3e241e81b7 in osg::GraphicsContext::<wbr>createGraphicsContext
(traits=traits@entry=<wbr>0x10052c100)<br>
at
/usr/src/debug/OpenSceneGraph-<wbr>3.5.7-0.2.gitbfbaeca.fc27.x86_<wbr>64/src/osg/GraphicsContext.<wbr>cpp:128<br>
#4 0x00007f3e23a7ab62 in osgViewer::SingleWindow::<wbr>configure
(this=0x100a2a370, view=...)<br>
at
/usr/src/debug/OpenSceneGraph-<wbr>3.5.7-0.2.gitbfbaeca.fc27.x86_<wbr>64/src/osgViewer/config/<wbr>SingleWindow.cpp:72<br>
#5 0x00007f3e23a7a80a in osgViewer::SingleScreen::<wbr>configure
(this=<optimized out>, view=...)<br>
at
/usr/src/debug/OpenSceneGraph-<wbr>3.5.7-0.2.gitbfbaeca.fc27.x86_<wbr>64/src/osgViewer/config/<wbr>SingleScreen.cpp:29<br>
#6 0x00007f3e23a75207 in osgViewer::AcrossAllScreens::<wbr>configure
(this=<optimized out>, view=...)<br>
at
/usr/src/debug/OpenSceneGraph-<wbr>3.5.7-0.2.gitbfbaeca.fc27.x86_<wbr>64/src/osgViewer/config/<wbr>AcrossAllScreens.cpp:48<br>
#7 0x00007f3e23ab79c2 in osgViewer::View::apply
(this=0x7fffffffdb00, config=0x1002a3770)<br>
at
/usr/src/debug/OpenSceneGraph-<wbr>3.5.7-0.2.gitbfbaeca.fc27.x86_<wbr>64/src/osgViewer/View.cpp:456<br>
#8 0x00007f3e23ab7b00 in osgViewer::View::<wbr>setUpViewAcrossAllScreens
(this=<optimized out>)<br>
at
/usr/src/debug/OpenSceneGraph-<wbr>3.5.7-0.2.gitbfbaeca.fc27.x86_<wbr>64/src/osgViewer/View.cpp:463<br>
[...]<br>
<br>
using ViewAcrossAllScreens as you anticipated and hence
the default DisplaySettings. Since by default a "1.0"
context is created, the result is:<br>
<br>
FRAGMENT glCompileShader "main(fragment)" FAILED<br>
FRAGMENT Shader "main(fragment)" infolog:<br>
0:1(10): error: GLSL 3.30 is not supported. Supported
versions are: 1.10, 1.20, 1.30, 1.00 ES, 3.00 ES, 3.10
ES, and 3.20 ES<br>
<br>
etc.<br>
<br>
If I add<span class="gmail-"><br>
<br>
osg::DisplaySettings::<wbr>instance()-><wbr>setGLContextVersion(
"4.0" );<br>
osg::DisplaySettings::<wbr>instance()-><wbr>setGLContextProfileMask(
0x1 );<br>
<br>
</span> at the beginning of a tweaked
osgearth_viewer.cpp@main, things work (though possibly
osgEarth::Capabilities::<wbr>Capabilities will have
incorrectly determined some things since a "1.0" context
was created there). The same effect can indeed be
achieved by using the environment variables you mention.<br>
</div>
</blockquote>
<div><br>
</div>
<div>Try using the OSG_GL_CONTEXT_VERSION and
OSG_GL_CONTEXT_PROFILE_MASK env vars instead of the above
DisplaySettings::instance() code i,e,<br>
<br>
</div>
<div>export OSG_GL_CONTEXT_VERSION=4.0<br>
</div>
<div>export OSG_GL_CONTEXT_PROFILE_MASK=1</div>
</div>
</div>
</div>
</blockquote>
Yes as mentioned this also works. But the open issue for me still
remains the first context created by osgEarth::Capabilities::
<div bgcolor="#FFFFFF"><wbr>Capabilities (see first of the stack
traces I posted above). In my view either this is a bug in
osgEarth that it creates the traits without honouring the desired
GL version, or OSG should otherwise ensure the traits contain the
overridden GL version.<br>
<br>
Sandro<br>
</div>
</body>
</html>