[GSoC 2013 - accepted] OpenGL 3+; Geometry & Tessellation

Threads related to Google Summer of Code
Post Reply
Ident
Gremlin
Posts: 155
Joined: Thu Sep 17, 2009 8:43 pm
Location: Austria
Contact:

Re: [GSoC 2013 - accepted] OpenGL 3+; Geometry & Tessellatio

Post by Ident » Wed Nov 13, 2013 6:29 pm

scrawl wrote:Check that it's not using compiled shader cache. Do you have a ~/.ogre/<Version>/cache.bin file?
Thanks so much, that was really the issue. Took me a while until i figured where it is saved on Windows (User/Documents/Ogre), was checking other app folders first.

I can't figure how to turn the caching off though - i read the docu but all i find is the "flushShaderCache ()" function of the ShaderGenerator class. Is calling this function on every program start really the only way to have freshly compiled shaders on every new run?
Is the shader cache only used in the Samples by default or will i also have to specifically flush/delete them when I make my own application that uses Ogre?
Sorry for getting kinda offtopic here - I could make a new thread for this if you want.
0 x

User avatar
scrawl
OGRE Expert User
OGRE Expert User
Posts: 1119
Joined: Sat Jan 01, 2011 7:57 pm
Location: Germany
x 2

Re: [GSoC 2013 - accepted] OpenGL 3+; Geometry & Tessellatio

Post by scrawl » Wed Nov 13, 2013 7:36 pm

Actually the cache being on by default was a mistake, and it's now off by default in the main repo. You should find the commit in 1.9 branch, it was a few weeks ago I think.
Therefore, merging 1.9 into the GSOC repo should fix the issue.

And no, cache needs to be explicitely turned on when you make your own application.
0 x

User avatar
holocronweaver
Google Summer of Code Student
Google Summer of Code Student
Posts: 273
Joined: Mon Oct 29, 2012 8:52 pm
Location: Princeton, NJ

Re: [GSoC 2013 - accepted] OpenGL 3+; Geometry & Tessellatio

Post by holocronweaver » Wed Nov 13, 2013 7:43 pm

scrawl wrote:Therefore, merging 1.9 into the GSOC repo should fix the issue.
I will do this today and push to the repo. Will try hard to get alpha released today.
0 x

User avatar
holocronweaver
Google Summer of Code Student
Google Summer of Code Student
Posts: 273
Joined: Mon Oct 29, 2012 8:52 pm
Location: Princeton, NJ

Re: [GSoC 2013 - accepted] OpenGL 3+; Geometry & Tessellatio

Post by holocronweaver » Fri Nov 15, 2013 2:34 am

GL3+ alpha will begin this weekend.

In my GSoC repo I have merged my work with the OGRE 1.10 branch, so use branch v1-10 from now on when testing GL3+ (not v2-0). The major thing holding back the alpha is getting the visual tests and samples working, some of which are partially broken from the merge. As is, the Sample Browser should run, though once you run a certain number of samples it crashes.

If you have any features you want, let me know and I will give them higher priority for the beta. The goal of the alpha is getting everything consumer ready rather than feature complete. That way beta will truly represent a first attempt at real world readiness rather than a shambling heap of broken features. That said, I will try to finish off as many features as I can. I have a small dump truck of features that are not yet in the repo or are disabled because they are all too buggy - hopefully those will mostly be cleaned up during beta.
0 x

User avatar
holocronweaver
Google Summer of Code Student
Google Summer of Code Student
Posts: 273
Joined: Mon Oct 29, 2012 8:52 pm
Location: Princeton, NJ

Re: [GSoC 2013 - accepted] OpenGL 3+; Geometry & Tessellatio

Post by holocronweaver » Mon Nov 18, 2013 6:52 am

I christen thee Alpha!

Bugs? Yeah, we've got that. However, I am far enough along now where I need to start asking for feedback.

Which samples crash in the GL3+ Alpha release?

Please provide your general specs (CPU, GPU + driver version, OS) and let me know how things go.

Later this week I will have repaired most of the visual tests. Running the visual tests on plenty of systems will be the true Olympian gauntlet.

A few features I know are bugged include: shadows (in general), animation (some types), and a few common RTSS dependent materials.
0 x

TheSHEEEP
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 972
Joined: Mon Jun 02, 2008 6:52 pm
Location: Berlin

