Re: [osg-users] osgposter through Task Scheduler

2019-07-03 Thread Chris Djali
Hi,

I don't want to be the guy that says "Go away and Google your problem", but I 
was curious and searched for OpenGL on headless Windows and saw a few results 
where people had managed to do it. Even if you don't find something compatible 
with your situation, you're likely to find more and better answers on a 
less-specific mailing list.

Sorry I couldn't give an actual answer,
Chris

--
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=76366#76366





___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Removing objects with shared GL state from scene graph

2019-07-03 Thread Chris Djali
Hi,

Turns out that it's not a font in the object cache that's causing me grief 
after all, but instead the static default font here: 
https://github.com/openscenegraph/OpenSceneGraph/blob/OpenSceneGraph-3.6/src/osgText/Font.cpp#L40.
 This is initialised from a GLubyte array instead of a file, so never ends up 
in the object cache.

I can manually call releaseGLObjects on it when a graphics context is 
destroyed, which solves the problem for my application, but I can provide an 
example of an OSG application that CodeXL says leaks stuff to prove that 
there's still a footgun.


Code:
int main()
{
osgViewer::Viewer viewer;

// Use an auto transform so the text actually faces the screen
osg::ref_ptr scene = new osg::AutoTransform();
scene->setAutoRotateMode(osg::AutoTransform::ROTATE_TO_SCREEN);
viewer.setSceneData(scene);

osg::ref_ptr text1 = new osgText::Text();
text1->setText("text1");
scene->addChild(text1);

// Display one or more frames
viewer.setCameraManipulator(new osgGA::TrackballManipulator());
for (int i = 0; i < 100; ++i)
viewer.frame();

// Remove a text node
scene->removeChild(text1);

// Pick which path depending on whether or not we trust all references to 
things to go away
if (false)
{
text1->releaseGLObjects();
}
else
{

}

text1 = nullptr;

// osgText::Font::getDefaultFont::s_defaultFont still exists, so the 
default font isn't released

return viewer.run();
}



As before, CodeXL is still reporting the following error:

[Image: 
https://cdn.discordapp.com/attachments/502999428798480387/596112745104146487/unknown.png
 ]

Maybe it would be a good idea for static OSG objects to all be held together in 
a global vector somewhere so that their GL objects can be released whenever a 
context is destroyed. Maybe something like that exists already and the default 
font just got forgotten.

Cheers,
Chris

--
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=76365#76365





___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] osgposter through Task Scheduler

2019-07-03 Thread Andreas Ekstrand

Hi,

Doesn't anyone have an idea about this? Basic question is, how can one 
retrieve a valid context without logging in to Windows? Is it even 
possible? I guess this problem isn't OSG-specific but I would have 
guessed that someone here had come across this before.


Even if I enable auto-login, it won't allow for remote desktop login 
since you're logged out again after such a session - this makes it hard 
to log in remotely to check the progress of headless process servers.


Regards,
Andreas


On 2019-06-16 21:17, Andreas Ekstrand wrote:

Hi,

I'm having problems with the osgposter example in Windows, or more 
precisely something similar I'm developing but the problem is easier 
to reproduce with osgposter. In my simple reproduction of the problem 
I'm trying to render an image automatically at computer startup by 
calling osgposter (inactive mode) from a Python script (os.system) 
activated as a task from Task Scheduler in Windows 10. But it seems to 
fail to fetch a valid OpenGL context. I have tried all rendering types 
in osgposter - fb, fbo, pbuffer and pbuffer-rtt.


The script works fine when started manually or when the task is set to 
start only when the user is logged on. But when activated as a task at 
computer startup whether user is logged on or not, it refuses to 
render anything. It just gets stuck in an infinite loop in the 
PosterPrinter class since FrameStamp::getFrameNumber() returns 0.


Before that, View::setUpViewInWindow results in the following messages 
if OSG_NOTIFY_LEVEL is set to DEBUG:

(...)
SingleWindow::configure - GraphicsWindow has not been created 
successfully.

(...)
Viewer::realize() - No valid contexts found, setting up view across 
all screens.

(...)
SingleWindow::configure - GraphicsWindow has not been created 
successfully.

(...)
Viewer::realize() - failed to set up any windows

Does anyone know how to get this working without having to log on to a 
Windows user?  Should it work? I have a GeForce GT 710 with the latest 
drivers. Actually, I tried adding opengl32.dll from the Mesa3D library 
to the same folder as osgposter.exe to make it work when manually 
executed while logged on through Remote Desktop. It did the trick, but 
not when activated from Task Scheduler.


Regards,
Andreas


___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org


Re: [osg-users] Removing objects with shared GL state from scene graph

2019-07-03 Thread Chris Djali
Hi,

Apparently, that approach won't work here - in my actual application, the 
multiple views are managed with a composite viewer, and that only calls its 
cleanup operation in its destructor and not when views are removed. I'll still 
be able to make something work, but it would have been nice to just set a 
callback that gets called right before a context is destroyed.

Cheers,
Chris

--
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=76362#76362





___
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org