Page 5 of 28

Re: OpenMW 0.44.0

Posted: 13 Apr 2018, 11:48
by scrawl
The only thing I can think of that might be different in 3.6's 'drawImplementation' would be the introduction of Vertex Array Object support, but it's not enabled by default. Regardless, a lot of code was refactored to achieve that so there is potential for new bugs.

Some ideas to find the culprit:

1. Run with environment variable OSG_GL_ERROR_CHECKING=ONCE_PER_ATTRIBUTE
2. Run openmw in apitrace, check for GL errors in the replay
3. git bisect the osg repo.

Edit: you're crashing in IncrementalCompileOperation. The crash may or may not be specific to that. Do things work with environment OPENMW_DONT_PRECOMPILE=1 ?

Re: OpenMW 0.44.0

Posted: 13 Apr 2018, 13:34
by scrawl
Well, after resolving way too many conflicts, I've just finished rebasing the fork to 3.6. Don't think we want to push that yet until the crash JDGBOLT had is resolved, so I've pushed it to a new branch '3.6' for now. Also, I haven't tested if it builds, and I wouldn't be suprised if it doesn't. Testing welcome. We could really use another travis CI instance.

Changelog:
- Removed patch to build with Qt4 by default as (osg)Qt is no longer part of OSG.
- Removed many patches that are now unnecessary because they were merged upstream.

Re: OpenMW 0.44.0

Posted: 13 Apr 2018, 14:32
by akortunov
scrawl wrote:
13 Apr 2018, 13:34
Also, I haven't tested if it builds, and I wouldn't be suprised if it doesn't. Testing welcome.
Builds fine on Linux.

Re: OpenMW 0.44.0

Posted: 13 Apr 2018, 18:21
by JDGBOLT
Well, just built the new 3.6 branch of the fork, and it does build successfully. The error is still there, and the tried OSG_GL_ERROR_CHECKING=ONCE_PER_ATTRIBUTE didn't seem to produce any additional output, and there seemed to be no change with OPENMW_DONT_PRECOMPILE=1. I ran apitrace on openmw and didn't see anything immediately standing out in opengl errors in the replay, just crashes with that "glretrace: ../mesa-18.0.0/src/mesa/state_tracker/st_cb_bufferobjects.c:461: st_bufferobj_map_range: Assertion `offset < obj->Size' failed." I think the only way to check will be to run a git bisect, which will take some time, as openscenegraph does take at least several minutes to compile each time, plus openmw recompiling.

Re: OpenMW 0.44.0

Posted: 14 Apr 2018, 01:20
by JDGBOLT
Well, after spending the better part of 6+ hours doing git bisect and full recompiles of both OpenMW and OpenSceneGraph, I can conclusively say the cause of the crash when using the Better Beast Bodies Clean Version mod is this commit: https://github.com/OpenMW/osg/commit/94 ... da67713b36 . Something about the way that commit changes the drawing causes it to crash. And it might be specifically something with the detection between whether to use Vertex Array Objects or Vertex Buffer Objects, I can tell you that Vertex Array Objects doesn't seem to work well for OpenMW, as shown in this video: https://streamable.com/imtjh . The mod in question is http://mw.modhistory.com/download-10-10928 , but it seems like that particular mod page is having problems at the moment on Morrowind Modding History. According to Greatness 7 the model from that mod was definitely broken in various ways, but it's possible it might affect other mods users will attempt to use. The video above was recorded with OSG_VERTEX_BUFFER_HINT="VAO" set. When using OSG_VERTEX_BUFFER_HINT="VBO" everything seems to work as expected, with no crashes or anything else. With OSG_VERTEX_BUFFER_HINT="NO_PREFERENCE", which I think is the default value, it causes the immediate crash when loading either the khajiit or argonian models with that mod installed and enabled. There was a lot of infrastructure work done to OSG around the time of this commit which enabled the Vertex Array Object support. Not too sure why that particular model causes a crash with NO_PREFERENCE, but think maybe should switch the OSG::state to use vbo or something as vao is screwed up on openmw, or fix that part perhaps. Anyway, that's what I've found after a day of poking, hopefully this serves to pin down the source of the problem.

Re: OpenMW 0.44.0

Posted: 14 Apr 2018, 09:13
by scrawl
Thanks, that is very useful. Since you said the VBO hint works but NO_PREFERENCE does not, I think I know what the problem is, that is an old issue that I already reported that apparently still hasn't been fixed. Can you give me the last lines of the apitrace output before the crash?

Re: OpenMW 0.44.0

Posted: 14 Apr 2018, 19:40
by JDGBOLT
Sure, can do, since the output is kind of long I put it up to pastebin, but this is the full loading of openmw with just the problem mod into a start cell of "balmora, south wall cornerclub", which has both khajiit and argonians within the cell: https://pastebin.com/R6ujZzqn . Hopefully since it is something that is known about it shouldn't be too hard to fix, I have played around a bit with the 3.6 branch of the openmw fork, and other than that crashing everything seems to work as expected, as far as being indistinguishable from the 3.4 branch.

Re: OpenMW 0.44.0

Posted: 14 Apr 2018, 20:27
by scrawl
Sorry, that's not what I meant. I need the GL calls made. I don't know how to get them from the command line, but if you open qapitrace, expand the last frame, scroll down and take a screenshot, that should be fine.

Re: OpenMW 0.44.0

Posted: 14 Apr 2018, 20:46
by JDGBOLT
Sorry, not too familiar with apitrace. Here is the screenshot. Hopefully this helps.

Re: OpenMW 0.44.0

Posted: 14 Apr 2018, 21:08
by JDGBOLT
Okay, in my previous message the forum murdered my screenshot, so hopefully this will actually be visible: https://i.imgur.com/uV3l05q.png