Re: [GSoC 2013 - accepted] OpenGL 3+; Geometry & Tessellatio

Post by TheSHEEEP » Fri Nov 22, 2013 11:27 am

Building right now with MinGW.
Sorry for the delay, but, well, it's been a working week ;)

Building takes some time, so here are my specs:
Compiler: MinGW GCC 4.7.2 (32bit)
http://pastebin.com/mCE7K6dN

Edit:

Okay, seems like I am not even able to build:
RenderSystems\GL3Plus\src\OgreGL3PlusHardwareOcclusionQuery.cpp:53:5: error: 'StringVector' was not declared in this scope.
Where should this StringVector be declared?

Edit 2:

I added "#include "OgreStringVector.h" to OgreGL3PlusHardwareOcclusionQuery.cpp and OgreGL3PlusVertexArrayObject.cpp now it could build the rendersystem GL3+.

Edit 3:

Aaand I get a crash when starting the SampleBrowser.
Here is the log:
http://pastebin.com/QfxGWqW5

It crashes after the selection of the render system (so when the actual window opens).
I don't have time to dig around here further today. Maybe I will have some time again on Sunday :)
0 x
My site! - Have a look :)
Also on Twitter - extra fluffy

User avatar
scrawl
OGRE Expert User
OGRE Expert User
Posts: 1119
Joined: Sat Jan 01, 2011 7:57 pm
Location: Germany
x 2

Re: [GSoC 2013 - accepted] OpenGL 3+; Geometry & Tessellatio

Post by scrawl » Fri Nov 22, 2013 6:43 pm

System: Ubuntu 12.04 64 bit, Nvidia GTX 560 Ti

Code: Select all

Fri Nov 22 18:51:51 2013       
+------------------------------------------------------+                       
| NVIDIA-SMI 5.319.32   Driver Version: 319.32         |                       
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 560 Ti  Off  | 0000:02:00.0     N/A |                  N/A |
| 43%   43C  N/A     N/A /  N/A |      183MB /  1023MB |     N/A      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Compute processes:                                               GPU Memory |
|  GPU       PID  Process name                                     Usage      |
|=============================================================================|
|    0            Not Supported                                               |
+-----------------------------------------------------------------------------+
(If I didn't post the log output, it means there weren't any errors or unusual things in there).

BSP sample is black.

I can reliably get the sample browser to crash by starting the BSP sample, pressing ESC, starting the BezierPatch sample, then pressing ESC. Backtrace:

Code: Select all

Program received signal SIGSEGV, Segmentation fault.
Ogre::GL3PlusRenderSystem::bindGpuProgram (this=0x7ffff7ed0e98, prg=0x0) at /home/scrawl/Dev/ogre-gl3plus/RenderSystems/GL3Plus/src/OgreGL3PlusRenderSystem.cpp:2346
2346			switch (glprg->getType())
(gdb) bt
#0  Ogre::GL3PlusRenderSystem::bindGpuProgram (this=0x7ffff7ed0e98, prg=0x0) at /home/scrawl/Dev/ogre-gl3plus/RenderSystems/GL3Plus/src/OgreGL3PlusRenderSystem.cpp:2346
#1  0x00007ffff79c66d4 in Ogre::SceneManager::_setPass (this=0x7ffff7f1c3b8, pass=0x7ffff7ed5198, evenIfSuppressed=<optimized out>, shadowDerivation=<optimized out>)
    at /home/scrawl/Dev/ogre-gl3plus/OgreMain/src/OgreSceneManager.cpp:970
#2  0x00007ffff7939ec1 in Ogre::SceneManager::BRAND NAME::visit (this=0x7ffff7f20c48, p=0x7ffff7ed5198) at /home/scrawl/Dev/ogre-gl3plus/OgreMain/src/OgreSceneManager.cpp:2920
#3  0x00007ffff794f9ee in Ogre::QueuedRenderableCollection::acceptVisitorGrouped (this=0x7fffd8037670, visitor=0x7ffff7f20c48)
    at /home/scrawl/Dev/ogre-gl3plus/OgreMain/src/OgreRenderQueueSortingGrouping.cpp:441
#4  0x00007ffff794fadb in Ogre::QueuedRenderableCollection::acceptVisitor (this=<optimized out>, visitor=<optimized out>, om=<optimized out>)
    at /home/scrawl/Dev/ogre-gl3plus/OgreMain/src/OgreRenderQueueSortingGrouping.cpp:418
