octave-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Octave-bug-tracker] [bug #44478] test __osmesa_print__.cc-tst crashes w


From: John W. Eaton
Subject: [Octave-bug-tracker] [bug #44478] test __osmesa_print__.cc-tst crashes with Nvidia drivers
Date: Mon, 9 May 2016 18:28:53 +0000 (UTC)
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:44.0) Gecko/20100101 Firefox/44.0 Iceweasel/44.0

Follow-up Comment #76, bug #44478 (project octave):

I don't think it is a thread issue.  I think it happens because the nvidia
libGL doesn't know anything about the context that osmesa creates, or they are
simply incompatible because they are not stored internally in the same way. 
So mixing the nvidia libGL with libOSMesa just isn't likely to work.

If we could somehow detect that the nvidia library is linked with Octave, then
we could disable __osmesa_print__.  But I don't know how to do that.

I checked in the following change so that it is possible to get some info
about what OpenGL library was used to render a given figure:

http://hg.savannah.gnu.org/hgweb/octave/rev/1449e3b98941

But this feature has some limitations.  The info is not available until after
something is actually drawn because the glGetString function requires a valid
OpenGL context.  So things like


f = figure (); get (f, '__gl_version__')


may not return useful info because there may not be a call to draw the figure
before the get function is called.

Similarly, for invisible figures the properties are not set until after
printing:


>> f = figure ('visible', 'off')
f =  1
>> get (f, '__gl_version__')
ans =
>> sombrero
>> get (f, '__gl_version__')
ans =
>> print sombrero.pdf
>> get (f, '__gl_version__')
ans = 2.1 Mesa 11.1.3


But at least this can be used

    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?44478>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]