#5  0x00007ffff79d58b2 in Ogre::SceneManager::renderBasicQueueGroupObjects (this=0x7ffff7f1c3b8, pGroup=0x7ffff076bfa8, om=Ogre::QueuedRenderableCollection::OM_PASS_GROUP)
    at /home/scrawl/Dev/ogre-gl3plus/OgreMain/src/OgreSceneManager.cpp:3088
#6  0x00007ffff79414ec in Ogre::SceneManager::renderVisibleObjectsDefaultSequence (this=0x7ffff7f1c3b8) at /home/scrawl/Dev/ogre-gl3plus/OgreMain/src/OgreSceneManager.cpp:2347
#7  0x00007ffff7a0cc28 in Ogre::SceneManager::_renderScene (this=0x7ffff7f1c3b8, camera=0x7ffff7ef6f28, vp=0x7ffff052de18, includeOverlays=<optimized out>)
    at /home/scrawl/Dev/ogre-gl3plus/OgreMain/src/OgreSceneManager.cpp:1560
#8  0x00007ffff79a558b in Ogre::Camera::_renderScene (this=0x7ffff7ef6f28, vp=vp@entry=0x7ffff052de18, includeOverlays=<optimized out>)
    at /home/scrawl/Dev/ogre-gl3plus/OgreMain/src/OgreCamera.cpp:427
#9  0x00007ffff78d27c5 in Ogre::Viewport::update (this=this@entry=0x7ffff052de18) at /home/scrawl/Dev/ogre-gl3plus/OgreMain/src/OgreViewport.cpp:224
#10 0x00007ffff78114aa in Ogre::RenderTarget::_updateViewport (this=0x7ffff7ed24d8, viewport=0x7ffff052de18, updateStatistics=<optimized out>)
    at /home/scrawl/Dev/ogre-gl3plus/OgreMain/src/OgreRenderTarget.cpp:200
#11 0x00007ffff780fd0b in Ogre::RenderTarget::_updateAutoUpdatedViewports (this=0x7ffff7ed24d8, updateStatistics=true) at /home/scrawl/Dev/ogre-gl3plus/OgreMain/src/OgreRenderTarget.cpp:178
#12 0x00007ffff780b31e in Ogre::RenderTarget::updateImpl (this=0x7ffff7ed24d8) at /home/scrawl/Dev/ogre-gl3plus/OgreMain/src/OgreRenderTarget.cpp:155
#13 0x00007ffff7811274 in Ogre::RenderTarget::update (this=0x7ffff7ed24d8, swap=<optimized out>) at /home/scrawl/Dev/ogre-gl3plus/OgreMain/src/OgreRenderTarget.cpp:613
#14 0x00007ffff793813f in Ogre::RenderSystem::_updateAllRenderTargets (this=0x7ffff7ed0e98, swapBuffers=false) at /home/scrawl/Dev/ogre-gl3plus/OgreMain/src/OgreRenderSystem.cpp:121
#15 0x00007ffff785f80a in Ogre::Root::_updateAllRenderTargets (this=this@entry=0x7ffff7ec25f8) at /home/scrawl/Dev/ogre-gl3plus/OgreMain/src/OgreRoot.cpp:1421
#16 0x00007ffff785f8c0 in Ogre::Root::renderOneFrame (this=this@entry=0x7ffff7ec25f8) at /home/scrawl/Dev/ogre-gl3plus/OgreMain/src/OgreRoot.cpp:994
#17 0x00007ffff785f905 in Ogre::Root::startRendering (this=0x7ffff7ec25f8) at /home/scrawl/Dev/ogre-gl3plus/OgreMain/src/OgreRoot.cpp:984
#18 0x0000000000409418 in OgreBites::SampleContext::go (this=this@entry=0x7fffffffe350, initialSample=initialSample@entry=0x0)
    at /home/scrawl/Dev/ogre-gl3plus/Samples/Common/include/SampleContext.h:328
#19 0x0000000000408239 in main (argc=<optimized out>, argv=<optimized out>) at /home/scrawl/Dev/ogre-gl3plus/Samples/Browser/src/SampleBrowser.cpp:116
Started BumpMapping sample, then started Bezierpatch sample, then pressed Esc. All fonts turn into solid black (no alpha blending I guess). Didn't manage to reproduce this again.

DualQuaternion sample: meshes don't appear.

EndlessWorld: terrain pages seem to blink in and out of existance depending on the distance (even near ones). Typically about 1/2 of the pages were displayed.
Doesn't reproduce when starting it immediately (no other samples first). Corruption?

Geometry shader particle system: no particles appear

Code: Select all

Geometry Program: Ogre/ParticleGS/GenerateGSglsl
GLSL program result : 
Geometry info
-------------
0(50) : warning C7050: "gl_Position" might be used before being initialized
0(38) : warning C7050: "colour" might be used before being initialized
Vertex Program: 3e80e64c-01f6-281a-1dc1-c6df6d9b34ce_VS
Fragment Program: b64f9e62-2804-c401-14b2-1836ab848853_FS
GLSL program result : 
Vertex info
-----------
0(53) : error C3002: call to undefined function "void FFP_GenerateTexCoord_EnvMap_Sphere(mat4, mat4, mat4, vec4, vec3, mat4, vec2);"
IsoSurf: completely black

Code: Select all

Num output vertices per geometry shader run : 1024
Vertex Program: Ogre/IsoSurf/SampleFieldVS_GLSL
Fragment Program: Ogre/IsoSurf/MetaballPS_GLSL
Geometry Program: Ogre/IsoSurf/TessellateTetrahedraGS_GLSL
GLSL program result : 
Vertex info
-----------
0(80) : warning C7050: "Field" might be used before being initialized

PNTriangles: "Your card does not support the necessary shader model 5.0"

Sphere mapping: no mesh appears

Terrain: crashes while "Building terrain"

Code: Select all

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7948a13 in nedalloc::nedgetvalue (p=p@entry=0x7fffffffdb68, mem=mem@entry=0x7fffd0aed370) at /home/scrawl/Dev/ogre-gl3plus/OgreMain/src/nedmalloc/nedmalloc.c:672
672		if(!ok_magic(fm)) return 0;
(gdb) bt
#0  0x00007ffff7948a13 in nedalloc::nedgetvalue (p=p@entry=0x7fffffffdb68, mem=mem@entry=0x7fffd0aed370) at /home/scrawl/Dev/ogre-gl3plus/OgreMain/src/nedmalloc/nedmalloc.c:672
#1  0x00007ffff7949fa3 in Ogre::_NedPoolingIntern::internalFree (a_mem=a_mem@entry=0x7fffd0aed370) at /home/scrawl/Dev/ogre-gl3plus/OgreMain/src/OgreMemoryNedPooling.cpp:123
#2  0x00007ffff794a49a in Ogre::NedPoolingImpl::deallocBytes (ptr=ptr@entry=0x7fffd0aed370) at /home/scrawl/Dev/ogre-gl3plus/OgreMain/src/OgreMemoryNedPooling.cpp:163
#3  0x00007fffd9b18565 in deallocateBytes (ptr=0x7fffd0aed370) at /home/scrawl/Dev/ogre-gl3plus/OgreMain/include/OgreMemoryNedPooling.h:77
#4  Ogre::Terrain::save (this=this@entry=0x7fffd80b5150, stream=...) at /home/scrawl/Dev/ogre-gl3plus/Components/Terrain/src/OgreTerrain.cpp:384
#5  0x00007fffd9b18c25 in Ogre::Terrain::save (this=this@entry=0x7fffd80b5150, filename=...) at /home/scrawl/Dev/ogre-gl3plus/Components/Terrain/src/OgreTerrain.cpp:280
#6  0x00007fffd9b18d58 in Ogre::TerrainGroup::saveAllTerrains (this=0x7fffd8079720, onlyIfModified=onlyIfModified@entry=true, replaceFilenames=replaceFilenames@entry=true)
    at /home/scrawl/Dev/ogre-gl3plus/Components/Terrain/src/OgreTerrainGroup.cpp:276
#7  0x00007fffd2648acf in saveTerrains (this=0x7fffdb7c5180, onlyIfModified=true) at /home/scrawl/Dev/ogre-gl3plus/Samples/Terrain/include/Terrain.h:284
#8  Sample_Terrain::frameRenderingQueued (this=0x7fffdb7c5180, evt=...) at /home/scrawl/Dev/ogre-gl3plus/Samples/Terrain/include/Terrain.h:274
#9  0x000000000041df39 in frameRenderingQueued (evt=..., this=0x7fffffffe350) at /home/scrawl/Dev/ogre-gl3plus/Samples/Common/include/SampleContext.h:382
#10 OgreBites::SampleBrowser::frameRenderingQueued (this=0x7fffffffe350, evt=...) at /home/scrawl/Dev/ogre-gl3plus/Samples/Browser/include/SampleBrowser.h:434
#11 0x00007ffff785f18d in Ogre::Root::_fireFrameRenderingQueued (this=this@entry=0x7ffff7ec25f8, evt=...) at /home/scrawl/Dev/ogre-gl3plus/OgreMain/src/OgreRoot.cpp:852
#12 0x00007ffff785f7e1 in Ogre::Root::_fireFrameRenderingQueued (this=this@entry=0x7ffff7ec25f8) at /home/scrawl/Dev/ogre-gl3plus/OgreMain/src/OgreRoot.cpp:907
#13 0x00007ffff785f812 in Ogre::Root::_updateAllRenderTargets (this=this@entry=0x7ffff7ec25f8) at /home/scrawl/Dev/ogre-gl3plus/OgreMain/src/OgreRoot.cpp:1423
#14 0x00007ffff785f8c0 in Ogre::Root::renderOneFrame (this=this@entry=0x7ffff7ec25f8) at /home/scrawl/Dev/ogre-gl3plus/OgreMain/src/OgreRoot.cpp:994
#15 0x00007ffff785f905 in Ogre::Root::startRendering (this=0x7ffff7ec25f8) at /home/scrawl/Dev/ogre-gl3plus/OgreMain/src/OgreRoot.cpp:984
#16 0x0000000000409418 in OgreBites::SampleContext::go (this=this@entry=0x7fffffffe350, initialSample=initialSample@entry=0x0)
    at /home/scrawl/Dev/ogre-gl3plus/Samples/Common/include/SampleContext.h:328
#17 0x0000000000408239 in main (argc=<optimized out>, argv=<optimized out>) at /home/scrawl/Dev/ogre-gl3plus/Samples/Browser/src/SampleBrowser.cpp:116
(gdb) 

Tesselation: completely black

Code: Select all

Cam position: 0.00, 5.00, -30.00GLSL compile log: Ogre/Tesselation/TesselationDomainProgramGLSL
0(13) : error C7011: implicit cast from "vec4" to "vec3"
Tesselation Evaluation Program Ogre/Tesselation/TesselationDomainProgramGLSL failed to compile. See compile log above for details.
Volume CSG: Shows a corrupted rotating mesh, nothing else.

VolumeTerrain: shader is broken, but I see there's already a thread about this.

I had a "double free or corruption detected" on exit once, but didn't manage to reproduce it again.

Looks like there might be quite a bit of corruption going on. Have you done a run of valgrind (or GCC 4.8's address sanitizer) yet?
0 x

User avatar
holocronweaver
Google Summer of Code Student
Google Summer of Code Student
Posts: 273
Joined: Mon Oct 29, 2012 8:52 pm
Location: Princeton, NJ

Re: [GSoC 2013 - accepted] OpenGL 3+; Geometry & Tessellatio

Post by holocronweaver » Fri Nov 22, 2013 10:33 pm

scrawl wrote:BSP sample is black.
BSP sample runs at all!? :D I don't believe it has the GLSL RTSS shaders necessary to make it work in GL core profile, and unless someone is willing to do the work of porting the Cg to GLSL unfortunately it probably won't be making the jump to GL3+. There was talk of removing the BspSceneManager entirely for OGRE 2.0, so it is low on my priority list. For now I will add an error message letting users know it is out of order.
Started BumpMapping sample, then started Bezierpatch sample, then pressed Esc. All fonts turn into solid black (no alpha blending I guess). Didn't manage to reproduce this again.
Very interesting! I cannot replicate. Is this from a fresh launch?
DualQuaternion sample: meshes don't appear.
Luckily it should be easy to fix. On my TODO.
EndlessWorld: terrain pages seem to blink in and out of existance depending on the distance (even near ones). Typically about 1/2 of the pages were displayed.
Another very interesting one I cannot reproduce. All that is wrong on my end is lighting. Will try to track down the issue, but probably will need help.
Geometry shader particle system: no particles appear
LOL, Nvidia trouble with the RTSS sphere mapping function. Surprised no one has spotted this before. Well, at least this one is not my fault! Will look into it.
IsoSurf: completely black
Very strange. The warning makes no sense because Field is initialized in main() near the top.
Sphere mapping: no mesh appears
Probably spherical mapping failing like above? Hope so.
Terrain: crashes while "Building terrain"
This happens sporadically for me, even in GL RS. Will try to nail down.
Tesselation: completely black
Woops, did I code that? :roll: Fixed.
Volume CSG: Shows a corrupted rotating mesh, nothing else.
Possibly fixed. Need to further test.
VolumeTerrain: shader is broken, but I see there's already a thread about this.
Indeed, should have this fixed ASAP.
Looks like there might be quite a bit of corruption going on. Have you done a run of valgrind (or GCC 4.8's address sanitizer) yet?
No, assumed Ogre main would drown out GL3+ in valgrind. Will give it a go. Have not heard of GCC 4.8's sanitizer. Thanks for giving me a reason to upgrade from 4.7. :)
0 x

User avatar
holocronweaver
Google Summer of Code Student
Google Summer of Code Student
Posts: 273
Joined: Mon Oct 29, 2012 8:52 pm
Location: Princeton, NJ

Re: [GSoC 2013 - accepted] OpenGL 3+; Geometry & Tessellatio

Post by holocronweaver » Fri Nov 22, 2013 11:43 pm

TheSHEEEP wrote:Compiler: MinGW GCC 4.7.2 (32bit)
http://pastebin.com/mCE7K6dN
Cool, same version of MinGW GCC I have been using to test on Windows, but you are using an Nvidia card. Should be interesting.
I added "#include "OgreStringVector.h" to OgreGL3PlusHardwareOcclusionQuery.cpp and OgreGL3PlusVertexArrayObject.cpp now it could build the rendersystem GL3+.
I have had several people have several totally different problems compiling GL3+ with MinGW GCC 4.7.2. I suspect CMake is to blame. What version of CMake do you have? Are you using it to produce vanilla MinGW makefiles?

As for the sample browser crashing, nothing in the log seems to indicate why. I know that when I first set up GL3+ from scratch, it sometimes did not copy files correctly into the SDK folder and I had to do some manual copying. Not sure what causes that - CMake scripts need updating?
0 x

User avatar
scrawl
OGRE Expert User
OGRE Expert User
Posts: 1119
Joined: Sat Jan 01, 2011 7:57 pm
Location: Germany
x 2

Re: [GSoC 2013 - accepted] OpenGL 3+; Geometry & Tessellatio

Post by scrawl » Sat Nov 23, 2013 12:19 am

Have not heard of GCC 4.8's sanitizer. Thanks for giving me a reason to upgrade from 4.7.
It's pretty cool. You add a flag when compiling your program. Then you just run it and it will spit out helpful messages about memory errors just like valgrind, except that it's much faster (about 50% of usual speed - compare that to valgrind...), plus, it can apparently detect a few things valgrind can't.
http://blog.qt.digia.com/blog/2013/04/1 ... r-with-qt/
0 x

User avatar
holocronweaver
Google Summer of Code Student
Google Summer of Code Student
Posts: 273
Joined: Mon Oct 29, 2012 8:52 pm
Location: Princeton, NJ

Re: [GSoC 2013 - accepted] OpenGL 3+; Geometry & Tessellatio

Post by holocronweaver » Sat Nov 23, 2013 6:11 am

scrawl wrote:You add a flag when compiling your program. Then you just run it and it will spit out helpful messages about memory errors just like valgrind, except that it's much faster (about 50% of usual speed - compare that to valgrind...), plus, it can apparently detect a few things valgrind can't.
Have you gotten this working with OGRE before? I upgraded to GCC 4.8.1 and gdb to 7.6.1, and I even built and installed LLVM 3.3, and while memory errors are detected and a stack trace provided, the trace refers to library objects rather than the function calls - as you would expect in a binary without symbols. However, this was a debug build and all I did was add the magic -fsanitize=address to the debug flavors of CXX_FLAGS, C_FLAGS, and various LINKER_FLAGS. Did I miss a step?
0 x

User avatar
scrawl
OGRE Expert User
OGRE Expert User
Posts: 1119
Joined: Sat Jan 01, 2011 7:57 pm
Location: Germany
x 2

Re: [GSoC 2013 - accepted] OpenGL 3+; Geometry & Tessellatio

Post by scrawl » Sat Nov 23, 2013 6:16 am

holocronweaver wrote:Did I miss a step?
Yep, you need to pipe the output through the asan_symbolize.py script (see the blog post I linked above).

Code: Select all

./myProgram 2>&1 | asan_symbolize.py | c++filt
0 x

User avatar
holocronweaver
Google Summer of Code Student
Google Summer of Code Student
Posts: 273
Joined: Mon Oct 29, 2012 8:52 pm
Location: Princeton, NJ

Re: [GSoC 2013 - accepted] OpenGL 3+; Geometry & Tessellatio

Post by holocronweaver » Sat Nov 23, 2013 6:30 am

That indeed works! I tried it before installing LLVM 3.3 and it failed. How can I get that to work in gdb?
0 x

User avatar
scrawl
OGRE Expert User
OGRE Expert User
Posts: 1119
Joined: Sat Jan 01, 2011 7:57 pm
Location: Germany
x 2

Re: [GSoC 2013 - accepted] OpenGL 3+; Geometry & Tessellatio

Post by scrawl » Sat Nov 23, 2013 6:43 am

You mean you don't have symbols when running in gdb anymore? That's weird.
I didn't have to install LLVM either.
0 x

User avatar
holocronweaver
Google Summer of Code Student
Google Summer of Code Student
Posts: 273
Joined: Mon Oct 29, 2012 8:52 pm
Location: Princeton, NJ

Re: [GSoC 2013 - accepted] OpenGL 3+; Geometry & Tessellatio

Post by holocronweaver » Sat Nov 23, 2013 6:54 am

Yeah, I read this is a problem in gdb 7.4, but I have 7.6.1 so I thought it should be solved.
0 x

TheSHEEEP
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 972
Joined: Mon Jun 02, 2008 6:52 pm
Location: Berlin

Re: [GSoC 2013 - accepted] OpenGL 3+; Geometry & Tessellatio

Post by TheSHEEEP » Sat Nov 23, 2013 7:37 pm

holocronweaver wrote:I have had several people have several totally different problems compiling GL3+ with MinGW GCC 4.7.2. I suspect CMake is to blame. What version of CMake do you have? Are you using it to produce vanilla MinGW makefiles?
I use CMake version 2.8.12.

Did you use any special flags inside CMake or with MinGW?
I'll try to do a debug build tomorrow when I have the time to see where it actually crashes.
0 x
My site! - Have a look :)
Also on Twitter - extra fluffy

User avatar
holocronweaver
Google Summer of Code Student
Google Summer of Code Student
Posts: 273
Joined: Mon Oct 29, 2012 8:52 pm
Location: Princeton, NJ

Re: [GSoC 2013 - accepted] OpenGL 3+; Geometry & Tessellatio

Post by holocronweaver » Sat Nov 23, 2013 8:52 pm

TheSHEEEP wrote:I use CMake version 2.8.12.

Did you use any special flags inside CMake or with MinGW?
Just upgraded to your version of CMake and compiled in a clean directory without errors. Hmm.

My CMake generator is 'MinGW Makefiles' and I am performing an out of source build in build/ogre-gl3plus.

I change the following flags:
OGRE_UNITY_BUILD is enabled and OGRE_UNITY_FILES_PER_UNIT set to 75
OGRE_BUILD_RENDERSYSTEM_GL3PLUS enabled, of course :)
OGRE_BUILD_RENDERSYSTEM_D3D9 and D3D11 disabled
OGRE_BUILD_TESTS enabled
OGRE_INSTALL_PREFIX to its own built/ogre-gl3plus directory, which is a habit I believe I picked up from you

Note that I am building without Boost on Windows, though I cannot imagine that makes a difference here.
0 x

User avatar
scrawl
OGRE Expert User
OGRE Expert User
Posts: 1119
Joined: Sat Jan 01, 2011 7:57 pm
Location: Germany
x 2

Re: [GSoC 2013 - accepted] OpenGL 3+; Geometry & Tessellatio

Post by scrawl » Sat Nov 23, 2013 8:55 pm

I also enabled unity build. I suspect that I'd also have gotten the missing include error with unity build off.
0 x

User avatar
holocronweaver
Google Summer of Code Student
Google Summer of Code Student
Posts: 273
Joined: Mon Oct 29, 2012 8:52 pm
Location: Princeton, NJ

Re: [GSoC 2013 - accepted] OpenGL 3+; Geometry & Tessellatio

Post by holocronweaver » Sat Nov 23, 2013 9:18 pm

scrawl wrote:I also enabled unity build. I suspect that I'd also have gotten the missing include error with unity build off.
Good catch! That was indeed what has been shielding me from these errors. Yet more stuff to fix. :shock:

Update: My latest push should fix things for non-unity builds. However, I never experienced trouble loading the samplebrowser. Make sure you delete any cache files in your OGRE user directory (~/.ogre on Lin and My Documents/Ogre on Win).
0 x

User avatar
holocronweaver
Google Summer of Code Student
Google Summer of Code Student
Posts: 273
Joined: Mon Oct 29, 2012 8:52 pm
Location: Princeton, NJ

Re: [GSoC 2013 - accepted] OpenGL 3+; Geometry & Tessellatio

Post by holocronweaver » Sun Nov 24, 2013 7:11 am

I need some advice on merging feature branches using Mercurial. I have feature branches which have been left untouched since August and September and need to be finished and moved into my main branch. Should I first merge upstream changes into the feature branch, then merge the feature into my main branch? Or am I doing feature branches / Mercurial all wrong?
0 x

User avatar
masterfalcon
OGRE Team Member
OGRE Team Member
Posts: 4270
Joined: Sun Feb 25, 2007 4:56 am
Location: Bloomington, MN
Contact:

Re: [GSoC 2013 - accepted] OpenGL 3+; Geometry & Tessellatio

Post by masterfalcon » Sun Nov 24, 2013 7:44 am

Have you merged upstream changes into your main branch since August/September? It's hard to say because you might have a nasty merge in either situation. I'd be inclined to merge into your main branch and keep upstream merges to only the main branch.
0 x

User avatar
scrawl
OGRE Expert User
OGRE Expert User
Posts: 1119
Joined: Sat Jan 01, 2011 7:57 pm
Location: Germany
x 2

Re: [GSoC 2013 - accepted] OpenGL 3+; Geometry & Tessellatio

Post by scrawl » Sun Nov 24, 2013 7:49 am

It doesn't matter if you merge upstream into feature branch, then feature branch into main, or feature branch into main directly (which is merged with upstream). End result is the same. And the merge conflict situation would be the same in both cases also.
0 x

User avatar
holocronweaver
Google Summer of Code Student
Google Summer of Code Student
Posts: 273
Joined: Mon Oct 29, 2012 8:52 pm
Location: Princeton, NJ

Re: [GSoC 2013 - accepted] OpenGL 3+; Geometry & Tessellatio

Post by holocronweaver » Sun Nov 24, 2013 7:53 am

Thanks. Yeah, I have been keeping main branch in sync with upstream, but feature branches have become stale since I have not been using them.

Is using feature branches as I have your typical workflow in Mercurial? If not, is there a better approach?
0 x

User avatar
scrawl
OGRE Expert User
OGRE Expert User
Posts: 1119
Joined: Sat Jan 01, 2011 7:57 pm
Location: Germany
x 2

Re: [GSoC 2013 - accepted] OpenGL 3+; Geometry & Tessellatio

Post by scrawl » Sun Nov 24, 2013 7:58 am

On second thought, if you merge upstream into the feature branch, you'll probably end up getting the same merge conflicts again that you already had when you merged upstream into main.
If merging the (not merged with upstream) feature branch directly into main (which merged with upstream), maybe those conflicts wouldn't show up? You'd probably still have conflicts from your own code of course.
0 x

User avatar
masterfalcon
OGRE Team Member
OGRE Team Member
Posts: 4270
Joined: Sun Feb 25, 2007 4:56 am
Location: Bloomington, MN
Contact:

Re: [GSoC 2013 - accepted] OpenGL 3+; Geometry & Tessellatio

Post by masterfalcon » Sun Nov 24, 2013 8:04 am

Yeah, you're probably going to have conflicts one way or the other. Scrawl you're exactly right. It all depends on when you want to deal with the conflicts.

Yeah, feature branches are definitely a good thing.
0 x

Post Reply